diff --git a/libs/common/src/vault/search/bitwarden-query-grammar.ne b/libs/common/src/vault/search/bitwarden-query-grammar.ne index 6836b1c6a2e..72bc24ee958 100644 --- a/libs/common/src/vault/search/bitwarden-query-grammar.ne +++ b/libs/common/src/vault/search/bitwarden-query-grammar.ne @@ -72,8 +72,6 @@ TERM -> | %func_website %string {% function(d) { const start = d[0].offset; const end = d[1].offset + d[1].value.length; return { type: 'website', website: d[1].value, start, end, length: end - start + 1 } } %} # only items with a specified website and a given match pattern | %func_website %string %access %string {% function(d) { const start = d[0].offset; const end = d[3].offset + d[3].value.length; return { type: 'websiteMatch', website: d[1].value, matchType: d[3].value, start, end, length: end - start + 1 } } %} - # order by name - | %func_order %param_dir {% function(d) { const start = d[0].offset; const end = d[1].offset + d[1].value.length; return { type: 'orderBy', field: 'name', direction: d[1].value, start, end, length: end - start + 1 } } %} # order by a specified field | %func_order %string %param_dir {% function(d) { const start = d[0].offset; const end = d[2].offset + d[2].value.length; return { type: 'orderBy', field: d[1].value, direction: d[2].value, start, end, length: end - start + 1 } } %} # Boolean NOT operator diff --git a/libs/common/src/vault/search/bitwarden-query-grammar.spec.ts b/libs/common/src/vault/search/bitwarden-query-grammar.spec.ts index 7e764656ca8..4f7123a3421 100644 --- a/libs/common/src/vault/search/bitwarden-query-grammar.spec.ts +++ b/libs/common/src/vault/search/bitwarden-query-grammar.spec.ts @@ -323,6 +323,20 @@ const PartialQuoteEnd = { ], }; +const OrderBy = { + query: "order:name:asc", + expectedResults: [ + { + contents: { + type: "orderBy", + field: "name", + direction: "asc", + }, + type: "search", + }, + ], +}; + const EmptyParens = "()"; describe("search query grammar", () => { @@ -352,6 +366,7 @@ describe("search query grammar", () => { FunctionNot, PartialQuoteBegin, PartialQuoteEnd, + OrderBy, ])("$query", ({ query, expectedResults }) => { parser.feed(query); expect(parser.results.length).toEqual(expectedResults.length); diff --git a/libs/common/src/vault/search/bitwarden-query-grammar.ts b/libs/common/src/vault/search/bitwarden-query-grammar.ts index 5fdf61f609a..917ff2b7793 100644 --- a/libs/common/src/vault/search/bitwarden-query-grammar.ts +++ b/libs/common/src/vault/search/bitwarden-query-grammar.ts @@ -338,25 +338,6 @@ const grammar: Grammar = { }; }, }, - { - name: "TERM", - symbols: [ - lexer.has("func_order") ? { type: "func_order" } : func_order, - lexer.has("param_dir") ? { type: "param_dir" } : param_dir, - ], - postprocess: function (d) { - const start = d[0].offset; - const end = d[1].offset + d[1].value.length; - return { - type: "orderBy", - field: "name", - direction: d[1].value, - start, - end, - length: end - start + 1, - }; - }, - }, { name: "TERM", symbols: [