* Introduce @kbn/plugin-system
* Throw if plugin exposes a promise from 'start'
* TS updates
* rename
* Better error if missing plugin
* Api to add multiple specs at the same time
* isPromise prettier-ified
* Rename 'plugin' to 'system'
* Metadata + some cleanups
* Make it possible to type system metadata
* Throw if stop is async
* Add tests for System class
* [kbn-es/cluster] fix promise handling to properly route success/failure
* [kbn-es/cli] catch errors that bubble to the CLI and log with a bit of style
* [kbn-es] fix promise handling when building from source
* [kbn-es] check for inverse of .stop() condition
* [kbn-es/cluster] resolve promise is cluster stops cleanly
* [kbn-es/cluster/start] reject if ES exits before starting
* [kbn-dev-utils/procRunner] try using execa to avoid never-exitting procs
* [kbn-dev-utils/procRunner] don't listen for close event, rely on stdio streams ending
* Add query enhancements opt-in switch to query bar (#17232)
Makes our language updates more visible to users and removes mentions of Kuery as a separate language. Users still get the old lucene experience by default, but have the option to opt-in to "experimental query features" directly in the query bar. Goal is to get more feedback by making these new features more prominent and less of a jump from lucene.
* fix test
* First stab at refactoring typeahead
* Don't double submit on enter
* Add item templating
* Introduce simple kuery language
* Rename to kql and add modules
* Update KQL syntax
* Automatically insert matching pairs
* Don't match quotes after alphanumeric chars
* Get field and value suggestions
* Remove accidental changes
* Remove unnecessary test
* Don't submit on enter
* Fix typeahead
* Suggest matching recent searches
* Suggest operators
* Suggest conjunctions
* Use template, separate suggestions into separate modules
* Whoops, add this module back
* Add clarifying comment
* Fix history log key
* Don't update suggestions on every key press
* Fix key handling
* Update terminology to be clearer
* Fix typo
* Simplify building of nodes
* Don't always hide on submit
* Check items exists
* Add icon directive which wraps EuiIcon.
* kql design start
* remove comment bits
* Simplify select next/prev and reset selected on hide/backspace
* Add test
* Put persistedLog on scope so it can be tested
* Fix typos
* Build up AST for sublist by returning functions that take a field name
* Remove single quoted strings and add double quote to special characters
* Build nodes with arg nodes instead of args themselves
* Add support for exact phrase search for quoted values
* Update typeahead items when language changes
* Finish that work I didn't do in the last commit
* This commit makes Bargs very happy cuz it does a lot
* Add wildcard field support to range query
* Remove range support for wildcard values
* Remove KQL as a separate language
Updates kuery to use KQL's grammar. This will lead to a smoother
transition for both us and Kuery users. We mainly added KQL as a
separate language so that we could notify Kuery users that the syntax
had changed. I realized we could do the same by trying to parse their
query strings with the old grammar if the new grammar fails, and if the
old grammar parses successfully we can display an error message with a
link to the docs describing the syntax changes. Since Kuery now uses the
more simple KQL syntax, I've also re-enabled the filter bar when Kuery
is selected.
* Fix typeahead behavior
* Update conjunctions
* Use scope apply
* Suggest conjunctions after ranges
* Support strings in wildcard node constructor and add tests for wildcard node
* test updates
* Removing unused serializeStyle and toKueryExpression, updating tests
* Fix functional test
* Fix typo
* Show fields that match in any part of the name
* Alter order of operators
* Preserve focus after selecting by click
* Ports tests for `fromKueryExpression` to `fromKqlExpression`
* More KQL syntax tests
* Suggest conjunctions after ranges
* Fix suggestions inside parens
* fromLiteralExpression tests
* remove serializeStyle arguments which no longer exist in the function definition
* tests for getFields
* Case insensitive search for field names
* update tests for is.js
* add wildcard fieldname test for range.js
* Fix removed div
* Fix line spacing for autocomplete suggestions
* Fix conjunction suggestions with escaped preceding literals
* Escape special characters in fields and values
* Don't suggest the value that's already selected
* Update icons
* Sort prefix first
* Simplify cursor detection and suggest booleans
* Use quotes for suggested values
* get rid of references to KQL
* Don't show errors from parsing
* That didn't even exist
* Use config to determine if values are suggested
* Update suggestions on home/end
* remove hack
* Update reference to kql
* Suggestions for quoted values
* Clean up grammar
* Better support for cursor inside spaces
* Create grunt task to generate parsers from peg files
* Simplify wildcard handling
* Don't filter out the exact fields/values
* Update parsing modules
* Fix peg task
* Make operator syntax more visible
* Update OR verbiage
* Simplify and improve match pairs
* Revert "Simplify wildcard handling"
This reverts commit 915861beab.
* Support escaped backslashes inside quoted strings
* Support escaped keywords
* Remove lodash dependency cuz w33ble
* Escape user input and fix conjunction description
* Clear suggestions after submitting
* Fix insertion of suggestion to account for selection
* Remove unnecessary?
* Remove extraneous file
* Better name for method
* Move functions out of event handler
* Don't wrap result in promise
* Don't show kuery suggestions for lucene
* some cleanup and polish for kql autocomplete
* Omit description completely for values
* Don't suggest and/or for quoted strings that end in spaces
* Submit recent search suggestions on select
* Scroll selected suggestion into view
* Better handling of key events and hiding typeahead
* Update suggestions to work in other apps with multiple index patterns
* Only update suggestions if not submitting
* Hide suggestions on focus
* Simplify wildcard (again)
* Fix console error
* Remove references to kql
* Fix match pairs so that suggestions occur with cursor in correct place
* Memoize value suggestions
* Debounce model updates
* Add tests for suggestion providers
* Add setting and docs
* Add custom error, helper for detecting leading wildcards, and check for
leading wildcards in the Value rule of the grammar.
* Better handling of suggestion clicks
* Dedup suggestions
* Sort keywords first
* Fix value suggestions memoizing
* Check if query exists
* Reduce size of dialog and fix ranges
* Create grunt task to generate parsers from peg files
* Lazy load typeahead items
* Fix wildcard tests
* Fix value suggestion tests
* Fix typeahead tests
* Fix value suggestion memoize resolver
* Leave comment
* Add a ttl for the value suggestion resolver
* Move grunt config to config/
* Bargs can suck it
* Fix more tests that bargs broke (and one I did too)
* Fix tests
When kbn-es downloads a snapshot, it writes the in progress download to
`/tmp` rather than the destination path in case the download fails part
way through, then renames the file from `/tmp` to the final location.
This is a good practice, but in CI the `/tmp` directory isn't stored on
the same disk as the project, which causes a rename error to occur
because we're attempting to rename across devices.
This updates the download logic to write to `${destPath}.tmp` instead,
and do the same renaming, so that we can avoid cross-device errors.
In an attempt to debug random stalls we are seeing in CI, the proc runner will now send SIGKILL if a process does not exit after receiving the standard exit signal it receives (usually SIGTERM). Additionally, if the child process object never emits "close" or "exit" another timeout will trigger an error
* moving plugin template to React and EUI
* fixing method reference error
* adding whitespace and comments per PR feedback
* adjusting test
* fixing test
* reducing Angular dependency and fixing issue with hack not loading properly
* fixing tests
* reacting to PR feedback
* [kbn-plugin-helpers] allow opt-ing out of dependency installation
* [plugin-helpers] rename buildIgnoreDependencies to skipInstallDependencies
* [plugin-helpers] use noop3 for test
* [plugin-helpers] fix test description
* [plugin-helpers] fix assertion
* Add test-subj-selector module to packages dir.
* Rename to @kbn/test-subj-selector.
* Simplify rejectRejFiles Grunt task and ignore nested node_modules.
* Update jenkins_unit script to use yarn kbn CLI.
* [kbn-plugin-generator] add plugin generator to the repo
* [plugin-generator] use snake_case plugin name for directory name
* [plugin-generator] fix typo
* [plugin-generator] remove translation support until we resume i18n efforts
* [yarn] update lockfile
* [mocha] remove plugin-generator selector from mocha tests
* [plugin-generator] update generated readme to recommend yarn
* [plugin-generator] add readme to generator pacakge
* [plugin-generator] link from plugin-resource docs
* [plugin-generator] mention very important `kbn bootstrap` script
* [plugin-generator] rework some parts of the README
* [plugin-generator] log actual directory name with system separators
* [plugin-generator] include bootstrap/yarn preinstall check script
* [plugin] Handle Kibana package dependencies
* Clean up 'link:' dep check in plugin installer
* Tests for 'prepareProjectDependencies'
* Remove unnecessary fn from 'prepareProjectDependencies'
* Move prepareProjectDependencies into @kbn/build
* update snapshot
* Move test to Jest
* clarification
* [plugin-helpers] update the readme to describe changes now that it is in the Kibana repo
* [plugin-helpers/readme] add note about versions before 6.3
* Run 'kbn:bootstrap' scripts at the end of bootstrapping
* Add bootstrap command tests
* resetAllMocks
* Use 'absolutePathSnaphotSerializer'
* Mock console.log calls
* Strip ansi snapshot serializer
* reset in afterEach
* Log before running 'kbn:bootstrap' scripts
* mock linkProjectExecutables in bootstrap tests
* lint for innerHTML and family
Browser apis like innerHTML and document.write are dangerous when used
incorrectly, so we should not be using them unless we explicitly opt-out
of the linting rule on a case by case basis.
* add no-unsanitized to eslint peerDependencies
* Build packages before running ESLint on CI
* Add production task to kbn-build
* Ensure packages are bootstrapped before running the build
* Run ESLint on kbn-build
* Introduce `kbn`, the Kibana build tool
* yarn kbn
* Make all deps devDeps
* Exclude __fixtures__ folder from Jest to avoid warnings
* Review fixes
* Update readme
* Use 'yarn kbn'
* Consistent rootPath
* Link to kbn tool
* Unsupported URL 'debug help' in contributing guide
* [eslint] upgrade to 4.10.0
* [eslint-config-kibana] limit jest config to jest test files
* [ui_framework] remove trailing comma from rest-spreads
* [dashboard/tests] tag jest helpers with .test.js suffix
* explicitly import expect.js where used
* [eslint] apply auto-fixes
* [eslint] manually add/wrap some parens for compliance
* [npm] point to local packages for testing/review
* [jest] remove .test extension from jest helpers
* [ui_framework] fix trailing comma removal from 3bc661a1c8
* [packages] upgrade eslint packages
* fix: pass build target into package task
use the build target for the zip output
* chore: change up the npm scripts
* chore: add create package tests
* chore: update eslint deps
* chore: fix linting issues, add engines
Original commit: elastic/kibana-plugin-helpers@51058fb7fc
require uses a cache, so if the package.json file was changed before running build, the changes won't exist in the build runtime. using fs.readFileSync instead ensures that the information read from package.json is current.
Original commit: elastic/kibana-plugin-helpers@f78e891838
The flot-charts project has been abandoned since 2014, but we use it
pretty extensively in Kibana. By forking it, we can fix bugs and improve
on the library in ways that we need to for Kibana.
* chore: add a simple version compat chart
* chore: document the settings and how to use them
* chore: use icon for license info
* chore: use matching badge for circleci status
Original commit: elastic/kibana-plugin-helpers@1f39e488a3
* observe includePlugins setting
* fix: move resolve up to config parser
this ensures that the path is resolved relative to the plugin root
Original commit: elastic/kibana-plugin-helpers@fd07d617a4
* feat: add translations path to build
included by default, to better match what's in the elastic products and even the plugin template
also add a translations path to the mock plugin for tests
* chore: add script to run tests with linting
Original commit: elastic/kibana-plugin-helpers@9871a4b11d
* Initial commit
* added actual config
* version 0.0.1
* version 0.0.2
* [no-const-assign] Disallow assignment to const
http://eslint.org/docs/rules/no-const-assign
* [no-redeclare] Disallow redeclaring variables
http://eslint.org/docs/rules/no-redeclare
* version 0.0.3
* [no-unused-vars]: Disallow declaration of variables that are not used in the code.
* Bump to 0.1.0.
* upgrade deps in preperation for babel6 transition
* 0.2.0-alpha1
* use yaml for readability
* 0.2.0
* update/pin peed dependency versions
* 0.2.1
* [quotes] allow template literals
This allows eslint to validate this rule from the styleguide: https://github.com/elastic/kibana/blob/master/style_guides/js_style_guide.md#use-template-strings-to-avoid-escaping-single-quotes
* 0.2.2
* add object-curly-spacing and no-global-assign rules
* sort .eslintrc.yaml rules
* 0.3.0
* add basic react support
* 0.4.0
* Disallow using 'context' in tests
* 0.5.0
* move from .eslintrc.yaml to .eslintrc.js without .json generation (#6)
* Implement import plugin (#7)
* update deps
* include eslint-plugin-import
* Dereference import config (#8)
* reorganize existing rules into groups
* defreference eslint-plugin-import "recommended" config
Based on ea9c92c732/config/recommended.js
* 0.6.0
* set environment info for import rule
* 0.6.1
* update peerDependencies
* 0.7.0
* Move eslint-config-kibana into packages directory
* bump @elastic/eslint-config-kibana and deps
* eslint --fix
* fix unused vars
some exceptions for tests
* move eslint-config-kibana to dev
* rename create_package function
* make .node-version looser, match internal checks
Original commit: elastic/kibana-plugin-helpers@6fac14bd51
* run is now a named export, added helpers for interacting with the kibana repo
* [config] override the kibana root config with KIBANA_ROOT envvar
Original commit: elastic/kibana-plugin-helpers@54a38cd9a2
* Make sure package is published under @elastic org namespace
* Preparing packages/ for Kibana-related packages
* Folder structure mirrors package name
* Add note on naming consistency
* s/packages/node modules/ for removing potention confusion with Kibana system packages
* Prefixing the eslint rule with package scope (i.e. org namespace)
* Adding README
* Bumping up version for release
* Adding repository information to package.json
* Bumping up version for release
* URL-encoding repository link + bumping up version for release
* Using published version
* Introduce a custom kibana estlint rule for no default exports
Turn it on only at the level of /kibana/src/core_plugins/public/ for
now, just to keep the PR sizes manageable.
* Don't call functions directly on the import
* Create a packages dir and move the custom rule in there
* Remove copied package.json portions, use minimal info necessary
* create windows cmd wrapper
* use windows cmd wrapper on browser tests
* be explicit about the mocha command location
* use windows cmd wrapper on server tests
* use windows cmd wrapper on build
default to using npm as well
Original commit: elastic/kibana-plugin-helpers@35f80a08ce
The package.json URLs are still referencing @spalger's version, whilst development and collaboration happens on @elastic's version
Original commit: elastic/kibana-plugin-helpers@1f322c1cb1
* remove scripts and devDependencies from package
these are only useful in development, and serve no purpose in the build
* refactor the package rewriter
* clean up the buildTarget before building
* run npm install after build creation
* break apart the create_build module
* add create_package modules
call it from within the build_action
* add flag to skip package zip creation
* rename skip-package flag to skip-archive
* rename rewritePackage to rewritePackageJson
* include lock and shrinkwrap files if they exist
* add test for skipping zip creation
* add some tests to build creation
Original commit: elastic/kibana-plugin-helpers@ef6b9c6332
* pass buildTarget into createBuild
allow override from options
* add cli option to override build destination
--build-destination
* fix tests
* resolve build destination from plugin.root
this allows both relative and absolute paths to be used
* add short option
* update the help
Original commit: elastic/kibana-plugin-helpers@6c9fb3464e
* only modify root package.json file
previously this was modifying every package.json from node_modules as well
* refactor the build task
export the build, define helpers outside of the task
* allow custom kibana and build versions
both can be passed via flags
* allow custom build globs to be specified
* move build into its own module
* add simple option parsing tests
* update readme
* move dependency file appending into the action
* put source and target into variables
* move config file loading into a module
* refactor test_server_action slightly
be more explicit about the files option overwriting the plugin settings
* move default build patterns to plugin config
allows the setting to be overridden via the config file
* fix dirname on relative includes
trim any leading '../' off the path when moving it into the build target
* move node_module dirs into plugin_config module, use existing promises
* rename file_config => config_file
Original commit: elastic/kibana-plugin-helpers@743e4a37c2
* remove conditionl require in runner
add tasks module to load all tasks, throw if task does not exist
* change task signatures and action handlers
- tasks get plugin, run, and an options object
- action handler controls what goes into each task
- taskRunner wrapper moves the command object to the first argument
* change test command signature
allow files to be passed in, and pass all options to test:server and test:browser
* simplify the task runner
* fix typo in unknownOptions
* expose the task runner as the module's main
this way tasks can be run programatically without going through a cli parser
* add tests for task runner
* remove file passing for testAll
* add serverTestPaths to the plugin config
useful for overriding the value via a config file
* [config] plugin.serverTestPaths -> plugin.serverTestPatterns
Original commit: elastic/kibana-plugin-helpers@82af4df64e