@atlaskit/link-datasource 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.6.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#40923](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/40923) [`1eaceeae0b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1eaceeae0b0) - Use jql-ast to build jql
8
+
3
9
  ## 1.6.0
4
10
 
5
11
  ### Minor Changes
@@ -7,5 +7,5 @@ exports.packageMetaData = exports.EVENT_CHANNEL = void 0;
7
7
  var EVENT_CHANNEL = exports.EVENT_CHANNEL = 'media';
8
8
  var packageMetaData = exports.packageMetaData = {
9
9
  packageName: "@atlaskit/link-datasource",
10
- packageVersion: "1.6.0"
10
+ packageVersion: "1.6.1"
11
11
  };
@@ -231,7 +231,7 @@ var analyticsContextAttributes = {
231
231
  };
232
232
  var analyticsContextData = {
233
233
  packageName: "@atlaskit/link-datasource",
234
- packageVersion: "1.6.0",
234
+ packageVersion: "1.6.1",
235
235
  source: 'datasourceConfigModal'
236
236
  };
237
237
  var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
@@ -4,23 +4,46 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.buildJQL = void 0;
7
+ var _jqlAst = require("@atlaskit/jql-ast");
7
8
  var fuzzySearchRegExp = /^"(.+)"$/;
8
9
  var jiraIssueKeyRegExp = /[A-Z]+-\d+/;
10
+ var constructTerminalClause = function constructTerminalClause(field, operator, value) {
11
+ return _jqlAst.creators.terminalClause(_jqlAst.creators.field(field), _jqlAst.creators.operator(operator), _jqlAst.creators.valueOperand(value));
12
+ };
9
13
  var buildJQL = exports.buildJQL = function buildJQL(input) {
14
+ /**
15
+ * Jql ast - Transforming the ast
16
+ * https://atlaskit.atlassian.com/packages/jql/jql-ast/docs/transforming-the-ast
17
+ */
18
+ var jast = new _jqlAst.JastBuilder().build('');
19
+ var query = jast.query;
10
20
  var rawSearch = input.rawSearch,
11
21
  _input$orderDirection = input.orderDirection,
12
- orderDirection = _input$orderDirection === void 0 ? 'DESC' : _input$orderDirection,
22
+ orderDirection = _input$orderDirection === void 0 ? _jqlAst.ORDER_BY_DIRECTION_DESC : _input$orderDirection,
13
23
  _input$orderKey = input.orderKey,
14
24
  orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey;
15
- var fuzzy = !rawSearch.match(fuzzySearchRegExp) ? '*' : '';
16
- var basicSearch = rawSearch.replace(/['"?*]+/g, '');
17
- var baseQueryParts = rawSearch.trim() ? ["text ~ \"".concat(basicSearch).concat(fuzzy, "\""), "summary ~ \"".concat(basicSearch).concat(fuzzy, "\"")] : [];
18
- if (jiraIssueKeyRegExp.test(rawSearch)) {
19
- baseQueryParts.push("key = \"".concat(basicSearch, "\""));
25
+ var trimmedRawSearch = rawSearch.trim();
26
+ if (!query) {
27
+ return '';
20
28
  }
21
- var baseQueryContent = baseQueryParts.join(' OR ');
22
- var baseQuery = baseQueryContent ? "(".concat(baseQueryContent, ")") : '';
23
- var limiter = rawSearch !== null && rawSearch !== void 0 && rawSearch.trim() ? '' : "created >= -30d";
24
- var query = [baseQuery, limiter].filter(Boolean).join(' AND ');
25
- return "".concat(query, " order by ").concat(orderKey, " ").concat(orderDirection.toUpperCase());
29
+ if (trimmedRawSearch) {
30
+ var fuzzy = !trimmedRawSearch.match(fuzzySearchRegExp) ? '*' : '';
31
+ var basicSearch = trimmedRawSearch.replace(/['"?*]+/g, '');
32
+ var text = constructTerminalClause('text', _jqlAst.OPERATOR_LIKE, "".concat(basicSearch).concat(fuzzy));
33
+ var summary = constructTerminalClause('summary', _jqlAst.OPERATOR_LIKE, "".concat(basicSearch).concat(fuzzy));
34
+ var orClauseFields = [text, summary];
35
+ if (jiraIssueKeyRegExp.test(trimmedRawSearch)) {
36
+ var key = constructTerminalClause('key', _jqlAst.OPERATOR_EQUALS, basicSearch);
37
+ orClauseFields.push(key);
38
+ }
39
+ var orClause = _jqlAst.creators.compoundClause(_jqlAst.creators.compoundOperator(_jqlAst.COMPOUND_OPERATOR_OR), orClauseFields);
40
+ query.appendClause(orClause, _jqlAst.COMPOUND_OPERATOR_AND);
41
+ } else {
42
+ var created = constructTerminalClause('created', _jqlAst.OPERATOR_GT_EQUALS, '-30d');
43
+ query.appendClause(created, _jqlAst.COMPOUND_OPERATOR_AND);
44
+ }
45
+ var orderField = _jqlAst.creators.orderByField(_jqlAst.creators.field(orderKey));
46
+ query.prependOrderField(orderField);
47
+ query.setOrderDirection(_jqlAst.creators.orderByDirection(orderDirection.toLowerCase() === 'asc' ? _jqlAst.ORDER_BY_DIRECTION_ASC : _jqlAst.ORDER_BY_DIRECTION_DESC));
48
+ return (0, _jqlAst.print)(jast);
26
49
  };
@@ -1,5 +1,5 @@
1
1
  export const EVENT_CHANNEL = 'media';
2
2
  export const packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.6.0"
4
+ packageVersion: "1.6.1"
5
5
  };
@@ -205,7 +205,7 @@ const analyticsContextAttributes = {
205
205
  };
206
206
  const analyticsContextData = {
207
207
  packageName: "@atlaskit/link-datasource",
208
- packageVersion: "1.6.0",
208
+ packageVersion: "1.6.1",
209
209
  source: 'datasourceConfigModal'
210
210
  };
211
211
  const contextData = {
@@ -1,20 +1,43 @@
1
+ import { COMPOUND_OPERATOR_AND, COMPOUND_OPERATOR_OR, creators, JastBuilder, OPERATOR_EQUALS, OPERATOR_GT_EQUALS, OPERATOR_LIKE, ORDER_BY_DIRECTION_ASC, ORDER_BY_DIRECTION_DESC, print } from '@atlaskit/jql-ast';
1
2
  const fuzzySearchRegExp = /^"(.+)"$/;
2
3
  const jiraIssueKeyRegExp = /[A-Z]+-\d+/;
4
+ const constructTerminalClause = (field, operator, value) => creators.terminalClause(creators.field(field), creators.operator(operator), creators.valueOperand(value));
3
5
  export const buildJQL = input => {
6
+ /**
7
+ * Jql ast - Transforming the ast
8
+ * https://atlaskit.atlassian.com/packages/jql/jql-ast/docs/transforming-the-ast
9
+ */
10
+ const jast = new JastBuilder().build('');
11
+ const {
12
+ query
13
+ } = jast;
4
14
  const {
5
15
  rawSearch,
6
- orderDirection = 'DESC',
16
+ orderDirection = ORDER_BY_DIRECTION_DESC,
7
17
  orderKey = 'created'
8
18
  } = input;
9
- const fuzzy = !rawSearch.match(fuzzySearchRegExp) ? '*' : '';
10
- const basicSearch = rawSearch.replace(/['"?*]+/g, '');
11
- const baseQueryParts = rawSearch.trim() ? [`text ~ "${basicSearch}${fuzzy}"`, `summary ~ "${basicSearch}${fuzzy}"`] : [];
12
- if (jiraIssueKeyRegExp.test(rawSearch)) {
13
- baseQueryParts.push(`key = "${basicSearch}"`);
19
+ const trimmedRawSearch = rawSearch.trim();
20
+ if (!query) {
21
+ return '';
22
+ }
23
+ if (trimmedRawSearch) {
24
+ const fuzzy = !trimmedRawSearch.match(fuzzySearchRegExp) ? '*' : '';
25
+ const basicSearch = trimmedRawSearch.replace(/['"?*]+/g, '');
26
+ const text = constructTerminalClause('text', OPERATOR_LIKE, `${basicSearch}${fuzzy}`);
27
+ const summary = constructTerminalClause('summary', OPERATOR_LIKE, `${basicSearch}${fuzzy}`);
28
+ const orClauseFields = [text, summary];
29
+ if (jiraIssueKeyRegExp.test(trimmedRawSearch)) {
30
+ const key = constructTerminalClause('key', OPERATOR_EQUALS, basicSearch);
31
+ orClauseFields.push(key);
32
+ }
33
+ const orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
34
+ query.appendClause(orClause, COMPOUND_OPERATOR_AND);
35
+ } else {
36
+ const created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
37
+ query.appendClause(created, COMPOUND_OPERATOR_AND);
14
38
  }
15
- const baseQueryContent = baseQueryParts.join(' OR ');
16
- const baseQuery = baseQueryContent ? `(${baseQueryContent})` : '';
17
- const limiter = rawSearch !== null && rawSearch !== void 0 && rawSearch.trim() ? '' : `created >= -30d`;
18
- const query = [baseQuery, limiter].filter(Boolean).join(' AND ');
19
- return `${query} order by ${orderKey} ${orderDirection.toUpperCase()}`;
39
+ const orderField = creators.orderByField(creators.field(orderKey));
40
+ query.prependOrderField(orderField);
41
+ query.setOrderDirection(creators.orderByDirection(orderDirection.toLowerCase() === 'asc' ? ORDER_BY_DIRECTION_ASC : ORDER_BY_DIRECTION_DESC));
42
+ return print(jast);
20
43
  };
@@ -1,5 +1,5 @@
1
1
  export var EVENT_CHANNEL = 'media';
2
2
  export var packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.6.0"
4
+ packageVersion: "1.6.1"
5
5
  };
@@ -222,7 +222,7 @@ var analyticsContextAttributes = {
222
222
  };
223
223
  var analyticsContextData = {
224
224
  packageName: "@atlaskit/link-datasource",
225
- packageVersion: "1.6.0",
225
+ packageVersion: "1.6.1",
226
226
  source: 'datasourceConfigModal'
227
227
  };
228
228
  var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
@@ -1,20 +1,43 @@
1
+ import { COMPOUND_OPERATOR_AND, COMPOUND_OPERATOR_OR, creators, JastBuilder, OPERATOR_EQUALS, OPERATOR_GT_EQUALS, OPERATOR_LIKE, ORDER_BY_DIRECTION_ASC, ORDER_BY_DIRECTION_DESC, print } from '@atlaskit/jql-ast';
1
2
  var fuzzySearchRegExp = /^"(.+)"$/;
2
3
  var jiraIssueKeyRegExp = /[A-Z]+-\d+/;
4
+ var constructTerminalClause = function constructTerminalClause(field, operator, value) {
5
+ return creators.terminalClause(creators.field(field), creators.operator(operator), creators.valueOperand(value));
6
+ };
3
7
  export var buildJQL = function buildJQL(input) {
8
+ /**
9
+ * Jql ast - Transforming the ast
10
+ * https://atlaskit.atlassian.com/packages/jql/jql-ast/docs/transforming-the-ast
11
+ */
12
+ var jast = new JastBuilder().build('');
13
+ var query = jast.query;
4
14
  var rawSearch = input.rawSearch,
5
15
  _input$orderDirection = input.orderDirection,
6
- orderDirection = _input$orderDirection === void 0 ? 'DESC' : _input$orderDirection,
16
+ orderDirection = _input$orderDirection === void 0 ? ORDER_BY_DIRECTION_DESC : _input$orderDirection,
7
17
  _input$orderKey = input.orderKey,
8
18
  orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey;
9
- var fuzzy = !rawSearch.match(fuzzySearchRegExp) ? '*' : '';
10
- var basicSearch = rawSearch.replace(/['"?*]+/g, '');
11
- var baseQueryParts = rawSearch.trim() ? ["text ~ \"".concat(basicSearch).concat(fuzzy, "\""), "summary ~ \"".concat(basicSearch).concat(fuzzy, "\"")] : [];
12
- if (jiraIssueKeyRegExp.test(rawSearch)) {
13
- baseQueryParts.push("key = \"".concat(basicSearch, "\""));
19
+ var trimmedRawSearch = rawSearch.trim();
20
+ if (!query) {
21
+ return '';
14
22
  }
15
- var baseQueryContent = baseQueryParts.join(' OR ');
16
- var baseQuery = baseQueryContent ? "(".concat(baseQueryContent, ")") : '';
17
- var limiter = rawSearch !== null && rawSearch !== void 0 && rawSearch.trim() ? '' : "created >= -30d";
18
- var query = [baseQuery, limiter].filter(Boolean).join(' AND ');
19
- return "".concat(query, " order by ").concat(orderKey, " ").concat(orderDirection.toUpperCase());
23
+ if (trimmedRawSearch) {
24
+ var fuzzy = !trimmedRawSearch.match(fuzzySearchRegExp) ? '*' : '';
25
+ var basicSearch = trimmedRawSearch.replace(/['"?*]+/g, '');
26
+ var text = constructTerminalClause('text', OPERATOR_LIKE, "".concat(basicSearch).concat(fuzzy));
27
+ var summary = constructTerminalClause('summary', OPERATOR_LIKE, "".concat(basicSearch).concat(fuzzy));
28
+ var orClauseFields = [text, summary];
29
+ if (jiraIssueKeyRegExp.test(trimmedRawSearch)) {
30
+ var key = constructTerminalClause('key', OPERATOR_EQUALS, basicSearch);
31
+ orClauseFields.push(key);
32
+ }
33
+ var orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
34
+ query.appendClause(orClause, COMPOUND_OPERATOR_AND);
35
+ } else {
36
+ var created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
37
+ query.appendClause(created, COMPOUND_OPERATOR_AND);
38
+ }
39
+ var orderField = creators.orderByField(creators.field(orderKey));
40
+ query.prependOrderField(orderField);
41
+ query.setOrderDirection(creators.orderByDirection(orderDirection.toLowerCase() === 'asc' ? ORDER_BY_DIRECTION_ASC : ORDER_BY_DIRECTION_DESC));
42
+ return print(jast);
20
43
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -42,6 +42,7 @@
42
42
  "@atlaskit/icon": "^21.12.0",
43
43
  "@atlaskit/icon-object": "^6.3.0",
44
44
  "@atlaskit/image": "^1.1.0",
45
+ "@atlaskit/jql-ast": "^3.0.0",
45
46
  "@atlaskit/jql-editor-autocomplete-rest": "^2.0.0",
46
47
  "@atlaskit/link-client-extension": "^1.7.0",
47
48
  "@atlaskit/linking-common": "^4.10.0",