diff --git a/.changeset/forty-hotels-watch.md b/.changeset/forty-hotels-watch.md new file mode 100644 index 000000000..a63489d0b --- /dev/null +++ b/.changeset/forty-hotels-watch.md @@ -0,0 +1,5 @@ +--- +'providence-analytics': patch +--- + +support `ignore: string[]` globs in optimisedGlob diff --git a/.changeset/green-chefs-live.md b/.changeset/green-chefs-live.md deleted file mode 100644 index dc82ea3d4..000000000 --- a/.changeset/green-chefs-live.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@lion/ui': minor ---- - -[combobox] change mimicUserTyping test helper function async and use sendKeys() internally diff --git a/.changeset/old-walls-cover.md b/.changeset/old-walls-cover.md deleted file mode 100644 index 26793e68a..000000000 --- a/.changeset/old-walls-cover.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'providence-analytics': patch ---- - -update dependencies diff --git a/.changeset/perfect-jeans-search.md b/.changeset/perfect-jeans-search.md deleted file mode 100644 index 9cd21ee8f..000000000 --- a/.changeset/perfect-jeans-search.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@lion/ui': patch ---- - -fix(ui/calendar): use correct firstUpdated type signature diff --git a/.changeset/thick-pandas-exist-copy.md b/.changeset/thick-pandas-exist-copy.md deleted file mode 100644 index 9244f9856..000000000 --- a/.changeset/thick-pandas-exist-copy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@lion/ui': patch ---- - -[core] fix chromium detection diff --git a/.changeset/thick-pandas-exist.md b/.changeset/thick-pandas-exist.md deleted file mode 100644 index f9dee8a7c..000000000 --- a/.changeset/thick-pandas-exist.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@lion/ui': patch ---- - -[accordion] make accordion closeable again diff --git a/packages-node/providence-analytics/CHANGELOG.md b/packages-node/providence-analytics/CHANGELOG.md index dbfbbc9ed..0c91800df 100644 --- a/packages-node/providence-analytics/CHANGELOG.md +++ b/packages-node/providence-analytics/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 0.16.6 + +### Patch Changes + +- a30dbf3: update dependencies + ## 0.16.5 ### Patch Changes @@ -199,14 +205,14 @@ This means tag names are no longer being rewritten with a hash. ```js - import { css, LitElement } from "lit"; - import { ScopedElementsMixin } from "@open-wc/scoped-elements"; - import { MyButton } from "./MyButton.js"; + import { css, LitElement } from 'lit'; + import { ScopedElementsMixin } from '@open-wc/scoped-elements'; + import { MyButton } from './MyButton.js'; export class MyElement extends ScopedElementsMixin(LitElement) { static get scopedElements() { return { - "my-button": MyButton, + 'my-button': MyButton, }; } diff --git a/packages-node/providence-analytics/package.json b/packages-node/providence-analytics/package.json index 3a32d076d..a781baae6 100644 --- a/packages-node/providence-analytics/package.json +++ b/packages-node/providence-analytics/package.json @@ -1,6 +1,6 @@ { "name": "providence-analytics", - "version": "0.16.5", + "version": "0.16.6", "description": "Providence is the 'All Seeing Eye' that measures effectivity and popularity of software. Release management will become highly efficient due to an accurate impact analysis of (breaking) changes", "license": "MIT", "author": "ing-bank", diff --git a/packages-node/providence-analytics/src/program/utils/optimised-glob.js b/packages-node/providence-analytics/src/program/utils/optimised-glob.js index 8230758b0..32f21c7eb 100644 --- a/packages-node/providence-analytics/src/program/utils/optimised-glob.js +++ b/packages-node/providence-analytics/src/program/utils/optimised-glob.js @@ -109,6 +109,24 @@ export const parseGlobToRegex = memoize( }, ); +/** + * @template T + * @param {T|T[]} value + * @returns {T[]} + */ +function ensureArray(value) { + return Array.isArray(value) ? value : [value]; +} + +/** + * @template T + * @param {T[]} arr + * @returns {T[]} + */ +function toUniqueArray(arr) { + return Array.from(new Set(arr)); +} + const getStartPath = memoize( /** * @param {string} glob @@ -209,6 +227,7 @@ export async function optimisedGlob(globOrGlobs, providedOptions = {}) { unique: true, sync: false, dot: false, + ignore: [], // TODO: ignore, throwErrorOnBrokenSymbolicLink, markDirectories, objectMode, onlyDirectories, onlyFiles, stats // https://github.com/mrmlnc/fast-glob?tab=readme-ov-file ...providedOptions, @@ -219,7 +238,12 @@ export async function optimisedGlob(globOrGlobs, providedOptions = {}) { options.onlyDirectories = true; } - const globs = Array.isArray(globOrGlobs) ? Array.from(new Set(globOrGlobs)) : [globOrGlobs]; + const regularGlobs = Array.isArray(globOrGlobs) ? toUniqueArray(globOrGlobs) : [globOrGlobs]; + const ignoreGlobs = options.ignore.map((/** @type {string} */ g) => + g.startsWith('!') ? g : `!${g}`, + ); + + const globs = toUniqueArray([...regularGlobs, ...ignoreGlobs]); /** @type {RegExp[]} */ const matchRegexesNegative = []; diff --git a/packages-node/providence-analytics/test-node/program/utils/optimised-glob.test.js b/packages-node/providence-analytics/test-node/program/utils/optimised-glob.test.js index 0e77f9344..01ae7fcc6 100644 --- a/packages-node/providence-analytics/test-node/program/utils/optimised-glob.test.js +++ b/packages-node/providence-analytics/test-node/program/utils/optimised-glob.test.js @@ -266,6 +266,20 @@ describe('optimisedGlob', () => { expect(files).to.deep.equal(['my/.hiddenFile.js']); }); + it('"ignore" filters out files" ', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('**', { + ...testCfg, + ignore: ['**/lvl1/**'], + }); + + expect(files).to.deep.equal([ + 'my/folder/some/anotherFile.d.ts', + 'my/folder/some/anotherFile.js', + 'my/folder/some/file.d.ts', + 'my/folder/some/file.js', + ]); + }); + it.skip('"suppressErrors" throws errors when paths do not exist', async () => { expect(async () => optimisedGlob('my/folder/**/some/file.js', { diff --git a/packages/ui/CHANGELOG.md b/packages/ui/CHANGELOG.md index fb99876fa..29df77909 100644 --- a/packages/ui/CHANGELOG.md +++ b/packages/ui/CHANGELOG.md @@ -1,5 +1,17 @@ # @lion/ui +## 0.8.0 + +### Minor Changes + +- 27af6be: [combobox] change mimicUserTyping test helper function async and use sendKeys() internally + +### Patch Changes + +- 5530eef: fix(ui/calendar): use correct firstUpdated type signature +- dbb9640: [core] fix chromium detection +- 96b09e5: [accordion] make accordion closeable again + ## 0.7.9 ### Patch Changes @@ -146,9 +158,9 @@ BREAKING: For optimized bundling, it's reccommended to load feedback messages per entrypoint. For instance, when you only use form-core in your app: ```js - import { LionInputTel } from "@lion/ui/input-tel.js"; - import { getLocalizeManager } from "@lion/ui/localize-no-side-effects.js"; - import { loadInputTelMessagesNoSideEffects } from "@lion/ui/validate-messages-no-side-effects.js"; + import { LionInputTel } from '@lion/ui/input-tel.js'; + import { getLocalizeManager } from '@lion/ui/localize-no-side-effects.js'; + import { loadInputTelMessagesNoSideEffects } from '@lion/ui/validate-messages-no-side-effects.js'; export class MyInputTel extends LionInputTel { constructor() { @@ -516,12 +528,12 @@ BREAKING: Recommended approach is to do below at the top of your app (before lion code runs): ```js - import { singletonManager } from "singleton-manager"; - import { LocalizeManager } from "@lion/ui/localize-no-side-effects.js"; + import { singletonManager } from 'singleton-manager'; + import { LocalizeManager } from '@lion/ui/localize-no-side-effects.js'; class MyLocalizeManager extends LocalizeManager {} - singletonManager.set("@lion/ui::localize::0.x", new MyLocalizeManager()); + singletonManager.set('@lion/ui::localize::0.x', new MyLocalizeManager()); ``` - de51dae2: Use the correct names for singleton registrations diff --git a/packages/ui/package.json b/packages/ui/package.json index 5bc50b4c1..03e8f476a 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@lion/ui", - "version": "0.7.9", + "version": "0.8.0", "description": "A package of extendable web components", "license": "MIT", "author": "ing-bank",