mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-05 22:27:03 +02:00
UI: upgrade Ember to 5.4 (#26708)
This commit is contained in:
parent
ec1f261db9
commit
c02787cd8f
3
changelog/26708.txt
Normal file
3
changelog/26708.txt
Normal file
@ -0,0 +1,3 @@
|
||||
```release-note:change
|
||||
ui: Upgrade Ember to version 5.4
|
||||
```
|
@ -1,6 +1,5 @@
|
||||
# unconventional js
|
||||
/blueprints/*/files/
|
||||
/vendor/
|
||||
|
||||
# compiled output
|
||||
/dist/
|
||||
@ -15,7 +14,6 @@
|
||||
/coverage/
|
||||
!.*
|
||||
.*/
|
||||
.eslintcache
|
||||
|
||||
# ember-try
|
||||
/.node_modules.ember-try/
|
||||
|
@ -68,6 +68,9 @@ module.exports = {
|
||||
// test files
|
||||
files: ['tests/**/*-test.{js,ts}'],
|
||||
extends: ['plugin:qunit/recommended'],
|
||||
rules: {
|
||||
'qunit/require-expect': 'off',
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['**/*.ts'],
|
||||
|
10
ui/.gitignore
vendored
10
ui/.gitignore
vendored
@ -1,19 +1,16 @@
|
||||
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# compiled output
|
||||
/dist/
|
||||
/tmp/
|
||||
/declarations/
|
||||
|
||||
# dependencies
|
||||
/bower_components/
|
||||
/node_modules/
|
||||
|
||||
# misc
|
||||
/.sass-cache
|
||||
/.env*
|
||||
/.pnp*
|
||||
/.eslintcache
|
||||
/connect.lock
|
||||
/coverage/
|
||||
/libpeerconnection.log
|
||||
/npm-debug.log*
|
||||
/testem.log
|
||||
/yarn-error.log
|
||||
@ -21,7 +18,6 @@ package-lock.json
|
||||
|
||||
# ember-try
|
||||
/.node_modules.ember-try/
|
||||
/bower.json.ember-try
|
||||
/npm-shrinkwrap.json.ember-try
|
||||
/package.json.ember-try
|
||||
/package-lock.json.ember-try
|
||||
|
@ -1,25 +1,13 @@
|
||||
# unconventional js
|
||||
/blueprints/*/files/
|
||||
/vendor/
|
||||
|
||||
# compiled output
|
||||
/dist/
|
||||
/tmp/
|
||||
|
||||
# dependencies
|
||||
/bower_components/
|
||||
/node_modules/
|
||||
|
||||
# misc
|
||||
/coverage/
|
||||
!.*
|
||||
.eslintcache
|
||||
.lint-todo/
|
||||
.*/
|
||||
|
||||
# ember-try
|
||||
/.node_modules.ember-try/
|
||||
/bower.json.ember-try
|
||||
/npm-shrinkwrap.json.ember-try
|
||||
/package.json.ember-try
|
||||
/package-lock.json.ember-try
|
||||
/yarn.lock.ember-try
|
||||
|
@ -1,3 +1,3 @@
|
||||
{
|
||||
"ignore_dirs": ["tmp", "dist"]
|
||||
"ignore_dirs": ["dist"]
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ This README outlines the details of collaborating on this Ember application.
|
||||
|
||||
| Vault Version | Ember Version |
|
||||
| ------------- | ------------- |
|
||||
| 1.17.x | 5.4.2 |
|
||||
| 1.15.x | 4.12.0 |
|
||||
| 1.14.x | 4.4.0 |
|
||||
| 1.13.x | 4.4.0 |
|
||||
|
@ -1,10 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: BUSL-1.1
|
||||
*/
|
||||
|
||||
import Trigger from 'ember-basic-dropdown/components/basic-dropdown/trigger';
|
||||
|
||||
export default Trigger.extend({
|
||||
attributeBindings: ['type'],
|
||||
});
|
@ -53,6 +53,7 @@
|
||||
|
||||
<SearchSelect
|
||||
class="is-flex-grow-1"
|
||||
@ariaLabel={{this.searchSelectParams.title}}
|
||||
@selectLimit="1"
|
||||
@models={{array this.searchSelectParams.model}}
|
||||
@placeholder={{this.searchSelectParams.placeholder}}
|
||||
|
@ -27,9 +27,12 @@ export default Helper.extend({
|
||||
* as the run loop queue is never clear so tests will stay locked waiting
|
||||
* for queue to clear.
|
||||
*/
|
||||
this.intervalTimer = setTimeout(() => {
|
||||
run(() => this.recompute());
|
||||
}, parseInt(interval, 10));
|
||||
this.intervalTimer = setTimeout(
|
||||
() => {
|
||||
run(() => this.recompute());
|
||||
},
|
||||
parseInt(interval, 10)
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -10,7 +10,7 @@ export function initialize() {
|
||||
registerDeprecationHandler((message, options, next) => {
|
||||
// filter deprecations that are scheduled to be removed in a specific version
|
||||
// when upgrading or addressing deprecation warnings be sure to update this or remove if not needed
|
||||
if (options?.until.includes('5.0')) {
|
||||
if (options?.until.includes('5.0') && options?.id.startsWith('ember-data')) {
|
||||
return;
|
||||
}
|
||||
next(message, options);
|
||||
|
@ -7,4 +7,5 @@
|
||||
<div class="page-container">
|
||||
{{outlet}}
|
||||
</div>
|
||||
<BasicDropdownWormhole />
|
||||
</Sidebar::Frame>
|
@ -35,6 +35,7 @@
|
||||
{{! component only computes inputValue on init -- ensure Ember Data hasMany promise has resolved }}
|
||||
{{#if @model.mfa_methods.isFulfilled}}
|
||||
<SearchSelect
|
||||
@id="methods"
|
||||
@placeholder="Type to search for existing MFA methods"
|
||||
@inputValue={{map-by "id" @model.mfa_methods}}
|
||||
@shouldRenderName={{true}}
|
||||
@ -114,6 +115,7 @@
|
||||
/>
|
||||
{{else}}
|
||||
<SearchSelect
|
||||
@id="existing-targets"
|
||||
@placeholder="Search for an existing target"
|
||||
@options={{this.searchSelect.options}}
|
||||
@parentManageSelected={{this.searchSelect.selected}}
|
||||
|
@ -3,7 +3,7 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "ember-cli",
|
||||
"version": "4.12.1",
|
||||
"version": "5.4.2",
|
||||
"blueprints": [
|
||||
{
|
||||
"name": "app",
|
||||
|
@ -19,9 +19,10 @@ const appConfig = {
|
||||
serviceWorkerScope: config.serviceWorkerScope,
|
||||
skipWaitingOnMessage: true,
|
||||
},
|
||||
babel: {
|
||||
plugins: [require.resolve('ember-concurrency/async-arrow-task-transform')],
|
||||
},
|
||||
svgJar: {
|
||||
//optimize: false,
|
||||
//paths: [],
|
||||
optimizer: {},
|
||||
sourceDirs: ['public'],
|
||||
rootURL: '/ui/',
|
||||
|
@ -12,6 +12,7 @@ import { resolve } from 'rsvp';
|
||||
import { filterOptions, defaultMatcher } from 'ember-power-select/utils/group-utils';
|
||||
import { removeFromArray } from 'vault/helpers/remove-from-array';
|
||||
import { addToArray } from 'vault/helpers/add-to-array';
|
||||
import { assert } from '@ember/debug';
|
||||
/**
|
||||
* @module SearchSelect
|
||||
* The `SearchSelect` is an implementation of the [ember-power-select](https://github.com/cibernox/ember-power-select) used for form elements where options come dynamically from the API.
|
||||
@ -74,6 +75,14 @@ export default class SearchSelect extends Component {
|
||||
@tracked dropdownOptions = []; // options that will render in dropdown, updates as selections are added/discarded
|
||||
@tracked allOptions = []; // both selected and unselected options, used for wildcard filter
|
||||
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
assert(
|
||||
'one of @id, @label, or @ariaLabel must be passed to search-select component',
|
||||
this.args.id || this.args.label || this.args.ariaLabel
|
||||
);
|
||||
}
|
||||
|
||||
get hidePowerSelect() {
|
||||
return this.selectedOptions.length >= this.args.selectLimit;
|
||||
}
|
||||
|
@ -144,10 +144,13 @@ export const formatByNamespace = (namespaceArray: NamespaceObject[]) => {
|
||||
// when querying historical data the response will always contain the latest client type keys because the activity log is
|
||||
// constructed based on the version of Vault the user is on (key values will be 0)
|
||||
export const destructureClientCounts = (verboseObject: Counts | ByNamespaceClients) => {
|
||||
return CLIENT_TYPES.reduce((newObj: Record<ClientTypes, Counts[ClientTypes]>, clientType: ClientTypes) => {
|
||||
newObj[clientType] = verboseObject[clientType];
|
||||
return newObj;
|
||||
}, {} as Record<ClientTypes, Counts[ClientTypes]>);
|
||||
return CLIENT_TYPES.reduce(
|
||||
(newObj: Record<ClientTypes, Counts[ClientTypes]>, clientType: ClientTypes) => {
|
||||
newObj[clientType] = verboseObject[clientType];
|
||||
return newObj;
|
||||
},
|
||||
{} as Record<ClientTypes, Counts[ClientTypes]>
|
||||
);
|
||||
};
|
||||
|
||||
export const sortMonthsByTimestamp = (monthsArray: ActivityMonthBlock[] | EmptyActivityMonthBlock[]) => {
|
||||
@ -173,19 +176,22 @@ export const namespaceArrayToObject = (
|
||||
// mounts_by_key is is used to filter further in a namespace and get monthly activity by mount
|
||||
// it's an object inside the namespace block where the keys are mount paths
|
||||
// and the values include new and total client counts for that mount in that month
|
||||
const mounts_by_key = ns.mounts.reduce((mountObj: { [key: string]: MountByKey }, mount) => {
|
||||
const newMountClients = newNsClients.mounts.find((m) => m.label === mount.label);
|
||||
const mounts_by_key = ns.mounts.reduce(
|
||||
(mountObj: { [key: string]: MountByKey }, mount) => {
|
||||
const newMountClients = newNsClients.mounts.find((m) => m.label === mount.label);
|
||||
|
||||
if (newMountClients) {
|
||||
mountObj[mount.label] = {
|
||||
...mount,
|
||||
timestamp,
|
||||
month,
|
||||
new_clients: { month, timestamp, ...newMountClients },
|
||||
};
|
||||
}
|
||||
return mountObj;
|
||||
}, {} as { [key: string]: MountByKey });
|
||||
if (newMountClients) {
|
||||
mountObj[mount.label] = {
|
||||
...mount,
|
||||
timestamp,
|
||||
month,
|
||||
new_clients: { month, timestamp, ...newMountClients },
|
||||
};
|
||||
}
|
||||
return mountObj;
|
||||
},
|
||||
{} as { [key: string]: MountByKey }
|
||||
);
|
||||
|
||||
nsObject[ns.label] = {
|
||||
...destructureClientCounts(ns),
|
||||
|
@ -7,6 +7,11 @@
|
||||
|
||||
module.exports = {
|
||||
name: require('./package').name,
|
||||
|
||||
babel: {
|
||||
plugins: [require.resolve('ember-concurrency/async-arrow-task-transform')],
|
||||
},
|
||||
|
||||
isDevelopingAddon() {
|
||||
return true;
|
||||
},
|
||||
|
@ -26,6 +26,7 @@
|
||||
<div class="has-top-margin-m is-flex">
|
||||
<SearchSelect
|
||||
class="is-flex-grow-1"
|
||||
@ariaLabel="Role"
|
||||
@placeholder="Type to find a role..."
|
||||
@disallowNewItems={{true}}
|
||||
@options={{this.roleOptions}}
|
||||
|
@ -14,6 +14,9 @@ module.exports = buildEngine({
|
||||
lazyLoading: {
|
||||
enabled: false,
|
||||
},
|
||||
babel: {
|
||||
plugins: [require.resolve('ember-concurrency/async-arrow-task-transform')],
|
||||
},
|
||||
isDevelopingAddon() {
|
||||
return true;
|
||||
},
|
||||
|
@ -16,6 +16,10 @@ module.exports = buildEngine({
|
||||
enabled: false,
|
||||
},
|
||||
|
||||
babel: {
|
||||
plugins: [require.resolve('ember-concurrency/async-arrow-task-transform')],
|
||||
},
|
||||
|
||||
isDevelopingAddon() {
|
||||
return true;
|
||||
},
|
||||
|
@ -5,6 +5,7 @@
|
||||
"ember-engine"
|
||||
],
|
||||
"dependencies": {
|
||||
"ember-auto-import": "*",
|
||||
"ember-cli-htmlbars": "*",
|
||||
"ember-cli-babel": "*",
|
||||
"ember-concurrency": "*",
|
||||
@ -16,4 +17,4 @@
|
||||
"../core"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,7 @@
|
||||
<div class="has-top-margin-m is-flex">
|
||||
<SearchSelect
|
||||
class="is-flex-1"
|
||||
@ariaLabel="Role"
|
||||
@placeholder="Select a role"
|
||||
@disallowNewItems={{true}}
|
||||
@options={{@roles}}
|
||||
|
@ -16,6 +16,10 @@ module.exports = buildEngine({
|
||||
enabled: false,
|
||||
}),
|
||||
|
||||
babel: {
|
||||
plugins: [require.resolve('ember-concurrency/async-arrow-task-transform')],
|
||||
},
|
||||
|
||||
isDevelopingAddon() {
|
||||
return true;
|
||||
},
|
||||
|
@ -108,14 +108,14 @@ export default class PagePkiIssuerRotateRootComponent extends Component<Args> {
|
||||
const endpoint = `/v1/${this.secretMountPath.currentPath}/issuer/${this.args.newRootModel.issuerId}/${format}`;
|
||||
const adapter = this.store.adapterFor('application');
|
||||
try {
|
||||
return adapter
|
||||
.rawRequest(endpoint, 'GET', { unauthenticated: true })
|
||||
.then(function (response: Response) {
|
||||
if (format === 'der') {
|
||||
return response.blob();
|
||||
}
|
||||
return response.text();
|
||||
});
|
||||
return adapter.rawRequest(endpoint, 'GET', { unauthenticated: true }).then(function (
|
||||
response: Response
|
||||
) {
|
||||
if (format === 'der') {
|
||||
return response.blob();
|
||||
}
|
||||
return response.text();
|
||||
});
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
|
@ -32,6 +32,7 @@
|
||||
<div class="has-top-margin-m is-flex">
|
||||
<SearchSelect
|
||||
class="is-flex-grow-1"
|
||||
@ariaLabel="Role"
|
||||
@selectLimit="1"
|
||||
@models={{array "pki/role"}}
|
||||
@backend={{@engine.id}}
|
||||
@ -58,6 +59,7 @@
|
||||
<div class="has-top-margin-m {{unless this.certificateValue 'is-flex'}}">
|
||||
<SearchSelect
|
||||
class="is-flex-grow-1"
|
||||
@ariaLabel="Certificate serial number"
|
||||
@selectLimit="1"
|
||||
@models={{array "pki/certificate/base"}}
|
||||
@backend={{@engine.id}}
|
||||
@ -83,6 +85,7 @@
|
||||
<div class="has-top-margin-m is-flex">
|
||||
<SearchSelect
|
||||
class="is-flex-grow-1"
|
||||
@ariaLabel="Issuer name or ID"
|
||||
@selectLimit="1"
|
||||
@models={{array "pki/issuer"}}
|
||||
@backend={{@engine.id}}
|
||||
|
@ -11,6 +11,9 @@ module.exports = buildEngine({
|
||||
lazyLoading: {
|
||||
enabled: false,
|
||||
},
|
||||
babel: {
|
||||
plugins: [require.resolve('ember-concurrency/async-arrow-task-transform')],
|
||||
},
|
||||
isDevelopingAddon() {
|
||||
return true;
|
||||
},
|
||||
|
@ -10,6 +10,7 @@
|
||||
"ember-cli-babel": "*",
|
||||
"ember-cli-htmlbars": "*",
|
||||
"ember-cli-typescript": "*",
|
||||
"ember-concurrency": "*",
|
||||
"ember-auto-import": "*",
|
||||
"@hashicorp/design-system-components": "*",
|
||||
"@types/ember": "latest",
|
||||
|
@ -17,6 +17,10 @@ module.exports = EngineAddon.extend({
|
||||
enabled: true,
|
||||
},
|
||||
|
||||
babel: {
|
||||
plugins: [require.resolve('ember-concurrency/async-arrow-task-transform')],
|
||||
},
|
||||
|
||||
isDevelopingAddon() {
|
||||
return true;
|
||||
},
|
||||
|
@ -23,6 +23,7 @@
|
||||
@selectLimit={{1}}
|
||||
@disallowNewItems={{true}}
|
||||
@placeholder="Filter by type"
|
||||
@ariaLabel="Filter by type"
|
||||
@inputValue={{if this.typeFilterName (array this.typeFilterName)}}
|
||||
@onChange={{fn this.onFilterChange "type"}}
|
||||
@renderInPlace={{true}}
|
||||
|
@ -16,6 +16,10 @@ module.exports = buildEngine({
|
||||
enabled: false,
|
||||
}),
|
||||
|
||||
babel: {
|
||||
plugins: [require.resolve('ember-concurrency/async-arrow-task-transform')],
|
||||
},
|
||||
|
||||
isDevelopingAddon() {
|
||||
return true;
|
||||
},
|
||||
|
@ -53,16 +53,17 @@
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/eslint-parser": "^7.21.3",
|
||||
"@babel/plugin-proposal-decorators": "^7.21.0",
|
||||
"@babel/core": "^7.23.2",
|
||||
"@babel/eslint-parser": "^7.22.15",
|
||||
"@babel/plugin-proposal-decorators": "^7.23.2",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
|
||||
"@babel/plugin-transform-block-scoping": "^7.12.1",
|
||||
"@ember-data/legacy-compat": "~4.12.4",
|
||||
"@ember/legacy-built-in-components": "^0.4.1",
|
||||
"@ember/optional-features": "^2.0.0",
|
||||
"@ember/render-modifiers": "^1.0.2",
|
||||
"@ember/string": "^3.0.1",
|
||||
"@ember/test-helpers": "^2.9.3",
|
||||
"@ember/string": "^3.1.1",
|
||||
"@ember/test-helpers": "^3.2.0",
|
||||
"@ember/test-waiters": "^3.1.0",
|
||||
"@glimmer/component": "^1.1.2",
|
||||
"@glimmer/tracking": "^1.1.2",
|
||||
@ -121,24 +122,25 @@
|
||||
"deepmerge": "^4.0.0",
|
||||
"doctoc": "^2.2.0",
|
||||
"dompurify": "^3.0.2",
|
||||
"ember-a11y-testing": "^5.2.1",
|
||||
"ember-basic-dropdown": "6.0.1",
|
||||
"ember-cli": "~4.12.1",
|
||||
"ember-cli-babel": "^7.26.11",
|
||||
"ember-a11y-testing": "^6.1.1",
|
||||
"ember-basic-dropdown": "^8.0.4",
|
||||
"ember-cli": "~5.4.2",
|
||||
"ember-cli-babel": "^8.2.0",
|
||||
"ember-cli-clean-css": "^3.0.0",
|
||||
"ember-cli-content-security-policy": "2.0.3",
|
||||
"ember-cli-dependency-checker": "^3.3.1",
|
||||
"ember-cli-dependency-checker": "^3.3.2",
|
||||
"ember-cli-deprecation-workflow": "^2.1.0",
|
||||
"ember-cli-flash": "4.0.0",
|
||||
"ember-cli-htmlbars": "^6.2.0",
|
||||
"ember-cli-htmlbars": "^6.3.0",
|
||||
"ember-cli-inject-live-reload": "^2.1.0",
|
||||
"ember-cli-mirage": "^3.0.3",
|
||||
"ember-cli-page-object": "1.17.10",
|
||||
"ember-cli-page-object": "^2.3.0",
|
||||
"ember-cli-sass": "11.0.1",
|
||||
"ember-cli-sri": "meirish/ember-cli-sri#rooturl",
|
||||
"ember-cli-string-helpers": "6.1.0",
|
||||
"ember-cli-terser": "^4.0.2",
|
||||
"ember-composable-helpers": "5.0.0",
|
||||
"ember-concurrency": "^3.1.1",
|
||||
"ember-concurrency": "^4.0.2",
|
||||
"ember-data": "~4.12.4",
|
||||
"ember-engines": "0.8.23",
|
||||
"ember-exam": "^9.0.0",
|
||||
@ -147,31 +149,31 @@
|
||||
"ember-load-initializers": "^2.1.2",
|
||||
"ember-modal-dialog": "^4.0.1",
|
||||
"ember-modifier": "^4.1.0",
|
||||
"ember-page-title": "^7.0.0",
|
||||
"ember-power-select": "6.0.1",
|
||||
"ember-page-title": "^8.0.0",
|
||||
"ember-power-select": "^8.1.0",
|
||||
"ember-qrcode-shim": "^0.4.0",
|
||||
"ember-qunit": "^6.2.0",
|
||||
"ember-resolver": "^10.0.0",
|
||||
"ember-qunit": "^8.0.1",
|
||||
"ember-resolver": "^11.0.1",
|
||||
"ember-responsive": "5.0.0",
|
||||
"ember-router-helpers": "^0.4.0",
|
||||
"ember-service-worker": "meirish/ember-service-worker#configurable-scope",
|
||||
"ember-sinon-qunit": "^7.4.0",
|
||||
"ember-source": "~4.12.0",
|
||||
"ember-source": "~5.4.0",
|
||||
"ember-style-modifier": "^4.1.0",
|
||||
"ember-svg-jar": "2.4.4",
|
||||
"ember-template-lint": "^6.0.0",
|
||||
"ember-template-lint-plugin-prettier": "4.0.0",
|
||||
"ember-template-lint-plugin-prettier": "^5.0.0",
|
||||
"ember-test-selectors": "6.0.0",
|
||||
"ember-tether": "3.0.0",
|
||||
"ember-truth-helpers": "3.0.0",
|
||||
"escape-string-regexp": "^2.0.0",
|
||||
"eslint": "^8.37.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
"eslint": "^8.52.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-compat": "4.0.2",
|
||||
"eslint-plugin-ember": "^11.5.0",
|
||||
"eslint-plugin-n": "^15.7.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-qunit": "^7.3.4",
|
||||
"eslint-plugin-ember": "^11.11.1",
|
||||
"eslint-plugin-n": "^16.2.0",
|
||||
"eslint-plugin-prettier": "^5.0.1",
|
||||
"eslint-plugin-qunit": "^8.0.1",
|
||||
"filesize": "^4.2.1",
|
||||
"flat": "^6.0.1",
|
||||
"jsondiffpatch": "^0.4.1",
|
||||
@ -182,32 +184,31 @@
|
||||
"normalize.css": "4.1.1",
|
||||
"pkijs": "^2.2.2",
|
||||
"pretender": "^3.4.3",
|
||||
"prettier": "2.8.7",
|
||||
"prettier": "3.0.3",
|
||||
"prettier-eslint-cli": "^7.1.0",
|
||||
"pvutils": "^1.0.17",
|
||||
"qunit": "^2.19.4",
|
||||
"qunit": "^2.20.0",
|
||||
"qunit-dom": "^2.0.0",
|
||||
"sass": "^1.66.3",
|
||||
"shell-quote": "^1.8.1",
|
||||
"sinon": "^17.0.1",
|
||||
"string.prototype.endswith": "^0.2.0",
|
||||
"string.prototype.startswith": "^0.2.0",
|
||||
"stylelint": "^15.4.0",
|
||||
"stylelint-config-standard": "^32.0.0",
|
||||
"stylelint-prettier": "^3.0.0",
|
||||
"stylelint": "^15.11.0",
|
||||
"stylelint-config-standard": "^34.0.0",
|
||||
"stylelint-prettier": "^4.0.2",
|
||||
"swagger-ui-dist": "^5.9.0",
|
||||
"text-encoder-lite": "2.0.0",
|
||||
"tracked-built-ins": "^3.1.1",
|
||||
"tracked-built-ins": "^3.3.0",
|
||||
"typescript": "^4.9.5",
|
||||
"walk-sync": "^2.0.2",
|
||||
"webpack": "5.78.0",
|
||||
"webpack": "5.89.0",
|
||||
"xstate": "^3.3.3"
|
||||
},
|
||||
"resolutions": {
|
||||
"ansi-html": "^0.0.8",
|
||||
"async": "^2.6.4",
|
||||
"eslint-utils": "^1.4.1",
|
||||
"ember-basic-dropdown": "6.0.1",
|
||||
"highlight.js": "^10.4.1",
|
||||
"https-proxy-agent": "^2.2.3",
|
||||
"ini": "^1.3.6",
|
||||
@ -225,7 +226,7 @@
|
||||
"lodash.template@^4.5.0": "patch:lodash.template@npm%3A4.5.0#./.yarn/patches/lodash.template-npm-4.5.0-5272df3039.patch"
|
||||
},
|
||||
"engines": {
|
||||
"node": "18"
|
||||
"node": ">= 18"
|
||||
},
|
||||
"ember": {
|
||||
"edition": "octane"
|
||||
|
@ -4,7 +4,8 @@
|
||||
*/
|
||||
|
||||
import { settled, currentRouteName, click, waitUntil, find } from '@ember/test-helpers';
|
||||
import { selectChoose, clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import { clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import page from 'vault/tests/pages/access/identity/create';
|
||||
import showPage from 'vault/tests/pages/access/identity/show';
|
||||
import indexPage from 'vault/tests/pages/access/identity/index';
|
||||
|
@ -16,7 +16,7 @@ import {
|
||||
} from '@ember/test-helpers';
|
||||
import { setupApplicationTest } from 'vault/tests/helpers';
|
||||
import { setupMirage } from 'ember-cli-mirage/test-support';
|
||||
import { selectChoose } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import authPage from 'vault/tests/pages/auth';
|
||||
import mountSecrets from 'vault/tests/pages/settings/mount-secret-backend';
|
||||
import clientsHandlers from 'vault/mirage/handlers/clients';
|
||||
|
@ -7,7 +7,8 @@ import { module, test } from 'qunit';
|
||||
import { setupApplicationTest } from 'ember-qunit';
|
||||
import { currentURL, click, settled, currentRouteName } from '@ember/test-helpers';
|
||||
import { create } from 'ember-cli-page-object';
|
||||
import { typeInSearch, selectChoose, clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import { typeInSearch, clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
|
||||
import authPage from 'vault/tests/pages/auth';
|
||||
import mountSecrets from 'vault/tests/pages/settings/mount-secret-backend';
|
||||
|
@ -10,7 +10,8 @@ import { setupMirage } from 'ember-cli-mirage/test-support';
|
||||
import oidcConfigHandlers from 'vault/mirage/handlers/oidc-config';
|
||||
import authPage from 'vault/tests/pages/auth';
|
||||
import { create } from 'ember-cli-page-object';
|
||||
import { clickTrigger, selectChoose } from 'ember-power-select/test-support/helpers';
|
||||
import { clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import ss from 'vault/tests/pages/components/search-select';
|
||||
import fm from 'vault/tests/pages/components/flash-message';
|
||||
import {
|
||||
@ -21,6 +22,7 @@ import {
|
||||
CLIENT_DATA_RESPONSE,
|
||||
} from 'vault/tests/helpers/oidc-config';
|
||||
import { capabilitiesStub, overrideResponse } from 'vault/tests/helpers/stubs';
|
||||
|
||||
const searchSelect = create(ss);
|
||||
const flashMessage = create(fm);
|
||||
|
||||
|
@ -10,7 +10,8 @@ import { setupMirage } from 'ember-cli-mirage/test-support';
|
||||
import oidcConfigHandlers from 'vault/mirage/handlers/oidc-config';
|
||||
import authPage from 'vault/tests/pages/auth';
|
||||
import { create } from 'ember-cli-page-object';
|
||||
import { clickTrigger, selectChoose } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import { clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import ss from 'vault/tests/pages/components/search-select';
|
||||
import fm from 'vault/tests/pages/components/flash-message';
|
||||
import {
|
||||
|
@ -7,7 +7,8 @@ import { module, test } from 'qunit';
|
||||
import { setupApplicationTest } from 'ember-qunit';
|
||||
import { currentURL, settled, click, visit, fillIn, typeIn, waitFor } from '@ember/test-helpers';
|
||||
import { create } from 'ember-cli-page-object';
|
||||
import { selectChoose, clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import { clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
|
||||
import mountSecrets from 'vault/tests/pages/settings/mount-secret-backend';
|
||||
import connectionPage from 'vault/tests/pages/secrets/backend/database/connection';
|
||||
|
@ -9,7 +9,7 @@ import {
|
||||
setupTest as upstreamSetupTest,
|
||||
} from 'ember-qunit';
|
||||
|
||||
// This file exists to provide wrappers around ember-qunit's / ember-mocha's
|
||||
// This file exists to provide wrappers around ember-qunit's
|
||||
// test setup functions. This way, you can easily extend the setup that is
|
||||
// needed per test type.
|
||||
|
||||
|
@ -13,7 +13,7 @@ import { getUnixTime } from 'date-fns';
|
||||
import { GENERAL } from 'vault/tests/helpers/general-selectors';
|
||||
import { CLIENT_COUNT } from 'vault/tests/helpers/clients/client-count-selectors';
|
||||
import { dateDropdownSelect } from 'vault/tests/helpers/clients/client-count-helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import timestamp from 'core/utils/timestamp';
|
||||
import sinon from 'sinon';
|
||||
import { allowAllCapabilitiesStub } from 'vault/tests/helpers/stubs';
|
||||
|
@ -8,7 +8,7 @@ import { setupRenderingTest } from 'vault/tests/helpers';
|
||||
import { render, findAll, click } from '@ember/test-helpers';
|
||||
import { hbs } from 'ember-cli-htmlbars';
|
||||
import { fillIn } from '@ember/test-helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
|
||||
import { DASHBOARD } from 'vault/tests/helpers/components/dashboard/dashboard-selectors';
|
||||
import { setRunOptions } from 'ember-a11y-testing/test-support';
|
||||
|
@ -7,7 +7,8 @@ import { module, test } from 'qunit';
|
||||
import { setupRenderingTest } from 'ember-qunit';
|
||||
import Service from '@ember/service';
|
||||
import { click, render } from '@ember/test-helpers';
|
||||
import { selectChoose, clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import { clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import hbs from 'htmlbars-inline-precompile';
|
||||
import sinon from 'sinon';
|
||||
import { setRunOptions } from 'ember-a11y-testing/test-support';
|
||||
|
@ -8,7 +8,8 @@ import { setupRenderingTest } from 'ember-qunit';
|
||||
import { setupEngine } from 'ember-engines/test-support';
|
||||
import { setupMirage } from 'ember-cli-mirage/test-support';
|
||||
import { render } from '@ember/test-helpers';
|
||||
import { typeInSearch, clickTrigger, selectChoose } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import { typeInSearch, clickTrigger } from 'ember-power-select/test-support/helpers';
|
||||
import hbs from 'htmlbars-inline-precompile';
|
||||
import { setRunOptions } from 'ember-a11y-testing/test-support';
|
||||
import { GENERAL } from 'vault/tests/helpers/general-selectors';
|
||||
|
@ -12,7 +12,7 @@ import hbs from 'htmlbars-inline-precompile';
|
||||
import { render, click, fillIn, settled } from '@ember/test-helpers';
|
||||
import { PAGE } from 'vault/tests/helpers/sync/sync-selectors';
|
||||
import { allowAllCapabilitiesStub } from 'vault/tests/helpers/stubs';
|
||||
import { selectChoose } from 'ember-power-select/test-support/helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import sinon from 'sinon';
|
||||
import { Response } from 'miragejs';
|
||||
|
||||
|
@ -12,7 +12,6 @@ export default create({
|
||||
customEndMonthBtn: clickable('[data-test-show-calendar]'),
|
||||
menuToggle: clickable('[data-test-calendar-widget-trigger]'),
|
||||
showsCalendar: isPresent('[data-test-calendar-widget-container]'),
|
||||
dateRangeTrigger: '[data-test-show-calendar]',
|
||||
async openCalendar() {
|
||||
await this.menuToggle();
|
||||
await this.customEndMonthBtn();
|
||||
|
2
ui/vendor/string-includes.js
vendored
2
ui/vendor/string-includes.js
vendored
@ -6,7 +6,7 @@
|
||||
// By Mozilla Contributors licensed under CC-BY-SA 2.5 (http://creativecommons.org/licenses/by-sa/2.5/)
|
||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill
|
||||
if (!String.prototype.includes) {
|
||||
String.prototype.includes = function(search, start) {
|
||||
String.prototype.includes = function (search, start) {
|
||||
'use strict';
|
||||
if (typeof start !== 'number') {
|
||||
start = 0;
|
||||
|
2813
ui/yarn.lock
2813
ui/yarn.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user