From 152e8314e850235c93969920860f31c79d9096ca Mon Sep 17 00:00:00 2001 From: ptaylor Date: Wed, 3 Jan 2024 09:22:32 -0800 Subject: [PATCH 01/44] update import styles to use file suffixes --- spec/Ix.ts | 8 +- spec/asynciterable-operators/batch-spec.ts | 6 +- spec/asynciterable-operators/buffer-spec.ts | 8 +- .../catcherror-spec.ts | 6 +- .../asynciterable-operators/concatall-spec.ts | 6 +- .../asynciterable-operators/concatmap-spec.ts | 6 +- spec/asynciterable-operators/debounce-spec.ts | 8 +- .../defaultifempty-spec.ts | 6 +- spec/asynciterable-operators/distinct-spec.ts | 6 +- .../distinctuntilchanged-spec.ts | 6 +- spec/asynciterable-operators/dowhile-spec.ts | 8 +- spec/asynciterable-operators/endwith-spec.ts | 6 +- spec/asynciterable-operators/except-spec.ts | 6 +- spec/asynciterable-operators/expand-spec.ts | 6 +- spec/asynciterable-operators/filter-spec.ts | 6 +- spec/asynciterable-operators/finalize-spec.ts | 6 +- spec/asynciterable-operators/flat-spec.ts | 6 +- spec/asynciterable-operators/flatmap-spec.ts | 6 +- spec/asynciterable-operators/groupby-spec.ts | 6 +- .../asynciterable-operators/groupjoin-spec.ts | 6 +- .../asynciterable-operators/ignoreelements.ts | 6 +- .../asynciterable-operators/innerjoin-spec.ts | 6 +- .../asynciterable-operators/intersect-spec.ts | 6 +- spec/asynciterable-operators/isempty-spec.ts | 4 +- spec/asynciterable-operators/map-spec.ts | 6 +- spec/asynciterable-operators/memoize-spec.ts | 6 +- spec/asynciterable-operators/mergeall-spec.ts | 6 +- spec/asynciterable-operators/orderby-spec.ts | 11 +- spec/asynciterable-operators/pairwise-spec.ts | 6 +- spec/asynciterable-operators/pluck-spec.ts | 6 +- spec/asynciterable-operators/publish-spec.ts | 6 +- spec/asynciterable-operators/repeat-spec.ts | 8 +- spec/asynciterable-operators/retry-spec.ts | 6 +- spec/asynciterable-operators/reverse-spec.ts | 6 +- spec/asynciterable-operators/scan-spec.ts | 6 +- .../asynciterable-operators/scanright-spec.ts | 6 +- spec/asynciterable-operators/share-spec.ts | 8 +- spec/asynciterable-operators/skip-spec.ts | 6 +- spec/asynciterable-operators/skiplast-spec.ts | 6 +- .../asynciterable-operators/skipuntil-spec.ts | 6 +- .../asynciterable-operators/skipwhile-spec.ts | 6 +- spec/asynciterable-operators/slice-spec.ts | 6 +- .../asynciterable-operators/startwith-spec.ts | 6 +- .../asynciterable-operators/switchall-spec.ts | 6 +- .../asynciterable-operators/switchmap-spec.ts | 6 +- spec/asynciterable-operators/take-spec.ts | 8 +- spec/asynciterable-operators/takelast-spec.ts | 6 +- .../asynciterable-operators/takeuntil-spec.ts | 6 +- .../asynciterable-operators/takewhile-spec.ts | 6 +- spec/asynciterable-operators/tap-spec.ts | 6 +- spec/asynciterable-operators/throttle-spec.ts | 6 +- spec/asynciterable-operators/timeout-spec.ts | 8 +- .../todomstream-spec.ts | 6 +- spec/asynciterable-operators/union-spec.ts | 6 +- .../writable-stream-pipe-spec.ts | 6 +- spec/asynciterable/aborting-spec.ts | 7 +- spec/asynciterable/as-spec.ts | 20 +- spec/asynciterable/asasynciterable-spec.ts | 6 +- spec/asynciterable/asyncify-spec.ts | 6 +- spec/asynciterable/asyncifyerrback-spec.ts | 6 +- spec/asynciterable/asyncsink-spec.ts | 4 +- spec/asynciterable/average-spec.ts | 4 +- spec/asynciterable/buffercountortime-spec.ts | 6 +- spec/asynciterable/catcherror-spec.ts | 4 +- spec/asynciterable/combinelatest-spec.ts | 6 +- spec/asynciterable/concat-spec.ts | 4 +- spec/asynciterable/count-spec.ts | 4 +- spec/asynciterable/defer-spec.ts | 4 +- spec/asynciterable/elementat-spec.ts | 4 +- spec/asynciterable/empty-spec.ts | 4 +- spec/asynciterable/every-spec.ts | 4 +- spec/asynciterable/first-spec.ts | 4 +- spec/asynciterable/foreach-spec.ts | 4 +- spec/asynciterable/forkjoin-spec.ts | 6 +- spec/asynciterable/from-spec.ts | 10 +- spec/asynciterable/fromdomstream-spec.ts | 13 +- spec/asynciterable/fromevent-spec.ts | 4 +- spec/asynciterable/fromeventpattern-spec.ts | 4 +- spec/asynciterable/fromnodestream-spec.ts | 6 +- spec/asynciterable/generate-spec.ts | 4 +- spec/asynciterable/generatetime-spec.ts | 4 +- spec/asynciterable/iif-spec.ts | 4 +- spec/asynciterable/includes-spec.ts | 4 +- spec/asynciterable/inference-spec.ts | 6 +- spec/asynciterable/last-spec.ts | 4 +- spec/asynciterable/max-spec.ts | 4 +- spec/asynciterable/maxby-spec.ts | 6 +- spec/asynciterable/merge-spec.ts | 4 +- spec/asynciterable/min-spec.ts | 4 +- spec/asynciterable/minby-spec.ts | 6 +- spec/asynciterable/never-spec.ts | 10 +- spec/asynciterable/of-spec.ts | 4 +- spec/asynciterable/onerrorresumenext-spec.ts | 10 +- spec/asynciterable/race-spec.ts | 4 +- spec/asynciterable/range-spec.ts | 4 +- spec/asynciterable/reduce-spec.ts | 4 +- spec/asynciterable/reduceright-spec.ts | 4 +- spec/asynciterable/repeatvalue-spec.ts | 4 +- spec/asynciterable/sequenceequal-spec.ts | 4 +- spec/asynciterable/single-spec.ts | 4 +- spec/asynciterable/some-spec.ts | 4 +- spec/asynciterable/sum-spec.ts | 4 +- spec/asynciterable/throw-spec.ts | 4 +- spec/asynciterable/toarray-spec.ts | 6 +- spec/asynciterable/tomap-spec.ts | 4 +- spec/asynciterable/tonodestream-spec.ts | 8 +- spec/asynciterable/toobservable-spec.ts | 8 +- spec/asynciterable/toset-spec.ts | 6 +- spec/asynciterable/whiledo-spec.ts | 6 +- spec/asynciterable/zip-spec.ts | 6 +- spec/asynciterablehelpers.ts | 6 +- spec/bundle/asynciterable.as.js | 3 + spec/bundle/asynciterable.flatmap.js | 3 + spec/bundle/asynciterable.from.js | 3 + spec/bundle/asynciterable.js | 3 + spec/bundle/asynciterable.of.js | 3 + spec/bundle/iterable.as.js | 3 + spec/bundle/iterable.flatmap.js | 3 + spec/bundle/iterable.from.js | 3 + spec/bundle/iterable.js | 3 + spec/bundle/iterable.of.js | 3 + spec/iterable-operators/buffer-spec.ts | 4 +- spec/iterable-operators/catcherror-spec.ts | 4 +- spec/iterable-operators/concatall-spec.ts | 4 +- .../iterable-operators/defaultifempty-spec.ts | 6 +- spec/iterable-operators/distinct-spec.ts | 4 +- .../distinctuntilchanged-spec.ts | 4 +- spec/iterable-operators/dowhile-spec.ts | 4 +- spec/iterable-operators/endwith-spec.ts | 4 +- spec/iterable-operators/except-spec.ts | 4 +- spec/iterable-operators/expand-spec.ts | 4 +- spec/iterable-operators/filter-spec.ts | 6 +- spec/iterable-operators/finally-spec.ts | 6 +- spec/iterable-operators/flat-spec.ts | 4 +- spec/iterable-operators/flatmap-spec.ts | 6 +- spec/iterable-operators/foreach-spec.ts | 2 +- spec/iterable-operators/groupby-spec.ts | 6 +- spec/iterable-operators/groupjoin-spec.ts | 6 +- .../iterable-operators/ignoreelements-spec.ts | 4 +- spec/iterable-operators/includes-spec.ts | 2 +- spec/iterable-operators/innerjoin-spec.ts | 6 +- spec/iterable-operators/intersect-spec.ts | 6 +- spec/iterable-operators/isempty-spec.ts | 2 +- spec/iterable-operators/map-spec.ts | 4 +- spec/iterable-operators/memoize-spec.ts | 6 +- spec/iterable-operators/orderby-spec.ts | 11 +- spec/iterable-operators/pairwise-spec.ts | 6 +- spec/iterable-operators/pluck-spec.ts | 6 +- spec/iterable-operators/publish-spec.ts | 6 +- spec/iterable-operators/repeat-spec.ts | 4 +- spec/iterable-operators/retry-spec.ts | 6 +- spec/iterable-operators/reverse-spec.ts | 6 +- spec/iterable-operators/scan-spec.ts | 6 +- spec/iterable-operators/scanright-spec.ts | 6 +- spec/iterable-operators/sequenceequal-spec.ts | 2 +- spec/iterable-operators/share-spec.ts | 6 +- spec/iterable-operators/skip-spec.ts | 6 +- spec/iterable-operators/skiplast-spec.ts | 4 +- spec/iterable-operators/skipwhile-spec.ts | 6 +- spec/iterable-operators/slice-spec.ts | 6 +- spec/iterable-operators/startwith-spec.ts | 4 +- spec/iterable-operators/take-spec.ts | 6 +- spec/iterable-operators/takelast-spec.ts | 4 +- spec/iterable-operators/takewhile-spec.ts | 6 +- spec/iterable-operators/tap-spec.ts | 4 +- spec/iterable-operators/union-spec.ts | 4 +- spec/iterable/as-spec.ts | 4 +- spec/iterable/average-spec.ts | 2 +- spec/iterable/catcherror-spec.ts | 4 +- spec/iterable/concat-spec.ts | 2 +- spec/iterable/count-spec.ts | 2 +- spec/iterable/defer-spec.ts | 2 +- spec/iterable/elementat-spec.ts | 2 +- spec/iterable/empty-spec.ts | 4 +- spec/iterable/every-spec.ts | 2 +- spec/iterable/first-spec.ts | 2 +- spec/iterable/from-spec.ts | 4 +- spec/iterable/iif-spec.ts | 2 +- spec/iterable/inference-spec.ts | 6 +- spec/iterable/last-spec.ts | 2 +- spec/iterable/max-spec.ts | 2 +- spec/iterable/maxby-spec.ts | 2 +- spec/iterable/min-spec.ts | 2 +- spec/iterable/minby-spec.ts | 2 +- spec/iterable/of-spec.ts | 4 +- spec/iterable/onerrorresumenext-spec.ts | 2 +- spec/iterable/range-spec.ts | 12 +- spec/iterable/reduce-spec.ts | 2 +- spec/iterable/reduceright-spec.ts | 2 +- spec/iterable/repeatvalue-spec.ts | 6 +- spec/iterable/single-spec.ts | 2 +- spec/iterable/some-spec.ts | 2 +- spec/iterable/sum-spec.ts | 2 +- spec/iterable/throw-spec.ts | 2 +- spec/iterable/toarray-spec.ts | 2 +- spec/iterable/todomstream-spec.ts | 6 +- spec/iterable/tomap-spec.ts | 2 +- spec/iterable/tonodestream-spec.ts | 10 +- spec/iterable/toset-spec.ts | 2 +- spec/iterable/whiledo-spec.ts | 4 +- spec/iterable/zip-spec.ts | 2 +- spec/iterablehelpers.ts | 2 +- spec/tsconfig.json | 18 +- spec/tsconfig/tsconfig.base.json | 16 +- spec/tsconfig/tsconfig.es2015.cjs.json | 13 +- spec/tsconfig/tsconfig.es2015.esm.json | 13 +- spec/tsconfig/tsconfig.es2015.umd.json | 14 +- spec/tsconfig/tsconfig.es5.cjs.json | 15 +- spec/tsconfig/tsconfig.es5.esm.json | 15 +- spec/tsconfig/tsconfig.es5.umd.json | 14 +- spec/tsconfig/tsconfig.esnext.cjs.json | 13 +- spec/tsconfig/tsconfig.esnext.esm.json | 13 +- spec/tsconfig/tsconfig.esnext.umd.json | 14 +- spec/tsconfig/tsconfig.ix.json | 13 +- spec/tsconfig/tsconfig.src.json | 13 +- spec/tsconfig/tsconfig.ts.json | 13 +- src/Ix.dom.asynciterable.operators.ts | 2 +- src/Ix.dom.asynciterable.ts | 2 +- src/Ix.dom.iterable.operators.ts | 2 +- src/Ix.dom.iterable.ts | 2 +- src/Ix.dom.ts | 23 +- src/Ix.node.ts | 394 +++++++++--------- src/Ix.ts | 20 +- src/aborterror.ts | 2 +- src/add/asynciterable-operators/average.ts | 6 +- src/add/asynciterable-operators/batch.ts | 4 +- src/add/asynciterable-operators/buffer.ts | 4 +- src/add/asynciterable-operators/catcherror.ts | 4 +- .../asynciterable-operators/combinelatest.ts | 4 +- src/add/asynciterable-operators/concat.ts | 4 +- src/add/asynciterable-operators/concatall.ts | 4 +- src/add/asynciterable-operators/concatmap.ts | 6 +- src/add/asynciterable-operators/count.ts | 6 +- src/add/asynciterable-operators/debounce.ts | 4 +- .../asynciterable-operators/defaultifempty.ts | 4 +- src/add/asynciterable-operators/delay.ts | 4 +- src/add/asynciterable-operators/delayeach.ts | 4 +- src/add/asynciterable-operators/distinct.ts | 6 +- .../distinctuntilchanged.ts | 6 +- src/add/asynciterable-operators/dowhile.ts | 4 +- src/add/asynciterable-operators/elementat.ts | 4 +- src/add/asynciterable-operators/endwith.ts | 4 +- src/add/asynciterable-operators/every.ts | 6 +- src/add/asynciterable-operators/except.ts | 4 +- src/add/asynciterable-operators/expand.ts | 4 +- src/add/asynciterable-operators/filter.ts | 4 +- src/add/asynciterable-operators/finalize.ts | 4 +- src/add/asynciterable-operators/find.ts | 6 +- src/add/asynciterable-operators/findindex.ts | 6 +- src/add/asynciterable-operators/first.ts | 6 +- src/add/asynciterable-operators/flat.ts | 4 +- src/add/asynciterable-operators/flatmap.ts | 6 +- src/add/asynciterable-operators/forkjoin.ts | 4 +- src/add/asynciterable-operators/groupby.ts | 9 +- src/add/asynciterable-operators/groupjoin.ts | 4 +- .../asynciterable-operators/ignoreelements.ts | 4 +- src/add/asynciterable-operators/includes.ts | 4 +- src/add/asynciterable-operators/innerjoin.ts | 4 +- src/add/asynciterable-operators/intersect.ts | 4 +- src/add/asynciterable-operators/isempty.ts | 4 +- src/add/asynciterable-operators/last.ts | 6 +- src/add/asynciterable-operators/map.ts | 4 +- src/add/asynciterable-operators/max.ts | 6 +- src/add/asynciterable-operators/maxby.ts | 6 +- src/add/asynciterable-operators/memoize.ts | 4 +- src/add/asynciterable-operators/merge.ts | 4 +- src/add/asynciterable-operators/mergeall.ts | 4 +- src/add/asynciterable-operators/min.ts | 6 +- src/add/asynciterable-operators/minby.ts | 6 +- .../onerrorresumenext.ts | 4 +- src/add/asynciterable-operators/orderby.ts | 6 +- src/add/asynciterable-operators/pairwise.ts | 4 +- src/add/asynciterable-operators/pluck.ts | 4 +- src/add/asynciterable-operators/publish.ts | 4 +- src/add/asynciterable-operators/reduce.ts | 6 +- .../asynciterable-operators/reduceright.ts | 6 +- src/add/asynciterable-operators/repeat.ts | 4 +- src/add/asynciterable-operators/retry.ts | 4 +- src/add/asynciterable-operators/reverse.ts | 4 +- src/add/asynciterable-operators/scan.ts | 6 +- src/add/asynciterable-operators/scanright.ts | 6 +- .../asynciterable-operators/sequenceequal.ts | 4 +- src/add/asynciterable-operators/share.ts | 4 +- src/add/asynciterable-operators/single.ts | 6 +- src/add/asynciterable-operators/skip.ts | 4 +- src/add/asynciterable-operators/skiplast.ts | 4 +- src/add/asynciterable-operators/skipuntil.ts | 4 +- src/add/asynciterable-operators/skipwhile.ts | 4 +- src/add/asynciterable-operators/slice.ts | 4 +- src/add/asynciterable-operators/some.ts | 6 +- src/add/asynciterable-operators/startwith.ts | 4 +- src/add/asynciterable-operators/sum.ts | 6 +- src/add/asynciterable-operators/switchall.ts | 4 +- src/add/asynciterable-operators/switchmap.ts | 4 +- src/add/asynciterable-operators/take.ts | 4 +- src/add/asynciterable-operators/takelast.ts | 4 +- src/add/asynciterable-operators/takeuntil.ts | 4 +- src/add/asynciterable-operators/takewhile.ts | 4 +- src/add/asynciterable-operators/tap.ts | 6 +- src/add/asynciterable-operators/throttle.ts | 4 +- src/add/asynciterable-operators/toarray.ts | 4 +- .../asynciterable-operators/todomstream.ts | 4 +- src/add/asynciterable-operators/tomap.ts | 4 +- .../asynciterable-operators/tonodestream.ts | 6 +- .../asynciterable-operators/toobservable.ts | 6 +- src/add/asynciterable-operators/toset.ts | 4 +- src/add/asynciterable-operators/union.ts | 4 +- .../asynciterable-operators/withlatestfrom.ts | 4 +- src/add/asynciterable-operators/zip.ts | 4 +- src/add/asynciterable/asyncify.ts | 4 +- src/add/asynciterable/asyncifyerrback.ts | 4 +- src/add/asynciterable/catchall.ts | 4 +- src/add/asynciterable/catcherror.ts | 4 +- src/add/asynciterable/combinelatest.ts | 4 +- src/add/asynciterable/concat.ts | 4 +- src/add/asynciterable/create.ts | 4 +- src/add/asynciterable/defer.ts | 4 +- src/add/asynciterable/empty.ts | 4 +- src/add/asynciterable/forkjoin.ts | 4 +- src/add/asynciterable/fromdomstream.ts | 4 +- src/add/asynciterable/fromevent.ts | 4 +- src/add/asynciterable/fromeventpattern.ts | 4 +- src/add/asynciterable/fromnodestream.ts | 4 +- src/add/asynciterable/generate.ts | 4 +- src/add/asynciterable/generatetime.ts | 4 +- src/add/asynciterable/iif.ts | 4 +- src/add/asynciterable/merge.ts | 4 +- src/add/asynciterable/never.ts | 4 +- src/add/asynciterable/of.ts | 4 +- src/add/asynciterable/onerrorresumenext.ts | 4 +- src/add/asynciterable/race.ts | 4 +- src/add/asynciterable/range.ts | 4 +- src/add/asynciterable/repeat.ts | 4 +- src/add/asynciterable/throwerror.ts | 4 +- src/add/asynciterable/while.ts | 4 +- src/add/asynciterable/zip.ts | 4 +- src/add/iterable-operators/average.ts | 6 +- src/add/iterable-operators/buffer.ts | 4 +- src/add/iterable-operators/catcherror.ts | 4 +- src/add/iterable-operators/concat.ts | 4 +- src/add/iterable-operators/concatall.ts | 4 +- src/add/iterable-operators/count.ts | 6 +- src/add/iterable-operators/defaultifempty.ts | 4 +- src/add/iterable-operators/distinct.ts | 6 +- .../distinctuntilchanged.ts | 6 +- src/add/iterable-operators/dowhile.ts | 4 +- src/add/iterable-operators/elementat.ts | 4 +- src/add/iterable-operators/endwith.ts | 4 +- src/add/iterable-operators/every.ts | 6 +- src/add/iterable-operators/except.ts | 4 +- src/add/iterable-operators/expand.ts | 4 +- src/add/iterable-operators/filter.ts | 4 +- src/add/iterable-operators/finalize.ts | 4 +- src/add/iterable-operators/find.ts | 6 +- src/add/iterable-operators/findindex.ts | 6 +- src/add/iterable-operators/first.ts | 6 +- src/add/iterable-operators/flat.ts | 4 +- src/add/iterable-operators/flatmap.ts | 4 +- src/add/iterable-operators/groupby.ts | 6 +- src/add/iterable-operators/groupjoin.ts | 4 +- src/add/iterable-operators/ignoreelements.ts | 4 +- src/add/iterable-operators/includes.ts | 4 +- src/add/iterable-operators/innerjoin.ts | 4 +- src/add/iterable-operators/intersect.ts | 4 +- src/add/iterable-operators/isempty.ts | 4 +- src/add/iterable-operators/last.ts | 6 +- src/add/iterable-operators/map.ts | 4 +- src/add/iterable-operators/max.ts | 6 +- src/add/iterable-operators/maxby.ts | 6 +- src/add/iterable-operators/memoize.ts | 4 +- src/add/iterable-operators/min.ts | 6 +- src/add/iterable-operators/minby.ts | 6 +- .../iterable-operators/onerrorresumenext.ts | 4 +- src/add/iterable-operators/orderby.ts | 6 +- src/add/iterable-operators/pairwise.ts | 4 +- src/add/iterable-operators/pluck.ts | 4 +- src/add/iterable-operators/publish.ts | 4 +- src/add/iterable-operators/reduce.ts | 6 +- src/add/iterable-operators/reduceright.ts | 6 +- src/add/iterable-operators/repeat.ts | 4 +- src/add/iterable-operators/retry.ts | 4 +- src/add/iterable-operators/reverse.ts | 4 +- src/add/iterable-operators/scan.ts | 6 +- src/add/iterable-operators/scanright.ts | 6 +- src/add/iterable-operators/sequenceequal.ts | 4 +- src/add/iterable-operators/share.ts | 4 +- src/add/iterable-operators/single.ts | 6 +- src/add/iterable-operators/skip.ts | 4 +- src/add/iterable-operators/skiplast.ts | 4 +- src/add/iterable-operators/skipwhile.ts | 4 +- src/add/iterable-operators/slice.ts | 4 +- src/add/iterable-operators/some.ts | 6 +- src/add/iterable-operators/startwith.ts | 4 +- src/add/iterable-operators/sum.ts | 6 +- src/add/iterable-operators/take.ts | 4 +- src/add/iterable-operators/takelast.ts | 4 +- src/add/iterable-operators/takewhile.ts | 4 +- src/add/iterable-operators/tap.ts | 6 +- src/add/iterable-operators/toarray.ts | 4 +- src/add/iterable-operators/todomstream.ts | 6 +- src/add/iterable-operators/tomap.ts | 4 +- src/add/iterable-operators/tonodestream.ts | 6 +- src/add/iterable-operators/toset.ts | 4 +- src/add/iterable-operators/union.ts | 4 +- src/add/iterable-operators/zip.ts | 4 +- src/add/iterable/catchall.ts | 4 +- src/add/iterable/catcherror.ts | 4 +- src/add/iterable/concat.ts | 4 +- src/add/iterable/create.ts | 4 +- src/add/iterable/defer.ts | 4 +- src/add/iterable/empty.ts | 4 +- src/add/iterable/generate.ts | 4 +- src/add/iterable/iif.ts | 4 +- src/add/iterable/of.ts | 4 +- src/add/iterable/onerrorresumenext.ts | 4 +- src/add/iterable/range.ts | 4 +- src/add/iterable/repeat.ts | 4 +- src/add/iterable/throwerror.ts | 4 +- src/add/iterable/while.ts | 4 +- src/add/iterable/zip.ts | 4 +- src/asynciterable/_extremaby.ts | 4 +- src/asynciterable/_sleep.ts | 2 +- src/asynciterable/asasynciterable.ts | 4 +- src/asynciterable/asyncify.ts | 6 +- src/asynciterable/asyncifyerrback.ts | 6 +- src/asynciterable/asynciterablex.ts | 17 +- src/asynciterable/average.ts | 8 +- src/asynciterable/catcherror.ts | 8 +- src/asynciterable/combinelatest.ts | 10 +- src/asynciterable/concat.ts | 6 +- src/asynciterable/count.ts | 6 +- src/asynciterable/create.ts | 4 +- src/asynciterable/defer.ts | 6 +- src/asynciterable/elementat.ts | 4 +- src/asynciterable/empty.ts | 4 +- src/asynciterable/every.ts | 6 +- src/asynciterable/find.ts | 6 +- src/asynciterable/findindex.ts | 6 +- src/asynciterable/first.ts | 6 +- src/asynciterable/forkjoin.ts | 6 +- src/asynciterable/fromdomstream.ts | 2 +- src/asynciterable/fromevent.ts | 6 +- src/asynciterable/fromeventpattern.ts | 10 +- src/asynciterable/fromnodestream.ts | 4 +- src/asynciterable/generate.ts | 4 +- src/asynciterable/generatetime.ts | 6 +- src/asynciterable/iif.ts | 6 +- src/asynciterable/includes.ts | 6 +- src/asynciterable/index.node.ts | 8 +- src/asynciterable/index.ts | 108 +++-- src/asynciterable/interval.ts | 6 +- src/asynciterable/isempty.ts | 4 +- src/asynciterable/last.ts | 6 +- src/asynciterable/max.ts | 10 +- src/asynciterable/maxby.ts | 6 +- src/asynciterable/merge.ts | 10 +- src/asynciterable/min.ts | 10 +- src/asynciterable/minby.ts | 6 +- src/asynciterable/never.ts | 4 +- src/asynciterable/of.ts | 4 +- src/asynciterable/onerrorresumenext.ts | 6 +- src/asynciterable/operators/_flatten.ts | 12 +- src/asynciterable/operators/_grouping.ts | 2 +- src/asynciterable/operators/batch.ts | 8 +- src/asynciterable/operators/buffer.ts | 8 +- .../operators/buffercountortime.ts | 10 +- src/asynciterable/operators/catcherror.ts | 10 +- .../operators/combinelatestwith.ts | 4 +- src/asynciterable/operators/concatall.ts | 8 +- src/asynciterable/operators/concatmap.ts | 12 +- src/asynciterable/operators/concatwith.ts | 4 +- src/asynciterable/operators/debounce.ts | 6 +- src/asynciterable/operators/defaultifempty.ts | 8 +- src/asynciterable/operators/delay.ts | 10 +- src/asynciterable/operators/delayeach.ts | 10 +- src/asynciterable/operators/distinct.ts | 16 +- .../operators/distinctuntilchanged.ts | 14 +- src/asynciterable/operators/dowhile.ts | 8 +- src/asynciterable/operators/endwith.ts | 8 +- src/asynciterable/operators/except.ts | 12 +- src/asynciterable/operators/expand.ts | 8 +- src/asynciterable/operators/filter.ts | 8 +- src/asynciterable/operators/finalize.ts | 8 +- src/asynciterable/operators/flat.ts | 6 +- src/asynciterable/operators/flatmap.ts | 4 +- src/asynciterable/operators/groupby.ts | 10 +- src/asynciterable/operators/groupjoin.ts | 14 +- src/asynciterable/operators/ignoreelements.ts | 8 +- src/asynciterable/operators/index.node.ts | 4 +- src/asynciterable/operators/index.ts | 126 +++--- src/asynciterable/operators/innerjoin.ts | 12 +- src/asynciterable/operators/intersect.ts | 12 +- src/asynciterable/operators/map.ts | 8 +- src/asynciterable/operators/memoize.ts | 10 +- src/asynciterable/operators/mergeall.ts | 2 +- src/asynciterable/operators/mergewith.ts | 4 +- src/asynciterable/operators/orderby.ts | 10 +- src/asynciterable/operators/pairwise.ts | 8 +- src/asynciterable/operators/pluck.ts | 6 +- src/asynciterable/operators/publish.ts | 12 +- src/asynciterable/operators/racewith.ts | 4 +- src/asynciterable/operators/repeat.ts | 8 +- src/asynciterable/operators/retry.ts | 8 +- src/asynciterable/operators/reverse.ts | 8 +- src/asynciterable/operators/scan.ts | 10 +- src/asynciterable/operators/scanright.ts | 10 +- src/asynciterable/operators/share.ts | 8 +- src/asynciterable/operators/skip.ts | 8 +- src/asynciterable/operators/skiplast.ts | 8 +- src/asynciterable/operators/skipuntil.ts | 8 +- src/asynciterable/operators/skipwhile.ts | 8 +- src/asynciterable/operators/slice.ts | 8 +- src/asynciterable/operators/startwith.ts | 6 +- src/asynciterable/operators/switchall.ts | 2 +- src/asynciterable/operators/switchmap.ts | 4 +- src/asynciterable/operators/take.ts | 8 +- src/asynciterable/operators/takelast.ts | 8 +- src/asynciterable/operators/takeuntil.ts | 10 +- src/asynciterable/operators/takewhile.ts | 8 +- src/asynciterable/operators/tap.ts | 12 +- src/asynciterable/operators/throttle.ts | 8 +- src/asynciterable/operators/timeinterval.ts | 8 +- src/asynciterable/operators/timeout.ts | 16 +- src/asynciterable/operators/timestamp.ts | 8 +- src/asynciterable/operators/todomstream.ts | 4 +- src/asynciterable/operators/tonodestream.ts | 4 +- src/asynciterable/operators/union.ts | 12 +- src/asynciterable/operators/withabort.ts | 4 +- src/asynciterable/operators/withlatestfrom.ts | 12 +- src/asynciterable/operators/zipwith.ts | 4 +- src/asynciterable/race.ts | 8 +- src/asynciterable/range.ts | 4 +- src/asynciterable/reduce.ts | 6 +- src/asynciterable/reduceoptions.ts | 2 +- src/asynciterable/reduceright.ts | 6 +- src/asynciterable/repeatvalue.ts | 4 +- src/asynciterable/sequenceequal.ts | 6 +- src/asynciterable/single.ts | 6 +- src/asynciterable/some.ts | 6 +- src/asynciterable/sum.ts | 8 +- src/asynciterable/throwerrror.ts | 4 +- src/asynciterable/toarray.ts | 4 +- src/asynciterable/todomstream.ts | 6 +- src/asynciterable/tomap.ts | 6 +- src/asynciterable/tonodestream.ts | 4 +- src/asynciterable/toobservable.ts | 8 +- src/asynciterable/toset.ts | 4 +- src/asynciterable/whiledo.ts | 6 +- src/asynciterable/zip.ts | 8 +- src/interfaces.ts | 4 +- src/iterable/average.ts | 4 +- src/iterable/catcherror.ts | 4 +- src/iterable/concat.ts | 2 +- src/iterable/count.ts | 2 +- src/iterable/create.ts | 2 +- src/iterable/defer.ts | 2 +- src/iterable/empty.ts | 2 +- src/iterable/every.ts | 2 +- src/iterable/find.ts | 2 +- src/iterable/findindex.ts | 2 +- src/iterable/first.ts | 2 +- src/iterable/generate.ts | 2 +- src/iterable/iif.ts | 6 +- src/iterable/includes.ts | 2 +- src/iterable/index.node.ts | 4 +- src/iterable/index.ts | 82 ++-- src/iterable/iterablex.ts | 13 +- src/iterable/last.ts | 2 +- src/iterable/max.ts | 6 +- src/iterable/maxby.ts | 6 +- src/iterable/min.ts | 6 +- src/iterable/minby.ts | 6 +- src/iterable/of.ts | 2 +- src/iterable/onerrorresumenext.ts | 2 +- src/iterable/operators/buffer.ts | 4 +- src/iterable/operators/catcherror.ts | 6 +- src/iterable/operators/concatall.ts | 6 +- src/iterable/operators/concatwith.ts | 4 +- src/iterable/operators/defaultifempty.ts | 4 +- src/iterable/operators/distinct.ts | 12 +- .../operators/distinctuntilchanged.ts | 10 +- src/iterable/operators/dowhile.ts | 8 +- src/iterable/operators/endwith.ts | 4 +- src/iterable/operators/except.ts | 8 +- src/iterable/operators/expand.ts | 4 +- src/iterable/operators/filter.ts | 4 +- src/iterable/operators/finalize.ts | 4 +- src/iterable/operators/flat.ts | 6 +- src/iterable/operators/flatmap.ts | 4 +- src/iterable/operators/groupby.ts | 8 +- src/iterable/operators/groupjoin.ts | 10 +- src/iterable/operators/ignoreelements.ts | 4 +- src/iterable/operators/index.node.ts | 4 +- src/iterable/operators/index.ts | 86 ++-- src/iterable/operators/innerjoin.ts | 8 +- src/iterable/operators/intersect.ts | 8 +- src/iterable/operators/map.ts | 6 +- src/iterable/operators/memoize.ts | 8 +- src/iterable/operators/orderby.ts | 6 +- src/iterable/operators/pairwise.ts | 4 +- src/iterable/operators/pluck.ts | 6 +- src/iterable/operators/publish.ts | 8 +- src/iterable/operators/repeat.ts | 4 +- src/iterable/operators/retry.ts | 8 +- src/iterable/operators/reverse.ts | 4 +- src/iterable/operators/scan.ts | 6 +- src/iterable/operators/scanright.ts | 8 +- src/iterable/operators/share.ts | 6 +- src/iterable/operators/skip.ts | 4 +- src/iterable/operators/skiplast.ts | 4 +- src/iterable/operators/skipwhile.ts | 4 +- src/iterable/operators/slice.ts | 4 +- src/iterable/operators/startwith.ts | 4 +- src/iterable/operators/take.ts | 4 +- src/iterable/operators/takelast.ts | 4 +- src/iterable/operators/takewhile.ts | 4 +- src/iterable/operators/tap.ts | 8 +- src/iterable/operators/todomstream.ts | 6 +- src/iterable/operators/tonodestream.ts | 4 +- src/iterable/operators/union.ts | 8 +- src/iterable/operators/zipwith.ts | 4 +- src/iterable/range.ts | 2 +- src/iterable/reduce.ts | 2 +- src/iterable/reduceoptions.ts | 2 +- src/iterable/reduceright.ts | 4 +- src/iterable/repeatvalue.ts | 6 +- src/iterable/sequenceequal.ts | 2 +- src/iterable/single.ts | 2 +- src/iterable/some.ts | 2 +- src/iterable/sum.ts | 4 +- src/iterable/throwerror.ts | 2 +- src/iterable/todomstream.ts | 8 +- src/iterable/tomap.ts | 2 +- src/iterable/tonodestream.ts | 4 +- src/iterable/whiledo.ts | 2 +- src/iterable/zip.ts | 4 +- src/observer.ts | 2 +- src/scheduler.ts | 2 +- src/util/isiterable.ts | 2 +- src/util/tolength.ts | 2 +- src/util/toobserver.ts | 4 +- 641 files changed, 2144 insertions(+), 2143 deletions(-) create mode 100644 spec/bundle/asynciterable.as.js create mode 100644 spec/bundle/asynciterable.flatmap.js create mode 100644 spec/bundle/asynciterable.from.js create mode 100644 spec/bundle/asynciterable.js create mode 100644 spec/bundle/asynciterable.of.js create mode 100644 spec/bundle/iterable.as.js create mode 100644 spec/bundle/iterable.flatmap.js create mode 100644 spec/bundle/iterable.from.js create mode 100644 spec/bundle/iterable.js create mode 100644 spec/bundle/iterable.of.js diff --git a/spec/Ix.ts b/spec/Ix.ts index f9bfc735..f1d59a36 100644 --- a/spec/Ix.ts +++ b/spec/Ix.ts @@ -1,9 +1,10 @@ import 'web-streams-polyfill'; -import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; +import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only.js'; // import this before assigning window global since it does a `typeof window` check // eslint-disable-next-line @typescript-eslint/no-require-imports -require('web-stream-tools'); +// require('web-stream-tools'); +import '@openpgp/web-stream-tools'; (global).window = (global).window || global; @@ -18,4 +19,5 @@ Object.defineProperty(ArrayBuffer, Symbol.hasInstance, { // Require rxjs first so we pick up its polyfilled Symbol.observable // eslint-disable-next-line @typescript-eslint/no-require-imports -require('rxjs/internal/symbol/observable'); +// require('rxjs/internal/symbol/observable'); +import 'rxjs/internal/symbol/observable.js'; diff --git a/spec/asynciterable-operators/batch-spec.ts b/spec/asynciterable-operators/batch-spec.ts index ef5437f8..98abdcf3 100644 --- a/spec/asynciterable-operators/batch-spec.ts +++ b/spec/asynciterable-operators/batch-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { batch } from 'ix/asynciterable/operators'; -import { AsyncSink } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { batch } from 'ix/asynciterable/operators/index.js'; +import { AsyncSink } from 'ix/asynciterable/index.js'; const delay = (ms = 0) => new Promise((resolve) => setTimeout(resolve, ms)); diff --git a/spec/asynciterable-operators/buffer-spec.ts b/spec/asynciterable-operators/buffer-spec.ts index 35d50f02..4a812568 100644 --- a/spec/asynciterable-operators/buffer-spec.ts +++ b/spec/asynciterable-operators/buffer-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; -import { empty, range, toArray } from 'ix/asynciterable'; -import { buffer } from 'ix/asynciterable/operators'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { empty, range, toArray } from 'ix/asynciterable/index.js'; +import { buffer } from 'ix/asynciterable/operators/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#buffer no skip non-full buffer', async () => { const rng = range(0, 10); diff --git a/spec/asynciterable-operators/catcherror-spec.ts b/spec/asynciterable-operators/catcherror-spec.ts index d5113edb..c9aa3caa 100644 --- a/spec/asynciterable-operators/catcherror-spec.ts +++ b/spec/asynciterable-operators/catcherror-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, range, sequenceEqual, single, throwError } from 'ix/asynciterable'; -import { catchError } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, range, sequenceEqual, single, throwError } from 'ix/asynciterable/index.js'; +import { catchError } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#catchError error catches', async () => { const err = new Error(); diff --git a/spec/asynciterable-operators/concatall-spec.ts b/spec/asynciterable-operators/concatall-spec.ts index fb9e8631..bb55f308 100644 --- a/spec/asynciterable-operators/concatall-spec.ts +++ b/spec/asynciterable-operators/concatall-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, range, sequenceEqual } from 'ix/asynciterable'; -import { concatAll, map, tap } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, range, sequenceEqual } from 'ix/asynciterable/index.js'; +import { concatAll, map, tap } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#concat concatAll behavior', async () => { const res = of(of(1, 2, 3), of(4, 5)).pipe(concatAll()); diff --git a/spec/asynciterable-operators/concatmap-spec.ts b/spec/asynciterable-operators/concatmap-spec.ts index e0effa62..8ce6aed9 100644 --- a/spec/asynciterable-operators/concatmap-spec.ts +++ b/spec/asynciterable-operators/concatmap-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, hasErr, noNext } from '../asynciterablehelpers'; -import { of, range, sequenceEqual, throwError } from 'ix/asynciterable'; -import { map, tap, concatMap } from 'ix/asynciterable/operators'; +import { hasNext, hasErr, noNext } from '../asynciterablehelpers.js'; +import { of, range, sequenceEqual, throwError } from 'ix/asynciterable/index.js'; +import { map, tap, concatMap } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#concatMap with range', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterable-operators/debounce-spec.ts b/spec/asynciterable-operators/debounce-spec.ts index 3633f8d2..d631cbb2 100644 --- a/spec/asynciterable-operators/debounce-spec.ts +++ b/spec/asynciterable-operators/debounce-spec.ts @@ -1,7 +1,7 @@ -import { hasNext, hasErr, noNext, delayError, delayValue } from '../asynciterablehelpers'; -import { debounce, finalize } from 'ix/asynciterable/operators'; -import { as } from 'ix/asynciterable'; -import { AbortError } from 'ix/Ix'; +import { hasNext, hasErr, noNext, delayError, delayValue } from '../asynciterablehelpers.js'; +import { debounce, finalize } from 'ix/asynciterable/operators/index.js'; +import { as } from 'ix/asynciterable/index.js'; +import { AbortError } from 'ix/Ix.js'; test( 'AsyncIterable#debounce none drop', diff --git a/spec/asynciterable-operators/defaultifempty-spec.ts b/spec/asynciterable-operators/defaultifempty-spec.ts index 08293fb5..a15cf13c 100644 --- a/spec/asynciterable-operators/defaultifempty-spec.ts +++ b/spec/asynciterable-operators/defaultifempty-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { empty, of, throwError } from 'ix/asynciterable'; -import { defaultIfEmpty } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { empty, of, throwError } from 'ix/asynciterable/index.js'; +import { defaultIfEmpty } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#defaultIfEmpty with empty', async () => { const xs = empty(); diff --git a/spec/asynciterable-operators/distinct-spec.ts b/spec/asynciterable-operators/distinct-spec.ts index e55666af..09fcf2ff 100644 --- a/spec/asynciterable-operators/distinct-spec.ts +++ b/spec/asynciterable-operators/distinct-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { range, sequenceEqual } from 'ix/asynciterable'; -import { distinct } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { range, sequenceEqual } from 'ix/asynciterable/index.js'; +import { distinct } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#distinct selector', async () => { const res = range(0, 10).pipe(distinct({ keySelector: (x) => x % 5 })); diff --git a/spec/asynciterable-operators/distinctuntilchanged-spec.ts b/spec/asynciterable-operators/distinctuntilchanged-spec.ts index 971884b4..8de7acd8 100644 --- a/spec/asynciterable-operators/distinctuntilchanged-spec.ts +++ b/spec/asynciterable-operators/distinctuntilchanged-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, sequenceEqual } from 'ix/asynciterable'; -import { distinctUntilChanged } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, sequenceEqual } from 'ix/asynciterable/index.js'; +import { distinctUntilChanged } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#distinctUntilChanged no selector', async () => { const res = of(1, 2, 2, 3, 3, 3, 2, 2, 1).pipe(distinctUntilChanged()); diff --git a/spec/asynciterable-operators/dowhile-spec.ts b/spec/asynciterable-operators/dowhile-spec.ts index ec66a82c..eb97de10 100644 --- a/spec/asynciterable-operators/dowhile-spec.ts +++ b/spec/asynciterable-operators/dowhile-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; -import { defer, of, toArray } from 'ix/asynciterable'; -import { doWhile, tap } from 'ix/asynciterable/operators'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { defer, of, toArray } from 'ix/asynciterable/index.js'; +import { doWhile, tap } from 'ix/asynciterable/operators/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#doWhile some', async () => { let x = 5; diff --git a/spec/asynciterable-operators/endwith-spec.ts b/spec/asynciterable-operators/endwith-spec.ts index 57abde67..f7b20c47 100644 --- a/spec/asynciterable-operators/endwith-spec.ts +++ b/spec/asynciterable-operators/endwith-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { range, sequenceEqual } from 'ix/asynciterable'; -import { endWith } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { range, sequenceEqual } from 'ix/asynciterable/index.js'; +import { endWith } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#endWith adds to end', async () => { const e = range(0, 5); diff --git a/spec/asynciterable-operators/except-spec.ts b/spec/asynciterable-operators/except-spec.ts index 6faa8176..80427e90 100644 --- a/spec/asynciterable-operators/except-spec.ts +++ b/spec/asynciterable-operators/except-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { of } from 'ix/asynciterable'; -import { except } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { of } from 'ix/asynciterable/index.js'; +import { except } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#except with default comparer', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterable-operators/expand-spec.ts b/spec/asynciterable-operators/expand-spec.ts index 63b67061..2f1bf561 100644 --- a/spec/asynciterable-operators/expand-spec.ts +++ b/spec/asynciterable-operators/expand-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, range, sequenceEqual } from 'ix/asynciterable'; -import { expand, take } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, range, sequenceEqual } from 'ix/asynciterable/index.js'; +import { expand, take } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#expand with single return behavior', async () => { const res = of(0).pipe( diff --git a/spec/asynciterable-operators/filter-spec.ts b/spec/asynciterable-operators/filter-spec.ts index b3f1b6be..9cadef45 100644 --- a/spec/asynciterable-operators/filter-spec.ts +++ b/spec/asynciterable-operators/filter-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { empty, of, throwError } from 'ix/asynciterable'; -import { filter } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { empty, of, throwError } from 'ix/asynciterable/index.js'; +import { filter } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#filter', async () => { const xs = of(8, 5, 7, 4, 6, 9, 2, 1, 0); diff --git a/spec/asynciterable-operators/finalize-spec.ts b/spec/asynciterable-operators/finalize-spec.ts index ae935fcd..a136d7a3 100644 --- a/spec/asynciterable-operators/finalize-spec.ts +++ b/spec/asynciterable-operators/finalize-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, hasErr, noNext } from '../asynciterablehelpers'; -import { range, throwError } from 'ix/asynciterable'; -import { flatMap, finalize, tap } from 'ix/asynciterable/operators'; +import { hasNext, hasErr, noNext } from '../asynciterablehelpers.js'; +import { range, throwError } from 'ix/asynciterable/index.js'; +import { flatMap, finalize, tap } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#finalize defers behavior', async () => { let done = false; diff --git a/spec/asynciterable-operators/flat-spec.ts b/spec/asynciterable-operators/flat-spec.ts index e2714a0d..7c14bd64 100644 --- a/spec/asynciterable-operators/flat-spec.ts +++ b/spec/asynciterable-operators/flat-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, toArray } from 'ix/asynciterable'; -import { flat } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, toArray } from 'ix/asynciterable/index.js'; +import { flat } from 'ix/asynciterable/operators/index.js'; function compareArrays(fst: Iterable, snd: Iterable) { expect(fst.toString()).toBe(snd.toString()); diff --git a/spec/asynciterable-operators/flatmap-spec.ts b/spec/asynciterable-operators/flatmap-spec.ts index e3fccb02..ed619f3b 100644 --- a/spec/asynciterable-operators/flatmap-spec.ts +++ b/spec/asynciterable-operators/flatmap-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, hasErr } from '../asynciterablehelpers'; -import { of, range, throwError, toArray } from 'ix/asynciterable'; -import { flatMap } from 'ix/asynciterable/operators'; +import { hasNext, hasErr } from '../asynciterablehelpers.js'; +import { of, range, throwError, toArray } from 'ix/asynciterable/index.js'; +import { flatMap } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#flatMap with range', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterable-operators/groupby-spec.ts b/spec/asynciterable-operators/groupby-spec.ts index dc06b57f..75450cb2 100644 --- a/spec/asynciterable-operators/groupby-spec.ts +++ b/spec/asynciterable-operators/groupby-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { empty, AsyncIterableX } from 'ix/asynciterable'; -import { groupBy } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { empty, AsyncIterableX } from 'ix/asynciterable/index.js'; +import { groupBy } from 'ix/asynciterable/operators/index.js'; interface Employee { name: string; diff --git a/spec/asynciterable-operators/groupjoin-spec.ts b/spec/asynciterable-operators/groupjoin-spec.ts index 9be04c78..566ebfb8 100644 --- a/spec/asynciterable-operators/groupjoin-spec.ts +++ b/spec/asynciterable-operators/groupjoin-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { of, reduce, throwError } from 'ix/asynciterable'; -import { groupJoin } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { of, reduce, throwError } from 'ix/asynciterable/index.js'; +import { groupJoin } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#groupJoin all groups have values', async () => { const xs = of(0, 1, 2); diff --git a/spec/asynciterable-operators/ignoreelements.ts b/spec/asynciterable-operators/ignoreelements.ts index f1a2829c..c9c992cd 100644 --- a/spec/asynciterable-operators/ignoreelements.ts +++ b/spec/asynciterable-operators/ignoreelements.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { range } from 'ix/asynciterable'; -import { ignoreElements, take, tap } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { range } from 'ix/asynciterable/index.js'; +import { ignoreElements, take, tap } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#ignoreElements has side effects', async () => { let n = 0; diff --git a/spec/asynciterable-operators/innerjoin-spec.ts b/spec/asynciterable-operators/innerjoin-spec.ts index 68ad08df..a8b48536 100644 --- a/spec/asynciterable-operators/innerjoin-spec.ts +++ b/spec/asynciterable-operators/innerjoin-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { of, throwError } from 'ix/asynciterable'; -import { innerJoin } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { of, throwError } from 'ix/asynciterable/index.js'; +import { innerJoin } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#innerJoin normal', async () => { const xs = of(0, 1, 2); diff --git a/spec/asynciterable-operators/intersect-spec.ts b/spec/asynciterable-operators/intersect-spec.ts index 8466d492..307da6fb 100644 --- a/spec/asynciterable-operators/intersect-spec.ts +++ b/spec/asynciterable-operators/intersect-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { of } from 'ix/asynciterable'; -import { intersect } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { of } from 'ix/asynciterable/index.js'; +import { intersect } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#intersect with default comparer', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterable-operators/isempty-spec.ts b/spec/asynciterable-operators/isempty-spec.ts index 68d6e5c8..0d5bfb81 100644 --- a/spec/asynciterable-operators/isempty-spec.ts +++ b/spec/asynciterable-operators/isempty-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { of, empty, isEmpty } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of, empty, isEmpty } from 'ix/asynciterable/index.js'; test('AsyncIterable#isEmpty empty', async () => { expect(await isEmpty(empty())).toBeTruthy(); diff --git a/spec/asynciterable-operators/map-spec.ts b/spec/asynciterable-operators/map-spec.ts index e180b6e3..46583e17 100644 --- a/spec/asynciterable-operators/map-spec.ts +++ b/spec/asynciterable-operators/map-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { map } from 'ix/asynciterable/operators'; -import { of, empty, sequenceEqual } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { map } from 'ix/asynciterable/operators/index.js'; +import { of, empty, sequenceEqual } from 'ix/asynciterable/index.js'; test('AsyncIterable#map single element', async () => { const source = of({ name: 'Frank', custId: 98088 }); diff --git a/spec/asynciterable-operators/memoize-spec.ts b/spec/asynciterable-operators/memoize-spec.ts index b8d815a9..28759e10 100644 --- a/spec/asynciterable-operators/memoize-spec.ts +++ b/spec/asynciterable-operators/memoize-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext, delayValue } from '../asynciterablehelpers'; -import { memoize } from 'ix/asynciterable/operators'; -import { as, defer, concat, range, throwError } from 'ix/asynciterable'; +import { hasNext, noNext, delayValue } from '../asynciterablehelpers.js'; +import { memoize } from 'ix/asynciterable/operators/index.js'; +import { as, defer, concat, range, throwError } from 'ix/asynciterable/index.js'; async function* tick(t: (x: number) => void | Promise) { let i = 0; diff --git a/spec/asynciterable-operators/mergeall-spec.ts b/spec/asynciterable-operators/mergeall-spec.ts index b08b8f6a..c89186c8 100644 --- a/spec/asynciterable-operators/mergeall-spec.ts +++ b/spec/asynciterable-operators/mergeall-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, toArray } from 'ix/asynciterable'; -import { mergeAll } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, toArray } from 'ix/asynciterable/index.js'; +import { mergeAll } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#merge mergeAll behavior', async () => { const res = of(of(1, 2, 3), of(4, 5)).pipe(mergeAll()); diff --git a/spec/asynciterable-operators/orderby-spec.ts b/spec/asynciterable-operators/orderby-spec.ts index ed6686c5..9274257a 100644 --- a/spec/asynciterable-operators/orderby-spec.ts +++ b/spec/asynciterable-operators/orderby-spec.ts @@ -1,6 +1,11 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { of } from 'ix/asynciterable'; -import { orderBy, orderByDescending, thenBy, thenByDescending } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { of } from 'ix/asynciterable/index.js'; +import { + orderBy, + orderByDescending, + thenBy, + thenByDescending, +} from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#orderBy normal ordering', async () => { const xs = of(2, 6, 1, 5, 7, 8, 9, 3, 4, 0); diff --git a/spec/asynciterable-operators/pairwise-spec.ts b/spec/asynciterable-operators/pairwise-spec.ts index fc5e20be..9b153a0b 100644 --- a/spec/asynciterable-operators/pairwise-spec.ts +++ b/spec/asynciterable-operators/pairwise-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { empty, of } from 'ix/asynciterable'; -import { pairwise } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { empty, of } from 'ix/asynciterable/index.js'; +import { pairwise } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#pairwise empty return empty', async () => { const xs = empty(); diff --git a/spec/asynciterable-operators/pluck-spec.ts b/spec/asynciterable-operators/pluck-spec.ts index 82f9657d..e485178a 100644 --- a/spec/asynciterable-operators/pluck-spec.ts +++ b/spec/asynciterable-operators/pluck-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { of } from 'ix/asynciterable'; -import { pluck } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { of } from 'ix/asynciterable/index.js'; +import { pluck } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#pluck simple prop', async () => { const xs = of({ prop: 1 }, { prop: 2 }, { prop: 3 }, { prop: 4 }, { prop: 5 }); diff --git a/spec/asynciterable-operators/publish-spec.ts b/spec/asynciterable-operators/publish-spec.ts index da22eb05..a5308d60 100644 --- a/spec/asynciterable-operators/publish-spec.ts +++ b/spec/asynciterable-operators/publish-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { publish } from 'ix/asynciterable/operators'; -import { as, concat, range, throwError } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { publish } from 'ix/asynciterable/operators/index.js'; +import { as, concat, range, throwError } from 'ix/asynciterable/index.js'; async function* tick(t: (x: number) => void | Promise) { let i = 0; diff --git a/spec/asynciterable-operators/repeat-spec.ts b/spec/asynciterable-operators/repeat-spec.ts index db0ad1c9..03366896 100644 --- a/spec/asynciterable-operators/repeat-spec.ts +++ b/spec/asynciterable-operators/repeat-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; -import { sum } from 'ix/iterable'; -import { as, every, of, toArray } from 'ix/asynciterable'; -import { buffer, map, repeat, tap, take } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { sum } from 'ix/iterable/index.js'; +import { as, every, of, toArray } from 'ix/asynciterable/index.js'; +import { buffer, map, repeat, tap, take } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#repeat infinite', async () => { let i = 0; diff --git a/spec/asynciterable-operators/retry-spec.ts b/spec/asynciterable-operators/retry-spec.ts index c171b955..f7d297ab 100644 --- a/spec/asynciterable-operators/retry-spec.ts +++ b/spec/asynciterable-operators/retry-spec.ts @@ -1,6 +1,6 @@ -import { hasNext } from '../asynciterablehelpers'; -import { retry } from 'ix/asynciterable/operators'; -import { concat, range, sequenceEqual, throwError } from 'ix/asynciterable'; +import { hasNext } from '../asynciterablehelpers.js'; +import { retry } from 'ix/asynciterable/operators/index.js'; +import { concat, range, sequenceEqual, throwError } from 'ix/asynciterable/index.js'; test('AsyncIterable#retry infinite no errors does not retry', async () => { const xs = range(0, 10); diff --git a/spec/asynciterable-operators/reverse-spec.ts b/spec/asynciterable-operators/reverse-spec.ts index a919e6e8..40f32d73 100644 --- a/spec/asynciterable-operators/reverse-spec.ts +++ b/spec/asynciterable-operators/reverse-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { reverse } from 'ix/asynciterable/operators'; -import { empty, of, throwError } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { reverse } from 'ix/asynciterable/operators/index.js'; +import { empty, of, throwError } from 'ix/asynciterable/index.js'; test('AsyncIterable#reverse empty', async () => { const xs = empty(); diff --git a/spec/asynciterable-operators/scan-spec.ts b/spec/asynciterable-operators/scan-spec.ts index afe4343d..9c9dab27 100644 --- a/spec/asynciterable-operators/scan-spec.ts +++ b/spec/asynciterable-operators/scan-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { scan } from 'ix/asynciterable/operators'; -import { of, range } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { scan } from 'ix/asynciterable/operators/index.js'; +import { of, range } from 'ix/asynciterable/index.js'; test('AsyncIterable#scan no seed', async () => { const res = range(0, 5).pipe(scan({ callback: async (n, x, i) => n + x + i })); diff --git a/spec/asynciterable-operators/scanright-spec.ts b/spec/asynciterable-operators/scanright-spec.ts index 70a7f5b8..2cc19207 100644 --- a/spec/asynciterable-operators/scanright-spec.ts +++ b/spec/asynciterable-operators/scanright-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { scanRight } from 'ix/asynciterable/operators'; -import { range } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { scanRight } from 'ix/asynciterable/operators/index.js'; +import { range } from 'ix/asynciterable/index.js'; test('AsyncIterable#scanRight no seed', async () => { const res = range(0, 5).pipe(scanRight({ callback: async (n, x, i) => n + x + i })); diff --git a/spec/asynciterable-operators/share-spec.ts b/spec/asynciterable-operators/share-spec.ts index f42f0f5c..cd0882a1 100644 --- a/spec/asynciterable-operators/share-spec.ts +++ b/spec/asynciterable-operators/share-spec.ts @@ -1,7 +1,7 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { share, take } from 'ix/asynciterable/operators'; -import { range, toArray } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { share, take } from 'ix/asynciterable/operators/index.js'; +import { range, toArray } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#share single', async () => { const rng = share()(range(0, 5)); diff --git a/spec/asynciterable-operators/skip-spec.ts b/spec/asynciterable-operators/skip-spec.ts index e20e384d..1423f5ee 100644 --- a/spec/asynciterable-operators/skip-spec.ts +++ b/spec/asynciterable-operators/skip-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { of, throwError } from 'ix/asynciterable'; -import { skip } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { of, throwError } from 'ix/asynciterable/index.js'; +import { skip } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#skip skips some', async () => { const xs = of(1, 2, 3, 4); diff --git a/spec/asynciterable-operators/skiplast-spec.ts b/spec/asynciterable-operators/skiplast-spec.ts index b1d05ffb..e6c089d3 100644 --- a/spec/asynciterable-operators/skiplast-spec.ts +++ b/spec/asynciterable-operators/skiplast-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { empty, range, sequenceEqual } from 'ix/asynciterable'; -import { skipLast, take } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { empty, range, sequenceEqual } from 'ix/asynciterable/index.js'; +import { skipLast, take } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#skipLast empty', async () => { const e = empty(); diff --git a/spec/asynciterable-operators/skipuntil-spec.ts b/spec/asynciterable-operators/skipuntil-spec.ts index efc7b081..08f1b2fb 100644 --- a/spec/asynciterable-operators/skipuntil-spec.ts +++ b/spec/asynciterable-operators/skipuntil-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext, delayValue } from '../asynciterablehelpers'; -import { skipUntil } from 'ix/asynciterable/operators'; -import { as } from 'ix/asynciterable'; +import { hasNext, noNext, delayValue } from '../asynciterablehelpers.js'; +import { skipUntil } from 'ix/asynciterable/operators/index.js'; +import { as } from 'ix/asynciterable/index.js'; test('AsyncIterable#skipUntil hits', async () => { const xs = async function* () { diff --git a/spec/asynciterable-operators/skipwhile-spec.ts b/spec/asynciterable-operators/skipwhile-spec.ts index 47b647e6..67ee31ff 100644 --- a/spec/asynciterable-operators/skipwhile-spec.ts +++ b/spec/asynciterable-operators/skipwhile-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { skipWhile } from 'ix/asynciterable/operators'; -import { of } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { skipWhile } from 'ix/asynciterable/operators/index.js'; +import { of } from 'ix/asynciterable/index.js'; test('AsyncIterable#skipWhile skips some', async () => { const xs = of(1, 2, 3, 4); diff --git a/spec/asynciterable-operators/slice-spec.ts b/spec/asynciterable-operators/slice-spec.ts index e39b0cd0..b01c5afb 100644 --- a/spec/asynciterable-operators/slice-spec.ts +++ b/spec/asynciterable-operators/slice-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { slice } from 'ix/asynciterable/operators'; -import { as } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { slice } from 'ix/asynciterable/operators/index.js'; +import { as } from 'ix/asynciterable/index.js'; test('AsyncIterable#slice slices at zero with one item', async () => { const xs = as([1, 2, 3, 4]); diff --git a/spec/asynciterable-operators/startwith-spec.ts b/spec/asynciterable-operators/startwith-spec.ts index 9acda2ff..7a40f691 100644 --- a/spec/asynciterable-operators/startwith-spec.ts +++ b/spec/asynciterable-operators/startwith-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { range, sequenceEqual, toArray } from 'ix/asynciterable'; -import { startWith, take, tap } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { range, sequenceEqual, toArray } from 'ix/asynciterable/index.js'; +import { startWith, take, tap } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#startWith adds to beginning', async () => { const e = range(1, 5); diff --git a/spec/asynciterable-operators/switchall-spec.ts b/spec/asynciterable-operators/switchall-spec.ts index 54f4d71d..93708b00 100644 --- a/spec/asynciterable-operators/switchall-spec.ts +++ b/spec/asynciterable-operators/switchall-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, toArray } from 'ix/asynciterable'; -import { switchAll, delayEach, tap } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, toArray } from 'ix/asynciterable/index.js'; +import { switchAll, delayEach, tap } from 'ix/asynciterable/operators/index.js'; describe(`AsyncIterable#switchAll`, () => { test('switches inner sequences', async () => { diff --git a/spec/asynciterable-operators/switchmap-spec.ts b/spec/asynciterable-operators/switchmap-spec.ts index a5f8cf6b..348a69ec 100644 --- a/spec/asynciterable-operators/switchmap-spec.ts +++ b/spec/asynciterable-operators/switchmap-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, toArray } from 'ix/asynciterable'; -import { switchMap, delayEach, tap } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, toArray } from 'ix/asynciterable/index.js'; +import { switchMap, delayEach, tap } from 'ix/asynciterable/operators/index.js'; describe(`AsyncIterable#switchMap`, () => { test('switches inner sequences', async () => { diff --git a/spec/asynciterable-operators/take-spec.ts b/spec/asynciterable-operators/take-spec.ts index 73fc8d8e..8112a3a2 100644 --- a/spec/asynciterable-operators/take-spec.ts +++ b/spec/asynciterable-operators/take-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; -import { hasNext, noNext } from '../asynciterablehelpers'; -import { take } from 'ix/asynciterable/operators'; -import { of, throwError } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { take } from 'ix/asynciterable/operators/index.js'; +import { of, throwError } from 'ix/asynciterable/index.js'; test('AsyncIterable#take zero or less takes nothing', async () => { const xs = of(1, 2, 3, 4); diff --git a/spec/asynciterable-operators/takelast-spec.ts b/spec/asynciterable-operators/takelast-spec.ts index 47d25352..027bdd1b 100644 --- a/spec/asynciterable-operators/takelast-spec.ts +++ b/spec/asynciterable-operators/takelast-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { empty, range, sequenceEqual } from 'ix/asynciterable'; -import { skip, takeLast } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { empty, range, sequenceEqual } from 'ix/asynciterable/index.js'; +import { skip, takeLast } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#takeLast none', async () => { const res = range(1, 5).pipe(takeLast(0)); diff --git a/spec/asynciterable-operators/takeuntil-spec.ts b/spec/asynciterable-operators/takeuntil-spec.ts index ddab6bb3..a31fdf25 100644 --- a/spec/asynciterable-operators/takeuntil-spec.ts +++ b/spec/asynciterable-operators/takeuntil-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext, delayValue } from '../asynciterablehelpers'; -import { takeUntil } from 'ix/asynciterable/operators'; -import { as, AsyncSink } from 'ix/asynciterable'; +import { hasNext, noNext, delayValue } from '../asynciterablehelpers.js'; +import { takeUntil } from 'ix/asynciterable/operators/index.js'; +import { as, AsyncSink } from 'ix/asynciterable/index.js'; test('AsyncIterable#takeUntil hits', async () => { const xs = async function* () { diff --git a/spec/asynciterable-operators/takewhile-spec.ts b/spec/asynciterable-operators/takewhile-spec.ts index b5a2629a..c1c4055c 100644 --- a/spec/asynciterable-operators/takewhile-spec.ts +++ b/spec/asynciterable-operators/takewhile-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { takeWhile } from 'ix/asynciterable/operators'; -import { of } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { takeWhile } from 'ix/asynciterable/operators/index.js'; +import { of } from 'ix/asynciterable/index.js'; test('AsyncIterable#takeWhile some match', async () => { const xs = of(1, 2, 3, 4); diff --git a/spec/asynciterable-operators/tap-spec.ts b/spec/asynciterable-operators/tap-spec.ts index c13a3f53..04aece06 100644 --- a/spec/asynciterable-operators/tap-spec.ts +++ b/spec/asynciterable-operators/tap-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { range, throwError } from 'ix/asynciterable'; -import { tap } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { range, throwError } from 'ix/asynciterable/index.js'; +import { tap } from 'ix/asynciterable/operators/index.js'; test('AsyncItearble#tap next', async () => { let n = 0; diff --git a/spec/asynciterable-operators/throttle-spec.ts b/spec/asynciterable-operators/throttle-spec.ts index 235b3a45..5d5af542 100644 --- a/spec/asynciterable-operators/throttle-spec.ts +++ b/spec/asynciterable-operators/throttle-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext, delayValue } from '../asynciterablehelpers'; -import { throttle } from 'ix/asynciterable/operators'; -import { as } from 'ix/asynciterable'; +import { hasNext, noNext, delayValue } from '../asynciterablehelpers.js'; +import { throttle } from 'ix/asynciterable/operators/index.js'; +import { as } from 'ix/asynciterable/index.js'; test('AsyncIterable#throttle drops none', async () => { const xs = async function* () { diff --git a/spec/asynciterable-operators/timeout-spec.ts b/spec/asynciterable-operators/timeout-spec.ts index fecc5517..d7e84ce7 100644 --- a/spec/asynciterable-operators/timeout-spec.ts +++ b/spec/asynciterable-operators/timeout-spec.ts @@ -1,7 +1,7 @@ -import { hasNext, hasErr, noNext, delayValue } from '../asynciterablehelpers'; -import { timeout, finalize } from 'ix/asynciterable/operators'; -import { as } from 'ix/asynciterable'; -import { TimeoutError } from 'ix/asynciterable/operators/timeout'; +import { hasNext, hasErr, noNext, delayValue } from '../asynciterablehelpers.js'; +import { timeout, finalize } from 'ix/asynciterable/operators/index.js'; +import { as } from 'ix/asynciterable/index.js'; +import { TimeoutError } from 'ix/asynciterable/operators/timeout.js'; test('AsyncIterable#timeout drops none', async () => { const xs = async function* () { diff --git a/spec/asynciterable-operators/todomstream-spec.ts b/spec/asynciterable-operators/todomstream-spec.ts index 0ce1e097..16605ad6 100644 --- a/spec/asynciterable-operators/todomstream-spec.ts +++ b/spec/asynciterable-operators/todomstream-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { as } from 'ix/asynciterable'; -import { map, toDOMStream } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { as } from 'ix/asynciterable/index.js'; +import { map, toDOMStream } from 'ix/asynciterable/operators/index.js'; // eslint-disable-next-line consistent-return (() => { diff --git a/spec/asynciterable-operators/union-spec.ts b/spec/asynciterable-operators/union-spec.ts index fc16baec..99feb372 100644 --- a/spec/asynciterable-operators/union-spec.ts +++ b/spec/asynciterable-operators/union-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { union } from 'ix/asynciterable/operators'; -import { of } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { union } from 'ix/asynciterable/operators/index.js'; +import { of } from 'ix/asynciterable/index.js'; test('AsyncIterable#union with default comparer', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterable-operators/writable-stream-pipe-spec.ts b/spec/asynciterable-operators/writable-stream-pipe-spec.ts index b2c3e254..9d39dbc9 100644 --- a/spec/asynciterable-operators/writable-stream-pipe-spec.ts +++ b/spec/asynciterable-operators/writable-stream-pipe-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; +import '../asynciterablehelpers.js'; import { PassThrough } from 'stream'; -import { map } from 'ix/asynciterable/operators/index.node'; -import { empty, of, sequenceEqual } from 'ix/asynciterable'; +import { map } from 'ix/asynciterable/operators/index.node.js'; +import { empty, of, sequenceEqual } from 'ix/asynciterable/index.js'; // eslint-disable-next-line consistent-return (() => { diff --git a/spec/asynciterable/aborting-spec.ts b/spec/asynciterable/aborting-spec.ts index 908732fe..20bca8cd 100644 --- a/spec/asynciterable/aborting-spec.ts +++ b/spec/asynciterable/aborting-spec.ts @@ -1,6 +1,7 @@ -import '../asynciterablehelpers'; -import { interval } from 'ix/asynciterable'; -import { take } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { jest } from '@jest/globals'; +import { interval } from 'ix/asynciterable/index.js'; +import { take } from 'ix/asynciterable/operators/index.js'; test("Abort signal isn't overloaded with event listeners", async () => { const abortController = new AbortController(); diff --git a/spec/asynciterable/as-spec.ts b/spec/asynciterable/as-spec.ts index 8f3b4a4d..a40a2759 100644 --- a/spec/asynciterable/as-spec.ts +++ b/spec/asynciterable/as-spec.ts @@ -1,9 +1,9 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { AsyncIterableX } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { as } from 'ix/asynciterable/index.js'; test('AsyncIterable#as from non-iterable', async () => { const xs = {}; - const res = AsyncIterableX.as(xs); + const res = as(xs); const it = res[Symbol.asyncIterator](); await hasNext(it, xs); @@ -12,7 +12,7 @@ test('AsyncIterable#as from non-iterable', async () => { test('AsyncIterable#as from string emits the string, not chars', async () => { const x = 'foo'; - const res = AsyncIterableX.as(x); + const res = as(x); const it = res[Symbol.asyncIterator](); await hasNext(it, x); await noNext(it); @@ -24,7 +24,7 @@ test('AsyncIterable#as from promise list', async () => { Promise.resolve(2), Promise.resolve(3), ]; - const res = AsyncIterableX.as(xs); + const res = as(xs); const it = res[Symbol.asyncIterator](); await hasNext(it, 1); @@ -41,7 +41,7 @@ async function* getData(): AsyncIterable { test('AsyncIterable#as from async generator', async () => { const xs = getData(); - const res = AsyncIterableX.as(xs); + const res = as(xs); const it = res[Symbol.asyncIterator](); await hasNext(it, 1); @@ -52,7 +52,7 @@ test('AsyncIterable#as from async generator', async () => { test('AsyncIterable#as from array/iterable', async () => { const xs = [1, 2, 3]; - const res = AsyncIterableX.as(xs); + const res = as(xs); const it = res[Symbol.asyncIterator](); await hasNext(it, 1); @@ -63,7 +63,7 @@ test('AsyncIterable#as from array/iterable', async () => { test('AsyncIterable#as from empty array/iterable', async () => { const xs: number[] = []; - const res = AsyncIterableX.as(xs); + const res = as(xs); const it = res[Symbol.asyncIterator](); await noNext(it); @@ -71,7 +71,7 @@ test('AsyncIterable#as from empty array/iterable', async () => { test('AsyncIterable#as from array-like', async () => { const xs = { length: 3 }; - const res = AsyncIterableX.as(xs); + const res = as(xs); const it = res[Symbol.asyncIterator](); await hasNext(it, undefined); @@ -82,7 +82,7 @@ test('AsyncIterable#as from array-like', async () => { test('AsyncIterable#as from promise', async () => { const xs = Promise.resolve(42); - const res = AsyncIterableX.as(xs); + const res = as(xs); const it = res[Symbol.asyncIterator](); await hasNext(it, 42); diff --git a/spec/asynciterable/asasynciterable-spec.ts b/spec/asynciterable/asasynciterable-spec.ts index 6ec43173..3371ae29 100644 --- a/spec/asynciterable/asasynciterable-spec.ts +++ b/spec/asynciterable/asasynciterable-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; -import { as } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { as } from 'ix/asynciterable/index.js'; import { Readable, ReadableOptions } from 'stream'; -import { asAsyncIterable } from 'ix/asynciterable/asasynciterable'; +import { asAsyncIterable } from 'ix/asynciterable/asasynciterable.js'; // eslint-disable-next-line consistent-return (() => { diff --git a/spec/asynciterable/asyncify-spec.ts b/spec/asynciterable/asyncify-spec.ts index 92fe56cc..6279be16 100644 --- a/spec/asynciterable/asyncify-spec.ts +++ b/spec/asynciterable/asyncify-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { asyncify } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { asyncify } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#asyncify single argument', async () => { const callbackFn = (a: number, b: number, cb: (...xs: any[]) => any) => { diff --git a/spec/asynciterable/asyncifyerrback-spec.ts b/spec/asynciterable/asyncifyerrback-spec.ts index ae321181..ff7ef902 100644 --- a/spec/asynciterable/asyncifyerrback-spec.ts +++ b/spec/asynciterable/asyncifyerrback-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { asyncifyErrback } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { asyncifyErrback } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#asyncifyErrback single argument', async () => { const callbackFn = (a: number, b: number, cb: (err: Error | null, ...rest: any[]) => void) => { diff --git a/spec/asynciterable/asyncsink-spec.ts b/spec/asynciterable/asyncsink-spec.ts index d6d8eaa3..4e02f56f 100644 --- a/spec/asynciterable/asyncsink-spec.ts +++ b/spec/asynciterable/asyncsink-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { AsyncSink } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { AsyncSink } from 'ix/asynciterable/index.js'; test('AsyncSink writes before next', async () => { const a = new AsyncSink(); diff --git a/spec/asynciterable/average-spec.ts b/spec/asynciterable/average-spec.ts index 12688616..3d40004f 100644 --- a/spec/asynciterable/average-spec.ts +++ b/spec/asynciterable/average-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { average, empty, of } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { average, empty, of } from 'ix/asynciterable/index.js'; test('Iterable#average empty', async () => { const xs = empty(); diff --git a/spec/asynciterable/buffercountortime-spec.ts b/spec/asynciterable/buffercountortime-spec.ts index e2938bf2..7eb2d7ed 100644 --- a/spec/asynciterable/buffercountortime-spec.ts +++ b/spec/asynciterable/buffercountortime-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, concat } from 'ix/asynciterable'; -import { bufferCountOrTime, delay } from 'ix/asynciterable/operators'; +import '../asynciterablehelpers.js'; +import { of, concat } from 'ix/asynciterable/index.js'; +import { bufferCountOrTime, delay } from 'ix/asynciterable/operators/index.js'; test('buffer count behaviour', async () => { const result: number[][] = []; diff --git a/spec/asynciterable/catcherror-spec.ts b/spec/asynciterable/catcherror-spec.ts index f0f352a0..3e4dbd09 100644 --- a/spec/asynciterable/catcherror-spec.ts +++ b/spec/asynciterable/catcherror-spec.ts @@ -1,5 +1,5 @@ -import { hasNext } from '../asynciterablehelpers'; -import { catchError, concat, range, sequenceEqual, throwError } from 'ix/asynciterable'; +import { hasNext } from '../asynciterablehelpers.js'; +import { catchError, concat, range, sequenceEqual, throwError } from 'ix/asynciterable/index.js'; test('AsyncIterable#catch with no errors', async () => { const res = catchError(range(0, 5), range(5, 5)); diff --git a/spec/asynciterable/combinelatest-spec.ts b/spec/asynciterable/combinelatest-spec.ts index 7781e496..453261e2 100644 --- a/spec/asynciterable/combinelatest-spec.ts +++ b/spec/asynciterable/combinelatest-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { combineLatest, of } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { combineLatest, of } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#zip equal length no selector', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterable/concat-spec.ts b/spec/asynciterable/concat-spec.ts index 9cb1c4be..56688e67 100644 --- a/spec/asynciterable/concat-spec.ts +++ b/spec/asynciterable/concat-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { concat, of, sequenceEqual } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { concat, of, sequenceEqual } from 'ix/asynciterable/index.js'; test('AsyncIterable#concat behavior', async () => { const res = concat(of(1, 2, 3), of(4, 5)); diff --git a/spec/asynciterable/count-spec.ts b/spec/asynciterable/count-spec.ts index 9f7253b6..05569fdc 100644 --- a/spec/asynciterable/count-spec.ts +++ b/spec/asynciterable/count-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { count, empty, of, throwError } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { count, empty, of, throwError } from 'ix/asynciterable/index.js'; test('AsyncItearble#count some', async () => { const xs = of(1, 2, 3, 4); diff --git a/spec/asynciterable/defer-spec.ts b/spec/asynciterable/defer-spec.ts index 749dcae9..78b5b1c9 100644 --- a/spec/asynciterable/defer-spec.ts +++ b/spec/asynciterable/defer-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { sequenceEqual, defer, range } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { sequenceEqual, defer, range } from 'ix/asynciterable/index.js'; test('AsyncIterable#defer defers side effects', async () => { let i = 0; diff --git a/spec/asynciterable/elementat-spec.ts b/spec/asynciterable/elementat-spec.ts index 08c6482b..8eb1e160 100644 --- a/spec/asynciterable/elementat-spec.ts +++ b/spec/asynciterable/elementat-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { elementAt, empty, of } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { elementAt, empty, of } from 'ix/asynciterable/index.js'; test('AsyncIterable#elementAt empty returns undefined', async () => { const xs = empty(); diff --git a/spec/asynciterable/empty-spec.ts b/spec/asynciterable/empty-spec.ts index 2b0b62db..4e5485da 100644 --- a/spec/asynciterable/empty-spec.ts +++ b/spec/asynciterable/empty-spec.ts @@ -1,5 +1,5 @@ -import { noNext } from '../asynciterablehelpers'; -import { empty } from 'ix/asynciterable'; +import { noNext } from '../asynciterablehelpers.js'; +import { empty } from 'ix/asynciterable/index.js'; test('AsyncIterable#empty empty', async () => { const xs = empty(); diff --git a/spec/asynciterable/every-spec.ts b/spec/asynciterable/every-spec.ts index f63a0d25..84d30a9a 100644 --- a/spec/asynciterable/every-spec.ts +++ b/spec/asynciterable/every-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { every, of, throwError } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { every, of, throwError } from 'ix/asynciterable/index.js'; test('AsyncIterable#every not all match', async () => { const xs = of(1, 2, 3, 4); diff --git a/spec/asynciterable/first-spec.ts b/spec/asynciterable/first-spec.ts index 5afff9ff..bc68e347 100644 --- a/spec/asynciterable/first-spec.ts +++ b/spec/asynciterable/first-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { empty, first, of } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { empty, first, of } from 'ix/asynciterable/index.js'; test('AsyncIterable#first empty returns undefined', async () => { const xs = empty(); diff --git a/spec/asynciterable/foreach-spec.ts b/spec/asynciterable/foreach-spec.ts index d0bb3201..13917d37 100644 --- a/spec/asynciterable/foreach-spec.ts +++ b/spec/asynciterable/foreach-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { range } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { range } from 'ix/asynciterable/index.js'; test('AsyncIterable#forEach', async () => { let n = 0; diff --git a/spec/asynciterable/forkjoin-spec.ts b/spec/asynciterable/forkjoin-spec.ts index d5e9555a..a7140275 100644 --- a/spec/asynciterable/forkjoin-spec.ts +++ b/spec/asynciterable/forkjoin-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { empty, forkJoin, of } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { empty, forkJoin, of } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#forkJoin no selector all equal', async () => { const xs = of(42, 25, 39); diff --git a/spec/asynciterable/from-spec.ts b/spec/asynciterable/from-spec.ts index 065c2e2a..35fe1bee 100644 --- a/spec/asynciterable/from-spec.ts +++ b/spec/asynciterable/from-spec.ts @@ -1,9 +1,9 @@ -import { hasNext, noNext, toObserver } from '../asynciterablehelpers'; +import { hasNext, noNext, toObserver } from '../asynciterablehelpers.js'; import { setInterval, clearInterval } from 'timers'; -import { PartialObserver } from '../../src/observer'; -import { defer, from } from 'ix/asynciterable'; -import { AbortError } from 'ix/Ix'; -import { withAbort } from 'ix/asynciterable/operators'; +import { PartialObserver } from '../../src/observer.js'; +import { defer, from } from 'ix/asynciterable/index.js'; +import { AbortError } from 'ix/Ix.js'; +import { withAbort } from 'ix/asynciterable/operators/index.js'; function throwIfAborted(signal?: AbortSignal) { if (signal && signal.aborted) { diff --git a/spec/asynciterable/fromdomstream-spec.ts b/spec/asynciterable/fromdomstream-spec.ts index 1dd4a964..07b352ba 100644 --- a/spec/asynciterable/fromdomstream-spec.ts +++ b/spec/asynciterable/fromdomstream-spec.ts @@ -1,18 +1,15 @@ -import '../asynciterablehelpers'; +import '../asynciterablehelpers.js'; import { Readable, ReadableOptions } from 'stream'; -import { as, fromDOMStream } from 'ix/asynciterable'; +import { as, fromDOMStream } from 'ix/asynciterable/index.js'; // eslint-disable-next-line consistent-return -(() => { +(async () => { if (!fromDOMStream || process.env.TEST_DOM_STREAMS !== 'true') { return test('not testing node streams because process.env.TEST_DOM_STREAMS !== "true"', () => { /**/ }); } - // eslint-disable-next-line - const { toStream } = require('web-stream-tools').default; - class Counter extends Readable { private _index: number; private _max: number; @@ -42,6 +39,8 @@ import { as, fromDOMStream } from 'ix/asynciterable'; describe('AsyncIterable#fromDOMStream', () => { test('objectMode: true', async () => { + // @ts-ignore + const { toStream } = await import('@openpgp/web-stream-tools'); const c = toStream(new Counter({ objectMode: true })); const xs = fromDOMStream(c) as AsyncIterable; const expected = as(['1', '2', '3']); @@ -49,6 +48,8 @@ import { as, fromDOMStream } from 'ix/asynciterable'; }); test('objectMode: false', async () => { + // @ts-ignore + const { toStream } = await import('@openpgp/web-stream-tools'); const c = toStream(new Counter({ objectMode: false })); const xs = fromDOMStream(c) as AsyncIterable; const expected = as(['1', '2', '3'].map((s) => Buffer.from(s))); diff --git a/spec/asynciterable/fromevent-spec.ts b/spec/asynciterable/fromevent-spec.ts index 885e3f60..e2e205a0 100644 --- a/spec/asynciterable/fromevent-spec.ts +++ b/spec/asynciterable/fromevent-spec.ts @@ -1,5 +1,5 @@ -import { hasNext } from '../asynciterablehelpers'; -import { fromEvent } from 'ix/asynciterable'; +import { hasNext } from '../asynciterablehelpers.js'; +import { fromEvent } from 'ix/asynciterable/index.js'; import { EventEmitter } from 'events'; const EVENT_TYPE = 'data'; diff --git a/spec/asynciterable/fromeventpattern-spec.ts b/spec/asynciterable/fromeventpattern-spec.ts index f12de28f..bb6a0cab 100644 --- a/spec/asynciterable/fromeventpattern-spec.ts +++ b/spec/asynciterable/fromeventpattern-spec.ts @@ -1,5 +1,5 @@ -import { hasNext } from '../asynciterablehelpers'; -import { fromEventPattern } from 'ix/asynciterable'; +import { hasNext } from '../asynciterablehelpers.js'; +import { fromEventPattern } from 'ix/asynciterable/index.js'; import { EventEmitter } from 'events'; const EVENT_TYPE = 'data'; diff --git a/spec/asynciterable/fromnodestream-spec.ts b/spec/asynciterable/fromnodestream-spec.ts index f3132558..61fe40e9 100644 --- a/spec/asynciterable/fromnodestream-spec.ts +++ b/spec/asynciterable/fromnodestream-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; -import { as } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { as } from 'ix/asynciterable/index.js'; import { Readable, ReadableOptions } from 'stream'; -import { fromNodeStream } from 'ix/asynciterable/fromnodestream'; +import { fromNodeStream } from 'ix/asynciterable/fromnodestream.js'; // eslint-disable-next-line consistent-return (() => { diff --git a/spec/asynciterable/generate-spec.ts b/spec/asynciterable/generate-spec.ts index c7be1144..cfbbcd19 100644 --- a/spec/asynciterable/generate-spec.ts +++ b/spec/asynciterable/generate-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { generate } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { generate } from 'ix/asynciterable/index.js'; test('AsyncIterable#generate generates normal sequence', async () => { const xs = generate( diff --git a/spec/asynciterable/generatetime-spec.ts b/spec/asynciterable/generatetime-spec.ts index fa682bf1..5542dec3 100644 --- a/spec/asynciterable/generatetime-spec.ts +++ b/spec/asynciterable/generatetime-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { generateTime } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { generateTime } from 'ix/asynciterable/index.js'; test('AsyncIterable#generateTime generateTimes normal sequence', async () => { const xs = generateTime( diff --git a/spec/asynciterable/iif-spec.ts b/spec/asynciterable/iif-spec.ts index 24ea8997..2a52ccf8 100644 --- a/spec/asynciterable/iif-spec.ts +++ b/spec/asynciterable/iif-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { iif, isEmpty, of, single } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { iif, isEmpty, of, single } from 'ix/asynciterable/index.js'; test('AsyncIterable#if then and else', async () => { let x = 5; diff --git a/spec/asynciterable/includes-spec.ts b/spec/asynciterable/includes-spec.ts index 8cd3dc0a..8811a08d 100644 --- a/spec/asynciterable/includes-spec.ts +++ b/spec/asynciterable/includes-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { of, includes } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of, includes } from 'ix/asynciterable/index.js'; test('AsyncIterable#includes includes', async () => { const xs = of(1, 2, 3, 4, 5); diff --git a/spec/asynciterable/inference-spec.ts b/spec/asynciterable/inference-spec.ts index 77726de6..ee2f20c8 100644 --- a/spec/asynciterable/inference-spec.ts +++ b/spec/asynciterable/inference-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; -import { of } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of } from 'ix/asynciterable/index.js'; import { PassThrough } from 'stream'; -import { map } from 'ix/asynciterable/operators/index.node'; +import { map } from 'ix/asynciterable/operators/index.node.js'; const TEST_DOM_STREAMS = process.env.TEST_DOM_STREAMS === 'true'; const TEST_NODE_STREAMS = process.env.TEST_NODE_STREAMS === 'true'; diff --git a/spec/asynciterable/last-spec.ts b/spec/asynciterable/last-spec.ts index 39cd66f6..28e23f94 100644 --- a/spec/asynciterable/last-spec.ts +++ b/spec/asynciterable/last-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { of, empty, last } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of, empty, last } from 'ix/asynciterable/index.js'; test('AsyncIterable#last empty returns undefined', async () => { const xs = empty(); diff --git a/spec/asynciterable/max-spec.ts b/spec/asynciterable/max-spec.ts index 41f8013f..c963996e 100644 --- a/spec/asynciterable/max-spec.ts +++ b/spec/asynciterable/max-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { of, empty, max } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of, empty, max } from 'ix/asynciterable/index.js'; test('AsyncItearble#max laws', async () => { const xs = of(5, 3, 1, 2, 4); diff --git a/spec/asynciterable/maxby-spec.ts b/spec/asynciterable/maxby-spec.ts index 896c710a..7add8363 100644 --- a/spec/asynciterable/maxby-spec.ts +++ b/spec/asynciterable/maxby-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { empty, maxBy, of } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { empty, maxBy, of } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#maxBy', async () => { const source = of(3, 5, 7, 6, 4, 2); diff --git a/spec/asynciterable/merge-spec.ts b/spec/asynciterable/merge-spec.ts index 11c88c5a..b59c867a 100644 --- a/spec/asynciterable/merge-spec.ts +++ b/spec/asynciterable/merge-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { of, merge, sequenceEqual } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of, merge, sequenceEqual } from 'ix/asynciterable/index.js'; test('AsyncIterable#merge behavior', async () => { const res = merge(of(1, 2, 3), of(4, 5)); diff --git a/spec/asynciterable/min-spec.ts b/spec/asynciterable/min-spec.ts index 6a4153f1..bd2c78c6 100644 --- a/spec/asynciterable/min-spec.ts +++ b/spec/asynciterable/min-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { empty, of, min } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { empty, of, min } from 'ix/asynciterable/index.js'; test('AsyncItearble#min laws', async () => { const xs = of(5, 3, 1, 2, 4); diff --git a/spec/asynciterable/minby-spec.ts b/spec/asynciterable/minby-spec.ts index 6d90d0e8..612b2ce0 100644 --- a/spec/asynciterable/minby-spec.ts +++ b/spec/asynciterable/minby-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { empty, minBy, of } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { empty, minBy, of } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#minBy', async () => { const source = of(3, 5, 7, 6, 4, 2); diff --git a/spec/asynciterable/never-spec.ts b/spec/asynciterable/never-spec.ts index 49d861f7..0b1b9d70 100644 --- a/spec/asynciterable/never-spec.ts +++ b/spec/asynciterable/never-spec.ts @@ -1,8 +1,8 @@ -import '../asynciterablehelpers'; -import { never } from 'ix/asynciterable'; -import { of } from 'ix/asynciterable'; -import { race } from 'ix/asynciterable'; -import { hasNext, noNext } from '../asynciterablehelpers'; +import '../asynciterablehelpers.js'; +import { never } from 'ix/asynciterable/index.js'; +import { of } from 'ix/asynciterable/index.js'; +import { race } from 'ix/asynciterable/index.js'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; test('AsyncIterable#of never', async () => { const xs = of(42, 43, 44); diff --git a/spec/asynciterable/of-spec.ts b/spec/asynciterable/of-spec.ts index f9494734..23d1501f 100644 --- a/spec/asynciterable/of-spec.ts +++ b/spec/asynciterable/of-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { of } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { of } from 'ix/asynciterable/index.js'; test('AsyncIterable#of behavior', async () => { const res = of(1, 2, 3); diff --git a/spec/asynciterable/onerrorresumenext-spec.ts b/spec/asynciterable/onerrorresumenext-spec.ts index e7d09ed3..22976a1e 100644 --- a/spec/asynciterable/onerrorresumenext-spec.ts +++ b/spec/asynciterable/onerrorresumenext-spec.ts @@ -1,5 +1,11 @@ -import '../asynciterablehelpers'; -import { concat, of, sequenceEqual, throwError, onErrorResumeNext } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { + concat, + of, + sequenceEqual, + throwError, + onErrorResumeNext, +} from 'ix/asynciterable/index.js'; test('AsyncIterable#onErrorResumeNext continues without error', async () => { const xs = of(1, 2); diff --git a/spec/asynciterable/race-spec.ts b/spec/asynciterable/race-spec.ts index 7e161cf7..3db1b44a 100644 --- a/spec/asynciterable/race-spec.ts +++ b/spec/asynciterable/race-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext, delayValue } from '../asynciterablehelpers'; -import { of, race } from 'ix/asynciterable'; +import { hasNext, noNext, delayValue } from '../asynciterablehelpers.js'; +import { of, race } from 'ix/asynciterable/index.js'; async function* delayedValues(time: number, value: T, ...values: T[]): AsyncIterable { yield await delayValue(value, time); diff --git a/spec/asynciterable/range-spec.ts b/spec/asynciterable/range-spec.ts index 53ab1bfd..4256714c 100644 --- a/spec/asynciterable/range-spec.ts +++ b/spec/asynciterable/range-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { range } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { range } from 'ix/asynciterable/index.js'; test('AsyncIterable#range produces values', async () => { const xs = range(2, 5); diff --git a/spec/asynciterable/reduce-spec.ts b/spec/asynciterable/reduce-spec.ts index 0e88854f..2e336d67 100644 --- a/spec/asynciterable/reduce-spec.ts +++ b/spec/asynciterable/reduce-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { empty, of, reduce } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { empty, of, reduce } from 'ix/asynciterable/index.js'; test('Iterable#reduce no seed', async () => { const xs = of(0, 1, 2, 3, 4); diff --git a/spec/asynciterable/reduceright-spec.ts b/spec/asynciterable/reduceright-spec.ts index d55794bf..d3c932d6 100644 --- a/spec/asynciterable/reduceright-spec.ts +++ b/spec/asynciterable/reduceright-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { empty, of, reduceRight } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { empty, of, reduceRight } from 'ix/asynciterable/index.js'; test('AsyncIterable#reduceRight no seed', async () => { const xs = of(0, 1, 2, 3, 4); diff --git a/spec/asynciterable/repeatvalue-spec.ts b/spec/asynciterable/repeatvalue-spec.ts index 9f68a211..86cdf286 100644 --- a/spec/asynciterable/repeatvalue-spec.ts +++ b/spec/asynciterable/repeatvalue-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { repeatValue } from 'ix/asynciterable'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { repeatValue } from 'ix/asynciterable/index.js'; test('AsyncIterable#repeat repeats value finitely', async () => { const xs = repeatValue(2, 5); diff --git a/spec/asynciterable/sequenceequal-spec.ts b/spec/asynciterable/sequenceequal-spec.ts index 86cd7a65..51ed2d6e 100644 --- a/spec/asynciterable/sequenceequal-spec.ts +++ b/spec/asynciterable/sequenceequal-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { empty, of, sequenceEqual, throwError } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { empty, of, sequenceEqual, throwError } from 'ix/asynciterable/index.js'; test('AsyncIterable#sequenceEqual sequence equals itself', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterable/single-spec.ts b/spec/asynciterable/single-spec.ts index 7cbef3e8..73c3ddf0 100644 --- a/spec/asynciterable/single-spec.ts +++ b/spec/asynciterable/single-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { empty, of, single } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { empty, of, single } from 'ix/asynciterable/index.js'; test('AsyncIterable#single no predicate empty returns undefined', async () => { const xs = empty(); diff --git a/spec/asynciterable/some-spec.ts b/spec/asynciterable/some-spec.ts index bb8339f8..57ff6809 100644 --- a/spec/asynciterable/some-spec.ts +++ b/spec/asynciterable/some-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { of, throwError, some } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of, throwError, some } from 'ix/asynciterable/index.js'; test('AsyncIterable#some some true', async () => { const xs = of(1, 2, 3, 4); diff --git a/spec/asynciterable/sum-spec.ts b/spec/asynciterable/sum-spec.ts index 58d1aa64..cc0f5b33 100644 --- a/spec/asynciterable/sum-spec.ts +++ b/spec/asynciterable/sum-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { of, empty, sum } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of, empty, sum } from 'ix/asynciterable/index.js'; test('AsyncIterable#sum laws', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterable/throw-spec.ts b/spec/asynciterable/throw-spec.ts index 0723190f..b95eb431 100644 --- a/spec/asynciterable/throw-spec.ts +++ b/spec/asynciterable/throw-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { throwError } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { throwError } from 'ix/asynciterable/index.js'; test('AsyncIterable#throw throws', async () => { const xs = throwError(new Error()); diff --git a/spec/asynciterable/toarray-spec.ts b/spec/asynciterable/toarray-spec.ts index 964c2d62..2a0942ae 100644 --- a/spec/asynciterable/toarray-spec.ts +++ b/spec/asynciterable/toarray-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { empty, as, toArray } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { empty, as, toArray } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#toArray some', async () => { const xs = [42, 25, 39]; diff --git a/spec/asynciterable/tomap-spec.ts b/spec/asynciterable/tomap-spec.ts index 9c0d4e2d..319f9189 100644 --- a/spec/asynciterable/tomap-spec.ts +++ b/spec/asynciterable/tomap-spec.ts @@ -1,5 +1,5 @@ -import '../asynciterablehelpers'; -import { of, toMap } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { of, toMap } from 'ix/asynciterable/index.js'; test('AsyncIterable#toMap stores values', async () => { const xs = of(1, 4); diff --git a/spec/asynciterable/tonodestream-spec.ts b/spec/asynciterable/tonodestream-spec.ts index c5220176..71ec810c 100644 --- a/spec/asynciterable/tonodestream-spec.ts +++ b/spec/asynciterable/tonodestream-spec.ts @@ -1,7 +1,7 @@ -import '../asynciterablehelpers'; -import { as } from 'ix/asynciterable'; -import { AsyncIterableReadable } from 'ix/Ix.node'; -import { map, toNodeStream } from 'ix/asynciterable/operators/index.node'; +import '../asynciterablehelpers.js'; +import { as } from 'ix/asynciterable/index.js'; +import { AsyncIterableReadable } from 'ix/Ix.node.js'; +import { map, toNodeStream } from 'ix/asynciterable/operators/index.node.js'; // eslint-disable-next-line consistent-return (() => { diff --git a/spec/asynciterable/toobservable-spec.ts b/spec/asynciterable/toobservable-spec.ts index 6be3e372..58690d47 100644 --- a/spec/asynciterable/toobservable-spec.ts +++ b/spec/asynciterable/toobservable-spec.ts @@ -1,8 +1,8 @@ -import '../asynciterablehelpers'; -import { symbolObservable } from 'ix/Ix'; -import { empty, as, of, throwError, toArray, toObservable } from 'ix/asynciterable'; +import '../asynciterablehelpers.js'; +import { symbolObservable } from 'ix/Ix.js'; +import { empty, as, of, throwError, toArray, toObservable } from 'ix/asynciterable/index.js'; import { Observable as RxJSObservable, from as RxJSObservableFrom } from 'rxjs'; -import { Observable, PartialObserver } from '../../src/observer'; +import { Observable, PartialObserver } from '../../src/observer.js'; test('AsyncIterable#toObservable empty', async () => { const xs = empty(); diff --git a/spec/asynciterable/toset-spec.ts b/spec/asynciterable/toset-spec.ts index e45e1eb7..92f5f0ac 100644 --- a/spec/asynciterable/toset-spec.ts +++ b/spec/asynciterable/toset-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { empty, as, toSet } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { empty, as, toSet } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#toSet non-empty', async () => { const xs = [1, 2, 3, 4, 5]; diff --git a/spec/asynciterable/whiledo-spec.ts b/spec/asynciterable/whiledo-spec.ts index 58e8cb42..0b906b49 100644 --- a/spec/asynciterable/whiledo-spec.ts +++ b/spec/asynciterable/whiledo-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../asynciterablehelpers'; -import { defer, of, whileDo } from 'ix/asynciterable'; -import { tap } from 'ix/asynciterable/operators'; +import { hasNext, noNext } from '../asynciterablehelpers.js'; +import { defer, of, whileDo } from 'ix/asynciterable/index.js'; +import { tap } from 'ix/asynciterable/operators/index.js'; test('AsyncIterable#whileDo some', async () => { let x = 5; diff --git a/spec/asynciterable/zip-spec.ts b/spec/asynciterable/zip-spec.ts index 93788b3e..cd01d9ff 100644 --- a/spec/asynciterable/zip-spec.ts +++ b/spec/asynciterable/zip-spec.ts @@ -1,6 +1,6 @@ -import '../asynciterablehelpers'; -import { of, throwError, zip } from 'ix/asynciterable'; -import { sequenceEqual } from 'ix/iterable'; +import '../asynciterablehelpers.js'; +import { of, throwError, zip } from 'ix/asynciterable/index.js'; +import { sequenceEqual } from 'ix/iterable/index.js'; test('AsyncIterable#zip equal length', async () => { const xs = of(1, 2, 3); diff --git a/spec/asynciterablehelpers.ts b/spec/asynciterablehelpers.ts index a87ea5e5..24e12cfb 100644 --- a/spec/asynciterablehelpers.ts +++ b/spec/asynciterablehelpers.ts @@ -1,6 +1,6 @@ -import './Ix'; -import { AsyncIterableX } from 'ix/asynciterable'; -import { Observer, PartialObserver } from '../src/observer'; +import './Ix.js'; +import { Observer, PartialObserver } from '../src/observer.js'; +import { AsyncIterableX } from 'ix/asynciterable/asynciterablex.js'; export async function hasNext(source: AsyncIterator, expected: T) { await expect(source.next()).resolves.toEqual({ done: false, value: expected }); diff --git a/spec/bundle/asynciterable.as.js b/spec/bundle/asynciterable.as.js new file mode 100644 index 00000000..95e1b29d --- /dev/null +++ b/spec/bundle/asynciterable.as.js @@ -0,0 +1,3 @@ +import { as } from 'ix/asynciterable/asynciterablex.js'; + +console.log(as); diff --git a/spec/bundle/asynciterable.flatmap.js b/spec/bundle/asynciterable.flatmap.js new file mode 100644 index 00000000..e05b1802 --- /dev/null +++ b/spec/bundle/asynciterable.flatmap.js @@ -0,0 +1,3 @@ +import { flatMap } from 'ix/asynciterable/operators/flatmap.js'; + +console.log(flatMap); diff --git a/spec/bundle/asynciterable.from.js b/spec/bundle/asynciterable.from.js new file mode 100644 index 00000000..6f7cea54 --- /dev/null +++ b/spec/bundle/asynciterable.from.js @@ -0,0 +1,3 @@ +import { from } from 'ix/asynciterable/asynciterablex.js'; + +console.log(from); diff --git a/spec/bundle/asynciterable.js b/spec/bundle/asynciterable.js new file mode 100644 index 00000000..9adf36fc --- /dev/null +++ b/spec/bundle/asynciterable.js @@ -0,0 +1,3 @@ +import { AsyncIterableX } from 'ix/asynciterable/asynciterablex.js'; + +console.log(AsyncIterableX); diff --git a/spec/bundle/asynciterable.of.js b/spec/bundle/asynciterable.of.js new file mode 100644 index 00000000..204db061 --- /dev/null +++ b/spec/bundle/asynciterable.of.js @@ -0,0 +1,3 @@ +import { of } from 'ix/asynciterable/of.js'; + +console.log(of); diff --git a/spec/bundle/iterable.as.js b/spec/bundle/iterable.as.js new file mode 100644 index 00000000..b9dd896f --- /dev/null +++ b/spec/bundle/iterable.as.js @@ -0,0 +1,3 @@ +import { as } from 'ix/iterable/iterablex.js'; + +console.log(as); diff --git a/spec/bundle/iterable.flatmap.js b/spec/bundle/iterable.flatmap.js new file mode 100644 index 00000000..d7a36891 --- /dev/null +++ b/spec/bundle/iterable.flatmap.js @@ -0,0 +1,3 @@ +import { flatMap } from 'ix/iterable/operators/flatmap.js'; + +console.log(flatMap); diff --git a/spec/bundle/iterable.from.js b/spec/bundle/iterable.from.js new file mode 100644 index 00000000..48a6e00e --- /dev/null +++ b/spec/bundle/iterable.from.js @@ -0,0 +1,3 @@ +import { from } from 'ix/iterable/iterablex.js'; + +console.log(from); diff --git a/spec/bundle/iterable.js b/spec/bundle/iterable.js new file mode 100644 index 00000000..006728d2 --- /dev/null +++ b/spec/bundle/iterable.js @@ -0,0 +1,3 @@ +import { IterableX } from 'ix/iterable/iterablex.js'; + +console.log(IterableX); diff --git a/spec/bundle/iterable.of.js b/spec/bundle/iterable.of.js new file mode 100644 index 00000000..e7f093cf --- /dev/null +++ b/spec/bundle/iterable.of.js @@ -0,0 +1,3 @@ +import { of } from 'ix/iterable/of.js'; + +console.log(of); diff --git a/spec/iterable-operators/buffer-spec.ts b/spec/iterable-operators/buffer-spec.ts index a974295e..22e639ca 100644 --- a/spec/iterable-operators/buffer-spec.ts +++ b/spec/iterable-operators/buffer-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { buffer } from 'ix/iterable/operators'; -import { empty, range, sequenceEqual, toArray } from 'ix/iterable'; +import { buffer } from 'ix/iterable/operators/index.js'; +import { empty, range, sequenceEqual, toArray } from 'ix/iterable/index.js'; test('Iterable#buffer no skip non-full buffer', () => { const rng = range(0, 10); diff --git a/spec/iterable-operators/catcherror-spec.ts b/spec/iterable-operators/catcherror-spec.ts index 7b7a7a89..8dd8220d 100644 --- a/spec/iterable-operators/catcherror-spec.ts +++ b/spec/iterable-operators/catcherror-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { of, range, sequenceEqual, single, throwError } from 'ix/iterable'; -import { catchError } from 'ix/iterable/operators'; +import { of, range, sequenceEqual, single, throwError } from 'ix/iterable/index.js'; +import { catchError } from 'ix/iterable/operators/index.js'; test('Iterable#catchError error catches', () => { const err = new Error(); diff --git a/spec/iterable-operators/concatall-spec.ts b/spec/iterable-operators/concatall-spec.ts index 424e89a1..66a74eee 100644 --- a/spec/iterable-operators/concatall-spec.ts +++ b/spec/iterable-operators/concatall-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { of, range, sequenceEqual } from 'ix/iterable'; -import { concatAll, map, tap } from 'ix/iterable/operators'; +import { of, range, sequenceEqual } from 'ix/iterable/index.js'; +import { concatAll, map, tap } from 'ix/iterable/operators/index.js'; test('Iterable#concat concatAll behavior', () => { const res = of(of(1, 2, 3), of(4, 5)).pipe(concatAll()); diff --git a/spec/iterable-operators/defaultifempty-spec.ts b/spec/iterable-operators/defaultifempty-spec.ts index 7c689162..19de6b1c 100644 --- a/spec/iterable-operators/defaultifempty-spec.ts +++ b/spec/iterable-operators/defaultifempty-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { defaultIfEmpty } from 'ix/iterable/operators'; -import { empty, throwError } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { defaultIfEmpty } from 'ix/iterable/operators/index.js'; +import { empty, throwError } from 'ix/iterable/index.js'; test('Iterable#defaultIfEmpty with empty', () => { const xs = empty(); diff --git a/spec/iterable-operators/distinct-spec.ts b/spec/iterable-operators/distinct-spec.ts index c79ea149..78ccef60 100644 --- a/spec/iterable-operators/distinct-spec.ts +++ b/spec/iterable-operators/distinct-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { range, sequenceEqual } from 'ix/iterable'; -import { distinct } from 'ix/iterable/operators'; +import { range, sequenceEqual } from 'ix/iterable/index.js'; +import { distinct } from 'ix/iterable/operators/index.js'; test('Iterable#distinct selector', () => { const src = range(0, 10); diff --git a/spec/iterable-operators/distinctuntilchanged-spec.ts b/spec/iterable-operators/distinctuntilchanged-spec.ts index d8e38fc7..dfab7252 100644 --- a/spec/iterable-operators/distinctuntilchanged-spec.ts +++ b/spec/iterable-operators/distinctuntilchanged-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { sequenceEqual } from 'ix/iterable'; -import { distinctUntilChanged } from 'ix/iterable/operators'; +import { sequenceEqual } from 'ix/iterable/index.js'; +import { distinctUntilChanged } from 'ix/iterable/operators/index.js'; test('Iterable#distinctUntilChanged no selector', () => { const res = distinctUntilChanged()([1, 2, 2, 3, 3, 3, 2, 2, 1]); diff --git a/spec/iterable-operators/dowhile-spec.ts b/spec/iterable-operators/dowhile-spec.ts index 88972560..8a3438f7 100644 --- a/spec/iterable-operators/dowhile-spec.ts +++ b/spec/iterable-operators/dowhile-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { tap, doWhile } from 'ix/iterable/operators'; -import { defer, sequenceEqual, toArray } from 'ix/iterable'; +import { tap, doWhile } from 'ix/iterable/operators/index.js'; +import { defer, sequenceEqual, toArray } from 'ix/iterable/index.js'; test('Iterable#doWhile some', () => { let x = 5; diff --git a/spec/iterable-operators/endwith-spec.ts b/spec/iterable-operators/endwith-spec.ts index d1ec2083..90cb0618 100644 --- a/spec/iterable-operators/endwith-spec.ts +++ b/spec/iterable-operators/endwith-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { endWith } from 'ix/iterable/operators'; -import { range, sequenceEqual } from 'ix/iterable'; +import { endWith } from 'ix/iterable/operators/index.js'; +import { range, sequenceEqual } from 'ix/iterable/index.js'; test('Iterable#endWith adds to end', () => { const e = range(0, 5); diff --git a/spec/iterable-operators/except-spec.ts b/spec/iterable-operators/except-spec.ts index a8bfc2dc..30a06d01 100644 --- a/spec/iterable-operators/except-spec.ts +++ b/spec/iterable-operators/except-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { except } from 'ix/iterable/operators'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { except } from 'ix/iterable/operators/index.js'; test('Iterable#except with default comparer', () => { const xs = [1, 2, 3]; diff --git a/spec/iterable-operators/expand-spec.ts b/spec/iterable-operators/expand-spec.ts index 4804c9b6..c6b96f5f 100644 --- a/spec/iterable-operators/expand-spec.ts +++ b/spec/iterable-operators/expand-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { expand, take } from 'ix/iterable/operators'; -import { range, sequenceEqual } from 'ix/iterable'; +import { expand, take } from 'ix/iterable/operators/index.js'; +import { range, sequenceEqual } from 'ix/iterable/index.js'; test('Iterable#expand with single return behavior', () => { const src = expand((x) => [x + 1])([0]); diff --git a/spec/iterable-operators/filter-spec.ts b/spec/iterable-operators/filter-spec.ts index a1e1c369..ebba18e7 100644 --- a/spec/iterable-operators/filter-spec.ts +++ b/spec/iterable-operators/filter-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { filter } from 'ix/iterable/operators'; -import { empty, throwError } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { filter } from 'ix/iterable/operators/index.js'; +import { empty, throwError } from 'ix/iterable/index.js'; test('Iterable#filter', () => { const xs = [8, 5, 7, 4, 6, 9, 2, 1, 0]; diff --git a/spec/iterable-operators/finally-spec.ts b/spec/iterable-operators/finally-spec.ts index ede387ba..37a25d73 100644 --- a/spec/iterable-operators/finally-spec.ts +++ b/spec/iterable-operators/finally-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { finalize } from 'ix/iterable/operators'; -import { range, throwError } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { finalize } from 'ix/iterable/operators/index.js'; +import { range, throwError } from 'ix/iterable/index.js'; test('Iterable#finally defers behavior', () => { let done = false; diff --git a/spec/iterable-operators/flat-spec.ts b/spec/iterable-operators/flat-spec.ts index 7179dfee..7ac36d70 100644 --- a/spec/iterable-operators/flat-spec.ts +++ b/spec/iterable-operators/flat-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { toArray } from 'ix/iterable'; -import { flat } from 'ix/iterable/operators'; +import { toArray } from 'ix/iterable/index.js'; +import { flat } from 'ix/iterable/operators/index.js'; function compareArrays(fst: Iterable, snd: Iterable) { expect(fst.toString()).toBe(snd.toString()); diff --git a/spec/iterable-operators/flatmap-spec.ts b/spec/iterable-operators/flatmap-spec.ts index 586c0829..645430b1 100644 --- a/spec/iterable-operators/flatmap-spec.ts +++ b/spec/iterable-operators/flatmap-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { flatMap } from 'ix/iterable/operators'; -import { as, range, throwError } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { flatMap } from 'ix/iterable/operators/index.js'; +import { as, range, throwError } from 'ix/iterable/index.js'; test('Iterable#flatMap with range', () => { const xs = as([1, 2, 3]); diff --git a/spec/iterable-operators/foreach-spec.ts b/spec/iterable-operators/foreach-spec.ts index c0c2cf98..1023b1e1 100644 --- a/spec/iterable-operators/foreach-spec.ts +++ b/spec/iterable-operators/foreach-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { range } from 'ix/iterable'; +import { range } from 'ix/iterable/index.js'; test('Iterable#forEach', () => { let n = 0; diff --git a/spec/iterable-operators/groupby-spec.ts b/spec/iterable-operators/groupby-spec.ts index 64f8ecd1..94f882b7 100644 --- a/spec/iterable-operators/groupby-spec.ts +++ b/spec/iterable-operators/groupby-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { as, empty } from 'ix/iterable'; -import { groupBy } from 'ix/iterable/operators'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { as, empty } from 'ix/iterable/index.js'; +import { groupBy } from 'ix/iterable/operators/index.js'; test('Iterable#groupBy normal', () => { const xs = [ diff --git a/spec/iterable-operators/groupjoin-spec.ts b/spec/iterable-operators/groupjoin-spec.ts index f1843412..fc71589c 100644 --- a/spec/iterable-operators/groupjoin-spec.ts +++ b/spec/iterable-operators/groupjoin-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { groupJoin } from 'ix/iterable/operators'; -import { as, reduce, throwError } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { groupJoin } from 'ix/iterable/operators/index.js'; +import { as, reduce, throwError } from 'ix/iterable/index.js'; test('Iterable#groupJoin all groups have values', () => { const xs = [0, 1, 2]; diff --git a/spec/iterable-operators/ignoreelements-spec.ts b/spec/iterable-operators/ignoreelements-spec.ts index 1ffffeaf..e90538d6 100644 --- a/spec/iterable-operators/ignoreelements-spec.ts +++ b/spec/iterable-operators/ignoreelements-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { range } from 'ix/iterable'; -import { ignoreElements, take, tap } from 'ix/iterable/operators'; +import { range } from 'ix/iterable/index.js'; +import { ignoreElements, take, tap } from 'ix/iterable/operators/index.js'; test('Iterable#ignoreElements has side effects', () => { let n = 0; diff --git a/spec/iterable-operators/includes-spec.ts b/spec/iterable-operators/includes-spec.ts index b662151e..ccb72ee8 100644 --- a/spec/iterable-operators/includes-spec.ts +++ b/spec/iterable-operators/includes-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { includes } from 'ix/iterable'; +import { includes } from 'ix/iterable/index.js'; test('Iterable#includes includes', () => { const xs = [1, 2, 3, 4, 5]; diff --git a/spec/iterable-operators/innerjoin-spec.ts b/spec/iterable-operators/innerjoin-spec.ts index b5e12945..c2386cad 100644 --- a/spec/iterable-operators/innerjoin-spec.ts +++ b/spec/iterable-operators/innerjoin-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { as, throwError } from 'ix/iterable'; -import { innerJoin } from 'ix/iterable/operators'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { as, throwError } from 'ix/iterable/index.js'; +import { innerJoin } from 'ix/iterable/operators/index.js'; test('Iterable#innerJoin normal', () => { const xs = [0, 1, 2]; diff --git a/spec/iterable-operators/intersect-spec.ts b/spec/iterable-operators/intersect-spec.ts index 1e736719..af8ef61f 100644 --- a/spec/iterable-operators/intersect-spec.ts +++ b/spec/iterable-operators/intersect-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { as } from 'ix/iterable'; -import { intersect } from 'ix/iterable/operators'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { as } from 'ix/iterable/index.js'; +import { intersect } from 'ix/iterable/operators/index.js'; test('Iterable#union with default comparer', () => { const xs = [1, 2, 3]; diff --git a/spec/iterable-operators/isempty-spec.ts b/spec/iterable-operators/isempty-spec.ts index ab7583a6..7f6dd74b 100644 --- a/spec/iterable-operators/isempty-spec.ts +++ b/spec/iterable-operators/isempty-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { empty, isEmpty } from 'ix/iterable'; +import { empty, isEmpty } from 'ix/iterable/index.js'; test('Iterable#isEmpty empty', () => { expect(isEmpty(empty())).toBeTruthy(); diff --git a/spec/iterable-operators/map-spec.ts b/spec/iterable-operators/map-spec.ts index 71c29fd5..8017648f 100644 --- a/spec/iterable-operators/map-spec.ts +++ b/spec/iterable-operators/map-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { as, empty, sequenceEqual } from 'ix/iterable'; -import { map } from 'ix/iterable/operators'; +import { as, empty, sequenceEqual } from 'ix/iterable/index.js'; +import { map } from 'ix/iterable/operators/index.js'; test('Iterable#map single element', () => { const source = [{ name: 'Frank', custId: 98088 }]; diff --git a/spec/iterable-operators/memoize-spec.ts b/spec/iterable-operators/memoize-spec.ts index 3e456812..aff7cdaf 100644 --- a/spec/iterable-operators/memoize-spec.ts +++ b/spec/iterable-operators/memoize-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { memoize } from 'ix/iterable/operators'; -import { concat, range, throwError } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { memoize } from 'ix/iterable/operators/index.js'; +import { concat, range, throwError } from 'ix/iterable/index.js'; function* tick(t: (x: number) => void) { let i = 0; diff --git a/spec/iterable-operators/orderby-spec.ts b/spec/iterable-operators/orderby-spec.ts index 7d1bc325..021e9ad1 100644 --- a/spec/iterable-operators/orderby-spec.ts +++ b/spec/iterable-operators/orderby-spec.ts @@ -1,6 +1,11 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { as } from 'ix/iterable'; -import { orderBy, orderByDescending, thenBy, thenByDescending } from 'ix/iterable/operators'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { as } from 'ix/iterable/index.js'; +import { + orderBy, + orderByDescending, + thenBy, + thenByDescending, +} from 'ix/iterable/operators/index.js'; test('Iterable#orderBy normal ordering', () => { const xs = [2, 6, 1, 5, 7, 8, 9, 3, 4, 0]; diff --git a/spec/iterable-operators/pairwise-spec.ts b/spec/iterable-operators/pairwise-spec.ts index f1396a74..097fcc3e 100644 --- a/spec/iterable-operators/pairwise-spec.ts +++ b/spec/iterable-operators/pairwise-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { pairwise } from 'ix/iterable/operators'; -import { as, empty, of } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { pairwise } from 'ix/iterable/operators/index.js'; +import { as, empty, of } from 'ix/iterable/index.js'; test('Iterable#pairwise empty return empty', () => { const xs = empty(); diff --git a/spec/iterable-operators/pluck-spec.ts b/spec/iterable-operators/pluck-spec.ts index c9671b6f..dcdcbca5 100644 --- a/spec/iterable-operators/pluck-spec.ts +++ b/spec/iterable-operators/pluck-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { pluck } from 'ix/iterable/operators'; -import { as, of } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { pluck } from 'ix/iterable/operators/index.js'; +import { as, of } from 'ix/iterable/index.js'; test('Iterable#pluck simple prop', () => { const xs = of({ prop: 1 }, { prop: 2 }, { prop: 3 }, { prop: 4 }, { prop: 5 }); diff --git a/spec/iterable-operators/publish-spec.ts b/spec/iterable-operators/publish-spec.ts index ffbe5182..4dbbada8 100644 --- a/spec/iterable-operators/publish-spec.ts +++ b/spec/iterable-operators/publish-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { publish } from 'ix/iterable/operators'; -import { concat, range, throwError } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { publish } from 'ix/iterable/operators/index.js'; +import { concat, range, throwError } from 'ix/iterable/index.js'; function* tick(t: (x: number) => void) { let i = 0; diff --git a/spec/iterable-operators/repeat-spec.ts b/spec/iterable-operators/repeat-spec.ts index 0a29581a..183375f3 100644 --- a/spec/iterable-operators/repeat-spec.ts +++ b/spec/iterable-operators/repeat-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { as, every, sum, toArray } from 'ix/iterable'; -import { buffer, map, take, tap, repeat } from 'ix/iterable/operators'; +import { as, every, sum, toArray } from 'ix/iterable/index.js'; +import { buffer, map, take, tap, repeat } from 'ix/iterable/operators/index.js'; test('Iterable#repeat infinite', () => { let i = 0; diff --git a/spec/iterable-operators/retry-spec.ts b/spec/iterable-operators/retry-spec.ts index 3473238d..34d4c402 100644 --- a/spec/iterable-operators/retry-spec.ts +++ b/spec/iterable-operators/retry-spec.ts @@ -1,6 +1,6 @@ -import { hasNext } from '../iterablehelpers'; -import { retry } from 'ix/iterable/operators'; -import { concat, range, throwError, sequenceEqual } from 'ix/iterable'; +import { hasNext } from '../iterablehelpers.js'; +import { retry } from 'ix/iterable/operators/index.js'; +import { concat, range, throwError, sequenceEqual } from 'ix/iterable/index.js'; test('Iterable#retry infinite no errors does not retry', () => { const xs = range(0, 10); diff --git a/spec/iterable-operators/reverse-spec.ts b/spec/iterable-operators/reverse-spec.ts index 5a00619f..29e55a7d 100644 --- a/spec/iterable-operators/reverse-spec.ts +++ b/spec/iterable-operators/reverse-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { empty, throwError } from 'ix/iterable'; -import { reverse } from 'ix/iterable/operators'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { empty, throwError } from 'ix/iterable/index.js'; +import { reverse } from 'ix/iterable/operators/index.js'; test('Iterable#reverse empty', () => { const xs = empty(); diff --git a/spec/iterable-operators/scan-spec.ts b/spec/iterable-operators/scan-spec.ts index 4e6c4ea1..48138b5e 100644 --- a/spec/iterable-operators/scan-spec.ts +++ b/spec/iterable-operators/scan-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { scan } from 'ix/iterable/operators'; -import { of, range } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { scan } from 'ix/iterable/operators/index.js'; +import { of, range } from 'ix/iterable/index.js'; test('Iterable#scan no seed', () => { const res = range(0, 5).pipe(scan({ callback: (n, x, i) => n + x + i })); diff --git a/spec/iterable-operators/scanright-spec.ts b/spec/iterable-operators/scanright-spec.ts index d45610ca..e761f613 100644 --- a/spec/iterable-operators/scanright-spec.ts +++ b/spec/iterable-operators/scanright-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { scanRight } from 'ix/iterable/operators'; -import { range } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { scanRight } from 'ix/iterable/operators/index.js'; +import { range } from 'ix/iterable/index.js'; test('Iterable#scanRight no seed', () => { const res = range(0, 5).pipe(scanRight({ callback: (n, x, i) => n + x + i })); diff --git a/spec/iterable-operators/sequenceequal-spec.ts b/spec/iterable-operators/sequenceequal-spec.ts index 09bfcedc..cc71b2f7 100644 --- a/spec/iterable-operators/sequenceequal-spec.ts +++ b/spec/iterable-operators/sequenceequal-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { empty, throwError, sequenceEqual } from 'ix/iterable'; +import { empty, throwError, sequenceEqual } from 'ix/iterable/index.js'; test('Iterable#sequenceEqual sequence equals itself', () => { const xs = [1, 2, 3]; diff --git a/spec/iterable-operators/share-spec.ts b/spec/iterable-operators/share-spec.ts index d980116a..f1b003f4 100644 --- a/spec/iterable-operators/share-spec.ts +++ b/spec/iterable-operators/share-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { share } from 'ix/iterable/operators'; -import { range } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { share } from 'ix/iterable/operators/index.js'; +import { range } from 'ix/iterable/index.js'; test('Iterable#share single', () => { const rng = range(0, 5).pipe(share()); diff --git a/spec/iterable-operators/skip-spec.ts b/spec/iterable-operators/skip-spec.ts index 5183172b..cbd9593e 100644 --- a/spec/iterable-operators/skip-spec.ts +++ b/spec/iterable-operators/skip-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { as, throwError } from 'ix/iterable'; -import { skip } from 'ix/iterable/operators'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { as, throwError } from 'ix/iterable/index.js'; +import { skip } from 'ix/iterable/operators/index.js'; test('Iterable#skip skips some', () => { const xs = [1, 2, 3, 4]; diff --git a/spec/iterable-operators/skiplast-spec.ts b/spec/iterable-operators/skiplast-spec.ts index 23dffdd8..dddfd82a 100644 --- a/spec/iterable-operators/skiplast-spec.ts +++ b/spec/iterable-operators/skiplast-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { empty, range, sequenceEqual } from 'ix/iterable'; -import { take, skipLast } from 'ix/iterable/operators'; +import { empty, range, sequenceEqual } from 'ix/iterable/index.js'; +import { take, skipLast } from 'ix/iterable/operators/index.js'; test('Iterable#skipLast empty', () => { const e = empty(); diff --git a/spec/iterable-operators/skipwhile-spec.ts b/spec/iterable-operators/skipwhile-spec.ts index fca8737e..9f828ceb 100644 --- a/spec/iterable-operators/skipwhile-spec.ts +++ b/spec/iterable-operators/skipwhile-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { skipWhile } from 'ix/iterable/operators'; -import { as } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { skipWhile } from 'ix/iterable/operators/index.js'; +import { as } from 'ix/iterable/index.js'; test('Iterable#skipWhile skips some', () => { const xs = [1, 2, 3, 4]; diff --git a/spec/iterable-operators/slice-spec.ts b/spec/iterable-operators/slice-spec.ts index 37519606..19bcedd2 100644 --- a/spec/iterable-operators/slice-spec.ts +++ b/spec/iterable-operators/slice-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { slice } from 'ix/iterable/operators'; -import { as } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { slice } from 'ix/iterable/operators/index.js'; +import { as } from 'ix/iterable/index.js'; test('Iterable#slice slices at zero with one item', () => { const xs = as([1, 2, 3, 4]); diff --git a/spec/iterable-operators/startwith-spec.ts b/spec/iterable-operators/startwith-spec.ts index 3bcef971..35493314 100644 --- a/spec/iterable-operators/startwith-spec.ts +++ b/spec/iterable-operators/startwith-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { take, tap, startWith } from 'ix/iterable/operators'; -import { range, sequenceEqual, toArray } from 'ix/iterable'; +import { take, tap, startWith } from 'ix/iterable/operators/index.js'; +import { range, sequenceEqual, toArray } from 'ix/iterable/index.js'; test('Iterable#startWith adds to beginning', () => { const e = range(1, 5); diff --git a/spec/iterable-operators/take-spec.ts b/spec/iterable-operators/take-spec.ts index fbc14265..9f40c7cb 100644 --- a/spec/iterable-operators/take-spec.ts +++ b/spec/iterable-operators/take-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { take } from 'ix/iterable/operators'; -import { throwError } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { take } from 'ix/iterable/operators/index.js'; +import { throwError } from 'ix/iterable/index.js'; test('Iterable#take zero or less takes nothing', () => { const xs = [1, 2, 3, 4]; diff --git a/spec/iterable-operators/takelast-spec.ts b/spec/iterable-operators/takelast-spec.ts index 1e70926c..3cf6c19c 100644 --- a/spec/iterable-operators/takelast-spec.ts +++ b/spec/iterable-operators/takelast-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { range, sequenceEqual } from 'ix/iterable'; -import { skip, takeLast } from 'ix/iterable/operators'; +import { range, sequenceEqual } from 'ix/iterable/index.js'; +import { skip, takeLast } from 'ix/iterable/operators/index.js'; test('Iterable#takeLast none', () => { const res = range(1, 5).pipe(takeLast(0)); diff --git a/spec/iterable-operators/takewhile-spec.ts b/spec/iterable-operators/takewhile-spec.ts index 45d61f27..8fd11893 100644 --- a/spec/iterable-operators/takewhile-spec.ts +++ b/spec/iterable-operators/takewhile-spec.ts @@ -1,6 +1,6 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { takeWhile } from 'ix/iterable/operators'; -import { as } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { takeWhile } from 'ix/iterable/operators/index.js'; +import { as } from 'ix/iterable/index.js'; test('Iterable#takeWhile some match', () => { const xs = [1, 2, 3, 4]; diff --git a/spec/iterable-operators/tap-spec.ts b/spec/iterable-operators/tap-spec.ts index 3a7aec08..6ff8ea46 100644 --- a/spec/iterable-operators/tap-spec.ts +++ b/spec/iterable-operators/tap-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { range, throwError } from 'ix/iterable'; -import { tap } from 'ix/iterable/operators'; +import { range, throwError } from 'ix/iterable/index.js'; +import { tap } from 'ix/iterable/operators/index.js'; test('Itearble#tap next', () => { let n = 0; diff --git a/spec/iterable-operators/union-spec.ts b/spec/iterable-operators/union-spec.ts index 5032711e..4824a42b 100644 --- a/spec/iterable-operators/union-spec.ts +++ b/spec/iterable-operators/union-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { union } from 'ix/iterable/operators'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { union } from 'ix/iterable/operators/index.js'; test('Iterable#union with default comparer', () => { const xs = [1, 2, 3]; diff --git a/spec/iterable/as-spec.ts b/spec/iterable/as-spec.ts index e9131449..d43c37f2 100644 --- a/spec/iterable/as-spec.ts +++ b/spec/iterable/as-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { IterableX } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { IterableX } from 'ix/iterable/index.js'; test('Iterable#as from array/iterable', () => { const xs = [1, 2, 3]; diff --git a/spec/iterable/average-spec.ts b/spec/iterable/average-spec.ts index 9f6ae713..89cbbf99 100644 --- a/spec/iterable/average-spec.ts +++ b/spec/iterable/average-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { average } from 'ix/iterable'; +import { average } from 'ix/iterable/index.js'; test('Iterable#average empty', () => { expect(() => average([])).toThrow(); diff --git a/spec/iterable/catcherror-spec.ts b/spec/iterable/catcherror-spec.ts index bb086026..bd675516 100644 --- a/spec/iterable/catcherror-spec.ts +++ b/spec/iterable/catcherror-spec.ts @@ -1,5 +1,5 @@ -import { hasNext } from '../iterablehelpers'; -import { catchError, concat, range, sequenceEqual, throwError } from 'ix/iterable'; +import { hasNext } from '../iterablehelpers.js'; +import { catchError, concat, range, sequenceEqual, throwError } from 'ix/iterable/index.js'; test('Iterable.catchError with no errors', () => { const res = catchError(range(0, 5), range(5, 5)); diff --git a/spec/iterable/concat-spec.ts b/spec/iterable/concat-spec.ts index 6a4ad15f..7f1a46de 100644 --- a/spec/iterable/concat-spec.ts +++ b/spec/iterable/concat-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { concat, of, sequenceEqual } from 'ix/iterable'; +import { concat, of, sequenceEqual } from 'ix/iterable/index.js'; test('Iterable#concat behavior', () => { const res = concat([1, 2, 3], [4, 5]); diff --git a/spec/iterable/count-spec.ts b/spec/iterable/count-spec.ts index a52e6aac..cad24919 100644 --- a/spec/iterable/count-spec.ts +++ b/spec/iterable/count-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { count } from 'ix/iterable'; +import { count } from 'ix/iterable/index.js'; test('Iterable#count no predicate empty', () => { expect(count([])).toBe(0); diff --git a/spec/iterable/defer-spec.ts b/spec/iterable/defer-spec.ts index 8bd82eea..4ab82a0c 100644 --- a/spec/iterable/defer-spec.ts +++ b/spec/iterable/defer-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { defer, range, sequenceEqual } from 'ix/iterable'; +import { defer, range, sequenceEqual } from 'ix/iterable/index.js'; test('Iterable#defer defers side effects', () => { let i = 0; diff --git a/spec/iterable/elementat-spec.ts b/spec/iterable/elementat-spec.ts index c63df2c2..800ec926 100644 --- a/spec/iterable/elementat-spec.ts +++ b/spec/iterable/elementat-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { elementAt } from 'ix/iterable'; +import { elementAt } from 'ix/iterable/index.js'; test('Iterable#elementAt empty returns undefined', () => { const res = elementAt([], 0); diff --git a/spec/iterable/empty-spec.ts b/spec/iterable/empty-spec.ts index 41ada7c0..be5159d0 100644 --- a/spec/iterable/empty-spec.ts +++ b/spec/iterable/empty-spec.ts @@ -1,5 +1,5 @@ -import { noNext } from '../iterablehelpers'; -import { empty } from 'ix/iterable'; +import { noNext } from '../iterablehelpers.js'; +import { empty } from 'ix/iterable/index.js'; test('Iterable#empty empty', () => { const xs = empty(); diff --git a/spec/iterable/every-spec.ts b/spec/iterable/every-spec.ts index 91cc85d7..0d6a6c7e 100644 --- a/spec/iterable/every-spec.ts +++ b/spec/iterable/every-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { every } from 'ix/iterable'; +import { every } from 'ix/iterable/index.js'; test('Iterable#every some true', () => { const res = every([1, 2, 3, 4], { predicate: (x) => x % 2 === 0 }); diff --git a/spec/iterable/first-spec.ts b/spec/iterable/first-spec.ts index b0ea3eb1..5b4d6a39 100644 --- a/spec/iterable/first-spec.ts +++ b/spec/iterable/first-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { first } from 'ix/iterable'; +import { first } from 'ix/iterable/index.js'; test('Iterable#first empty returns undefined', () => { expect(first([])).toBeUndefined(); diff --git a/spec/iterable/from-spec.ts b/spec/iterable/from-spec.ts index e20c2877..7a9796c7 100644 --- a/spec/iterable/from-spec.ts +++ b/spec/iterable/from-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { from } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { from } from 'ix/iterable/index.js'; function* getData() { yield 1; diff --git a/spec/iterable/iif-spec.ts b/spec/iterable/iif-spec.ts index a52de7a8..a9b2a900 100644 --- a/spec/iterable/iif-spec.ts +++ b/spec/iterable/iif-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { iif, single, isEmpty } from 'ix/iterable'; +import { iif, single, isEmpty } from 'ix/iterable/index.js'; test('Iterable#if then and else', () => { let x = 5; diff --git a/spec/iterable/inference-spec.ts b/spec/iterable/inference-spec.ts index a2d2d269..c2938bc2 100644 --- a/spec/iterable/inference-spec.ts +++ b/spec/iterable/inference-spec.ts @@ -1,8 +1,8 @@ import '../iterablehelpers'; -import '../asynciterablehelpers'; +import '../asynciterablehelpers.js'; import { PassThrough } from 'stream'; -import { of } from 'ix/iterable'; -import { map } from 'ix/iterable/operators/index.node'; +import { of } from 'ix/iterable/index.js'; +import { map } from 'ix/iterable/operators/index.node.js'; const TEST_DOM_STREAMS = process.env.TEST_DOM_STREAMS === 'true'; const TEST_NODE_STREAMS = process.env.TEST_NODE_STREAMS === 'true'; diff --git a/spec/iterable/last-spec.ts b/spec/iterable/last-spec.ts index dba1db07..459a03d4 100644 --- a/spec/iterable/last-spec.ts +++ b/spec/iterable/last-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { last } from 'ix/iterable'; +import { last } from 'ix/iterable/index.js'; test('Iterable#last empty returns undefined', () => { expect(last([])).toBeUndefined(); diff --git a/spec/iterable/max-spec.ts b/spec/iterable/max-spec.ts index 5fe0d967..5dbe0d54 100644 --- a/spec/iterable/max-spec.ts +++ b/spec/iterable/max-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { max } from 'ix/iterable'; +import { max } from 'ix/iterable/index.js'; test('Itearble#max laws', () => { const xs = [5, 3, 1, 2, 4]; diff --git a/spec/iterable/maxby-spec.ts b/spec/iterable/maxby-spec.ts index 1228942a..0e6836f4 100644 --- a/spec/iterable/maxby-spec.ts +++ b/spec/iterable/maxby-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { empty, maxBy, sequenceEqual } from 'ix/iterable'; +import { empty, maxBy, sequenceEqual } from 'ix/iterable/index.js'; test('Iterable#maxBy', () => { const source = [3, 5, 7, 6, 4, 2]; diff --git a/spec/iterable/min-spec.ts b/spec/iterable/min-spec.ts index ef3ba6bc..68a0fe01 100644 --- a/spec/iterable/min-spec.ts +++ b/spec/iterable/min-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { min } from 'ix/iterable'; +import { min } from 'ix/iterable/index.js'; test('Itearble#min laws', () => { const xs = [5, 3, 1, 2, 4]; diff --git a/spec/iterable/minby-spec.ts b/spec/iterable/minby-spec.ts index bfb4895a..38d795ca 100644 --- a/spec/iterable/minby-spec.ts +++ b/spec/iterable/minby-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { empty, minBy, sequenceEqual } from 'ix/iterable'; +import { empty, minBy, sequenceEqual } from 'ix/iterable/index.js'; test('Iterable#minBy', () => { const source = [3, 5, 7, 6, 4, 2]; diff --git a/spec/iterable/of-spec.ts b/spec/iterable/of-spec.ts index c3719b34..a340f86c 100644 --- a/spec/iterable/of-spec.ts +++ b/spec/iterable/of-spec.ts @@ -1,5 +1,5 @@ -import { hasNext, noNext } from '../iterablehelpers'; -import { of } from 'ix/iterable'; +import { hasNext, noNext } from '../iterablehelpers.js'; +import { of } from 'ix/iterable/index.js'; test('Iterable#of behavior', () => { const res = of(1, 2, 3); diff --git a/spec/iterable/onerrorresumenext-spec.ts b/spec/iterable/onerrorresumenext-spec.ts index 83fb9035..54faf18f 100644 --- a/spec/iterable/onerrorresumenext-spec.ts +++ b/spec/iterable/onerrorresumenext-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { concat, sequenceEqual, throwError, onErrorResumeNext } from 'ix/iterable'; +import { concat, sequenceEqual, throwError, onErrorResumeNext } from 'ix/iterable/index.js'; test('Iterable#onErrorResumeNext continues without error', () => { const xs = [1, 2]; diff --git a/spec/iterable/range-spec.ts b/spec/iterable/range-spec.ts index f5c8537d..c37e2fb1 100644 --- a/spec/iterable/range-spec.ts +++ b/spec/iterable/range-spec.ts @@ -1,6 +1,14 @@ import '../iterablehelpers'; -import { elementAt, first, isEmpty, last, range, sequenceEqual, toArray } from 'ix/iterable'; -import { skip, take } from 'ix/iterable/operators'; +import { + elementAt, + first, + isEmpty, + last, + range, + sequenceEqual, + toArray, +} from 'ix/iterable/index.js'; +import { skip, take } from 'ix/iterable/operators/index.js'; test('Iterable#range produces correct sequence', () => { const rangeSequence = range(1, 100); diff --git a/spec/iterable/reduce-spec.ts b/spec/iterable/reduce-spec.ts index 081ce9fd..60a8b36e 100644 --- a/spec/iterable/reduce-spec.ts +++ b/spec/iterable/reduce-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { of, empty, reduce } from 'ix/iterable'; +import { of, empty, reduce } from 'ix/iterable/index.js'; test('Iterable#reduce no seed', () => { const xs = of(0, 1, 2, 3, 4); diff --git a/spec/iterable/reduceright-spec.ts b/spec/iterable/reduceright-spec.ts index c7a3e911..b68edce4 100644 --- a/spec/iterable/reduceright-spec.ts +++ b/spec/iterable/reduceright-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { of, empty, reduceRight } from 'ix/iterable'; +import { of, empty, reduceRight } from 'ix/iterable/index.js'; test('Iterable#reduceRight no seed', () => { const xs = of(0, 1, 2, 3, 4); diff --git a/spec/iterable/repeatvalue-spec.ts b/spec/iterable/repeatvalue-spec.ts index ddd73522..9c7faac3 100644 --- a/spec/iterable/repeatvalue-spec.ts +++ b/spec/iterable/repeatvalue-spec.ts @@ -1,5 +1,5 @@ -import '../iterablehelpers'; -import { skip, take } from 'ix/iterable/operators'; +import '../iterablehelpers.js'; +import { skip, take } from 'ix/iterable/operators/index.js'; import { repeatValue, count, @@ -10,7 +10,7 @@ import { last, sequenceEqual, toArray, -} from 'ix/iterable'; +} from 'ix/iterable/index.js'; test('Iterable#repeatValue produce correct sequence', () => { const repeatSequence = repeatValue(1, 100); diff --git a/spec/iterable/single-spec.ts b/spec/iterable/single-spec.ts index af5150de..90934e61 100644 --- a/spec/iterable/single-spec.ts +++ b/spec/iterable/single-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { single } from 'ix/iterable'; +import { single } from 'ix/iterable/index.js'; test('Iterable#single no predicate empty returns undefined', () => { const res = single([]); diff --git a/spec/iterable/some-spec.ts b/spec/iterable/some-spec.ts index edb28edb..9d7efaf0 100644 --- a/spec/iterable/some-spec.ts +++ b/spec/iterable/some-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { some } from 'ix/iterable'; +import { some } from 'ix/iterable/index.js'; test('Iterable#some some true', () => { const res = some([1, 2, 3, 4], { predicate: (x) => x % 2 === 0 }); diff --git a/spec/iterable/sum-spec.ts b/spec/iterable/sum-spec.ts index ac8be80c..05c07eb3 100644 --- a/spec/iterable/sum-spec.ts +++ b/spec/iterable/sum-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { sum } from 'ix/iterable'; +import { sum } from 'ix/iterable/index.js'; test('Iterable#sum laws', () => { const xs = [1, 2, 3]; diff --git a/spec/iterable/throw-spec.ts b/spec/iterable/throw-spec.ts index c3f4bc26..0a2d5044 100644 --- a/spec/iterable/throw-spec.ts +++ b/spec/iterable/throw-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { throwError } from 'ix/iterable'; +import { throwError } from 'ix/iterable/index.js'; test('Iterable#throw throws', () => { const xs = throwError(new Error()); diff --git a/spec/iterable/toarray-spec.ts b/spec/iterable/toarray-spec.ts index cef0280f..10e19f77 100644 --- a/spec/iterable/toarray-spec.ts +++ b/spec/iterable/toarray-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { sequenceEqual, toArray } from 'ix/iterable'; +import { sequenceEqual, toArray } from 'ix/iterable/index.js'; test('Iterable#toArray some', () => { const xs = [42, 25, 39]; diff --git a/spec/iterable/todomstream-spec.ts b/spec/iterable/todomstream-spec.ts index 17239b99..3f3ac04f 100644 --- a/spec/iterable/todomstream-spec.ts +++ b/spec/iterable/todomstream-spec.ts @@ -1,7 +1,7 @@ import '../iterablehelpers'; -import '../asynciterablehelpers'; -import { as } from 'ix/iterable'; -import { map, toDOMStream } from 'ix/iterable/operators'; +import '../asynciterablehelpers.js'; +import { as } from 'ix/iterable/index.js'; +import { map, toDOMStream } from 'ix/iterable/operators/index.js'; // eslint-disable-next-line consistent-return (() => { diff --git a/spec/iterable/tomap-spec.ts b/spec/iterable/tomap-spec.ts index be987d62..8494c7a1 100644 --- a/spec/iterable/tomap-spec.ts +++ b/spec/iterable/tomap-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { toMap } from 'ix/iterable'; +import { toMap } from 'ix/iterable/index.js'; test('Iterable#toMap stores values', () => { const res = toMap([1, 4], { keySelector: (x) => x % 2 }); diff --git a/spec/iterable/tonodestream-spec.ts b/spec/iterable/tonodestream-spec.ts index c7941d86..4d15a862 100644 --- a/spec/iterable/tonodestream-spec.ts +++ b/spec/iterable/tonodestream-spec.ts @@ -1,9 +1,9 @@ import '../iterablehelpers'; -import '../asynciterablehelpers'; -import { as as asIterable } from 'ix/iterable'; -import { as as asAsyncIterable } from 'ix/asynciterable'; -import { map, toNodeStream } from 'ix/iterable/operators/index.node'; -import { IterableReadable } from 'ix/Ix.node'; +import '../asynciterablehelpers.js'; +import { as as asIterable } from 'ix/iterable/index.js'; +import { as as asAsyncIterable } from 'ix/asynciterable/index.js'; +import { map, toNodeStream } from 'ix/iterable/operators/index.node.js'; +import { IterableReadable } from 'ix/Ix.node.js'; // eslint-disable-next-line consistent-return (() => { diff --git a/spec/iterable/toset-spec.ts b/spec/iterable/toset-spec.ts index 2ac9c00a..6f601fc6 100644 --- a/spec/iterable/toset-spec.ts +++ b/spec/iterable/toset-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { sequenceEqual, toSet } from 'ix/iterable'; +import { sequenceEqual, toSet } from 'ix/iterable/index.js'; test('Iterable#toSet non-empty', () => { const xs = [1, 2, 3, 4, 5]; diff --git a/spec/iterable/whiledo-spec.ts b/spec/iterable/whiledo-spec.ts index b8ce01ad..7135394e 100644 --- a/spec/iterable/whiledo-spec.ts +++ b/spec/iterable/whiledo-spec.ts @@ -1,6 +1,6 @@ import '../iterablehelpers'; -import { tap } from 'ix/iterable/operators'; -import { defer, sequenceEqual, toArray, whileDo } from 'ix/iterable'; +import { tap } from 'ix/iterable/operators/index.js'; +import { defer, sequenceEqual, toArray, whileDo } from 'ix/iterable/index.js'; test('Iterable#while some', () => { let x = 5; diff --git a/spec/iterable/zip-spec.ts b/spec/iterable/zip-spec.ts index 6d674d9b..0f309789 100644 --- a/spec/iterable/zip-spec.ts +++ b/spec/iterable/zip-spec.ts @@ -1,5 +1,5 @@ import '../iterablehelpers'; -import { sequenceEqual, throwError, zip } from 'ix/iterable'; +import { sequenceEqual, throwError, zip } from 'ix/iterable/index.js'; test('Iterable#zip equal length', () => { const xs = [1, 2, 3]; diff --git a/spec/iterablehelpers.ts b/spec/iterablehelpers.ts index 91910853..26f972d0 100644 --- a/spec/iterablehelpers.ts +++ b/spec/iterablehelpers.ts @@ -1,4 +1,4 @@ -import './Ix'; +import './Ix.js'; export function hasNext(source: Iterator, expected: T) { const { done, value } = source.next(); diff --git a/spec/tsconfig.json b/spec/tsconfig.json index 860a6e17..40edf352 100644 --- a/spec/tsconfig.json +++ b/spec/tsconfig.json @@ -1,27 +1,25 @@ { "extends": "../tsconfig.json", - "include": [ - "../src/**/*.ts", - "../spec/**/*.ts" - ], + "include": ["../src/**/*.ts", "../test/**/*.ts"], "compilerOptions": { - "target": "ESNEXT", - "module": "CommonJS", + "target": "ESNext", + "module": "NodeNext", + "rootDir": "../", "allowJs": true, "declaration": false, "declarationMap": false, "importHelpers": false, + "noEmit": true, "noEmitHelpers": false, "noEmitOnError": false, - "sourceMap": false, + "sourceMap": true, "inlineSources": false, "inlineSourceMap": false, "downlevelIteration": false, "baseUrl": "../", "paths": { - "ix/*": [ - "src/*" - ] + "ix": ["src/Ix.node"], + "ix/*": ["src/*"] } } } diff --git a/spec/tsconfig/tsconfig.base.json b/spec/tsconfig/tsconfig.base.json index 2ca75c5b..eaff8850 100644 --- a/spec/tsconfig/tsconfig.base.json +++ b/spec/tsconfig/tsconfig.base.json @@ -1,23 +1,27 @@ +// Base TypeScript configuration for all targets' tests { -// "extends": "../../tsconfig.json", "extends": "../../tsconfig/tsconfig.base.json", "compilerOptions": { - "target": "esnext", - "module": "commonjs", + "target": "ESNext", + "module": "CommonJS", + "rootDir": "../../", "allowJs": true, "declaration": false, - "declarationMap": false, "importHelpers": false, + "noEmit": false, "noEmitHelpers": false, "noEmitOnError": false, - "sourceMap": false, + "sourceMap": true, "inlineSources": false, "inlineSourceMap": false, "downlevelIteration": false, + "esModuleInterop": true, "baseUrl": "../../", "paths": { "ix": ["src/Ix.node"], "ix/*": ["src/*"] } - } + }, + "exclude": ["../../node_modules"], + "include": ["../../src/**/*.ts"] } diff --git a/spec/tsconfig/tsconfig.es2015.cjs.json b/spec/tsconfig/tsconfig.es2015.cjs.json index d240803e..d6ba8b84 100644 --- a/spec/tsconfig/tsconfig.es2015.cjs.json +++ b/spec/tsconfig/tsconfig.es2015.cjs.json @@ -1,13 +1,8 @@ -//Compiler configuaration to build the ES2015 CommonJS target +// TypeScript configuration for the ES2015 CommonJS target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ES2015", - "module": "commonjs", - "paths": { - "ix/*": [ - "targets/es2015/cjs/*" - ] - } + "target": "ESNext", + "module": "CommonJS" } -} \ No newline at end of file +} diff --git a/spec/tsconfig/tsconfig.es2015.esm.json b/spec/tsconfig/tsconfig.es2015.esm.json index 8289cc8f..54644251 100644 --- a/spec/tsconfig/tsconfig.es2015.esm.json +++ b/spec/tsconfig/tsconfig.es2015.esm.json @@ -1,13 +1,8 @@ -//Compiler configuaration to build the ES2015 ESModules target +// TypeScript configuration for the ES2015 ESModules target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ES2015", - "module": "es2015", - "paths": { - "ix/*": [ - "targets/es2015/esm/*" - ] - } + "target": "ESNext", + "module": "NodeNext" } -} \ No newline at end of file +} diff --git a/spec/tsconfig/tsconfig.es2015.umd.json b/spec/tsconfig/tsconfig.es2015.umd.json index d87f05d6..2c8ab3f2 100644 --- a/spec/tsconfig/tsconfig.es2015.umd.json +++ b/spec/tsconfig/tsconfig.es2015.umd.json @@ -1,17 +1,11 @@ -//Compiler configuaration to build the ES2015 Closure Compiler target +// TypeScript configuration for the ES2015 Closure Compiler target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ES2015", - "module": "es2015", + "target": "ESNext", + "module": "UMD", "declaration": false, "noEmitHelpers": true, - "importHelpers": true, - "esModuleInterop": true, - "paths": { - "ix/*": [ - "targets/es2015/umd/*" - ] - } + "importHelpers": true } } diff --git a/spec/tsconfig/tsconfig.es5.cjs.json b/spec/tsconfig/tsconfig.es5.cjs.json index d4345e94..ee71902d 100644 --- a/spec/tsconfig/tsconfig.es5.cjs.json +++ b/spec/tsconfig/tsconfig.es5.cjs.json @@ -1,14 +1,9 @@ -//Compiler configuaration to build the ES5 CommonJS target +// TypeScript configuration for the ES5 CommonJS target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ES5", - "module": "commonjs", - "downlevelIteration": true, - "paths": { - "ix/*": [ - "targets/es5/cjs/*" - ] - } + "target": "ESNext", + "module": "CommonJS", + "downlevelIteration": true } -} \ No newline at end of file +} diff --git a/spec/tsconfig/tsconfig.es5.esm.json b/spec/tsconfig/tsconfig.es5.esm.json index 6cf113a4..f4ad0017 100644 --- a/spec/tsconfig/tsconfig.es5.esm.json +++ b/spec/tsconfig/tsconfig.es5.esm.json @@ -1,14 +1,9 @@ -//Compiler configuaration to build the ES5 ESModules target +// TypeScript configuration for the ES5 ESModules target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ES5", - "module": "es2015", - "downlevelIteration": true, - "paths": { - "ix/*": [ - "targets/es5/esm/*" - ] - } + "target": "ESNext", + "module": "NodeNext", + "downlevelIteration": true } -} \ No newline at end of file +} diff --git a/spec/tsconfig/tsconfig.es5.umd.json b/spec/tsconfig/tsconfig.es5.umd.json index 97eae36d..40e0479e 100644 --- a/spec/tsconfig/tsconfig.es5.umd.json +++ b/spec/tsconfig/tsconfig.es5.umd.json @@ -1,18 +1,12 @@ -//Compiler configuaration to build the ES5 Closure Compiler target +// TypeScript configuration for the ES5 Closure Compiler target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ES5", - "module": "es2015", + "target": "ESNext", + "module": "UMD", "declaration": false, "noEmitHelpers": true, "importHelpers": true, - "esModuleInterop": true, - "downlevelIteration": true, - "paths": { - "ix/*": [ - "targets/es5/umd/*" - ] - } + "downlevelIteration": true } } diff --git a/spec/tsconfig/tsconfig.esnext.cjs.json b/spec/tsconfig/tsconfig.esnext.cjs.json index a974112a..bdaa1001 100644 --- a/spec/tsconfig/tsconfig.esnext.cjs.json +++ b/spec/tsconfig/tsconfig.esnext.cjs.json @@ -1,13 +1,8 @@ -//Compiler configuaration to build the ESNext CommonJS target +// TypeScript configuration for the ESNext CommonJS target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ESNEXT", - "module": "commonjs", - "paths": { - "ix/*": [ - "targets/esnext/cjs/*" - ] - } + "target": "ESNext", + "module": "CommonJS" } -} \ No newline at end of file +} diff --git a/spec/tsconfig/tsconfig.esnext.esm.json b/spec/tsconfig/tsconfig.esnext.esm.json index 6841fa23..b3b6f5af 100644 --- a/spec/tsconfig/tsconfig.esnext.esm.json +++ b/spec/tsconfig/tsconfig.esnext.esm.json @@ -1,13 +1,8 @@ -//Compiler configuaration to build the ESNext ESModules target +// TypeScript configuration for the ESNext ESModules target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ESNEXT", - "module": "es2015", - "paths": { - "ix/*": [ - "targets/esnext/esm/*" - ] - } + "target": "ESNext", + "module": "NodeNext" } -} \ No newline at end of file +} diff --git a/spec/tsconfig/tsconfig.esnext.umd.json b/spec/tsconfig/tsconfig.esnext.umd.json index 9cc69006..95db1d16 100644 --- a/spec/tsconfig/tsconfig.esnext.umd.json +++ b/spec/tsconfig/tsconfig.esnext.umd.json @@ -1,17 +1,11 @@ -//Compiler configuaration to build the ESNext Closure Compiler target +// TypeScript configuration for the ESNext Closure Compiler target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ESNEXT", - "module": "es2015", + "target": "ESNext", + "module": "UMD", "declaration": false, "noEmitHelpers": true, - "importHelpers": true, - "esModuleInterop": true, - "paths": { - "ix/*": [ - "targets/esnext/umd/*" - ] - } + "importHelpers": true } } diff --git a/spec/tsconfig/tsconfig.ix.json b/spec/tsconfig/tsconfig.ix.json index b7687c5e..8f193c30 100644 --- a/spec/tsconfig/tsconfig.ix.json +++ b/spec/tsconfig/tsconfig.ix.json @@ -1,13 +1,8 @@ -//Compiler configuaration to build the ES5 CommonJS target +// TypeScript configuration for the apache-arrow target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "esnext", - "module": "commonjs", - "paths": { - "ix/*": [ - "targets/ix" - ] - } + "target": "ESNext", + "module": "CommonJS" } -} \ No newline at end of file +} diff --git a/spec/tsconfig/tsconfig.src.json b/spec/tsconfig/tsconfig.src.json index 06f7e43a..97c43c9e 100644 --- a/spec/tsconfig/tsconfig.src.json +++ b/spec/tsconfig/tsconfig.src.json @@ -1,13 +1,8 @@ -//Compiler configuaration to build the ES5 CommonJS target +// TypeScript configuration for the source target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "esnext", - "module": "commonjs", - "paths": { - "ix/*": [ - "src/*" - ] - } + "target": "ESNext", + "module": "NodeNext" } -} \ No newline at end of file +} diff --git a/spec/tsconfig/tsconfig.ts.json b/spec/tsconfig/tsconfig.ts.json index 6ad00870..ad2c9047 100644 --- a/spec/tsconfig/tsconfig.ts.json +++ b/spec/tsconfig/tsconfig.ts.json @@ -1,13 +1,8 @@ -//Compiler configuaration to build the ES5 CommonJS target +// TypeScript configuration for the TypeScript target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "esnext", - "module": "commonjs", - "paths": { - "ix/*": [ - "targets/ts/*" - ] - } + "target": "ESNext", + "module": "NodeNext" } -} \ No newline at end of file +} diff --git a/src/Ix.dom.asynciterable.operators.ts b/src/Ix.dom.asynciterable.operators.ts index 9450568e..ad843a40 100644 --- a/src/Ix.dom.asynciterable.operators.ts +++ b/src/Ix.dom.asynciterable.operators.ts @@ -1 +1 @@ -export * from './asynciterable/operators/index'; +export * from './asynciterable/operators/index.js'; diff --git a/src/Ix.dom.asynciterable.ts b/src/Ix.dom.asynciterable.ts index 894432c2..8aa95053 100644 --- a/src/Ix.dom.asynciterable.ts +++ b/src/Ix.dom.asynciterable.ts @@ -1 +1 @@ -export * from './asynciterable/index'; +export * from './asynciterable/index.js'; diff --git a/src/Ix.dom.iterable.operators.ts b/src/Ix.dom.iterable.operators.ts index 85e43f50..1cceb443 100644 --- a/src/Ix.dom.iterable.operators.ts +++ b/src/Ix.dom.iterable.operators.ts @@ -1 +1 @@ -export * from './iterable/operators/index'; +export * from './iterable/operators/index.js'; diff --git a/src/Ix.dom.iterable.ts b/src/Ix.dom.iterable.ts index bb84439b..b21980b0 100644 --- a/src/Ix.dom.iterable.ts +++ b/src/Ix.dom.iterable.ts @@ -1 +1 @@ -export * from './iterable/index'; +export * from './iterable/index.js'; diff --git a/src/Ix.dom.ts b/src/Ix.dom.ts index facbb975..1de5fdf3 100644 --- a/src/Ix.dom.ts +++ b/src/Ix.dom.ts @@ -1,18 +1,21 @@ // Manually re-export because closure-compiler doesn't support `export * from X` syntax yet /** @ignore */ -export * from './Ix'; -export { default } from './Ix'; -export { symbolObservable } from './Ix'; -export { OrderedIterable } from './Ix'; -export { OrderedIterableBase } from './Ix'; -export { OrderedAsyncIterable } from './Ix'; -export { OrderedAsyncIterableBase } from './Ix'; -export { AsyncSink, Iterable, AsyncIterable } from './Ix'; +export * from './Ix.js'; +export { default } from './Ix.js'; +export { symbolObservable } from './Ix.js'; +export { OrderedIterable } from './Ix.js'; +export { OrderedIterableBase } from './Ix.js'; +export { OrderedAsyncIterable } from './Ix.js'; +export { OrderedAsyncIterableBase } from './Ix.js'; +export { AsyncSink, Iterable, AsyncIterable } from './Ix.js'; -export { ReadableBYOBStreamOptions, ReadableByteStreamOptions } from './asynciterable/todomstream'; +export { + ReadableBYOBStreamOptions, + ReadableByteStreamOptions, +} from './asynciterable/todomstream.js'; export { fromDOMStream, AsyncIterableReadableStream, AsyncIterableReadableByteStream, -} from './asynciterable/fromdomstream'; +} from './asynciterable/fromdomstream.js'; diff --git a/src/Ix.node.ts b/src/Ix.node.ts index 47719932..09cf2d35 100644 --- a/src/Ix.node.ts +++ b/src/Ix.node.ts @@ -1,205 +1,205 @@ /** @ignore */ -export * from './Ix'; +export * from './Ix.js'; -export { IterableReadable } from './iterable/tonodestream'; -export { AsyncIterableReadable } from './asynciterable/tonodestream'; +export { IterableReadable } from './iterable/tonodestream.js'; +export { AsyncIterableReadable } from './asynciterable/tonodestream.js'; /** @ignore */ -export { asAsyncIterable, AsyncIterableTransform } from './asynciterable/asasynciterable'; -export { fromNodeStream, ReadableStreamAsyncIterable } from './asynciterable/fromnodestream'; +export { asAsyncIterable, AsyncIterableTransform } from './asynciterable/asasynciterable.js'; +export { fromNodeStream, ReadableStreamAsyncIterable } from './asynciterable/fromnodestream.js'; -import './add/asynciterable-operators/average'; -import './add/asynciterable-operators/batch'; -import './add/asynciterable-operators/buffer'; -import './add/asynciterable-operators/catcherror'; -import './add/asynciterable-operators/combinelatest'; -import './add/asynciterable-operators/concatall'; -import './add/asynciterable-operators/concatmap'; -import './add/asynciterable-operators/concat'; -import './add/asynciterable-operators/count'; -import './add/asynciterable-operators/debounce'; -import './add/asynciterable-operators/defaultifempty'; -import './add/asynciterable-operators/delayeach'; -import './add/asynciterable-operators/delay'; -import './add/asynciterable-operators/distinct'; -import './add/asynciterable-operators/distinctuntilchanged'; -import './add/asynciterable-operators/dowhile'; -import './add/asynciterable-operators/elementat'; -import './add/asynciterable-operators/endwith'; -import './add/asynciterable-operators/every'; -import './add/asynciterable-operators/except'; -import './add/asynciterable-operators/expand'; -import './add/asynciterable-operators/filter'; -import './add/asynciterable-operators/finalize'; -import './add/asynciterable-operators/findindex'; -import './add/asynciterable-operators/find'; -import './add/asynciterable-operators/first'; -import './add/asynciterable-operators/flatmap'; -import './add/asynciterable-operators/flat'; -import './add/asynciterable-operators/forkjoin'; -import './add/asynciterable-operators/groupby'; -import './add/asynciterable-operators/groupjoin'; +import './add/asynciterable-operators/average.js'; +import './add/asynciterable-operators/batch.js'; +import './add/asynciterable-operators/buffer.js'; +import './add/asynciterable-operators/catcherror.js'; +import './add/asynciterable-operators/combinelatest.js'; +import './add/asynciterable-operators/concatall.js'; +import './add/asynciterable-operators/concatmap.js'; +import './add/asynciterable-operators/concat.js'; +import './add/asynciterable-operators/count.js'; +import './add/asynciterable-operators/debounce.js'; +import './add/asynciterable-operators/defaultifempty.js'; +import './add/asynciterable-operators/delayeach.js'; +import './add/asynciterable-operators/delay.js'; +import './add/asynciterable-operators/distinct.js'; +import './add/asynciterable-operators/distinctuntilchanged.js'; +import './add/asynciterable-operators/dowhile.js'; +import './add/asynciterable-operators/elementat.js'; +import './add/asynciterable-operators/endwith.js'; +import './add/asynciterable-operators/every.js'; +import './add/asynciterable-operators/except.js'; +import './add/asynciterable-operators/expand.js'; +import './add/asynciterable-operators/filter.js'; +import './add/asynciterable-operators/finalize.js'; +import './add/asynciterable-operators/findindex.js'; +import './add/asynciterable-operators/find.js'; +import './add/asynciterable-operators/first.js'; +import './add/asynciterable-operators/flatmap.js'; +import './add/asynciterable-operators/flat.js'; +import './add/asynciterable-operators/forkjoin.js'; +import './add/asynciterable-operators/groupby.js'; +import './add/asynciterable-operators/groupjoin.js'; import './add/asynciterable-operators/ignoreelements'; import './add/asynciterable-operators/includes'; -import './add/asynciterable-operators/innerjoin'; -import './add/asynciterable-operators/intersect'; -import './add/asynciterable-operators/isempty'; -import './add/asynciterable-operators/last'; -import './add/asynciterable-operators/map'; -import './add/asynciterable-operators/maxby'; -import './add/asynciterable-operators/max'; -import './add/asynciterable-operators/memoize'; -import './add/asynciterable-operators/mergeall'; -import './add/asynciterable-operators/merge'; -import './add/asynciterable-operators/minby'; -import './add/asynciterable-operators/min'; -import './add/asynciterable-operators/onerrorresumenext'; -import './add/asynciterable-operators/orderby'; -import './add/asynciterable-operators/pairwise'; -import './add/asynciterable-operators/pluck'; -import './add/asynciterable-operators/publish'; -import './add/asynciterable-operators/switchall'; -import './add/asynciterable-operators/switchmap'; -import './add/asynciterable-operators/reduceright'; -import './add/asynciterable-operators/reduce'; -import './add/asynciterable-operators/repeat'; -import './add/asynciterable-operators/retry'; -import './add/asynciterable-operators/reverse'; -import './add/asynciterable-operators/scanright'; -import './add/asynciterable-operators/scan'; -import './add/asynciterable-operators/sequenceequal'; -import './add/asynciterable-operators/share'; -import './add/asynciterable-operators/single'; -import './add/asynciterable-operators/skiplast'; -import './add/asynciterable-operators/skip'; -import './add/asynciterable-operators/skipuntil'; -import './add/asynciterable-operators/skipwhile'; -import './add/asynciterable-operators/slice'; -import './add/asynciterable-operators/some'; -import './add/asynciterable-operators/startwith'; -import './add/asynciterable-operators/sum'; -import './add/asynciterable-operators/takelast'; -import './add/asynciterable-operators/take'; -import './add/asynciterable-operators/takeuntil'; -import './add/asynciterable-operators/takewhile'; -import './add/asynciterable-operators/tap'; -import './add/asynciterable-operators/throttle'; -import './add/asynciterable-operators/toarray'; -import './add/asynciterable-operators/todomstream'; -import './add/asynciterable-operators/tomap'; -import './add/asynciterable-operators/tonodestream'; -import './add/asynciterable-operators/toobservable'; -import './add/asynciterable-operators/toset'; -import './add/asynciterable-operators/union'; -import './add/asynciterable-operators/withlatestfrom'; -import './add/asynciterable-operators/zip'; -import './add/iterable/catchall'; -import './add/iterable/catcherror'; -import './add/iterable/concat'; -import './add/iterable/create'; -import './add/iterable/defer'; -import './add/iterable/empty'; -import './add/iterable/generate'; -import './add/iterable/iif'; -import './add/iterable/of'; -import './add/iterable/onerrorresumenext'; -import './add/iterable/range'; -import './add/iterable/repeat'; -import './add/iterable/throwerror'; -import './add/iterable/while'; -import './add/iterable/zip'; -import './add/iterable-operators/average'; -import './add/iterable-operators/buffer'; -import './add/iterable-operators/catcherror'; -import './add/iterable-operators/concatall'; -import './add/iterable-operators/concat'; -import './add/iterable-operators/count'; -import './add/iterable-operators/defaultifempty'; -import './add/iterable-operators/distinct'; -import './add/iterable-operators/distinctuntilchanged'; -import './add/iterable-operators/dowhile'; -import './add/iterable-operators/elementat'; -import './add/iterable-operators/endwith'; -import './add/iterable-operators/every'; -import './add/iterable-operators/except'; -import './add/iterable-operators/expand'; -import './add/iterable-operators/filter'; -import './add/iterable-operators/finalize'; -import './add/iterable-operators/findindex'; -import './add/iterable-operators/find'; -import './add/iterable-operators/first'; -import './add/iterable-operators/flatmap'; -import './add/iterable-operators/flat'; -import './add/iterable-operators/groupby'; -import './add/iterable-operators/groupjoin'; +import './add/asynciterable-operators/innerjoin.js'; +import './add/asynciterable-operators/intersect.js'; +import './add/asynciterable-operators/isempty.js'; +import './add/asynciterable-operators/last.js'; +import './add/asynciterable-operators/map.js'; +import './add/asynciterable-operators/maxby.js'; +import './add/asynciterable-operators/max.js'; +import './add/asynciterable-operators/memoize.js'; +import './add/asynciterable-operators/mergeall.js'; +import './add/asynciterable-operators/merge.js'; +import './add/asynciterable-operators/minby.js'; +import './add/asynciterable-operators/min.js'; +import './add/asynciterable-operators/onerrorresumenext.js'; +import './add/asynciterable-operators/orderby.js'; +import './add/asynciterable-operators/pairwise.js'; +import './add/asynciterable-operators/pluck.js'; +import './add/asynciterable-operators/publish.js'; +import './add/asynciterable-operators/switchall.js'; +import './add/asynciterable-operators/switchmap.js'; +import './add/asynciterable-operators/reduceright.js'; +import './add/asynciterable-operators/reduce.js'; +import './add/asynciterable-operators/repeat.js'; +import './add/asynciterable-operators/retry.js'; +import './add/asynciterable-operators/reverse.js'; +import './add/asynciterable-operators/scanright.js'; +import './add/asynciterable-operators/scan.js'; +import './add/asynciterable-operators/sequenceequal.js'; +import './add/asynciterable-operators/share.js'; +import './add/asynciterable-operators/single.js'; +import './add/asynciterable-operators/skiplast.js'; +import './add/asynciterable-operators/skip.js'; +import './add/asynciterable-operators/skipuntil.js'; +import './add/asynciterable-operators/skipwhile.js'; +import './add/asynciterable-operators/slice.js'; +import './add/asynciterable-operators/some.js'; +import './add/asynciterable-operators/startwith.js'; +import './add/asynciterable-operators/sum.js'; +import './add/asynciterable-operators/takelast.js'; +import './add/asynciterable-operators/take.js'; +import './add/asynciterable-operators/takeuntil.js'; +import './add/asynciterable-operators/takewhile.js'; +import './add/asynciterable-operators/tap.js'; +import './add/asynciterable-operators/throttle.js'; +import './add/asynciterable-operators/toarray.js'; +import './add/asynciterable-operators/todomstream.js'; +import './add/asynciterable-operators/tomap.js'; +import './add/asynciterable-operators/tonodestream.js'; +import './add/asynciterable-operators/toobservable.js'; +import './add/asynciterable-operators/toset.js'; +import './add/asynciterable-operators/union.js'; +import './add/asynciterable-operators/withlatestfrom.js'; +import './add/asynciterable-operators/zip.js'; +import './add/iterable/catchall.js'; +import './add/iterable/catcherror.js'; +import './add/iterable/concat.js'; +import './add/iterable/create.js'; +import './add/iterable/defer.js'; +import './add/iterable/empty.js'; +import './add/iterable/generate.js'; +import './add/iterable/iif.js'; +import './add/iterable/of.js'; +import './add/iterable/onerrorresumenext.js'; +import './add/iterable/range.js'; +import './add/iterable/repeat.js'; +import './add/iterable/throwerror.js'; +import './add/iterable/while.js'; +import './add/iterable/zip.js'; +import './add/iterable-operators/average.js'; +import './add/iterable-operators/buffer.js'; +import './add/iterable-operators/catcherror.js'; +import './add/iterable-operators/concatall.js'; +import './add/iterable-operators/concat.js'; +import './add/iterable-operators/count.js'; +import './add/iterable-operators/defaultifempty.js'; +import './add/iterable-operators/distinct.js'; +import './add/iterable-operators/distinctuntilchanged.js'; +import './add/iterable-operators/dowhile.js'; +import './add/iterable-operators/elementat.js'; +import './add/iterable-operators/endwith.js'; +import './add/iterable-operators/every.js'; +import './add/iterable-operators/except.js'; +import './add/iterable-operators/expand.js'; +import './add/iterable-operators/filter.js'; +import './add/iterable-operators/finalize.js'; +import './add/iterable-operators/findindex.js'; +import './add/iterable-operators/find.js'; +import './add/iterable-operators/first.js'; +import './add/iterable-operators/flatmap.js'; +import './add/iterable-operators/flat.js'; +import './add/iterable-operators/groupby.js'; +import './add/iterable-operators/groupjoin.js'; import './add/iterable-operators/ignoreelements'; import './add/iterable-operators/includes'; -import './add/iterable-operators/innerjoin'; -import './add/iterable-operators/intersect'; -import './add/iterable-operators/isempty'; -import './add/iterable-operators/last'; -import './add/iterable-operators/map'; -import './add/iterable-operators/maxby'; -import './add/iterable-operators/max'; -import './add/iterable-operators/memoize'; -import './add/iterable-operators/minby'; -import './add/iterable-operators/min'; -import './add/iterable-operators/onerrorresumenext'; -import './add/iterable-operators/orderby'; -import './add/iterable-operators/pairwise'; -import './add/iterable-operators/pluck'; -import './add/iterable-operators/publish'; -import './add/iterable-operators/reduceright'; -import './add/iterable-operators/reduce'; -import './add/iterable-operators/repeat'; -import './add/iterable-operators/retry'; -import './add/iterable-operators/reverse'; -import './add/iterable-operators/scanright'; -import './add/iterable-operators/scan'; -import './add/iterable-operators/sequenceequal'; -import './add/iterable-operators/share'; -import './add/iterable-operators/single'; -import './add/iterable-operators/skiplast'; -import './add/iterable-operators/skip'; -import './add/iterable-operators/skipwhile'; -import './add/iterable-operators/slice'; -import './add/iterable-operators/some'; -import './add/iterable-operators/startwith'; -import './add/iterable-operators/sum'; -import './add/iterable-operators/takelast'; -import './add/iterable-operators/take'; -import './add/iterable-operators/takewhile'; -import './add/iterable-operators/tap'; -import './add/iterable-operators/toarray'; -import './add/iterable-operators/todomstream'; -import './add/iterable-operators/tomap'; -import './add/iterable-operators/tonodestream'; -import './add/iterable-operators/toset'; -import './add/iterable-operators/union'; -import './add/iterable-operators/zip'; -import './add/asynciterable/asyncifyerrback'; -import './add/asynciterable/asyncify'; -import './add/asynciterable/catchall'; -import './add/asynciterable/catcherror'; -import './add/asynciterable/combinelatest'; -import './add/asynciterable/concat'; -import './add/asynciterable/create'; -import './add/asynciterable/defer'; -import './add/asynciterable/empty'; -import './add/asynciterable/forkjoin'; -import './add/asynciterable/fromdomstream'; -import './add/asynciterable/fromeventpattern'; -import './add/asynciterable/fromevent'; -import './add/asynciterable/fromnodestream'; -import './add/asynciterable/generatetime'; -import './add/asynciterable/generate'; -import './add/asynciterable/iif'; -import './add/asynciterable/merge'; -import './add/asynciterable/never'; -import './add/asynciterable/of'; -import './add/asynciterable/onerrorresumenext'; -import './add/asynciterable/race'; -import './add/asynciterable/range'; -import './add/asynciterable/repeat'; -import './add/asynciterable/throwerror'; -import './add/asynciterable/while'; -import './add/asynciterable/zip'; +import './add/iterable-operators/innerjoin.js'; +import './add/iterable-operators/intersect.js'; +import './add/iterable-operators/isempty.js'; +import './add/iterable-operators/last.js'; +import './add/iterable-operators/map.js'; +import './add/iterable-operators/maxby.js'; +import './add/iterable-operators/max.js'; +import './add/iterable-operators/memoize.js'; +import './add/iterable-operators/minby.js'; +import './add/iterable-operators/min.js'; +import './add/iterable-operators/onerrorresumenext.js'; +import './add/iterable-operators/orderby.js'; +import './add/iterable-operators/pairwise.js'; +import './add/iterable-operators/pluck.js'; +import './add/iterable-operators/publish.js'; +import './add/iterable-operators/reduceright.js'; +import './add/iterable-operators/reduce.js'; +import './add/iterable-operators/repeat.js'; +import './add/iterable-operators/retry.js'; +import './add/iterable-operators/reverse.js'; +import './add/iterable-operators/scanright.js'; +import './add/iterable-operators/scan.js'; +import './add/iterable-operators/sequenceequal.js'; +import './add/iterable-operators/share.js'; +import './add/iterable-operators/single.js'; +import './add/iterable-operators/skiplast.js'; +import './add/iterable-operators/skip.js'; +import './add/iterable-operators/skipwhile.js'; +import './add/iterable-operators/slice.js'; +import './add/iterable-operators/some.js'; +import './add/iterable-operators/startwith.js'; +import './add/iterable-operators/sum.js'; +import './add/iterable-operators/takelast.js'; +import './add/iterable-operators/take.js'; +import './add/iterable-operators/takewhile.js'; +import './add/iterable-operators/tap.js'; +import './add/iterable-operators/toarray.js'; +import './add/iterable-operators/todomstream.js'; +import './add/iterable-operators/tomap.js'; +import './add/iterable-operators/tonodestream.js'; +import './add/iterable-operators/toset.js'; +import './add/iterable-operators/union.js'; +import './add/iterable-operators/zip.js'; +import './add/asynciterable/asyncifyerrback.js'; +import './add/asynciterable/asyncify.js'; +import './add/asynciterable/catchall.js'; +import './add/asynciterable/catcherror.js'; +import './add/asynciterable/combinelatest.js'; +import './add/asynciterable/concat.js'; +import './add/asynciterable/create.js'; +import './add/asynciterable/defer.js'; +import './add/asynciterable/empty.js'; +import './add/asynciterable/forkjoin.js'; +import './add/asynciterable/fromdomstream.js'; +import './add/asynciterable/fromeventpattern.js'; +import './add/asynciterable/fromevent.js'; +import './add/asynciterable/fromnodestream.js'; +import './add/asynciterable/generatetime.js'; +import './add/asynciterable/generate.js'; +import './add/asynciterable/iif.js'; +import './add/asynciterable/merge.js'; +import './add/asynciterable/never.js'; +import './add/asynciterable/of.js'; +import './add/asynciterable/onerrorresumenext.js'; +import './add/asynciterable/race.js'; +import './add/asynciterable/range.js'; +import './add/asynciterable/repeat.js'; +import './add/asynciterable/throwerror.js'; +import './add/asynciterable/while.js'; +import './add/asynciterable/zip.js'; diff --git a/src/Ix.ts b/src/Ix.ts index b27078ec..13096dff 100644 --- a/src/Ix.ts +++ b/src/Ix.ts @@ -1,13 +1,13 @@ -import { AbortError } from './aborterror'; -import { IterableX } from './iterable/iterablex'; -import { observable } from './observer'; -import { AsyncIterableX, AsyncSink } from './asynciterable/asynciterablex'; -import { GroupedIterable as ImportedGroupedIterable } from './iterable/operators/groupby'; -import { GroupedAsyncIterable as ImportedGroupedAsyncIterable } from './asynciterable/operators/groupby'; -export { OrderedIterableX as OrderedIterable } from './iterable/operators/orderby'; -export { OrderedIterableBaseX as OrderedIterableBase } from './iterable/operators/orderby'; -export { OrderedAsyncIterableX as OrderedAsyncIterable } from './asynciterable/operators/orderby'; -export { OrderedAsyncIterableBaseX as OrderedAsyncIterableBase } from './asynciterable/operators/orderby'; +import { AbortError } from './aborterror.js'; +import { IterableX } from './iterable/iterablex.js'; +import { observable } from './observer.js'; +import { AsyncIterableX, AsyncSink } from './asynciterable/asynciterablex.js'; +import { GroupedIterable as ImportedGroupedIterable } from './iterable/operators/groupby.js'; +import { GroupedAsyncIterable as ImportedGroupedAsyncIterable } from './asynciterable/operators/groupby.js'; +export { OrderedIterableX as OrderedIterable } from './iterable/operators/orderby.js'; +export { OrderedIterableBaseX as OrderedIterableBase } from './iterable/operators/orderby.js'; +export { OrderedAsyncIterableX as OrderedAsyncIterable } from './asynciterable/operators/orderby.js'; +export { OrderedAsyncIterableBaseX as OrderedAsyncIterableBase } from './asynciterable/operators/orderby.js'; export { observable as symbolObservable }; export { AbortError, AsyncSink, IterableX as Iterable, AsyncIterableX as AsyncIterable }; diff --git a/src/aborterror.ts b/src/aborterror.ts index 824235fc..54bd824b 100644 --- a/src/aborterror.ts +++ b/src/aborterror.ts @@ -1,4 +1,4 @@ -import { isObject } from './util/isiterable'; +import { isObject } from './util/isiterable.js'; /** @ignore */ export class AbortError extends Error { diff --git a/src/add/asynciterable-operators/average.ts b/src/add/asynciterable-operators/average.ts index 17b968b3..bb5625e3 100644 --- a/src/add/asynciterable-operators/average.ts +++ b/src/add/asynciterable-operators/average.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { average } from '../../asynciterable/average'; -import { MathOptions } from '../../asynciterable/mathoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { average } from '../../asynciterable/average.js'; +import { MathOptions } from '../../asynciterable/mathoptions.js'; export function averageProto( this: AsyncIterable, diff --git a/src/add/asynciterable-operators/batch.ts b/src/add/asynciterable-operators/batch.ts index 69e8bde6..41f09a06 100644 --- a/src/add/asynciterable-operators/batch.ts +++ b/src/add/asynciterable-operators/batch.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { BatchAsyncIterable } from '../../asynciterable/operators/batch'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { BatchAsyncIterable } from '../../asynciterable/operators/batch.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/buffer.ts b/src/add/asynciterable-operators/buffer.ts index 61356b39..7878d012 100644 --- a/src/add/asynciterable-operators/buffer.ts +++ b/src/add/asynciterable-operators/buffer.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { buffer } from '../../asynciterable/operators/buffer'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { buffer } from '../../asynciterable/operators/buffer.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/catcherror.ts b/src/add/asynciterable-operators/catcherror.ts index ae31fb66..3af09ed3 100644 --- a/src/add/asynciterable-operators/catcherror.ts +++ b/src/add/asynciterable-operators/catcherror.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { catchError as _catchError } from '../../asynciterable/operators/catcherror'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { catchError as _catchError } from '../../asynciterable/operators/catcherror.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/combinelatest.ts b/src/add/asynciterable-operators/combinelatest.ts index b899a7ab..c6cf1497 100644 --- a/src/add/asynciterable-operators/combinelatest.ts +++ b/src/add/asynciterable-operators/combinelatest.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { combineLatest } from '../../asynciterable/combinelatest'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { combineLatest } from '../../asynciterable/combinelatest.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/concat.ts b/src/add/asynciterable-operators/concat.ts index 00c47902..c3eb893e 100644 --- a/src/add/asynciterable-operators/concat.ts +++ b/src/add/asynciterable-operators/concat.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { concat } from '../../asynciterable/concat'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { concat } from '../../asynciterable/concat.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/concatall.ts b/src/add/asynciterable-operators/concatall.ts index e6219a97..a953d897 100644 --- a/src/add/asynciterable-operators/concatall.ts +++ b/src/add/asynciterable-operators/concatall.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { ConcatAllAsyncIterable } from '../../asynciterable/operators/concatall'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { ConcatAllAsyncIterable } from '../../asynciterable/operators/concatall.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/concatmap.ts b/src/add/asynciterable-operators/concatmap.ts index 966675d9..09b6d50f 100644 --- a/src/add/asynciterable-operators/concatmap.ts +++ b/src/add/asynciterable-operators/concatmap.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { concatMap } from '../../asynciterable/operators/concatmap'; -import { FlattenConcurrentSelector } from '../../asynciterable/operators/_flatten'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { concatMap } from '../../asynciterable/operators/concatmap.js'; +import { FlattenConcurrentSelector } from '../../asynciterable/operators/_flatten.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/count.ts b/src/add/asynciterable-operators/count.ts index 32fd437e..ba264b80 100644 --- a/src/add/asynciterable-operators/count.ts +++ b/src/add/asynciterable-operators/count.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { count } from '../../asynciterable/count'; -import { OptionalFindOptions } from '../../asynciterable/findoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { count } from '../../asynciterable/count.js'; +import { OptionalFindOptions } from '../../asynciterable/findoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/debounce.ts b/src/add/asynciterable-operators/debounce.ts index 8ff872bd..63753d96 100644 --- a/src/add/asynciterable-operators/debounce.ts +++ b/src/add/asynciterable-operators/debounce.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { debounce } from '../../asynciterable/operators/debounce'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { debounce } from '../../asynciterable/operators/debounce.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/defaultifempty.ts b/src/add/asynciterable-operators/defaultifempty.ts index 018d75a0..5b3d12be 100644 --- a/src/add/asynciterable-operators/defaultifempty.ts +++ b/src/add/asynciterable-operators/defaultifempty.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { defaultIfEmpty } from '../../asynciterable/operators/defaultifempty'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { defaultIfEmpty } from '../../asynciterable/operators/defaultifempty.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/delay.ts b/src/add/asynciterable-operators/delay.ts index a6b51d59..a1f1e1d8 100644 --- a/src/add/asynciterable-operators/delay.ts +++ b/src/add/asynciterable-operators/delay.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { DelayAsyncIterable } from '../../asynciterable/operators/delay'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { DelayAsyncIterable } from '../../asynciterable/operators/delay.js'; export function delayProto( this: AsyncIterableX, diff --git a/src/add/asynciterable-operators/delayeach.ts b/src/add/asynciterable-operators/delayeach.ts index d77b17ab..d102b9d1 100644 --- a/src/add/asynciterable-operators/delayeach.ts +++ b/src/add/asynciterable-operators/delayeach.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { DelayEachAsyncIterable } from '../../asynciterable/operators/delayeach'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { DelayEachAsyncIterable } from '../../asynciterable/operators/delayeach.js'; export function delayEachProto( this: AsyncIterableX, diff --git a/src/add/asynciterable-operators/distinct.ts b/src/add/asynciterable-operators/distinct.ts index 8ddbf6d2..87935202 100644 --- a/src/add/asynciterable-operators/distinct.ts +++ b/src/add/asynciterable-operators/distinct.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { distinct } from '../../asynciterable/operators/distinct'; -import { DistinctOptions } from '../../asynciterable/operators/distinctoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { distinct } from '../../asynciterable/operators/distinct.js'; +import { DistinctOptions } from '../../asynciterable/operators/distinctoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/distinctuntilchanged.ts b/src/add/asynciterable-operators/distinctuntilchanged.ts index 7a20ed79..2caa7b51 100644 --- a/src/add/asynciterable-operators/distinctuntilchanged.ts +++ b/src/add/asynciterable-operators/distinctuntilchanged.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { distinctUntilChanged } from '../../asynciterable/operators/distinctuntilchanged'; -import { DistinctOptions } from '../../asynciterable/operators/distinctoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { distinctUntilChanged } from '../../asynciterable/operators/distinctuntilchanged.js'; +import { DistinctOptions } from '../../asynciterable/operators/distinctoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/dowhile.ts b/src/add/asynciterable-operators/dowhile.ts index 76cd6a82..af998598 100644 --- a/src/add/asynciterable-operators/dowhile.ts +++ b/src/add/asynciterable-operators/dowhile.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { doWhile } from '../../asynciterable/operators/dowhile'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { doWhile } from '../../asynciterable/operators/dowhile.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/elementat.ts b/src/add/asynciterable-operators/elementat.ts index a2aad5e5..e4e56a21 100644 --- a/src/add/asynciterable-operators/elementat.ts +++ b/src/add/asynciterable-operators/elementat.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { elementAt } from '../../asynciterable/elementat'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { elementAt } from '../../asynciterable/elementat.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/endwith.ts b/src/add/asynciterable-operators/endwith.ts index b71df3ec..27aed0b1 100644 --- a/src/add/asynciterable-operators/endwith.ts +++ b/src/add/asynciterable-operators/endwith.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { EndWithAsyncIterable } from '../../asynciterable/operators/endwith'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { EndWithAsyncIterable } from '../../asynciterable/operators/endwith.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/every.ts b/src/add/asynciterable-operators/every.ts index e4d4704c..b59f946e 100644 --- a/src/add/asynciterable-operators/every.ts +++ b/src/add/asynciterable-operators/every.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { every } from '../../asynciterable/every'; -import { FindOptions } from '../../asynciterable/findoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { every } from '../../asynciterable/every.js'; +import { FindOptions } from '../../asynciterable/findoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/except.ts b/src/add/asynciterable-operators/except.ts index 60c15d65..da888e78 100644 --- a/src/add/asynciterable-operators/except.ts +++ b/src/add/asynciterable-operators/except.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { except } from '../../asynciterable/operators/except'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { except } from '../../asynciterable/operators/except.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/expand.ts b/src/add/asynciterable-operators/expand.ts index d5e36912..45e95c59 100644 --- a/src/add/asynciterable-operators/expand.ts +++ b/src/add/asynciterable-operators/expand.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { ExpandAsyncIterable } from '../../asynciterable/operators/expand'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { ExpandAsyncIterable } from '../../asynciterable/operators/expand.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/filter.ts b/src/add/asynciterable-operators/filter.ts index 0286ac14..2edd49c5 100644 --- a/src/add/asynciterable-operators/filter.ts +++ b/src/add/asynciterable-operators/filter.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { FilterAsyncIterable } from '../../asynciterable/operators/filter'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { FilterAsyncIterable } from '../../asynciterable/operators/filter.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/finalize.ts b/src/add/asynciterable-operators/finalize.ts index 3b47e578..9754d1b4 100644 --- a/src/add/asynciterable-operators/finalize.ts +++ b/src/add/asynciterable-operators/finalize.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { finalize as _finalizeProto } from '../../asynciterable/operators/finalize'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { finalize as _finalizeProto } from '../../asynciterable/operators/finalize.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/find.ts b/src/add/asynciterable-operators/find.ts index a4a075bf..11b547ed 100644 --- a/src/add/asynciterable-operators/find.ts +++ b/src/add/asynciterable-operators/find.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { find } from '../../asynciterable/find'; -import { FindOptions } from '../../asynciterable/findoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { find } from '../../asynciterable/find.js'; +import { FindOptions } from '../../asynciterable/findoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/findindex.ts b/src/add/asynciterable-operators/findindex.ts index 3007462c..d6d4ff73 100644 --- a/src/add/asynciterable-operators/findindex.ts +++ b/src/add/asynciterable-operators/findindex.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { findIndex } from '../../asynciterable/findindex'; -import { FindOptions } from '../../asynciterable/findoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { findIndex } from '../../asynciterable/findindex.js'; +import { FindOptions } from '../../asynciterable/findoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/first.ts b/src/add/asynciterable-operators/first.ts index 50c02078..afc118ac 100644 --- a/src/add/asynciterable-operators/first.ts +++ b/src/add/asynciterable-operators/first.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { first } from '../../asynciterable/first'; -import { OptionalFindOptions } from '../../asynciterable/findoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { first } from '../../asynciterable/first.js'; +import { OptionalFindOptions } from '../../asynciterable/findoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/flat.ts b/src/add/asynciterable-operators/flat.ts index e0b53086..0706dfe0 100644 --- a/src/add/asynciterable-operators/flat.ts +++ b/src/add/asynciterable-operators/flat.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { flat } from '../../asynciterable/operators/flat'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { flat } from '../../asynciterable/operators/flat.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/flatmap.ts b/src/add/asynciterable-operators/flatmap.ts index e6a3928f..d51046b5 100644 --- a/src/add/asynciterable-operators/flatmap.ts +++ b/src/add/asynciterable-operators/flatmap.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { flatMap } from '../../asynciterable/operators/flatmap'; -import { FlattenConcurrentSelector } from '../../asynciterable/operators/_flatten'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { flatMap } from '../../asynciterable/operators/flatmap.js'; +import { FlattenConcurrentSelector } from '../../asynciterable/operators/_flatten.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/forkjoin.ts b/src/add/asynciterable-operators/forkjoin.ts index a0605b7e..3d38fe06 100644 --- a/src/add/asynciterable-operators/forkjoin.ts +++ b/src/add/asynciterable-operators/forkjoin.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { forkJoin } from '../../asynciterable/forkjoin'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { forkJoin } from '../../asynciterable/forkjoin.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/groupby.ts b/src/add/asynciterable-operators/groupby.ts index 9db2e6b3..fdcf179a 100644 --- a/src/add/asynciterable-operators/groupby.ts +++ b/src/add/asynciterable-operators/groupby.ts @@ -1,6 +1,9 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { GroupByAsyncIterable, GroupedAsyncIterable } from '../../asynciterable/operators/groupby'; -import { identityAsync } from '../../util/identity'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { + GroupByAsyncIterable, + GroupedAsyncIterable, +} from '../../asynciterable/operators/groupby.js'; +import { identityAsync } from '../../util/identity.js'; export function groupByProto( this: AsyncIterableX, diff --git a/src/add/asynciterable-operators/groupjoin.ts b/src/add/asynciterable-operators/groupjoin.ts index 03b79d85..dedec65d 100644 --- a/src/add/asynciterable-operators/groupjoin.ts +++ b/src/add/asynciterable-operators/groupjoin.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { GroupJoinAsyncIterable } from '../../asynciterable/operators/groupjoin'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { GroupJoinAsyncIterable } from '../../asynciterable/operators/groupjoin.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/ignoreelements.ts b/src/add/asynciterable-operators/ignoreelements.ts index 80d7e81d..1a55eb7a 100644 --- a/src/add/asynciterable-operators/ignoreelements.ts +++ b/src/add/asynciterable-operators/ignoreelements.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { ignoreElements } from '../../asynciterable/operators/ignoreelements'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { ignoreElements } from '../../asynciterable/operators/ignoreelements.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/includes.ts b/src/add/asynciterable-operators/includes.ts index 77bf6a47..c77f007a 100644 --- a/src/add/asynciterable-operators/includes.ts +++ b/src/add/asynciterable-operators/includes.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { includes } from '../../asynciterable/includes'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { includes } from '../../asynciterable/includes.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/innerjoin.ts b/src/add/asynciterable-operators/innerjoin.ts index 764dd746..4ff59cfd 100644 --- a/src/add/asynciterable-operators/innerjoin.ts +++ b/src/add/asynciterable-operators/innerjoin.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { JoinAsyncIterable } from '../../asynciterable/operators/innerjoin'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { JoinAsyncIterable } from '../../asynciterable/operators/innerjoin.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/intersect.ts b/src/add/asynciterable-operators/intersect.ts index 5da29111..d6b93988 100644 --- a/src/add/asynciterable-operators/intersect.ts +++ b/src/add/asynciterable-operators/intersect.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { intersect } from '../../asynciterable/operators/intersect'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { intersect } from '../../asynciterable/operators/intersect.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/isempty.ts b/src/add/asynciterable-operators/isempty.ts index 82546f6a..33666b33 100644 --- a/src/add/asynciterable-operators/isempty.ts +++ b/src/add/asynciterable-operators/isempty.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { isEmpty } from '../../asynciterable/isempty'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { isEmpty } from '../../asynciterable/isempty.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/last.ts b/src/add/asynciterable-operators/last.ts index 3dd0c868..d5e5bc6e 100644 --- a/src/add/asynciterable-operators/last.ts +++ b/src/add/asynciterable-operators/last.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { last } from '../../asynciterable/last'; -import { OptionalFindOptions } from '../../asynciterable/findoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { last } from '../../asynciterable/last.js'; +import { OptionalFindOptions } from '../../asynciterable/findoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/map.ts b/src/add/asynciterable-operators/map.ts index bb3de9ca..e887d2d8 100644 --- a/src/add/asynciterable-operators/map.ts +++ b/src/add/asynciterable-operators/map.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { MapAsyncIterable } from '../../asynciterable/operators/map'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { MapAsyncIterable } from '../../asynciterable/operators/map.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/max.ts b/src/add/asynciterable-operators/max.ts index 5b0ec3e6..a40660b7 100644 --- a/src/add/asynciterable-operators/max.ts +++ b/src/add/asynciterable-operators/max.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { max } from '../../asynciterable/max'; -import { ExtremaOptions } from '../../asynciterable/extremaoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { max } from '../../asynciterable/max.js'; +import { ExtremaOptions } from '../../asynciterable/extremaoptions.js'; export async function maxProto( this: AsyncIterable, diff --git a/src/add/asynciterable-operators/maxby.ts b/src/add/asynciterable-operators/maxby.ts index fcf486b6..1aa5ceb5 100644 --- a/src/add/asynciterable-operators/maxby.ts +++ b/src/add/asynciterable-operators/maxby.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { maxBy } from '../../asynciterable/maxby'; -import { ExtremaOptions } from '../../asynciterable/extremaoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { maxBy } from '../../asynciterable/maxby.js'; +import { ExtremaOptions } from '../../asynciterable/extremaoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/memoize.ts b/src/add/asynciterable-operators/memoize.ts index af4e35d8..7e5ebd1e 100644 --- a/src/add/asynciterable-operators/memoize.ts +++ b/src/add/asynciterable-operators/memoize.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { memoize } from '../../asynciterable/operators/memoize'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { memoize } from '../../asynciterable/operators/memoize.js'; export function memoizeProto(this: AsyncIterableX, readerCount?: number): AsyncIterableX; export function memoizeProto( diff --git a/src/add/asynciterable-operators/merge.ts b/src/add/asynciterable-operators/merge.ts index 50a11078..19b983ba 100644 --- a/src/add/asynciterable-operators/merge.ts +++ b/src/add/asynciterable-operators/merge.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { merge } from '../../asynciterable/merge'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { merge } from '../../asynciterable/merge.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/mergeall.ts b/src/add/asynciterable-operators/mergeall.ts index 86febf58..46984a23 100644 --- a/src/add/asynciterable-operators/mergeall.ts +++ b/src/add/asynciterable-operators/mergeall.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { mergeAll } from '../../asynciterable/operators/mergeall'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { mergeAll } from '../../asynciterable/operators/mergeall.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/min.ts b/src/add/asynciterable-operators/min.ts index 5603036e..be05c0f1 100644 --- a/src/add/asynciterable-operators/min.ts +++ b/src/add/asynciterable-operators/min.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { min } from '../../asynciterable/min'; -import { ExtremaOptions } from '../../asynciterable/extremaoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { min } from '../../asynciterable/min.js'; +import { ExtremaOptions } from '../../asynciterable/extremaoptions.js'; export function minProto( this: AsyncIterable, diff --git a/src/add/asynciterable-operators/minby.ts b/src/add/asynciterable-operators/minby.ts index 44f7268a..11b092f4 100644 --- a/src/add/asynciterable-operators/minby.ts +++ b/src/add/asynciterable-operators/minby.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { minBy } from '../../asynciterable/minby'; -import { ExtremaOptions } from '../../asynciterable/extremaoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { minBy } from '../../asynciterable/minby.js'; +import { ExtremaOptions } from '../../asynciterable/extremaoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/onerrorresumenext.ts b/src/add/asynciterable-operators/onerrorresumenext.ts index fe769231..696f9743 100644 --- a/src/add/asynciterable-operators/onerrorresumenext.ts +++ b/src/add/asynciterable-operators/onerrorresumenext.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { onErrorResumeNext } from '../../asynciterable/onerrorresumenext'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { onErrorResumeNext } from '../../asynciterable/onerrorresumenext.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/orderby.ts b/src/add/asynciterable-operators/orderby.ts index a5632482..2de9eef0 100644 --- a/src/add/asynciterable-operators/orderby.ts +++ b/src/add/asynciterable-operators/orderby.ts @@ -1,13 +1,13 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; import { orderBy, orderByDescending, OrderedAsyncIterableX, -} from '../../asynciterable/operators/orderby'; +} from '../../asynciterable/operators/orderby.js'; import { thenBy as _thenBy, thenByDescending as _thenByDescending, -} from '../../asynciterable/operators/orderby'; +} from '../../asynciterable/operators/orderby.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/pairwise.ts b/src/add/asynciterable-operators/pairwise.ts index e39ea5b3..15ce687e 100644 --- a/src/add/asynciterable-operators/pairwise.ts +++ b/src/add/asynciterable-operators/pairwise.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { PairwiseAsyncIterable } from '../../asynciterable/operators/pairwise'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { PairwiseAsyncIterable } from '../../asynciterable/operators/pairwise.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/pluck.ts b/src/add/asynciterable-operators/pluck.ts index 5569dcc8..9c3946a4 100644 --- a/src/add/asynciterable-operators/pluck.ts +++ b/src/add/asynciterable-operators/pluck.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { pluck } from '../../asynciterable/operators/pluck'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { pluck } from '../../asynciterable/operators/pluck.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/publish.ts b/src/add/asynciterable-operators/publish.ts index fcf19eac..de3d615f 100644 --- a/src/add/asynciterable-operators/publish.ts +++ b/src/add/asynciterable-operators/publish.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { publish } from '../../asynciterable/operators/publish'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { publish } from '../../asynciterable/operators/publish.js'; export function publishProto(this: AsyncIterableX): AsyncIterableX; export function publishProto( diff --git a/src/add/asynciterable-operators/reduce.ts b/src/add/asynciterable-operators/reduce.ts index bc47c98d..3955f83d 100644 --- a/src/add/asynciterable-operators/reduce.ts +++ b/src/add/asynciterable-operators/reduce.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { reduce } from '../../asynciterable/reduce'; -import { ReduceOptions } from '../../asynciterable/reduceoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { reduce } from '../../asynciterable/reduce.js'; +import { ReduceOptions } from '../../asynciterable/reduceoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/reduceright.ts b/src/add/asynciterable-operators/reduceright.ts index e7fb2e4d..ad1aa23d 100644 --- a/src/add/asynciterable-operators/reduceright.ts +++ b/src/add/asynciterable-operators/reduceright.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { reduceRight } from '../../asynciterable/reduceright'; -import { ReduceOptions } from '../../asynciterable/reduceoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { reduceRight } from '../../asynciterable/reduceright.js'; +import { ReduceOptions } from '../../asynciterable/reduceoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/repeat.ts b/src/add/asynciterable-operators/repeat.ts index 120ce979..9898fbf0 100644 --- a/src/add/asynciterable-operators/repeat.ts +++ b/src/add/asynciterable-operators/repeat.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { RepeatAsyncIterable } from '../../asynciterable/operators/repeat'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { RepeatAsyncIterable } from '../../asynciterable/operators/repeat.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/retry.ts b/src/add/asynciterable-operators/retry.ts index 7d49e055..a374c971 100644 --- a/src/add/asynciterable-operators/retry.ts +++ b/src/add/asynciterable-operators/retry.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { retry } from '../../asynciterable/operators/retry'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { retry } from '../../asynciterable/operators/retry.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/reverse.ts b/src/add/asynciterable-operators/reverse.ts index 8a353db9..36878e68 100644 --- a/src/add/asynciterable-operators/reverse.ts +++ b/src/add/asynciterable-operators/reverse.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { ReverseAsyncIterable } from '../../asynciterable/operators/reverse'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { ReverseAsyncIterable } from '../../asynciterable/operators/reverse.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/scan.ts b/src/add/asynciterable-operators/scan.ts index 707625b8..a5ab2f2f 100644 --- a/src/add/asynciterable-operators/scan.ts +++ b/src/add/asynciterable-operators/scan.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { ScanAsyncIterable } from '../../asynciterable/operators/scan'; -import { ScanOptions } from '../../asynciterable/operators/scanoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { ScanAsyncIterable } from '../../asynciterable/operators/scan.js'; +import { ScanOptions } from '../../asynciterable/operators/scanoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/scanright.ts b/src/add/asynciterable-operators/scanright.ts index 87895bf6..95957e57 100644 --- a/src/add/asynciterable-operators/scanright.ts +++ b/src/add/asynciterable-operators/scanright.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { ScanRightAsyncIterable } from '../../asynciterable/operators/scanright'; -import { ScanOptions } from 'ix/asynciterable/operators/scanoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { ScanRightAsyncIterable } from '../../asynciterable/operators/scanright.js'; +import { ScanOptions } from '../../asynciterable/operators/scanoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/sequenceequal.ts b/src/add/asynciterable-operators/sequenceequal.ts index 220d0972..db8eae42 100644 --- a/src/add/asynciterable-operators/sequenceequal.ts +++ b/src/add/asynciterable-operators/sequenceequal.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { sequenceEqual, SequencEqualOptions } from '../../asynciterable/sequenceequal'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { sequenceEqual, SequencEqualOptions } from '../../asynciterable/sequenceequal.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/share.ts b/src/add/asynciterable-operators/share.ts index 52bc5626..2eb2057f 100644 --- a/src/add/asynciterable-operators/share.ts +++ b/src/add/asynciterable-operators/share.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { share } from '../../asynciterable/operators/share'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { share } from '../../asynciterable/operators/share.js'; export function shareProto(this: AsyncIterableX): AsyncIterableX; export function shareProto( diff --git a/src/add/asynciterable-operators/single.ts b/src/add/asynciterable-operators/single.ts index dca72a39..0ee89f74 100644 --- a/src/add/asynciterable-operators/single.ts +++ b/src/add/asynciterable-operators/single.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { single } from '../../asynciterable/single'; -import { OptionalFindOptions } from '../../asynciterable/findoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { single } from '../../asynciterable/single.js'; +import { OptionalFindOptions } from '../../asynciterable/findoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/skip.ts b/src/add/asynciterable-operators/skip.ts index b29beb8f..5e75c94b 100644 --- a/src/add/asynciterable-operators/skip.ts +++ b/src/add/asynciterable-operators/skip.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { SkipAsyncIterable } from '../../asynciterable/operators/skip'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { SkipAsyncIterable } from '../../asynciterable/operators/skip.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/skiplast.ts b/src/add/asynciterable-operators/skiplast.ts index c9f6b475..96b64dba 100644 --- a/src/add/asynciterable-operators/skiplast.ts +++ b/src/add/asynciterable-operators/skiplast.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { SkipLastAsyncIterable } from '../../asynciterable/operators/skiplast'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { SkipLastAsyncIterable } from '../../asynciterable/operators/skiplast.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/skipuntil.ts b/src/add/asynciterable-operators/skipuntil.ts index 97b85cc6..ef091090 100644 --- a/src/add/asynciterable-operators/skipuntil.ts +++ b/src/add/asynciterable-operators/skipuntil.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { SkipUntilAsyncIterable } from '../../asynciterable/operators/skipuntil'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { SkipUntilAsyncIterable } from '../../asynciterable/operators/skipuntil.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/skipwhile.ts b/src/add/asynciterable-operators/skipwhile.ts index b798ee5e..f6975b4e 100644 --- a/src/add/asynciterable-operators/skipwhile.ts +++ b/src/add/asynciterable-operators/skipwhile.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { SkipWhileAsyncIterable } from '../../asynciterable/operators/skipwhile'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { SkipWhileAsyncIterable } from '../../asynciterable/operators/skipwhile.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/slice.ts b/src/add/asynciterable-operators/slice.ts index fb1d032b..427767ba 100644 --- a/src/add/asynciterable-operators/slice.ts +++ b/src/add/asynciterable-operators/slice.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { SliceAsyncIterable } from '../../asynciterable/operators/slice'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { SliceAsyncIterable } from '../../asynciterable/operators/slice.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/some.ts b/src/add/asynciterable-operators/some.ts index 5eea451a..6db930f2 100644 --- a/src/add/asynciterable-operators/some.ts +++ b/src/add/asynciterable-operators/some.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { some } from '../../asynciterable/some'; -import { FindOptions } from '../../asynciterable/findoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { some } from '../../asynciterable/some.js'; +import { FindOptions } from '../../asynciterable/findoptions.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/startwith.ts b/src/add/asynciterable-operators/startwith.ts index 04e918e3..8eb99a64 100644 --- a/src/add/asynciterable-operators/startwith.ts +++ b/src/add/asynciterable-operators/startwith.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { StartWithAsyncIterable } from '../../asynciterable/operators/startwith'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { StartWithAsyncIterable } from '../../asynciterable/operators/startwith.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/sum.ts b/src/add/asynciterable-operators/sum.ts index 8f453bb6..97a539fe 100644 --- a/src/add/asynciterable-operators/sum.ts +++ b/src/add/asynciterable-operators/sum.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { sum } from '../../asynciterable/sum'; -import { MathOptions } from '../../asynciterable/mathoptions'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { sum } from '../../asynciterable/sum.js'; +import { MathOptions } from '../../asynciterable/mathoptions.js'; export function sumProto( this: AsyncIterable, diff --git a/src/add/asynciterable-operators/switchall.ts b/src/add/asynciterable-operators/switchall.ts index 6ea2da89..858e806b 100644 --- a/src/add/asynciterable-operators/switchall.ts +++ b/src/add/asynciterable-operators/switchall.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { switchAll } from '../../asynciterable/operators/switchall'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { switchAll } from '../../asynciterable/operators/switchall.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/switchmap.ts b/src/add/asynciterable-operators/switchmap.ts index 365dd206..d7794d00 100644 --- a/src/add/asynciterable-operators/switchmap.ts +++ b/src/add/asynciterable-operators/switchmap.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { switchMap } from '../../asynciterable/operators/switchmap'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { switchMap } from '../../asynciterable/operators/switchmap.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/take.ts b/src/add/asynciterable-operators/take.ts index 9e0a9c49..6617b859 100644 --- a/src/add/asynciterable-operators/take.ts +++ b/src/add/asynciterable-operators/take.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { TakeAsyncIterable } from '../../asynciterable/operators/take'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { TakeAsyncIterable } from '../../asynciterable/operators/take.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/takelast.ts b/src/add/asynciterable-operators/takelast.ts index 4c860fbc..79e9eedb 100644 --- a/src/add/asynciterable-operators/takelast.ts +++ b/src/add/asynciterable-operators/takelast.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { TakeLastAsyncIterable } from '../../asynciterable/operators/takelast'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { TakeLastAsyncIterable } from '../../asynciterable/operators/takelast.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/takeuntil.ts b/src/add/asynciterable-operators/takeuntil.ts index 1094a3b8..53db1e59 100644 --- a/src/add/asynciterable-operators/takeuntil.ts +++ b/src/add/asynciterable-operators/takeuntil.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { TakeUntilAsyncIterable } from '../../asynciterable/operators/takeuntil'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { TakeUntilAsyncIterable } from '../../asynciterable/operators/takeuntil.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/takewhile.ts b/src/add/asynciterable-operators/takewhile.ts index b6c6b76d..4cf25dbd 100644 --- a/src/add/asynciterable-operators/takewhile.ts +++ b/src/add/asynciterable-operators/takewhile.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { takeWhile } from '../../asynciterable/operators/takewhile'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { takeWhile } from '../../asynciterable/operators/takewhile.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/tap.ts b/src/add/asynciterable-operators/tap.ts index b613d50c..3e72bcab 100644 --- a/src/add/asynciterable-operators/tap.ts +++ b/src/add/asynciterable-operators/tap.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { tap } from '../../asynciterable/operators/tap'; -import { PartialAsyncObserver } from '../../observer'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { tap } from '../../asynciterable/operators/tap.js'; +import { PartialAsyncObserver } from '../../observer.js'; /** @ignore */ export function tapProto(observer: PartialAsyncObserver): AsyncIterableX; diff --git a/src/add/asynciterable-operators/throttle.ts b/src/add/asynciterable-operators/throttle.ts index fd0581f5..c7485e60 100644 --- a/src/add/asynciterable-operators/throttle.ts +++ b/src/add/asynciterable-operators/throttle.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { ThrottleAsyncIterable } from '../../asynciterable/operators/throttle'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { ThrottleAsyncIterable } from '../../asynciterable/operators/throttle.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/toarray.ts b/src/add/asynciterable-operators/toarray.ts index b05cfc57..4d2bb9cf 100644 --- a/src/add/asynciterable-operators/toarray.ts +++ b/src/add/asynciterable-operators/toarray.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { toArray } from '../../asynciterable/toarray'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { toArray } from '../../asynciterable/toarray.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/todomstream.ts b/src/add/asynciterable-operators/todomstream.ts index ca1e5907..8a225291 100644 --- a/src/add/asynciterable-operators/todomstream.ts +++ b/src/add/asynciterable-operators/todomstream.ts @@ -1,9 +1,9 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; import { toDOMStream, ReadableBYOBStreamOptions, ReadableByteStreamOptions, -} from '../../asynciterable/todomstream'; +} from '../../asynciterable/todomstream.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/tomap.ts b/src/add/asynciterable-operators/tomap.ts index fc8b9672..307b4e13 100644 --- a/src/add/asynciterable-operators/tomap.ts +++ b/src/add/asynciterable-operators/tomap.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { toMap, ToMapOptions } from '../../asynciterable/tomap'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { toMap, ToMapOptions } from '../../asynciterable/tomap.js'; export async function toMapProto( this: AsyncIterable, diff --git a/src/add/asynciterable-operators/tonodestream.ts b/src/add/asynciterable-operators/tonodestream.ts index 50387b96..8b889e75 100644 --- a/src/add/asynciterable-operators/tonodestream.ts +++ b/src/add/asynciterable-operators/tonodestream.ts @@ -1,7 +1,7 @@ import { ReadableOptions } from 'stream'; -import { BufferLike } from '../../interfaces'; -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { AsyncIterableReadable } from '../../asynciterable/tonodestream'; +import { BufferLike } from '../../interfaces.js'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { AsyncIterableReadable } from '../../asynciterable/tonodestream.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/toobservable.ts b/src/add/asynciterable-operators/toobservable.ts index c495daf7..a26aed18 100644 --- a/src/add/asynciterable-operators/toobservable.ts +++ b/src/add/asynciterable-operators/toobservable.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { toObservable } from '../../asynciterable/toobservable'; -import { Observable } from '../../observer'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { toObservable } from '../../asynciterable/toobservable.js'; +import { Observable } from '../../observer.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/toset.ts b/src/add/asynciterable-operators/toset.ts index 366ed289..627e9012 100644 --- a/src/add/asynciterable-operators/toset.ts +++ b/src/add/asynciterable-operators/toset.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { toSet } from '../../asynciterable/toset'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { toSet } from '../../asynciterable/toset.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/union.ts b/src/add/asynciterable-operators/union.ts index 6c904afa..edf5473a 100644 --- a/src/add/asynciterable-operators/union.ts +++ b/src/add/asynciterable-operators/union.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { union } from '../../asynciterable/operators/union'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { union } from '../../asynciterable/operators/union.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/withlatestfrom.ts b/src/add/asynciterable-operators/withlatestfrom.ts index 3e4627e4..aaba1326 100644 --- a/src/add/asynciterable-operators/withlatestfrom.ts +++ b/src/add/asynciterable-operators/withlatestfrom.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { WithLatestFromAsyncIterable } from '../../asynciterable/operators/withlatestfrom'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { WithLatestFromAsyncIterable } from '../../asynciterable/operators/withlatestfrom.js'; /** * @ignore diff --git a/src/add/asynciterable-operators/zip.ts b/src/add/asynciterable-operators/zip.ts index 60b53d53..520b6274 100644 --- a/src/add/asynciterable-operators/zip.ts +++ b/src/add/asynciterable-operators/zip.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { zip } from '../../asynciterable/zip'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { zip } from '../../asynciterable/zip.js'; /** * @ignore diff --git a/src/add/asynciterable/asyncify.ts b/src/add/asynciterable/asyncify.ts index bb0d628c..d6a31102 100644 --- a/src/add/asynciterable/asyncify.ts +++ b/src/add/asynciterable/asyncify.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { asyncify as asyncifyStatic } from '../../asynciterable/asyncify'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { asyncify as asyncifyStatic } from '../../asynciterable/asyncify.js'; /** @nocollapse */ AsyncIterableX.asyncify = asyncifyStatic; diff --git a/src/add/asynciterable/asyncifyerrback.ts b/src/add/asynciterable/asyncifyerrback.ts index 2f8344a6..bf5448b1 100644 --- a/src/add/asynciterable/asyncifyerrback.ts +++ b/src/add/asynciterable/asyncifyerrback.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { asyncifyErrback as asyncifyErrbackStatic } from '../../asynciterable/asyncifyerrback'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { asyncifyErrback as asyncifyErrbackStatic } from '../../asynciterable/asyncifyerrback.js'; /** @nocollapse */ AsyncIterableX.asyncifyErrback = asyncifyErrbackStatic; diff --git a/src/add/asynciterable/catchall.ts b/src/add/asynciterable/catchall.ts index b73db9b7..16403660 100644 --- a/src/add/asynciterable/catchall.ts +++ b/src/add/asynciterable/catchall.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { catchAll as catchAllStatic } from '../../asynciterable/catcherror'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { catchAll as catchAllStatic } from '../../asynciterable/catcherror.js'; /** @nocollapse */ AsyncIterableX.catchAll = catchAllStatic; diff --git a/src/add/asynciterable/catcherror.ts b/src/add/asynciterable/catcherror.ts index 17b3f0e6..7a006d0b 100644 --- a/src/add/asynciterable/catcherror.ts +++ b/src/add/asynciterable/catcherror.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { catchError as catchErrorStatic } from '../../asynciterable/catcherror'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { catchError as catchErrorStatic } from '../../asynciterable/catcherror.js'; /** @nocollapse */ AsyncIterableX.catchError = catchErrorStatic; diff --git a/src/add/asynciterable/combinelatest.ts b/src/add/asynciterable/combinelatest.ts index f0074de0..526028c2 100644 --- a/src/add/asynciterable/combinelatest.ts +++ b/src/add/asynciterable/combinelatest.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { combineLatest as combineLatestStatic } from '../../asynciterable/combinelatest'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { combineLatest as combineLatestStatic } from '../../asynciterable/combinelatest.js'; /** @nocollapse */ AsyncIterableX.combineLatest = combineLatestStatic; diff --git a/src/add/asynciterable/concat.ts b/src/add/asynciterable/concat.ts index 8d7cb441..45516fd5 100644 --- a/src/add/asynciterable/concat.ts +++ b/src/add/asynciterable/concat.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { concat as concatStatic } from '../../asynciterable/concat'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { concat as concatStatic } from '../../asynciterable/concat.js'; /** @nocollapse */ AsyncIterableX.concat = concatStatic; diff --git a/src/add/asynciterable/create.ts b/src/add/asynciterable/create.ts index fd007902..c9008ce0 100644 --- a/src/add/asynciterable/create.ts +++ b/src/add/asynciterable/create.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { create as createStatic } from '../../asynciterable/create'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { create as createStatic } from '../../asynciterable/create.js'; /** @nocollapse */ AsyncIterableX.create = createStatic; diff --git a/src/add/asynciterable/defer.ts b/src/add/asynciterable/defer.ts index f59aac2b..52304fd5 100644 --- a/src/add/asynciterable/defer.ts +++ b/src/add/asynciterable/defer.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { defer as deferStatic } from '../../asynciterable/defer'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { defer as deferStatic } from '../../asynciterable/defer.js'; /** @nocollapse */ AsyncIterableX.defer = deferStatic; diff --git a/src/add/asynciterable/empty.ts b/src/add/asynciterable/empty.ts index 2249d5be..598fa43f 100644 --- a/src/add/asynciterable/empty.ts +++ b/src/add/asynciterable/empty.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { empty as emptyStatic } from '../../asynciterable/empty'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { empty as emptyStatic } from '../../asynciterable/empty.js'; /** @nocollapse */ AsyncIterableX.empty = emptyStatic; diff --git a/src/add/asynciterable/forkjoin.ts b/src/add/asynciterable/forkjoin.ts index 8c9a0a0b..9dae496e 100644 --- a/src/add/asynciterable/forkjoin.ts +++ b/src/add/asynciterable/forkjoin.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { forkJoin as forkJoinStatic } from '../../asynciterable/forkjoin'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { forkJoin as forkJoinStatic } from '../../asynciterable/forkjoin.js'; /** @nocollapse */ AsyncIterableX.forkJoin = forkJoinStatic; diff --git a/src/add/asynciterable/fromdomstream.ts b/src/add/asynciterable/fromdomstream.ts index 0cb57ea3..8ce7d93c 100644 --- a/src/add/asynciterable/fromdomstream.ts +++ b/src/add/asynciterable/fromdomstream.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { fromDOMStream as fromDOMStreamStatic } from '../../asynciterable/fromdomstream'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { fromDOMStream as fromDOMStreamStatic } from '../../asynciterable/fromdomstream.js'; /** @nocollapse */ AsyncIterableX.fromDOMStream = fromDOMStreamStatic; diff --git a/src/add/asynciterable/fromevent.ts b/src/add/asynciterable/fromevent.ts index 54e7227e..79804183 100644 --- a/src/add/asynciterable/fromevent.ts +++ b/src/add/asynciterable/fromevent.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { fromEvent as fromEventStatic } from '../../asynciterable/fromevent'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { fromEvent as fromEventStatic } from '../../asynciterable/fromevent.js'; /** @nocollapse */ AsyncIterableX.fromEvent = fromEventStatic; diff --git a/src/add/asynciterable/fromeventpattern.ts b/src/add/asynciterable/fromeventpattern.ts index b3b0697a..b6faf54f 100644 --- a/src/add/asynciterable/fromeventpattern.ts +++ b/src/add/asynciterable/fromeventpattern.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { fromEventPattern as fromEventPatternStatic } from '../../asynciterable/fromeventpattern'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { fromEventPattern as fromEventPatternStatic } from '../../asynciterable/fromeventpattern.js'; /** @nocollapse */ AsyncIterableX.fromEventPattern = fromEventPatternStatic; diff --git a/src/add/asynciterable/fromnodestream.ts b/src/add/asynciterable/fromnodestream.ts index 0307fd73..f69d0399 100644 --- a/src/add/asynciterable/fromnodestream.ts +++ b/src/add/asynciterable/fromnodestream.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { fromNodeStream as fromNodeStreamStatic } from '../../asynciterable/fromnodestream'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { fromNodeStream as fromNodeStreamStatic } from '../../asynciterable/fromnodestream.js'; /** @nocollapse */ AsyncIterableX.fromNodeStream = fromNodeStreamStatic; diff --git a/src/add/asynciterable/generate.ts b/src/add/asynciterable/generate.ts index 14164feb..fd8410fd 100644 --- a/src/add/asynciterable/generate.ts +++ b/src/add/asynciterable/generate.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { generate as generateStatic } from '../../asynciterable/generate'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { generate as generateStatic } from '../../asynciterable/generate.js'; /** @nocollapse */ AsyncIterableX.generate = generateStatic; diff --git a/src/add/asynciterable/generatetime.ts b/src/add/asynciterable/generatetime.ts index 21099e59..c4803711 100644 --- a/src/add/asynciterable/generatetime.ts +++ b/src/add/asynciterable/generatetime.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { generateTime as generateTimeStatic } from '../../asynciterable/generatetime'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { generateTime as generateTimeStatic } from '../../asynciterable/generatetime.js'; /** @nocollapse */ AsyncIterableX.generateTime = generateTimeStatic; diff --git a/src/add/asynciterable/iif.ts b/src/add/asynciterable/iif.ts index b59dc756..3355e243 100644 --- a/src/add/asynciterable/iif.ts +++ b/src/add/asynciterable/iif.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { iif as ifStatic } from '../../asynciterable/iif'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { iif as ifStatic } from '../../asynciterable/iif.js'; /** @nocollapse */ AsyncIterableX.iif = ifStatic; diff --git a/src/add/asynciterable/merge.ts b/src/add/asynciterable/merge.ts index 34118252..c9f7c61b 100644 --- a/src/add/asynciterable/merge.ts +++ b/src/add/asynciterable/merge.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { merge as mergeStatic } from '../../asynciterable/merge'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { merge as mergeStatic } from '../../asynciterable/merge.js'; /** @nocollapse */ AsyncIterableX.merge = mergeStatic; diff --git a/src/add/asynciterable/never.ts b/src/add/asynciterable/never.ts index 639f9367..c451c6fe 100644 --- a/src/add/asynciterable/never.ts +++ b/src/add/asynciterable/never.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { never as neverStatic } from '../../asynciterable/never'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { never as neverStatic } from '../../asynciterable/never.js'; /** @nocollapse */ AsyncIterableX.never = neverStatic; diff --git a/src/add/asynciterable/of.ts b/src/add/asynciterable/of.ts index eaf2520a..3384e2e0 100644 --- a/src/add/asynciterable/of.ts +++ b/src/add/asynciterable/of.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { of as ofStatic } from '../../asynciterable/of'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { of as ofStatic } from '../../asynciterable/of.js'; /** @nocollapse */ AsyncIterableX.of = ofStatic; diff --git a/src/add/asynciterable/onerrorresumenext.ts b/src/add/asynciterable/onerrorresumenext.ts index e0491d08..dcedcd60 100644 --- a/src/add/asynciterable/onerrorresumenext.ts +++ b/src/add/asynciterable/onerrorresumenext.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { onErrorResumeNext as _onErrorResumeNextStatic } from '../../asynciterable/onerrorresumenext'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { onErrorResumeNext as _onErrorResumeNextStatic } from '../../asynciterable/onerrorresumenext.js'; /** @nocollapse */ AsyncIterableX.onErrorResumeNext = _onErrorResumeNextStatic; diff --git a/src/add/asynciterable/race.ts b/src/add/asynciterable/race.ts index 84e60672..ea38c748 100644 --- a/src/add/asynciterable/race.ts +++ b/src/add/asynciterable/race.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { race as raceStatic } from '../../asynciterable/race'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { race as raceStatic } from '../../asynciterable/race.js'; /** @nocollapse */ AsyncIterableX.race = raceStatic; diff --git a/src/add/asynciterable/range.ts b/src/add/asynciterable/range.ts index f3d69a48..3de12a5b 100644 --- a/src/add/asynciterable/range.ts +++ b/src/add/asynciterable/range.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { range as rangeStatic } from '../../asynciterable/range'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { range as rangeStatic } from '../../asynciterable/range.js'; /** @nocollapse */ AsyncIterableX.range = rangeStatic; diff --git a/src/add/asynciterable/repeat.ts b/src/add/asynciterable/repeat.ts index e8ff7f78..f73ea4df 100644 --- a/src/add/asynciterable/repeat.ts +++ b/src/add/asynciterable/repeat.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { repeatValue as _repeatValue } from '../../asynciterable/repeatvalue'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { repeatValue as _repeatValue } from '../../asynciterable/repeatvalue.js'; /** @nocollapse */ AsyncIterableX.repeatValue = _repeatValue; diff --git a/src/add/asynciterable/throwerror.ts b/src/add/asynciterable/throwerror.ts index 32e2b434..baf0f7a0 100644 --- a/src/add/asynciterable/throwerror.ts +++ b/src/add/asynciterable/throwerror.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { throwError as _throwError } from '../../asynciterable/throwerrror'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { throwError as _throwError } from '../../asynciterable/throwerrror.js'; /** @nocollapse */ AsyncIterableX.throwError = _throwError; diff --git a/src/add/asynciterable/while.ts b/src/add/asynciterable/while.ts index 17600bb6..57cd35d8 100644 --- a/src/add/asynciterable/while.ts +++ b/src/add/asynciterable/while.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { whileDo as _whileDo } from '../../asynciterable/whiledo'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { whileDo as _whileDo } from '../../asynciterable/whiledo.js'; /** @nocollapse */ AsyncIterableX.whileDo = _whileDo; diff --git a/src/add/asynciterable/zip.ts b/src/add/asynciterable/zip.ts index c42337e3..736231de 100644 --- a/src/add/asynciterable/zip.ts +++ b/src/add/asynciterable/zip.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../../asynciterable/asynciterablex'; -import { zip as zipStatic } from '../../asynciterable/zip'; +import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; +import { zip as zipStatic } from '../../asynciterable/zip.js'; /** @nocollapse */ AsyncIterableX.zip = zipStatic; diff --git a/src/add/iterable-operators/average.ts b/src/add/iterable-operators/average.ts index 30fd99e7..8fd625e1 100644 --- a/src/add/iterable-operators/average.ts +++ b/src/add/iterable-operators/average.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { average } from '../../iterable/average'; -import { MathOptions } from '../../iterable/mathoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { average } from '../../iterable/average.js'; +import { MathOptions } from '../../iterable/mathoptions.js'; export function averageProto(this: IterableX, options?: MathOptions): number; export function averageProto(this: IterableX, options?: MathOptions): number; diff --git a/src/add/iterable-operators/buffer.ts b/src/add/iterable-operators/buffer.ts index 2602a581..a2a59b11 100644 --- a/src/add/iterable-operators/buffer.ts +++ b/src/add/iterable-operators/buffer.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { buffer } from '../../iterable/operators/buffer'; +import { IterableX } from '../../iterable/iterablex.js'; +import { buffer } from '../../iterable/operators/buffer.js'; /** * @ignore diff --git a/src/add/iterable-operators/catcherror.ts b/src/add/iterable-operators/catcherror.ts index f4f99076..28ad7e63 100644 --- a/src/add/iterable-operators/catcherror.ts +++ b/src/add/iterable-operators/catcherror.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { catchError } from '../../iterable/operators/catcherror'; +import { IterableX } from '../../iterable/iterablex.js'; +import { catchError } from '../../iterable/operators/catcherror.js'; /** * @ignore diff --git a/src/add/iterable-operators/concat.ts b/src/add/iterable-operators/concat.ts index fabd26c1..d0edebf2 100644 --- a/src/add/iterable-operators/concat.ts +++ b/src/add/iterable-operators/concat.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { ConcatIterable } from '../../iterable/concat'; +import { IterableX } from '../../iterable/iterablex.js'; +import { ConcatIterable } from '../../iterable/concat.js'; /** * @ignore diff --git a/src/add/iterable-operators/concatall.ts b/src/add/iterable-operators/concatall.ts index 0e9ef969..84d3fee3 100644 --- a/src/add/iterable-operators/concatall.ts +++ b/src/add/iterable-operators/concatall.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { concatAll } from '../../iterable/operators/concatall'; +import { IterableX } from '../../iterable/iterablex.js'; +import { concatAll } from '../../iterable/operators/concatall.js'; /** * @ignore diff --git a/src/add/iterable-operators/count.ts b/src/add/iterable-operators/count.ts index b4a8bba9..ccba1a17 100644 --- a/src/add/iterable-operators/count.ts +++ b/src/add/iterable-operators/count.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { count } from '../../iterable/count'; -import { OptionalFindOptions } from '../../iterable/findoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { count } from '../../iterable/count.js'; +import { OptionalFindOptions } from '../../iterable/findoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/defaultifempty.ts b/src/add/iterable-operators/defaultifempty.ts index eea5230b..23387926 100644 --- a/src/add/iterable-operators/defaultifempty.ts +++ b/src/add/iterable-operators/defaultifempty.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { DefaultIfEmptyIterable } from '../../iterable/operators/defaultifempty'; +import { IterableX } from '../../iterable/iterablex.js'; +import { DefaultIfEmptyIterable } from '../../iterable/operators/defaultifempty.js'; /** * @ignore diff --git a/src/add/iterable-operators/distinct.ts b/src/add/iterable-operators/distinct.ts index 6fac70b2..db5e99bd 100644 --- a/src/add/iterable-operators/distinct.ts +++ b/src/add/iterable-operators/distinct.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { distinct } from '../../iterable/operators/distinct'; -import { DistinctOptions } from '../..//iterable/operators/distinctoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { distinct } from '../../iterable/operators/distinct.js'; +import { DistinctOptions } from '../..//iterable/operators/distinctoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/distinctuntilchanged.ts b/src/add/iterable-operators/distinctuntilchanged.ts index abf37a57..673e45c7 100644 --- a/src/add/iterable-operators/distinctuntilchanged.ts +++ b/src/add/iterable-operators/distinctuntilchanged.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { distinctUntilChanged } from '../../iterable/operators/distinctuntilchanged'; -import { DistinctOptions } from '../../iterable/operators/distinctoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { distinctUntilChanged } from '../../iterable/operators/distinctuntilchanged.js'; +import { DistinctOptions } from '../../iterable/operators/distinctoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/dowhile.ts b/src/add/iterable-operators/dowhile.ts index ea964039..0b9dd522 100644 --- a/src/add/iterable-operators/dowhile.ts +++ b/src/add/iterable-operators/dowhile.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { doWhile } from '../../iterable/operators/dowhile'; +import { IterableX } from '../../iterable/iterablex.js'; +import { doWhile } from '../../iterable/operators/dowhile.js'; /** * @ignore diff --git a/src/add/iterable-operators/elementat.ts b/src/add/iterable-operators/elementat.ts index 5db3db57..5fbfb7d1 100644 --- a/src/add/iterable-operators/elementat.ts +++ b/src/add/iterable-operators/elementat.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { elementAt } from '../../iterable/elementat'; +import { IterableX } from '../../iterable/iterablex.js'; +import { elementAt } from '../../iterable/elementat.js'; /** * @ignore diff --git a/src/add/iterable-operators/endwith.ts b/src/add/iterable-operators/endwith.ts index 2824be06..3956dd4d 100644 --- a/src/add/iterable-operators/endwith.ts +++ b/src/add/iterable-operators/endwith.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { endWith } from '../../iterable/operators/endwith'; +import { IterableX } from '../../iterable/iterablex.js'; +import { endWith } from '../../iterable/operators/endwith.js'; /** * @ignore diff --git a/src/add/iterable-operators/every.ts b/src/add/iterable-operators/every.ts index 65a9b41a..2f5c3d93 100644 --- a/src/add/iterable-operators/every.ts +++ b/src/add/iterable-operators/every.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { every } from '../../iterable/every'; -import { FindOptions } from '../../iterable/findoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { every } from '../../iterable/every.js'; +import { FindOptions } from '../../iterable/findoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/except.ts b/src/add/iterable-operators/except.ts index 7026ea80..f72823cc 100644 --- a/src/add/iterable-operators/except.ts +++ b/src/add/iterable-operators/except.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { except } from '../../iterable/operators/except'; +import { IterableX } from '../../iterable/iterablex.js'; +import { except } from '../../iterable/operators/except.js'; /** * @ignore diff --git a/src/add/iterable-operators/expand.ts b/src/add/iterable-operators/expand.ts index 37153175..e4796714 100644 --- a/src/add/iterable-operators/expand.ts +++ b/src/add/iterable-operators/expand.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { expand } from '../../iterable/operators/expand'; +import { IterableX } from '../../iterable/iterablex.js'; +import { expand } from '../../iterable/operators/expand.js'; /** * @ignore diff --git a/src/add/iterable-operators/filter.ts b/src/add/iterable-operators/filter.ts index b63fd825..db5d9823 100644 --- a/src/add/iterable-operators/filter.ts +++ b/src/add/iterable-operators/filter.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { filter } from '../../iterable/operators/filter'; +import { IterableX } from '../../iterable/iterablex.js'; +import { filter } from '../../iterable/operators/filter.js'; /** * @ignore diff --git a/src/add/iterable-operators/finalize.ts b/src/add/iterable-operators/finalize.ts index 62cd47e5..d5f639b4 100644 --- a/src/add/iterable-operators/finalize.ts +++ b/src/add/iterable-operators/finalize.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { finalize as _finalize } from '../../iterable/operators/finalize'; +import { IterableX } from '../../iterable/iterablex.js'; +import { finalize as _finalize } from '../../iterable/operators/finalize.js'; /** * @ignore diff --git a/src/add/iterable-operators/find.ts b/src/add/iterable-operators/find.ts index 262b39e8..318156ea 100644 --- a/src/add/iterable-operators/find.ts +++ b/src/add/iterable-operators/find.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { find } from '../../iterable/find'; -import { FindOptions } from 'ix/iterable/findoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { find } from '../../iterable/find.js'; +import { FindOptions } from '../../iterable/findoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/findindex.ts b/src/add/iterable-operators/findindex.ts index 2206de05..fac67a37 100644 --- a/src/add/iterable-operators/findindex.ts +++ b/src/add/iterable-operators/findindex.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { findIndex } from '../../iterable/findindex'; -import { FindOptions } from '../../iterable/findoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { findIndex } from '../../iterable/findindex.js'; +import { FindOptions } from '../../iterable/findoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/first.ts b/src/add/iterable-operators/first.ts index 97d7afb7..9e48a4e6 100644 --- a/src/add/iterable-operators/first.ts +++ b/src/add/iterable-operators/first.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { first } from '../../iterable/first'; -import { OptionalFindOptions } from '../../iterable/findoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { first } from '../../iterable/first.js'; +import { OptionalFindOptions } from '../../iterable/findoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/flat.ts b/src/add/iterable-operators/flat.ts index a569a2cd..60f0fbb7 100644 --- a/src/add/iterable-operators/flat.ts +++ b/src/add/iterable-operators/flat.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { flat } from '../../iterable/operators/flat'; +import { IterableX } from '../../iterable/iterablex.js'; +import { flat } from '../../iterable/operators/flat.js'; /** * @ignore diff --git a/src/add/iterable-operators/flatmap.ts b/src/add/iterable-operators/flatmap.ts index 48c299ab..a12f38d7 100644 --- a/src/add/iterable-operators/flatmap.ts +++ b/src/add/iterable-operators/flatmap.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { flatMap } from '../../iterable/operators/flatmap'; +import { IterableX } from '../../iterable/iterablex.js'; +import { flatMap } from '../../iterable/operators/flatmap.js'; /** * @ignore diff --git a/src/add/iterable-operators/groupby.ts b/src/add/iterable-operators/groupby.ts index 4cc2f8d6..7d107074 100644 --- a/src/add/iterable-operators/groupby.ts +++ b/src/add/iterable-operators/groupby.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { groupBy, GroupedIterable } from '../../iterable/operators/groupby'; -import { identity } from '../../util/identity'; +import { IterableX } from '../../iterable/iterablex.js'; +import { groupBy, GroupedIterable } from '../../iterable/operators/groupby.js'; +import { identity } from '../../util/identity.js'; export function groupByProto( this: IterableX, diff --git a/src/add/iterable-operators/groupjoin.ts b/src/add/iterable-operators/groupjoin.ts index 20f15a4f..c6d6e27a 100644 --- a/src/add/iterable-operators/groupjoin.ts +++ b/src/add/iterable-operators/groupjoin.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { groupJoin } from '../../iterable/operators/groupjoin'; +import { IterableX } from '../../iterable/iterablex.js'; +import { groupJoin } from '../../iterable/operators/groupjoin.js'; /** * @ignore diff --git a/src/add/iterable-operators/ignoreelements.ts b/src/add/iterable-operators/ignoreelements.ts index 123059b2..5825cad7 100644 --- a/src/add/iterable-operators/ignoreelements.ts +++ b/src/add/iterable-operators/ignoreelements.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { ignoreElements } from '../../iterable/operators/ignoreelements'; +import { IterableX } from '../../iterable/iterablex.js'; +import { ignoreElements } from '../../iterable/operators/ignoreelements.js'; /** * @ignore diff --git a/src/add/iterable-operators/includes.ts b/src/add/iterable-operators/includes.ts index 34a2872f..3a522be0 100644 --- a/src/add/iterable-operators/includes.ts +++ b/src/add/iterable-operators/includes.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { includes } from '../../iterable/includes'; +import { IterableX } from '../../iterable/iterablex.js'; +import { includes } from '../../iterable/includes.js'; /** * @ignore diff --git a/src/add/iterable-operators/innerjoin.ts b/src/add/iterable-operators/innerjoin.ts index bca1568f..97997263 100644 --- a/src/add/iterable-operators/innerjoin.ts +++ b/src/add/iterable-operators/innerjoin.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { innerJoin } from '../../iterable/operators/innerjoin'; +import { IterableX } from '../../iterable/iterablex.js'; +import { innerJoin } from '../../iterable/operators/innerjoin.js'; /** * @ignore diff --git a/src/add/iterable-operators/intersect.ts b/src/add/iterable-operators/intersect.ts index e32c3dbc..36cdf2e0 100644 --- a/src/add/iterable-operators/intersect.ts +++ b/src/add/iterable-operators/intersect.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { intersect } from '../../iterable/operators/intersect'; +import { IterableX } from '../../iterable/iterablex.js'; +import { intersect } from '../../iterable/operators/intersect.js'; /** * @ignore diff --git a/src/add/iterable-operators/isempty.ts b/src/add/iterable-operators/isempty.ts index f1d2ba1c..3b775209 100644 --- a/src/add/iterable-operators/isempty.ts +++ b/src/add/iterable-operators/isempty.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { isEmpty } from '../../iterable/isempty'; +import { IterableX } from '../../iterable/iterablex.js'; +import { isEmpty } from '../../iterable/isempty.js'; /** * @ignore diff --git a/src/add/iterable-operators/last.ts b/src/add/iterable-operators/last.ts index 37a7f87d..08b64040 100644 --- a/src/add/iterable-operators/last.ts +++ b/src/add/iterable-operators/last.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { last } from '../../iterable/last'; -import { OptionalFindOptions } from '../../iterable/findoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { last } from '../../iterable/last.js'; +import { OptionalFindOptions } from '../../iterable/findoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/map.ts b/src/add/iterable-operators/map.ts index 13d3093b..e9d6367c 100644 --- a/src/add/iterable-operators/map.ts +++ b/src/add/iterable-operators/map.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { map } from '../../iterable/operators/map'; +import { IterableX } from '../../iterable/iterablex.js'; +import { map } from '../../iterable/operators/map.js'; /** * @ignore diff --git a/src/add/iterable-operators/max.ts b/src/add/iterable-operators/max.ts index 8d6fdc8c..778b62b4 100644 --- a/src/add/iterable-operators/max.ts +++ b/src/add/iterable-operators/max.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { max } from '../../iterable/max'; -import { ExtremaOptions } from '../../iterable/extremaoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { max } from '../../iterable/max.js'; +import { ExtremaOptions } from '../../iterable/extremaoptions.js'; export function maxProto( this: IterableX, diff --git a/src/add/iterable-operators/maxby.ts b/src/add/iterable-operators/maxby.ts index 2547f99d..2f867bd8 100644 --- a/src/add/iterable-operators/maxby.ts +++ b/src/add/iterable-operators/maxby.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { maxBy } from '../../iterable/maxby'; -import { ExtremaOptions } from '../../iterable/extremaoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { maxBy } from '../../iterable/maxby.js'; +import { ExtremaOptions } from '../../iterable/extremaoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/memoize.ts b/src/add/iterable-operators/memoize.ts index b14cb617..a310ad2b 100644 --- a/src/add/iterable-operators/memoize.ts +++ b/src/add/iterable-operators/memoize.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { memoize } from '../../iterable/operators/memoize'; +import { IterableX } from '../../iterable/iterablex.js'; +import { memoize } from '../../iterable/operators/memoize.js'; export function memoizeProto( this: IterableX, diff --git a/src/add/iterable-operators/min.ts b/src/add/iterable-operators/min.ts index daeb92b3..400599b1 100644 --- a/src/add/iterable-operators/min.ts +++ b/src/add/iterable-operators/min.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { min } from '../../iterable/min'; -import { ExtremaOptions } from '../../iterable/extremaoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { min } from '../../iterable/min.js'; +import { ExtremaOptions } from '../../iterable/extremaoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/minby.ts b/src/add/iterable-operators/minby.ts index e82e31c2..c9a943dc 100644 --- a/src/add/iterable-operators/minby.ts +++ b/src/add/iterable-operators/minby.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { minBy } from '../../iterable/minby'; -import { ExtremaOptions } from '../../iterable/extremaoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { minBy } from '../../iterable/minby.js'; +import { ExtremaOptions } from '../../iterable/extremaoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/onerrorresumenext.ts b/src/add/iterable-operators/onerrorresumenext.ts index c6a5a77b..0992cef4 100644 --- a/src/add/iterable-operators/onerrorresumenext.ts +++ b/src/add/iterable-operators/onerrorresumenext.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { onErrorResumeNext } from '../../iterable/onerrorresumenext'; +import { IterableX } from '../../iterable/iterablex.js'; +import { onErrorResumeNext } from '../../iterable/onerrorresumenext.js'; /** * @ignore diff --git a/src/add/iterable-operators/orderby.ts b/src/add/iterable-operators/orderby.ts index 9c33b572..017d7d36 100644 --- a/src/add/iterable-operators/orderby.ts +++ b/src/add/iterable-operators/orderby.ts @@ -1,9 +1,9 @@ -import { IterableX } from '../../iterable/iterablex'; -import { orderBy, orderByDescending, OrderedIterableX } from '../../iterable/operators/orderby'; +import { IterableX } from '../../iterable/iterablex.js'; +import { orderBy, orderByDescending, OrderedIterableX } from '../../iterable/operators/orderby.js'; import { thenBy as _thenBy, thenByDescending as _thenByDescending, -} from '../../iterable/operators/orderby'; +} from '../../iterable/operators/orderby.js'; /** * @ignore diff --git a/src/add/iterable-operators/pairwise.ts b/src/add/iterable-operators/pairwise.ts index 7a1ff59c..491b8c0f 100644 --- a/src/add/iterable-operators/pairwise.ts +++ b/src/add/iterable-operators/pairwise.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { PairwiseIterable } from '../../iterable/operators/pairwise'; +import { IterableX } from '../../iterable/iterablex.js'; +import { PairwiseIterable } from '../../iterable/operators/pairwise.js'; /** * @ignore diff --git a/src/add/iterable-operators/pluck.ts b/src/add/iterable-operators/pluck.ts index ebf908da..9e87a474 100644 --- a/src/add/iterable-operators/pluck.ts +++ b/src/add/iterable-operators/pluck.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { pluck } from '../../iterable/operators/pluck'; +import { IterableX } from '../../iterable/iterablex.js'; +import { pluck } from '../../iterable/operators/pluck.js'; /** * @ignore diff --git a/src/add/iterable-operators/publish.ts b/src/add/iterable-operators/publish.ts index 1148a8d5..4e099d88 100644 --- a/src/add/iterable-operators/publish.ts +++ b/src/add/iterable-operators/publish.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { publish } from '../../iterable/operators/publish'; +import { IterableX } from '../../iterable/iterablex.js'; +import { publish } from '../../iterable/operators/publish.js'; export function publishProto(this: IterableX): IterableX; export function publishProto( diff --git a/src/add/iterable-operators/reduce.ts b/src/add/iterable-operators/reduce.ts index 2a617b79..84f5ee0f 100644 --- a/src/add/iterable-operators/reduce.ts +++ b/src/add/iterable-operators/reduce.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { reduce } from '../../iterable/reduce'; -import { ReduceOptions } from '../../iterable/reduceoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { reduce } from '../../iterable/reduce.js'; +import { ReduceOptions } from '../../iterable/reduceoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/reduceright.ts b/src/add/iterable-operators/reduceright.ts index a1dae994..3307bf5f 100644 --- a/src/add/iterable-operators/reduceright.ts +++ b/src/add/iterable-operators/reduceright.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { reduceRight } from '../../iterable/reduceright'; -import { ReduceOptions } from '../../iterable/reduceoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { reduceRight } from '../../iterable/reduceright.js'; +import { ReduceOptions } from '../../iterable/reduceoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/repeat.ts b/src/add/iterable-operators/repeat.ts index 1f28a298..ed090432 100644 --- a/src/add/iterable-operators/repeat.ts +++ b/src/add/iterable-operators/repeat.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { repeat } from '../../iterable/operators/repeat'; +import { IterableX } from '../../iterable/iterablex.js'; +import { repeat } from '../../iterable/operators/repeat.js'; /** * @ignore diff --git a/src/add/iterable-operators/retry.ts b/src/add/iterable-operators/retry.ts index f12f59c0..ef15bdc9 100644 --- a/src/add/iterable-operators/retry.ts +++ b/src/add/iterable-operators/retry.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { retry } from '../../iterable/operators/retry'; +import { IterableX } from '../../iterable/iterablex.js'; +import { retry } from '../../iterable/operators/retry.js'; /** * @ignore diff --git a/src/add/iterable-operators/reverse.ts b/src/add/iterable-operators/reverse.ts index 00a9306d..0c4b7851 100644 --- a/src/add/iterable-operators/reverse.ts +++ b/src/add/iterable-operators/reverse.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { reverse } from '../../iterable/operators/reverse'; +import { IterableX } from '../../iterable/iterablex.js'; +import { reverse } from '../../iterable/operators/reverse.js'; /** * @ignore diff --git a/src/add/iterable-operators/scan.ts b/src/add/iterable-operators/scan.ts index e0fba02a..3c08dcf1 100644 --- a/src/add/iterable-operators/scan.ts +++ b/src/add/iterable-operators/scan.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { ScanIterable } from '../../iterable/operators/scan'; -import { ScanOptions } from '../../iterable/operators/scanoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { ScanIterable } from '../../iterable/operators/scan.js'; +import { ScanOptions } from '../../iterable/operators/scanoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/scanright.ts b/src/add/iterable-operators/scanright.ts index 84ba6b85..13f54b9b 100644 --- a/src/add/iterable-operators/scanright.ts +++ b/src/add/iterable-operators/scanright.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { ScanRightIterable } from '../../iterable/operators/scanright'; -import { ScanOptions } from '../../iterable/operators/scanoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { ScanRightIterable } from '../../iterable/operators/scanright.js'; +import { ScanOptions } from '../../iterable/operators/scanoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/sequenceequal.ts b/src/add/iterable-operators/sequenceequal.ts index 0b5d6fb6..aba8cb9b 100644 --- a/src/add/iterable-operators/sequenceequal.ts +++ b/src/add/iterable-operators/sequenceequal.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { sequenceEqual, SequencEqualOptions } from '../../iterable/sequenceequal'; +import { IterableX } from '../../iterable/iterablex.js'; +import { sequenceEqual, SequencEqualOptions } from '../../iterable/sequenceequal.js'; /** * @ignore diff --git a/src/add/iterable-operators/share.ts b/src/add/iterable-operators/share.ts index a3d34eb8..796aaddd 100644 --- a/src/add/iterable-operators/share.ts +++ b/src/add/iterable-operators/share.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { share } from '../../iterable/operators/share'; +import { IterableX } from '../../iterable/iterablex.js'; +import { share } from '../../iterable/operators/share.js'; export function shareProto(this: IterableX): IterableX; export function shareProto( diff --git a/src/add/iterable-operators/single.ts b/src/add/iterable-operators/single.ts index b71aa304..fea12fe4 100644 --- a/src/add/iterable-operators/single.ts +++ b/src/add/iterable-operators/single.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { single } from '../../iterable/single'; -import { OptionalFindOptions } from '../../iterable/findoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { single } from '../../iterable/single.js'; +import { OptionalFindOptions } from '../../iterable/findoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/skip.ts b/src/add/iterable-operators/skip.ts index db396daa..d317ec73 100644 --- a/src/add/iterable-operators/skip.ts +++ b/src/add/iterable-operators/skip.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { skip } from '../../iterable/operators/skip'; +import { IterableX } from '../../iterable/iterablex.js'; +import { skip } from '../../iterable/operators/skip.js'; /** * @ignore diff --git a/src/add/iterable-operators/skiplast.ts b/src/add/iterable-operators/skiplast.ts index 1628fd40..b9eb1327 100644 --- a/src/add/iterable-operators/skiplast.ts +++ b/src/add/iterable-operators/skiplast.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { skipLast } from '../../iterable/operators/skiplast'; +import { IterableX } from '../../iterable/iterablex.js'; +import { skipLast } from '../../iterable/operators/skiplast.js'; /** * @ignore diff --git a/src/add/iterable-operators/skipwhile.ts b/src/add/iterable-operators/skipwhile.ts index 860f4c0f..06002e83 100644 --- a/src/add/iterable-operators/skipwhile.ts +++ b/src/add/iterable-operators/skipwhile.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { skipWhile } from '../../iterable/operators/skipwhile'; +import { IterableX } from '../../iterable/iterablex.js'; +import { skipWhile } from '../../iterable/operators/skipwhile.js'; /** * @ignore diff --git a/src/add/iterable-operators/slice.ts b/src/add/iterable-operators/slice.ts index f411fa27..790d76e9 100644 --- a/src/add/iterable-operators/slice.ts +++ b/src/add/iterable-operators/slice.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { slice } from '../../iterable/operators/slice'; +import { IterableX } from '../../iterable/iterablex.js'; +import { slice } from '../../iterable/operators/slice.js'; /** * @ignore diff --git a/src/add/iterable-operators/some.ts b/src/add/iterable-operators/some.ts index 768d5b00..1cf54293 100644 --- a/src/add/iterable-operators/some.ts +++ b/src/add/iterable-operators/some.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { some } from '../../iterable/some'; -import { FindOptions } from '../../iterable/findoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { some } from '../../iterable/some.js'; +import { FindOptions } from '../../iterable/findoptions.js'; /** * @ignore diff --git a/src/add/iterable-operators/startwith.ts b/src/add/iterable-operators/startwith.ts index d9d8a4c7..5befc864 100644 --- a/src/add/iterable-operators/startwith.ts +++ b/src/add/iterable-operators/startwith.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { startWith } from '../../iterable/operators/startwith'; +import { IterableX } from '../../iterable/iterablex.js'; +import { startWith } from '../../iterable/operators/startwith.js'; /** * @ignore diff --git a/src/add/iterable-operators/sum.ts b/src/add/iterable-operators/sum.ts index 9af42f2a..77823475 100644 --- a/src/add/iterable-operators/sum.ts +++ b/src/add/iterable-operators/sum.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { sum } from '../../iterable/sum'; -import { MathOptions } from '../../iterable/mathoptions'; +import { IterableX } from '../../iterable/iterablex.js'; +import { sum } from '../../iterable/sum.js'; +import { MathOptions } from '../../iterable/mathoptions.js'; export function sumProto(this: IterableX, options?: MathOptions): number; export function sumProto(this: IterableX, options?: MathOptions): number; diff --git a/src/add/iterable-operators/take.ts b/src/add/iterable-operators/take.ts index 751d7299..4944dbf6 100644 --- a/src/add/iterable-operators/take.ts +++ b/src/add/iterable-operators/take.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { take } from '../../iterable/operators/take'; +import { IterableX } from '../../iterable/iterablex.js'; +import { take } from '../../iterable/operators/take.js'; /** * @ignore diff --git a/src/add/iterable-operators/takelast.ts b/src/add/iterable-operators/takelast.ts index 64c105ef..202ced06 100644 --- a/src/add/iterable-operators/takelast.ts +++ b/src/add/iterable-operators/takelast.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { takeLast } from '../../iterable/operators/takelast'; +import { IterableX } from '../../iterable/iterablex.js'; +import { takeLast } from '../../iterable/operators/takelast.js'; /** * @ignore diff --git a/src/add/iterable-operators/takewhile.ts b/src/add/iterable-operators/takewhile.ts index 3ac37a7b..8d644c58 100644 --- a/src/add/iterable-operators/takewhile.ts +++ b/src/add/iterable-operators/takewhile.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { takeWhile } from '../../iterable/operators/takewhile'; +import { IterableX } from '../../iterable/iterablex.js'; +import { takeWhile } from '../../iterable/operators/takewhile.js'; /** * @ignore diff --git a/src/add/iterable-operators/tap.ts b/src/add/iterable-operators/tap.ts index 5e8f98d2..ae782030 100644 --- a/src/add/iterable-operators/tap.ts +++ b/src/add/iterable-operators/tap.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../../iterable/iterablex'; -import { tap } from '../../iterable/operators/tap'; -import { PartialObserver } from '../../observer'; +import { IterableX } from '../../iterable/iterablex.js'; +import { tap } from '../../iterable/operators/tap.js'; +import { PartialObserver } from '../../observer.js'; /** * @ignore diff --git a/src/add/iterable-operators/toarray.ts b/src/add/iterable-operators/toarray.ts index 9703ddf6..89cd498f 100644 --- a/src/add/iterable-operators/toarray.ts +++ b/src/add/iterable-operators/toarray.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { toArray } from '../../iterable/toarray'; +import { IterableX } from '../../iterable/iterablex.js'; +import { toArray } from '../../iterable/toarray.js'; /** * @ignore diff --git a/src/add/iterable-operators/todomstream.ts b/src/add/iterable-operators/todomstream.ts index 864e418d..38e7a3d7 100644 --- a/src/add/iterable-operators/todomstream.ts +++ b/src/add/iterable-operators/todomstream.ts @@ -1,9 +1,9 @@ -import { IterableX } from '../../iterable/iterablex'; -import { toDOMStream } from '../../iterable/todomstream'; +import { IterableX } from '../../iterable/iterablex.js'; +import { toDOMStream } from '../../iterable/todomstream.js'; import { ReadableBYOBStreamOptions, ReadableByteStreamOptions, -} from '../../asynciterable/todomstream'; +} from '../../asynciterable/todomstream.js'; /** * @ignore diff --git a/src/add/iterable-operators/tomap.ts b/src/add/iterable-operators/tomap.ts index 7ba1180e..2e957424 100644 --- a/src/add/iterable-operators/tomap.ts +++ b/src/add/iterable-operators/tomap.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { toMap, ToMapOptions } from '../../iterable/tomap'; +import { IterableX } from '../../iterable/iterablex.js'; +import { toMap, ToMapOptions } from '../../iterable/tomap.js'; export function toMapProto( this: IterableX, diff --git a/src/add/iterable-operators/tonodestream.ts b/src/add/iterable-operators/tonodestream.ts index cc17818d..79fa920a 100644 --- a/src/add/iterable-operators/tonodestream.ts +++ b/src/add/iterable-operators/tonodestream.ts @@ -1,7 +1,7 @@ import { ReadableOptions } from 'stream'; -import { BufferLike } from '../../interfaces'; -import { IterableX } from '../../iterable/iterablex'; -import { IterableReadable } from '../../iterable/tonodestream'; +import { BufferLike } from '../../interfaces.js'; +import { IterableX } from '../../iterable/iterablex.js'; +import { IterableReadable } from '../../iterable/tonodestream.js'; /** * @ignore diff --git a/src/add/iterable-operators/toset.ts b/src/add/iterable-operators/toset.ts index a9baa2b4..179dfc00 100644 --- a/src/add/iterable-operators/toset.ts +++ b/src/add/iterable-operators/toset.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { toSet } from '../../iterable/toset'; +import { IterableX } from '../../iterable/iterablex.js'; +import { toSet } from '../../iterable/toset.js'; /** * @ignore diff --git a/src/add/iterable-operators/union.ts b/src/add/iterable-operators/union.ts index 50e97718..16416ab8 100644 --- a/src/add/iterable-operators/union.ts +++ b/src/add/iterable-operators/union.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { union } from '../../iterable/operators/union'; +import { IterableX } from '../../iterable/iterablex.js'; +import { union } from '../../iterable/operators/union.js'; /** * @ignore diff --git a/src/add/iterable-operators/zip.ts b/src/add/iterable-operators/zip.ts index 82cb972f..5787cd71 100644 --- a/src/add/iterable-operators/zip.ts +++ b/src/add/iterable-operators/zip.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { zip } from '../../iterable/zip'; +import { IterableX } from '../../iterable/iterablex.js'; +import { zip } from '../../iterable/zip.js'; /** * @ignore diff --git a/src/add/iterable/catchall.ts b/src/add/iterable/catchall.ts index 66a2c64a..9a3e64cc 100644 --- a/src/add/iterable/catchall.ts +++ b/src/add/iterable/catchall.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { catchAll as _catchAll } from '../../iterable/catcherror'; +import { IterableX } from '../../iterable/iterablex.js'; +import { catchAll as _catchAll } from '../../iterable/catcherror.js'; /** @nocollapse */ IterableX.catchAll = _catchAll; diff --git a/src/add/iterable/catcherror.ts b/src/add/iterable/catcherror.ts index 698da234..50571da1 100644 --- a/src/add/iterable/catcherror.ts +++ b/src/add/iterable/catcherror.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { catchError as _catchError } from '../../iterable/catcherror'; +import { IterableX } from '../../iterable/iterablex.js'; +import { catchError as _catchError } from '../../iterable/catcherror.js'; /** @nocollapse */ IterableX.catchError = _catchError; diff --git a/src/add/iterable/concat.ts b/src/add/iterable/concat.ts index 6730cdd1..b9317ddb 100644 --- a/src/add/iterable/concat.ts +++ b/src/add/iterable/concat.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { concat as concatStatic } from '../../iterable/concat'; +import { IterableX } from '../../iterable/iterablex.js'; +import { concat as concatStatic } from '../../iterable/concat.js'; /** @nocollapse */ IterableX.concat = concatStatic; diff --git a/src/add/iterable/create.ts b/src/add/iterable/create.ts index 69850707..a2948e2c 100644 --- a/src/add/iterable/create.ts +++ b/src/add/iterable/create.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { create as createStatic } from '../../iterable/create'; +import { IterableX } from '../../iterable/iterablex.js'; +import { create as createStatic } from '../../iterable/create.js'; /** @nocollapse */ IterableX.create = createStatic; diff --git a/src/add/iterable/defer.ts b/src/add/iterable/defer.ts index 898d83a4..f757c315 100644 --- a/src/add/iterable/defer.ts +++ b/src/add/iterable/defer.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { defer as deferStatic } from '../../iterable/defer'; +import { IterableX } from '../../iterable/iterablex.js'; +import { defer as deferStatic } from '../../iterable/defer.js'; /** @nocollapse */ IterableX.defer = deferStatic; diff --git a/src/add/iterable/empty.ts b/src/add/iterable/empty.ts index f586000c..299a4aab 100644 --- a/src/add/iterable/empty.ts +++ b/src/add/iterable/empty.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { empty as emptyStatic } from '../../iterable/empty'; +import { IterableX } from '../../iterable/iterablex.js'; +import { empty as emptyStatic } from '../../iterable/empty.js'; /** @nocollapse */ IterableX.empty = emptyStatic; diff --git a/src/add/iterable/generate.ts b/src/add/iterable/generate.ts index a6c6962f..50c66db6 100644 --- a/src/add/iterable/generate.ts +++ b/src/add/iterable/generate.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { generate as generateStatic } from '../../iterable/generate'; +import { IterableX } from '../../iterable/iterablex.js'; +import { generate as generateStatic } from '../../iterable/generate.js'; /** @nocollapse */ IterableX.generate = generateStatic; diff --git a/src/add/iterable/iif.ts b/src/add/iterable/iif.ts index e6d049e1..c8b370a4 100644 --- a/src/add/iterable/iif.ts +++ b/src/add/iterable/iif.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { iif as ifStatic } from '../../iterable/iif'; +import { IterableX } from '../../iterable/iterablex.js'; +import { iif as ifStatic } from '../../iterable/iif.js'; /** @nocollapse */ IterableX.iif = ifStatic; diff --git a/src/add/iterable/of.ts b/src/add/iterable/of.ts index abe0bebd..5060e58a 100644 --- a/src/add/iterable/of.ts +++ b/src/add/iterable/of.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { of as ofStatic } from '../../iterable/of'; +import { IterableX } from '../../iterable/iterablex.js'; +import { of as ofStatic } from '../../iterable/of.js'; /** @nocollapse */ IterableX.of = ofStatic; diff --git a/src/add/iterable/onerrorresumenext.ts b/src/add/iterable/onerrorresumenext.ts index bb2931a5..ea40833b 100644 --- a/src/add/iterable/onerrorresumenext.ts +++ b/src/add/iterable/onerrorresumenext.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { onErrorResumeNext as onErrorResumeNextStatic } from '../../iterable/onerrorresumenext'; +import { IterableX } from '../../iterable/iterablex.js'; +import { onErrorResumeNext as onErrorResumeNextStatic } from '../../iterable/onerrorresumenext.js'; /** @nocollapse */ IterableX.onErrorResumeNext = onErrorResumeNextStatic; diff --git a/src/add/iterable/range.ts b/src/add/iterable/range.ts index b2cadf24..d6804058 100644 --- a/src/add/iterable/range.ts +++ b/src/add/iterable/range.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { range as rangeStatic } from '../../iterable/range'; +import { IterableX } from '../../iterable/iterablex.js'; +import { range as rangeStatic } from '../../iterable/range.js'; /** @nocollapse */ IterableX.range = rangeStatic; diff --git a/src/add/iterable/repeat.ts b/src/add/iterable/repeat.ts index 43555ced..2ca2e4ad 100644 --- a/src/add/iterable/repeat.ts +++ b/src/add/iterable/repeat.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { repeatValue as _repeatValue } from '../../iterable/repeatvalue'; +import { IterableX } from '../../iterable/iterablex.js'; +import { repeatValue as _repeatValue } from '../../iterable/repeatvalue.js'; /** @nocollapse */ IterableX.repeatValue = _repeatValue; diff --git a/src/add/iterable/throwerror.ts b/src/add/iterable/throwerror.ts index 41b35e7a..725fb6da 100644 --- a/src/add/iterable/throwerror.ts +++ b/src/add/iterable/throwerror.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { throwError as throwErrorStatic } from '../../iterable/throwerror'; +import { IterableX } from '../../iterable/iterablex.js'; +import { throwError as throwErrorStatic } from '../../iterable/throwerror.js'; /** @nocollapse */ IterableX.throwError = throwErrorStatic; diff --git a/src/add/iterable/while.ts b/src/add/iterable/while.ts index 104c5ae6..7453b32e 100644 --- a/src/add/iterable/while.ts +++ b/src/add/iterable/while.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { whileDo as whileDoStatic } from '../../iterable/whiledo'; +import { IterableX } from '../../iterable/iterablex.js'; +import { whileDo as whileDoStatic } from '../../iterable/whiledo.js'; /** @nocollapse */ IterableX.whileDo = whileDoStatic; diff --git a/src/add/iterable/zip.ts b/src/add/iterable/zip.ts index adcbbda7..9ab9f92d 100644 --- a/src/add/iterable/zip.ts +++ b/src/add/iterable/zip.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../../iterable/iterablex'; -import { zip as zipStatic } from '../../iterable/zip'; +import { IterableX } from '../../iterable/iterablex.js'; +import { zip as zipStatic } from '../../iterable/zip.js'; /** @nocollapse */ IterableX.zip = zipStatic; diff --git a/src/asynciterable/_extremaby.ts b/src/asynciterable/_extremaby.ts index 55609f87..3f1dc45d 100644 --- a/src/asynciterable/_extremaby.ts +++ b/src/asynciterable/_extremaby.ts @@ -1,5 +1,5 @@ -import { throwIfAborted } from '../aborterror'; -import { wrapWithAbort } from './operators/withabort'; +import { throwIfAborted } from '../aborterror.js'; +import { wrapWithAbort } from './operators/withabort.js'; export async function extremaBy( source: AsyncIterable, diff --git a/src/asynciterable/_sleep.ts b/src/asynciterable/_sleep.ts index 1aeda3c5..42e307c8 100644 --- a/src/asynciterable/_sleep.ts +++ b/src/asynciterable/_sleep.ts @@ -1,4 +1,4 @@ -import { AbortError } from '../aborterror'; +import { AbortError } from '../aborterror.js'; export function sleep(dueTime: number, signal?: AbortSignal) { return new Promise((resolve, reject) => { diff --git a/src/asynciterable/asasynciterable.ts b/src/asynciterable/asasynciterable.ts index a3c31a86..bb8bdb91 100644 --- a/src/asynciterable/asasynciterable.ts +++ b/src/asynciterable/asasynciterable.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { OperatorAsyncFunction, UnaryFunction } from '../interfaces'; +import { AsyncIterableX } from './asynciterablex.js'; +import { OperatorAsyncFunction, UnaryFunction } from '../interfaces.js'; import { Transform, TransformCallback, TransformOptions } from 'stream'; /** @ignore */ diff --git a/src/asynciterable/asyncify.ts b/src/asynciterable/asyncify.ts index f2f8da49..370de6a0 100644 --- a/src/asynciterable/asyncify.ts +++ b/src/asynciterable/asyncify.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { AsyncSink } from './asyncsink'; -import { memoize } from './operators/memoize'; +import { AsyncIterableX } from './asynciterablex.js'; +import { AsyncSink } from './asyncsink.js'; +import { memoize } from './operators/memoize.js'; /** * Converts the callback function into wrapped function which returns an async-iterable. diff --git a/src/asynciterable/asyncifyerrback.ts b/src/asynciterable/asyncifyerrback.ts index 33f2dc3d..c756ea4c 100644 --- a/src/asynciterable/asyncifyerrback.ts +++ b/src/asynciterable/asyncifyerrback.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { AsyncSink } from './asyncsink'; -import { memoize } from './operators/memoize'; +import { AsyncIterableX } from './asynciterablex.js'; +import { AsyncSink } from './asyncsink.js'; +import { memoize } from './operators/memoize.js'; /** * Converts a Node.js style error first callback to an async-iterable sequence. diff --git a/src/asynciterable/asynciterablex.ts b/src/asynciterable/asynciterablex.ts index d5cb0ac4..6e3a3420 100644 --- a/src/asynciterable/asynciterablex.ts +++ b/src/asynciterable/asynciterablex.ts @@ -1,7 +1,7 @@ -import { OperatorAsyncFunction, UnaryFunction } from '../interfaces'; -import { Observable } from '../observer'; -import { bindCallback } from '../util/bindcallback'; -import { identityAsync } from '../util/identity'; +import { OperatorAsyncFunction, UnaryFunction } from '../interfaces.js'; +import { Observable } from '../observer.js'; +import { bindCallback } from '../util/bindcallback.js'; +import { identityAsync } from '../util/identity.js'; import { isReadableNodeStream, isWritableNodeStream, @@ -11,9 +11,9 @@ import { isIterator, isPromise, isObservable, -} from '../util/isiterable'; -import { toLength } from '../util/tolength'; -import { AbortError, throwIfAborted } from '../aborterror'; +} from '../util/isiterable.js'; +import { toLength } from '../util/tolength.js'; +import { AbortError, throwIfAborted } from '../aborterror.js'; /** * This class serves as the base for all operations which support [Symbol.asyncIterator]. @@ -481,3 +481,6 @@ try { } catch (e) { /* */ } + +export const as = AsyncIterableX.as; +export const from = AsyncIterableX.from; diff --git a/src/asynciterable/average.ts b/src/asynciterable/average.ts index 0a9d8be8..b920a11d 100644 --- a/src/asynciterable/average.ts +++ b/src/asynciterable/average.ts @@ -1,7 +1,7 @@ -import { identityAsync } from '../util/identity'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { MathOptions } from './mathoptions'; +import { identityAsync } from '../util/identity.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { MathOptions } from './mathoptions.js'; /** * Computes the average of the async-iterable sequence. diff --git a/src/asynciterable/catcherror.ts b/src/asynciterable/catcherror.ts index 54b513e2..90de1cc8 100644 --- a/src/asynciterable/catcherror.ts +++ b/src/asynciterable/catcherror.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from './asynciterablex'; -import { returnAsyncIterator } from '../util/returniterator'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { returnAsyncIterator } from '../util/returniterator.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** @ignore */ export class CatchAllAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/combinelatest.ts b/src/asynciterable/combinelatest.ts index 15edbe20..8e911818 100644 --- a/src/asynciterable/combinelatest.ts +++ b/src/asynciterable/combinelatest.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from './asynciterablex'; -import { identity } from '../util/identity'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { safeRace } from '../util/safeRace'; +import { AsyncIterableX } from './asynciterablex.js'; +import { identity } from '../util/identity.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { safeRace } from '../util/safeRace.js'; // eslint-disable-next-line @typescript-eslint/no-empty-function const NEVER_PROMISE = new Promise(() => {}); diff --git a/src/asynciterable/concat.ts b/src/asynciterable/concat.ts index dcd39726..70753065 100644 --- a/src/asynciterable/concat.ts +++ b/src/asynciterable/concat.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** @ignore */ export class ConcatAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/count.ts b/src/asynciterable/count.ts index 5838c3ca..e806adb7 100644 --- a/src/asynciterable/count.ts +++ b/src/asynciterable/count.ts @@ -1,6 +1,6 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { OptionalFindOptions } from './findoptions'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { OptionalFindOptions } from './findoptions.js'; /** * Returns a promise that represents how many elements in the specified async-iterable sequence satisfy a condition diff --git a/src/asynciterable/create.ts b/src/asynciterable/create.ts index 4223eb3a..709b3f17 100644 --- a/src/asynciterable/create.ts +++ b/src/asynciterable/create.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { throwIfAborted } from '../aborterror.js'; class AnonymousAsyncIterable extends AsyncIterableX { private _fn: (signal?: AbortSignal) => AsyncIterator | Promise>; diff --git a/src/asynciterable/defer.ts b/src/asynciterable/defer.ts index e7e27919..c1b8d482 100644 --- a/src/asynciterable/defer.ts +++ b/src/asynciterable/defer.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; class DeferAsyncIterable extends AsyncIterableX { private _fn: (signal?: AbortSignal) => AsyncIterable | Promise>; diff --git a/src/asynciterable/elementat.ts b/src/asynciterable/elementat.ts index 876b1b54..fe93591c 100644 --- a/src/asynciterable/elementat.ts +++ b/src/asynciterable/elementat.ts @@ -1,5 +1,5 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * Returns the element at a specified index in a sequence or undefined if the index is out of range. diff --git a/src/asynciterable/empty.ts b/src/asynciterable/empty.ts index f93cad0f..62427fa3 100644 --- a/src/asynciterable/empty.ts +++ b/src/asynciterable/empty.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { throwIfAborted } from '../aborterror.js'; class EmptyAsyncIterable extends AsyncIterableX { async *[Symbol.asyncIterator](signal?: AbortSignal): AsyncIterator { diff --git a/src/asynciterable/every.ts b/src/asynciterable/every.ts index 8d3b74b8..5032d1df 100644 --- a/src/asynciterable/every.ts +++ b/src/asynciterable/every.ts @@ -1,6 +1,6 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { FindOptions } from './findoptions'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { FindOptions } from './findoptions.js'; /** * Determines whether all elements of an async-iterable sequence satisfy a condition. diff --git a/src/asynciterable/find.ts b/src/asynciterable/find.ts index 2a2cb5c2..2e52e674 100644 --- a/src/asynciterable/find.ts +++ b/src/asynciterable/find.ts @@ -1,6 +1,6 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { FindOptions } from './findoptions'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { FindOptions } from './findoptions.js'; /** * Returns the value of the first element in the provided async-iterable that satisfies the provided testing function. diff --git a/src/asynciterable/findindex.ts b/src/asynciterable/findindex.ts index 78d7e18b..113455e7 100644 --- a/src/asynciterable/findindex.ts +++ b/src/asynciterable/findindex.ts @@ -1,6 +1,6 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { FindOptions } from './findoptions'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { FindOptions } from './findoptions.js'; /** * Returns the a Promise containing the index of the first element in the array that satisfies the provided testing function. diff --git a/src/asynciterable/first.ts b/src/asynciterable/first.ts index cc605aff..1ebb2bc4 100644 --- a/src/asynciterable/first.ts +++ b/src/asynciterable/first.ts @@ -1,6 +1,6 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { OptionalFindOptions } from './findoptions'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { OptionalFindOptions } from './findoptions.js'; /** * Returns the first element of an async-iterable sequence that matches the predicate if provided, or undefined if no such element exists. diff --git a/src/asynciterable/forkjoin.ts b/src/asynciterable/forkjoin.ts index 480fba09..81dee635 100644 --- a/src/asynciterable/forkjoin.ts +++ b/src/asynciterable/forkjoin.ts @@ -1,6 +1,6 @@ -import { identity } from '../util/identity'; -import { wrapWithAbort } from './operators/withabort'; -import { safeRace } from '../util/safeRace'; +import { identity } from '../util/identity.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { safeRace } from '../util/safeRace.js'; // eslint-disable-next-line @typescript-eslint/no-empty-function const NEVER_PROMISE = new Promise(() => {}); diff --git a/src/asynciterable/fromdomstream.ts b/src/asynciterable/fromdomstream.ts index c6d9f75d..8d909f49 100644 --- a/src/asynciterable/fromdomstream.ts +++ b/src/asynciterable/fromdomstream.ts @@ -1,4 +1,4 @@ -import { AsyncIterableX } from './asynciterablex'; +import { AsyncIterableX } from './asynciterablex.js'; /** @ignore */ const SharedArrayBuf = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : ArrayBuffer; diff --git a/src/asynciterable/fromevent.ts b/src/asynciterable/fromevent.ts index 775b5e5d..307eaec1 100644 --- a/src/asynciterable/fromevent.ts +++ b/src/asynciterable/fromevent.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { fromEventPattern } from './fromeventpattern'; -import { isFunction } from '../util/isiterable'; +import { AsyncIterableX } from './asynciterablex.js'; +import { fromEventPattern } from './fromeventpattern.js'; +import { isFunction } from '../util/isiterable.js'; type CommonEventHandler = (...args: any[]) => void; diff --git a/src/asynciterable/fromeventpattern.ts b/src/asynciterable/fromeventpattern.ts index 43d41287..a865e391 100644 --- a/src/asynciterable/fromeventpattern.ts +++ b/src/asynciterable/fromeventpattern.ts @@ -1,8 +1,8 @@ -import { memoize } from './operators/memoize'; -import { identity } from '../util/identity'; -import { isFunction } from '../util/isiterable'; -import { AsyncIterableX } from './asynciterablex'; -import { AsyncSink } from './asyncsink'; +import { memoize } from './operators/memoize.js'; +import { identity } from '../util/identity.js'; +import { isFunction } from '../util/isiterable.js'; +import { AsyncIterableX } from './asynciterablex.js'; +import { AsyncSink } from './asyncsink.js'; const { isArray } = Array; diff --git a/src/asynciterable/fromnodestream.ts b/src/asynciterable/fromnodestream.ts index e3eaab9e..d1ef1ade 100644 --- a/src/asynciterable/fromnodestream.ts +++ b/src/asynciterable/fromnodestream.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { safeRace } from '../util/safeRace'; +import { AsyncIterableX } from './asynciterablex.js'; +import { safeRace } from '../util/safeRace.js'; const NON_FLOWING = 0; const READABLE = 1; diff --git a/src/asynciterable/generate.ts b/src/asynciterable/generate.ts index 9d1a7f39..34526d60 100644 --- a/src/asynciterable/generate.ts +++ b/src/asynciterable/generate.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { throwIfAborted } from '../aborterror.js'; class GenerateAsyncIterable extends AsyncIterableX { private _initialState: TState; diff --git a/src/asynciterable/generatetime.ts b/src/asynciterable/generatetime.ts index 7b8c2c8e..245330cc 100644 --- a/src/asynciterable/generatetime.ts +++ b/src/asynciterable/generatetime.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { sleep } from './_sleep'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { sleep } from './_sleep.js'; +import { throwIfAborted } from '../aborterror.js'; class GenerateTimeAsyncIterable extends AsyncIterableX { private _initialState: TState; diff --git a/src/asynciterable/iif.ts b/src/asynciterable/iif.ts index 29469116..50227fe9 100644 --- a/src/asynciterable/iif.ts +++ b/src/asynciterable/iif.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { defer } from './defer'; -import { empty } from './empty'; +import { AsyncIterableX } from './asynciterablex.js'; +import { defer } from './defer.js'; +import { empty } from './empty.js'; /** * If the specified condition evaluates true, select the thenSource sequence. diff --git a/src/asynciterable/includes.ts b/src/asynciterable/includes.ts index f944e4e1..9162998f 100644 --- a/src/asynciterable/includes.ts +++ b/src/asynciterable/includes.ts @@ -1,6 +1,6 @@ -import { comparer } from '../util/comparer'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { comparer } from '../util/comparer.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * Determines whether an async-itreable includes a certain value among its entries, returning true or false as appropriate. diff --git a/src/asynciterable/index.node.ts b/src/asynciterable/index.node.ts index 1363bc8f..c0391fe8 100644 --- a/src/asynciterable/index.node.ts +++ b/src/asynciterable/index.node.ts @@ -1,4 +1,4 @@ -export * from './index'; -export * from './tonodestream'; -export * from './fromnodestream'; -export * from './asasynciterable'; +export * from './index.js'; +export * from './tonodestream.js'; +export * from './fromnodestream.js'; +export * from './asasynciterable.js'; diff --git a/src/asynciterable/index.ts b/src/asynciterable/index.ts index c1894543..2ea0dff0 100644 --- a/src/asynciterable/index.ts +++ b/src/asynciterable/index.ts @@ -1,56 +1,52 @@ -export * from './asyncifyerrback'; -export * from './asyncify'; -export * from './asynciterablex'; -export * from './average'; -export * from './catcherror'; -export * from './combinelatest'; -export * from './concat'; -export * from './count'; -export * from './create'; -export * from './defer'; -export * from './elementat'; -export * from './empty'; -export * from './every'; -export * from './findindex'; -export * from './find'; -export * from './first'; -export * from './forkjoin'; -export * from './fromdomstream'; -export * from './fromeventpattern'; -export * from './fromevent'; -export * from './generate'; -export * from './generatetime'; -export * from './iif'; -export * from './includes'; -export * from './interval'; -export * from './isempty'; -export * from './last'; -export * from './max'; -export * from './maxby'; -export * from './merge'; -export * from './min'; -export * from './minby'; -export * from './never'; -export * from './of'; -export * from './onerrorresumenext'; -export * from './race'; -export * from './range'; -export * from './reduceright'; -export * from './reduce'; -export * from './repeatvalue'; -export * from './sequenceequal'; -export * from './single'; -export * from './some'; -export * from './sum'; -export * from './throwerrror'; -export * from './toarray'; -export * from './todomstream'; -export * from './tomap'; -export * from './toobservable'; -export * from './toset'; -export * from './whiledo'; -export * from './zip'; - -import { AsyncIterableX } from './asynciterablex'; -export const as = AsyncIterableX.as; -export const from = AsyncIterableX.from; +export { asyncifyErrback } from './asyncifyerrback.js'; +export { asyncify } from './asyncify.js'; +export { AsyncIterableX, AsyncSink, as, from } from './asynciterablex.js'; +export { average } from './average.js'; +export { catchAll, catchError } from './catcherror.js'; +export { combineLatest } from './combinelatest.js'; +export { concat, _concatAll } from './concat.js'; +export { count } from './count.js'; +export { create } from './create.js'; +export { defer } from './defer.js'; +export { elementAt } from './elementat.js'; +export { empty } from './empty.js'; +export { every } from './every.js'; +export { findIndex } from './findindex.js'; +export { find } from './find.js'; +export { first } from './first.js'; +export { forkJoin } from './forkjoin.js'; +export { fromDOMStream } from './fromdomstream.js'; +export { fromEventPattern } from './fromeventpattern.js'; +export { fromEvent } from './fromevent.js'; +export { generate } from './generate.js'; +export { generateTime } from './generatetime.js'; +export { iif } from './iif.js'; +export { includes } from './includes'; +export { interval } from './interval.js'; +export { isEmpty } from './isempty.js'; +export { last } from './last.js'; +export { max } from './max.js'; +export { maxBy } from './maxby.js'; +export { merge } from './merge.js'; +export { min } from './min.js'; +export { minBy } from './minby.js'; +export { never } from './never.js'; +export { of } from './of.js'; +export { onErrorResumeNext } from './onerrorresumenext.js'; +export { race } from './race.js'; +export { range } from './range.js'; +export { reduceRight } from './reduceright.js'; +export { reduce } from './reduce.js'; +export { repeatValue } from './repeatvalue.js'; +export { sequenceEqual } from './sequenceequal.js'; +export { single } from './single.js'; +export { some } from './some.js'; +export { sum } from './sum.js'; +export { throwError } from './throwerrror.js'; +export { toArray } from './toarray.js'; +export { toDOMStream } from './todomstream.js'; +export { toMap } from './tomap.js'; +export { toObservable } from './toobservable.js'; +export { toSet } from './toset.js'; +export { whileDo } from './whiledo.js'; +export { zip } from './zip.js'; diff --git a/src/asynciterable/interval.ts b/src/asynciterable/interval.ts index 6ec7b375..4938b62e 100644 --- a/src/asynciterable/interval.ts +++ b/src/asynciterable/interval.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { sleep } from './_sleep'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { sleep } from './_sleep.js'; +import { throwIfAborted } from '../aborterror.js'; class IntervalAsyncIterable extends AsyncIterableX { private _dueTime: number; diff --git a/src/asynciterable/isempty.ts b/src/asynciterable/isempty.ts index aab00958..aedc1b70 100644 --- a/src/asynciterable/isempty.ts +++ b/src/asynciterable/isempty.ts @@ -1,5 +1,5 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * Determines whether the given async-iterable is empty. diff --git a/src/asynciterable/last.ts b/src/asynciterable/last.ts index 79b6aa44..cbee6cbb 100644 --- a/src/asynciterable/last.ts +++ b/src/asynciterable/last.ts @@ -1,6 +1,6 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { OptionalFindOptions } from './findoptions'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { OptionalFindOptions } from './findoptions.js'; /** * Returns the last element of an async-iterable sequence that satisfies the condition in the predicate if given diff --git a/src/asynciterable/max.ts b/src/asynciterable/max.ts index 083faec0..b32b8620 100644 --- a/src/asynciterable/max.ts +++ b/src/asynciterable/max.ts @@ -1,8 +1,8 @@ -import { equalityComparerAsync } from '../util/comparer'; -import { identityAsync } from '../util/identity'; -import { ExtremaOptions } from './extremaoptions'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { equalityComparerAsync } from '../util/comparer.js'; +import { identityAsync } from '../util/identity.js'; +import { ExtremaOptions } from './extremaoptions.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * Returns the maximum element with the optional selector. diff --git a/src/asynciterable/maxby.ts b/src/asynciterable/maxby.ts index bb84e825..6516e549 100644 --- a/src/asynciterable/maxby.ts +++ b/src/asynciterable/maxby.ts @@ -1,6 +1,6 @@ -import { extremaBy } from './_extremaby'; -import { ExtremaOptions } from './extremaoptions'; -import { equalityComparerAsync } from '../util/comparer'; +import { extremaBy } from './_extremaby.js'; +import { ExtremaOptions } from './extremaoptions.js'; +import { equalityComparerAsync } from '../util/comparer.js'; /** * Returns the elements in an async-iterable sequence with the maximum key value. diff --git a/src/asynciterable/merge.ts b/src/asynciterable/merge.ts index 45903776..4eca293a 100644 --- a/src/asynciterable/merge.ts +++ b/src/asynciterable/merge.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from './asynciterablex'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { safeRace } from '../util/safeRace'; +import { AsyncIterableX } from './asynciterablex.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { safeRace } from '../util/safeRace.js'; // eslint-disable-next-line @typescript-eslint/no-empty-function const NEVER_PROMISE = new Promise(() => {}); @@ -10,7 +10,7 @@ type MergeResult = { value: T; index: number; done?: boolean; error?: any }; function wrapPromiseWithIndex(promise: Promise>, index: number) { return promise - .then(({value, done}) => ({ value, done, index })) + .then(({ value, done }) => ({ value, done, index })) .catch((error) => ({ error, index })) as Promise>; } diff --git a/src/asynciterable/min.ts b/src/asynciterable/min.ts index d131796e..d283da3f 100644 --- a/src/asynciterable/min.ts +++ b/src/asynciterable/min.ts @@ -1,8 +1,8 @@ -import { equalityComparerAsync } from '../util/comparer'; -import { identityAsync } from '../util/identity'; -import { ExtremaOptions } from './extremaoptions'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { equalityComparerAsync } from '../util/comparer.js'; +import { identityAsync } from '../util/identity.js'; +import { ExtremaOptions } from './extremaoptions.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * * Returns the minimum element with the optional selector. diff --git a/src/asynciterable/minby.ts b/src/asynciterable/minby.ts index 21a693f4..44d56614 100644 --- a/src/asynciterable/minby.ts +++ b/src/asynciterable/minby.ts @@ -1,6 +1,6 @@ -import { extremaBy } from './_extremaby'; -import { ExtremaOptions } from './extremaoptions'; -import { equalityComparerAsync } from '../util/comparer'; +import { extremaBy } from './_extremaby.js'; +import { ExtremaOptions } from './extremaoptions.js'; +import { equalityComparerAsync } from '../util/comparer.js'; /** * Returns the elements in an async-enumerable sequence with the minimum key value. diff --git a/src/asynciterable/never.ts b/src/asynciterable/never.ts index 11016d40..18bb6f12 100644 --- a/src/asynciterable/never.ts +++ b/src/asynciterable/never.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { throwIfAborted, AbortError } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { throwIfAborted, AbortError } from '../aborterror.js'; /** @ignore */ export class NeverAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/of.ts b/src/asynciterable/of.ts index 97a5c636..12e49cf0 100644 --- a/src/asynciterable/of.ts +++ b/src/asynciterable/of.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { throwIfAborted } from '../aborterror.js'; /** @ignore */ export class OfAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/onerrorresumenext.ts b/src/asynciterable/onerrorresumenext.ts index beec6820..c0b0b125 100644 --- a/src/asynciterable/onerrorresumenext.ts +++ b/src/asynciterable/onerrorresumenext.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** @ignore */ export class OnErrorResumeNextAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/_flatten.ts b/src/asynciterable/operators/_flatten.ts index daad280a..b2513d9c 100644 --- a/src/asynciterable/operators/_flatten.ts +++ b/src/asynciterable/operators/_flatten.ts @@ -1,9 +1,9 @@ -import { AsyncIterableInput, AsyncIterableX } from '../asynciterablex'; -import { wrapWithAbort } from '../operators/withabort'; -import { AbortError, throwIfAborted } from '../../aborterror'; -import { safeRace } from '../../util/safeRace'; -import { isPromise } from '../../util/isiterable'; -import { returnAsyncIterator } from '../../util/returniterator'; +import { AsyncIterableInput, AsyncIterableX } from '../asynciterablex.js'; +import { wrapWithAbort } from '../operators/withabort.js'; +import { AbortError, throwIfAborted } from '../../aborterror.js'; +import { safeRace } from '../../util/safeRace.js'; +import { isPromise } from '../../util/isiterable.js'; +import { returnAsyncIterator } from '../../util/returniterator.js'; export type FlattenConcurrentSelector = ( value: TSource, diff --git a/src/asynciterable/operators/_grouping.ts b/src/asynciterable/operators/_grouping.ts index 903e43c2..c2153cad 100644 --- a/src/asynciterable/operators/_grouping.ts +++ b/src/asynciterable/operators/_grouping.ts @@ -1,4 +1,4 @@ -import { wrapWithAbort } from './withabort'; +import { wrapWithAbort } from './withabort.js'; /** * @ignore diff --git a/src/asynciterable/operators/batch.ts b/src/asynciterable/operators/batch.ts index ec10d111..f0aed6c4 100644 --- a/src/asynciterable/operators/batch.ts +++ b/src/asynciterable/operators/batch.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; interface AsyncResolver { resolve: (value: T | PromiseLike) => void; diff --git a/src/asynciterable/operators/buffer.ts b/src/asynciterable/operators/buffer.ts index ffd96b79..2d3a362a 100644 --- a/src/asynciterable/operators/buffer.ts +++ b/src/asynciterable/operators/buffer.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class BufferAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/buffercountortime.ts b/src/asynciterable/operators/buffercountortime.ts index 9a42c2ce..083ddb28 100644 --- a/src/asynciterable/operators/buffercountortime.ts +++ b/src/asynciterable/operators/buffercountortime.ts @@ -1,8 +1,8 @@ -import { OperatorAsyncFunction } from '../../interfaces'; -import { AsyncIterableX, interval, concat, of } from '../'; -import { map } from './map'; -import { merge } from '../merge'; -import { wrapWithAbort } from './withabort'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { AsyncIterableX, interval, concat, of } from '../index.js'; +import { map } from './map.js'; +import { merge } from '../merge.js'; +import { wrapWithAbort } from './withabort.js'; const timerEvent = {}; const ended = {}; diff --git a/src/asynciterable/operators/catcherror.ts b/src/asynciterable/operators/catcherror.ts index 866162b8..943cc83c 100644 --- a/src/asynciterable/operators/catcherror.ts +++ b/src/asynciterable/operators/catcherror.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { returnAsyncIterator } from '../../util/returniterator'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { returnAsyncIterator } from '../../util/returniterator.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class CatchWithAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/combinelatestwith.ts b/src/asynciterable/operators/combinelatestwith.ts index f459383e..98584474 100644 --- a/src/asynciterable/operators/combinelatestwith.ts +++ b/src/asynciterable/operators/combinelatestwith.ts @@ -1,5 +1,5 @@ -import { OperatorAsyncFunction } from '../../interfaces'; -import { CombineLatestAsyncIterable } from '../combinelatest'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { CombineLatestAsyncIterable } from '../combinelatest.js'; /** * Merges multiple async-iterable sequences into one async-iterable sequence as an array whenever diff --git a/src/asynciterable/operators/concatall.ts b/src/asynciterable/operators/concatall.ts index 34e93c67..2d2ff5a3 100644 --- a/src/asynciterable/operators/concatall.ts +++ b/src/asynciterable/operators/concatall.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class ConcatAllAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/concatmap.ts b/src/asynciterable/operators/concatmap.ts index 98c43806..902ead01 100644 --- a/src/asynciterable/operators/concatmap.ts +++ b/src/asynciterable/operators/concatmap.ts @@ -1,9 +1,9 @@ -import { AsyncIterableInput, AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; -import { FlattenConcurrentSelector } from './_flatten'; -import { isPromise } from '../../util/isiterable'; +import { AsyncIterableInput, AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; +import { FlattenConcurrentSelector } from './_flatten.js'; +import { isPromise } from '../../util/isiterable.js'; class ConcatMapAsyncIterable extends AsyncIterableX { constructor( diff --git a/src/asynciterable/operators/concatwith.ts b/src/asynciterable/operators/concatwith.ts index d15918f1..7b957304 100644 --- a/src/asynciterable/operators/concatwith.ts +++ b/src/asynciterable/operators/concatwith.ts @@ -1,5 +1,5 @@ -import { OperatorAsyncFunction } from '../../interfaces'; -import { ConcatAsyncIterable } from '../concat'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { ConcatAsyncIterable } from '../concat.js'; /** * Concatenates the second async-iterable sequence to the first async-iterable sequence upon successful termination of the first. diff --git a/src/asynciterable/operators/debounce.ts b/src/asynciterable/operators/debounce.ts index 3e8b24cc..cd21da78 100644 --- a/src/asynciterable/operators/debounce.ts +++ b/src/asynciterable/operators/debounce.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { AbortError, throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { AbortError, throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class DebounceAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/defaultifempty.ts b/src/asynciterable/operators/defaultifempty.ts index 383f8c9c..2deb652c 100644 --- a/src/asynciterable/operators/defaultifempty.ts +++ b/src/asynciterable/operators/defaultifempty.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class DefaultIfEmptyAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/delay.ts b/src/asynciterable/operators/delay.ts index 9c9c33bb..be90c513 100644 --- a/src/asynciterable/operators/delay.ts +++ b/src/asynciterable/operators/delay.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { sleep } from '../_sleep'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { sleep } from '../_sleep.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class DelayAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/delayeach.ts b/src/asynciterable/operators/delayeach.ts index 0e1a267f..27d48988 100644 --- a/src/asynciterable/operators/delayeach.ts +++ b/src/asynciterable/operators/delayeach.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { sleep } from '../_sleep'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { sleep } from '../_sleep.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class DelayEachAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/distinct.ts b/src/asynciterable/operators/distinct.ts index 46f10e8f..cddeb0e2 100644 --- a/src/asynciterable/operators/distinct.ts +++ b/src/asynciterable/operators/distinct.ts @@ -1,11 +1,11 @@ -import { AsyncIterableX } from './../asynciterablex'; -import { identityAsync } from '../../util/identity'; -import { arrayIndexOfAsync } from '../../util/arrayindexof'; -import { comparerAsync } from '../../util/comparer'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; -import { DistinctOptions } from './distinctoptions'; +import { AsyncIterableX } from './../asynciterablex.js'; +import { identityAsync } from '../../util/identity.js'; +import { arrayIndexOfAsync } from '../../util/arrayindexof.js'; +import { comparerAsync } from '../../util/comparer.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; +import { DistinctOptions } from './distinctoptions.js'; /** @ignore */ export class DistinctAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/distinctuntilchanged.ts b/src/asynciterable/operators/distinctuntilchanged.ts index 187af042..b648ce3d 100644 --- a/src/asynciterable/operators/distinctuntilchanged.ts +++ b/src/asynciterable/operators/distinctuntilchanged.ts @@ -1,10 +1,10 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { identityAsync } from '../../util/identity'; -import { comparerAsync } from '../../util/comparer'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; -import { DistinctOptions } from './distinctoptions'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { identityAsync } from '../../util/identity.js'; +import { comparerAsync } from '../../util/comparer.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; +import { DistinctOptions } from './distinctoptions.js'; /** @ignore */ export class DistinctUntilChangedAsyncIterable extends AsyncIterableX< diff --git a/src/asynciterable/operators/dowhile.ts b/src/asynciterable/operators/dowhile.ts index 2d5afafb..765cc603 100644 --- a/src/asynciterable/operators/dowhile.ts +++ b/src/asynciterable/operators/dowhile.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { concat } from '../concat'; -import { whileDo } from '../whiledo'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { concat } from '../concat.js'; +import { whileDo } from '../whiledo.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; /** * Generates an async-iterable sequence by repeating a source sequence as long as the given loop postcondition holds. diff --git a/src/asynciterable/operators/endwith.ts b/src/asynciterable/operators/endwith.ts index 363e8fbe..42a9f368 100644 --- a/src/asynciterable/operators/endwith.ts +++ b/src/asynciterable/operators/endwith.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class EndWithAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/except.ts b/src/asynciterable/operators/except.ts index e65d5f83..85cb2950 100644 --- a/src/asynciterable/operators/except.ts +++ b/src/asynciterable/operators/except.ts @@ -1,9 +1,9 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { arrayIndexOfAsync } from '../../util/arrayindexof'; -import { comparerAsync } from '../../util/comparer'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { arrayIndexOfAsync } from '../../util/arrayindexof.js'; +import { comparerAsync } from '../../util/comparer.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class ExceptAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/expand.ts b/src/asynciterable/operators/expand.ts index bb7584d3..3c472fc1 100644 --- a/src/asynciterable/operators/expand.ts +++ b/src/asynciterable/operators/expand.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class ExpandAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/filter.ts b/src/asynciterable/operators/filter.ts index e2b91f00..549278b4 100644 --- a/src/asynciterable/operators/filter.ts +++ b/src/asynciterable/operators/filter.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class FilterAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/finalize.ts b/src/asynciterable/operators/finalize.ts index b0663de3..9a5dca45 100644 --- a/src/asynciterable/operators/finalize.ts +++ b/src/asynciterable/operators/finalize.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class FinallyAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/flat.ts b/src/asynciterable/operators/flat.ts index 90ada0ed..01afd389 100644 --- a/src/asynciterable/operators/flat.ts +++ b/src/asynciterable/operators/flat.ts @@ -1,6 +1,6 @@ -import { flatMap } from './flatmap'; -import { AsyncIterableX } from '../asynciterablex'; -import { isAsyncIterable } from '../../util/isiterable'; +import { flatMap } from './flatmap.js'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { isAsyncIterable } from '../../util/isiterable.js'; type Flattened = Depth extends -1 ? FlattenInfinite diff --git a/src/asynciterable/operators/flatmap.ts b/src/asynciterable/operators/flatmap.ts index 991970c3..7c9b3c27 100644 --- a/src/asynciterable/operators/flatmap.ts +++ b/src/asynciterable/operators/flatmap.ts @@ -1,5 +1,5 @@ -import { FlattenConcurrentSelector, FlattenConcurrentAsyncIterable } from './_flatten'; -import { OperatorAsyncFunction } from '../../interfaces'; +import { FlattenConcurrentSelector, FlattenConcurrentAsyncIterable } from './_flatten.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; /** * Projects each element of an async-iterable sequence to an async-iterable sequence and merges diff --git a/src/asynciterable/operators/groupby.ts b/src/asynciterable/operators/groupby.ts index 11da3cca..e52fe607 100644 --- a/src/asynciterable/operators/groupby.ts +++ b/src/asynciterable/operators/groupby.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { identityAsync } from '../../util/identity'; -import { createGrouping } from './_grouping'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { identityAsync } from '../../util/identity.js'; +import { createGrouping } from './_grouping.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ /** @ignore */ diff --git a/src/asynciterable/operators/groupjoin.ts b/src/asynciterable/operators/groupjoin.ts index 258e46b2..f29a36a7 100644 --- a/src/asynciterable/operators/groupjoin.ts +++ b/src/asynciterable/operators/groupjoin.ts @@ -1,10 +1,10 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { createGrouping } from './_grouping'; -import { empty } from '../empty'; -import { identity } from '../../util/identity'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { createGrouping } from './_grouping.js'; +import { empty } from '../empty.js'; +import { identity } from '../../util/identity.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class GroupJoinAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/ignoreelements.ts b/src/asynciterable/operators/ignoreelements.ts index ed73adff..d961eb25 100644 --- a/src/asynciterable/operators/ignoreelements.ts +++ b/src/asynciterable/operators/ignoreelements.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class IgnoreElementsAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/index.node.ts b/src/asynciterable/operators/index.node.ts index 60db79fb..3275da96 100644 --- a/src/asynciterable/operators/index.node.ts +++ b/src/asynciterable/operators/index.node.ts @@ -1,3 +1,3 @@ -export * from './index'; +export * from './index.js'; -export * from './tonodestream'; +export * from './tonodestream.js'; diff --git a/src/asynciterable/operators/index.ts b/src/asynciterable/operators/index.ts index de9a42c0..8298ae8d 100644 --- a/src/asynciterable/operators/index.ts +++ b/src/asynciterable/operators/index.ts @@ -1,64 +1,64 @@ -export * from './batch'; -export * from './buffer'; -export * from './buffercountortime'; -export * from './catcherror'; -export * from './combinelatestwith'; -export * from './concatall'; -export * from './concatmap'; -export * from './concatwith'; -export * from './debounce'; -export * from './defaultifempty'; -export * from './delayeach'; -export * from './delay'; -export * from './distinct'; -export * from './distinctuntilchanged'; -export * from './dowhile'; -export * from './endwith'; -export * from './except'; -export * from './expand'; -export * from './filter'; -export * from './finalize'; -export * from './flatmap'; -export * from './flat'; -export * from './groupby'; -export * from './groupjoin'; +export * from './batch.js'; +export * from './buffer.js'; +export * from './buffercountortime.js'; +export * from './catcherror.js'; +export * from './combinelatestwith.js'; +export * from './concatall.js'; +export * from './concatmap.js'; +export * from './concatwith.js'; +export * from './debounce.js'; +export * from './defaultifempty.js'; +export * from './delayeach.js'; +export * from './delay.js'; +export * from './distinct.js'; +export * from './distinctuntilchanged.js'; +export * from './dowhile.js'; +export * from './endwith.js'; +export * from './except.js'; +export * from './expand.js'; +export * from './filter.js'; +export * from './finalize.js'; +export * from './flatmap.js'; +export * from './flat.js'; +export * from './groupby.js'; +export * from './groupjoin.js'; export * from './ignoreelements'; -export * from './innerjoin'; -export * from './intersect'; -export * from './map'; -export * from './memoize'; -export * from './mergeall'; -export * from './mergewith'; -export * from './orderby'; -export * from './pairwise'; -export * from './pluck'; -export * from './publish'; -export * from './racewith'; -export * from './repeat'; -export * from './retry'; -export * from './reverse'; -export * from './scanright'; -export * from './scan'; -export * from './share'; -export * from './skiplast'; -export * from './skip'; -export * from './skipuntil'; -export * from './skipwhile'; -export * from './slice'; -export * from './startwith'; -export * from './switchall'; -export * from './switchmap'; -export * from './takelast'; -export * from './take'; -export * from './takeuntil'; -export * from './takewhile'; -export * from './tap'; -export * from './throttle'; -export * from './timeinterval'; -export * from './timeout'; -export * from './timestamp'; -export * from './todomstream'; -export * from './union'; -export * from './withabort'; -export * from './withlatestfrom'; -export * from './zipwith'; +export * from './innerjoin.js'; +export * from './intersect.js'; +export * from './map.js'; +export * from './memoize.js'; +export * from './mergeall.js'; +export * from './mergewith.js'; +export * from './orderby.js'; +export * from './pairwise.js'; +export * from './pluck.js'; +export * from './publish.js'; +export * from './racewith.js'; +export * from './repeat.js'; +export * from './retry.js'; +export * from './reverse.js'; +export * from './scanright.js'; +export * from './scan.js'; +export * from './share.js'; +export * from './skiplast.js'; +export * from './skip.js'; +export * from './skipuntil.js'; +export * from './skipwhile.js'; +export * from './slice.js'; +export * from './startwith.js'; +export * from './switchall.js'; +export * from './switchmap.js'; +export * from './takelast.js'; +export * from './take.js'; +export * from './takeuntil.js'; +export * from './takewhile.js'; +export * from './tap.js'; +export * from './throttle.js'; +export * from './timeinterval.js'; +export * from './timeout.js'; +export * from './timestamp.js'; +export * from './todomstream.js'; +export * from './union.js'; +export * from './withabort.js'; +export * from './withlatestfrom.js'; +export * from './zipwith.js'; diff --git a/src/asynciterable/operators/innerjoin.ts b/src/asynciterable/operators/innerjoin.ts index 92b72e46..c326b4ef 100644 --- a/src/asynciterable/operators/innerjoin.ts +++ b/src/asynciterable/operators/innerjoin.ts @@ -1,9 +1,9 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { createGrouping } from './_grouping'; -import { identity } from '../../util/identity'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { createGrouping } from './_grouping.js'; +import { identity } from '../../util/identity.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class JoinAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/intersect.ts b/src/asynciterable/operators/intersect.ts index aa83a38a..2e9fbf9d 100644 --- a/src/asynciterable/operators/intersect.ts +++ b/src/asynciterable/operators/intersect.ts @@ -1,9 +1,9 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { arrayIndexOfAsync } from '../../util/arrayindexof'; -import { comparerAsync } from '../../util/comparer'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { arrayIndexOfAsync } from '../../util/arrayindexof.js'; +import { comparerAsync } from '../../util/comparer.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; async function arrayRemove( array: T[], diff --git a/src/asynciterable/operators/map.ts b/src/asynciterable/operators/map.ts index 002e79cb..8c69336d 100644 --- a/src/asynciterable/operators/map.ts +++ b/src/asynciterable/operators/map.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class MapAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/memoize.ts b/src/asynciterable/operators/memoize.ts index 7918d627..160cc70a 100644 --- a/src/asynciterable/operators/memoize.ts +++ b/src/asynciterable/operators/memoize.ts @@ -1,12 +1,12 @@ -import { AsyncIterableX } from '../asynciterablex'; +import { AsyncIterableX } from '../asynciterablex.js'; import { IRefCountList, MaxRefCountList, RefCountList, -} from '../../iterable/operators/_refcountlist'; -import { create } from '../create'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { throwIfAborted } from '../../aborterror'; +} from '../../iterable/operators/_refcountlist.js'; +import { create } from '../create.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class MemoizeAsyncBuffer extends AsyncIterableX { diff --git a/src/asynciterable/operators/mergeall.ts b/src/asynciterable/operators/mergeall.ts index 47b87e45..bde370aa 100644 --- a/src/asynciterable/operators/mergeall.ts +++ b/src/asynciterable/operators/mergeall.ts @@ -1,4 +1,4 @@ -import { FlattenConcurrentAsyncIterable } from './_flatten'; +import { FlattenConcurrentAsyncIterable } from './_flatten.js'; /** * Merges elements from all inner async-iterable sequences into a single async-iterable sequence. diff --git a/src/asynciterable/operators/mergewith.ts b/src/asynciterable/operators/mergewith.ts index ca986945..e4764611 100644 --- a/src/asynciterable/operators/mergewith.ts +++ b/src/asynciterable/operators/mergewith.ts @@ -1,5 +1,5 @@ -import { OperatorAsyncFunction } from '../../interfaces'; -import { MergeAsyncIterable } from '../merge'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { MergeAsyncIterable } from '../merge.js'; /** * Merges elements from all of the specified async-iterable sequences into a single async-iterable sequence. diff --git a/src/asynciterable/operators/orderby.ts b/src/asynciterable/operators/orderby.ts index e6109dfb..b7aae68a 100644 --- a/src/asynciterable/operators/orderby.ts +++ b/src/asynciterable/operators/orderby.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { toArray } from '../toarray'; -import { sorter as defaultSorter } from '../../util/sorter'; -import { UnaryFunction } from '../../interfaces'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { toArray } from '../toarray.js'; +import { sorter as defaultSorter } from '../../util/sorter.js'; +import { UnaryFunction } from '../../interfaces.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export abstract class OrderedAsyncIterableBaseX extends AsyncIterableX { diff --git a/src/asynciterable/operators/pairwise.ts b/src/asynciterable/operators/pairwise.ts index 3f84412d..90ceb385 100644 --- a/src/asynciterable/operators/pairwise.ts +++ b/src/asynciterable/operators/pairwise.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class PairwiseAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/pluck.ts b/src/asynciterable/operators/pluck.ts index b6a5dc49..1918e5be 100644 --- a/src/asynciterable/operators/pluck.ts +++ b/src/asynciterable/operators/pluck.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { map } from './map'; -import { OperatorAsyncFunction } from '../../interfaces'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { map } from './map.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; function plucker(props: string[], length: number): (x: any) => any { const mapper = (x: any) => { diff --git a/src/asynciterable/operators/publish.ts b/src/asynciterable/operators/publish.ts index 08f9e484..55eadea3 100644 --- a/src/asynciterable/operators/publish.ts +++ b/src/asynciterable/operators/publish.ts @@ -1,9 +1,9 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { RefCountList } from '../../iterable/operators/_refcountlist'; -import { create } from '../create'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { MemoizeAsyncBuffer } from './memoize'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { RefCountList } from '../../iterable/operators/_refcountlist.js'; +import { create } from '../create.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { MemoizeAsyncBuffer } from './memoize.js'; +import { throwIfAborted } from '../../aborterror.js'; class PublishedAsyncBuffer extends MemoizeAsyncBuffer { protected declare _buffer: RefCountList; diff --git a/src/asynciterable/operators/racewith.ts b/src/asynciterable/operators/racewith.ts index c2831b64..8de7e685 100644 --- a/src/asynciterable/operators/racewith.ts +++ b/src/asynciterable/operators/racewith.ts @@ -1,5 +1,5 @@ -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { RaceAsyncIterable } from '../race'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { RaceAsyncIterable } from '../race.js'; /** * Propagates the async sequence that reacts first. diff --git a/src/asynciterable/operators/repeat.ts b/src/asynciterable/operators/repeat.ts index e78a38f2..79be2a92 100644 --- a/src/asynciterable/operators/repeat.ts +++ b/src/asynciterable/operators/repeat.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class RepeatAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/retry.ts b/src/asynciterable/operators/retry.ts index 2d73dfdb..1b9156f8 100644 --- a/src/asynciterable/operators/retry.ts +++ b/src/asynciterable/operators/retry.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { repeatValue } from '../../iterable/repeatvalue'; -import { CatchAllAsyncIterable } from '../catcherror'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { repeatValue } from '../../iterable/repeatvalue.js'; +import { CatchAllAsyncIterable } from '../catcherror.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; /** * Retries the async-iterable instance the number of given times. If not supplied, it will try infinitely. diff --git a/src/asynciterable/operators/reverse.ts b/src/asynciterable/operators/reverse.ts index 61f75dfc..d51a3a3e 100644 --- a/src/asynciterable/operators/reverse.ts +++ b/src/asynciterable/operators/reverse.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class ReverseAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/scan.ts b/src/asynciterable/operators/scan.ts index da7e1c72..dad951a1 100644 --- a/src/asynciterable/operators/scan.ts +++ b/src/asynciterable/operators/scan.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { ScanOptions } from './scanoptions'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { ScanOptions } from './scanoptions.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class ScanAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/scanright.ts b/src/asynciterable/operators/scanright.ts index e8fb69df..f02c2e3f 100644 --- a/src/asynciterable/operators/scanright.ts +++ b/src/asynciterable/operators/scanright.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { toArray } from '../toarray'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { ScanOptions } from './scanoptions'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { toArray } from '../toarray.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { ScanOptions } from './scanoptions.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class ScanRightAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/share.ts b/src/asynciterable/operators/share.ts index ee8192b6..b3247044 100644 --- a/src/asynciterable/operators/share.ts +++ b/src/asynciterable/operators/share.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { create } from '../create'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { create } from '../create.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { throwIfAborted } from '../../aborterror.js'; class SharedAsyncIterable extends AsyncIterableX { private _it: AsyncIterator; diff --git a/src/asynciterable/operators/skip.ts b/src/asynciterable/operators/skip.ts index 972ecd94..ac4f6943 100644 --- a/src/asynciterable/operators/skip.ts +++ b/src/asynciterable/operators/skip.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class SkipAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/skiplast.ts b/src/asynciterable/operators/skiplast.ts index 01addb3d..20f54df7 100644 --- a/src/asynciterable/operators/skiplast.ts +++ b/src/asynciterable/operators/skiplast.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class SkipLastAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/skipuntil.ts b/src/asynciterable/operators/skipuntil.ts index 6e8a0c29..0c0b1461 100644 --- a/src/asynciterable/operators/skipuntil.ts +++ b/src/asynciterable/operators/skipuntil.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class SkipUntilAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/skipwhile.ts b/src/asynciterable/operators/skipwhile.ts index e8a6054d..151040aa 100644 --- a/src/asynciterable/operators/skipwhile.ts +++ b/src/asynciterable/operators/skipwhile.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class SkipWhileAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/slice.ts b/src/asynciterable/operators/slice.ts index 3cbe6d8a..282f2c42 100644 --- a/src/asynciterable/operators/slice.ts +++ b/src/asynciterable/operators/slice.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class SliceAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/startwith.ts b/src/asynciterable/operators/startwith.ts index 48c84f8f..a987a2b4 100644 --- a/src/asynciterable/operators/startwith.ts +++ b/src/asynciterable/operators/startwith.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class StartWithAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/switchall.ts b/src/asynciterable/operators/switchall.ts index 64f0a80a..8a78cbb0 100644 --- a/src/asynciterable/operators/switchall.ts +++ b/src/asynciterable/operators/switchall.ts @@ -1,4 +1,4 @@ -import { FlattenConcurrentAsyncIterable } from './_flatten'; +import { FlattenConcurrentAsyncIterable } from './_flatten.js'; /** * Merges elements from all inner async-iterable sequences into a single async-iterable sequence, emitting values only from the most recently projected async-iterable sequence. diff --git a/src/asynciterable/operators/switchmap.ts b/src/asynciterable/operators/switchmap.ts index 0c04be80..b6029c5c 100644 --- a/src/asynciterable/operators/switchmap.ts +++ b/src/asynciterable/operators/switchmap.ts @@ -1,5 +1,5 @@ -import { FlattenConcurrentSelector, FlattenConcurrentAsyncIterable } from './_flatten'; -import { OperatorAsyncFunction } from '../../interfaces'; +import { FlattenConcurrentSelector, FlattenConcurrentAsyncIterable } from './_flatten.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; /** * Projects each element of an async-iterable sequence to an async-iterable sequence, diff --git a/src/asynciterable/operators/take.ts b/src/asynciterable/operators/take.ts index 8d63ec3e..79ddb014 100644 --- a/src/asynciterable/operators/take.ts +++ b/src/asynciterable/operators/take.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class TakeAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/takelast.ts b/src/asynciterable/operators/takelast.ts index 75654c17..111e4730 100644 --- a/src/asynciterable/operators/takelast.ts +++ b/src/asynciterable/operators/takelast.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class TakeLastAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/takeuntil.ts b/src/asynciterable/operators/takeuntil.ts index c8537114..2e6e3c68 100644 --- a/src/asynciterable/operators/takeuntil.ts +++ b/src/asynciterable/operators/takeuntil.ts @@ -1,8 +1,8 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; -import { safeRace } from '../../util/safeRace'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; +import { safeRace } from '../../util/safeRace.js'; const DONE_PROMISE_VALUE = undefined; diff --git a/src/asynciterable/operators/takewhile.ts b/src/asynciterable/operators/takewhile.ts index 4f544183..1b594bf9 100644 --- a/src/asynciterable/operators/takewhile.ts +++ b/src/asynciterable/operators/takewhile.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class TakeWhileAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/tap.ts b/src/asynciterable/operators/tap.ts index 29213b7d..e7a24356 100644 --- a/src/asynciterable/operators/tap.ts +++ b/src/asynciterable/operators/tap.ts @@ -1,9 +1,9 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { PartialAsyncObserver } from '../../observer'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { toObserver } from '../../util/toobserver'; -import { AbortError, throwIfAborted } from '../../aborterror'; -import { returnAsyncIterator } from '../../util/returniterator'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { PartialAsyncObserver } from '../../observer.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { toObserver } from '../../util/toobserver.js'; +import { AbortError, throwIfAborted } from '../../aborterror.js'; +import { returnAsyncIterator } from '../../util/returniterator.js'; /** @ignore */ export class TapAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/throttle.ts b/src/asynciterable/operators/throttle.ts index c89fe8b7..f98e10d2 100644 --- a/src/asynciterable/operators/throttle.ts +++ b/src/asynciterable/operators/throttle.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class ThrottleAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/timeinterval.ts b/src/asynciterable/operators/timeinterval.ts index c539d264..79d1dd60 100644 --- a/src/asynciterable/operators/timeinterval.ts +++ b/src/asynciterable/operators/timeinterval.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export interface TimeInterval { diff --git a/src/asynciterable/operators/timeout.ts b/src/asynciterable/operators/timeout.ts index e05f3048..8a23493e 100644 --- a/src/asynciterable/operators/timeout.ts +++ b/src/asynciterable/operators/timeout.ts @@ -1,11 +1,11 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { sleep } from '../_sleep'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; -import { isObject } from '../../util/isiterable'; -import { safeRace } from '../../util/safeRace'; -import { returnAsyncIterator } from '../../util/returniterator'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { sleep } from '../_sleep.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; +import { isObject } from '../../util/isiterable.js'; +import { safeRace } from '../../util/safeRace.js'; +import { returnAsyncIterator } from '../../util/returniterator.js'; /** @ignore */ export class TimeoutError extends Error { diff --git a/src/asynciterable/operators/timestamp.ts b/src/asynciterable/operators/timestamp.ts index 8b2cbb4b..f69f436d 100644 --- a/src/asynciterable/operators/timestamp.ts +++ b/src/asynciterable/operators/timestamp.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export interface Timestamp { diff --git a/src/asynciterable/operators/todomstream.ts b/src/asynciterable/operators/todomstream.ts index c56d80fc..98592155 100644 --- a/src/asynciterable/operators/todomstream.ts +++ b/src/asynciterable/operators/todomstream.ts @@ -2,9 +2,9 @@ import { toDOMStream as toDOMStreamOperator, ReadableBYOBStreamOptions, ReadableByteStreamOptions, -} from '../../asynciterable/todomstream'; +} from '../../asynciterable/todomstream.js'; -import { UnaryFunction } from '../../interfaces'; +import { UnaryFunction } from '../../interfaces.js'; export function toDOMStream( strategy?: QueuingStrategy diff --git a/src/asynciterable/operators/tonodestream.ts b/src/asynciterable/operators/tonodestream.ts index 6cc3789a..27fbd99c 100644 --- a/src/asynciterable/operators/tonodestream.ts +++ b/src/asynciterable/operators/tonodestream.ts @@ -1,6 +1,6 @@ import { ReadableOptions } from 'stream'; -import { AsyncIterableReadable } from '../tonodestream'; -import { BufferLike, UnaryFunction } from '../../interfaces'; +import { AsyncIterableReadable } from '../tonodestream.js'; +import { BufferLike, UnaryFunction } from '../../interfaces.js'; export function toNodeStream(): UnaryFunction< AsyncIterable, diff --git a/src/asynciterable/operators/union.ts b/src/asynciterable/operators/union.ts index de43722d..196b5882 100644 --- a/src/asynciterable/operators/union.ts +++ b/src/asynciterable/operators/union.ts @@ -1,9 +1,9 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { arrayIndexOfAsync } from '../../util/arrayindexof'; -import { comparerAsync } from '../../util/comparer'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { arrayIndexOfAsync } from '../../util/arrayindexof.js'; +import { comparerAsync } from '../../util/comparer.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ export class UnionAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/withabort.ts b/src/asynciterable/operators/withabort.ts index 1c4ad01b..b8cb8282 100644 --- a/src/asynciterable/operators/withabort.ts +++ b/src/asynciterable/operators/withabort.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { MonoTypeOperatorAsyncFunction } from '../../interfaces'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { MonoTypeOperatorAsyncFunction } from '../../interfaces.js'; /** @ignore */ export class WithAbortAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/operators/withlatestfrom.ts b/src/asynciterable/operators/withlatestfrom.ts index 6fc0323f..87183e24 100644 --- a/src/asynciterable/operators/withlatestfrom.ts +++ b/src/asynciterable/operators/withlatestfrom.ts @@ -1,9 +1,9 @@ -import { AsyncIterableX } from '../asynciterablex'; -import { OperatorAsyncFunction } from '../../interfaces'; -import { wrapWithAbort } from './withabort'; -import { throwIfAborted } from '../../aborterror'; -import { identity } from '../../util/identity'; -import { safeRace } from '../../util/safeRace'; +import { AsyncIterableX } from '../asynciterablex.js'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { wrapWithAbort } from './withabort.js'; +import { throwIfAborted } from '../../aborterror.js'; +import { identity } from '../../util/identity.js'; +import { safeRace } from '../../util/safeRace.js'; // eslint-disable-next-line @typescript-eslint/no-empty-function const NEVER_PROMISE = new Promise(() => {}); diff --git a/src/asynciterable/operators/zipwith.ts b/src/asynciterable/operators/zipwith.ts index f9a93ccb..8f48da32 100644 --- a/src/asynciterable/operators/zipwith.ts +++ b/src/asynciterable/operators/zipwith.ts @@ -1,5 +1,5 @@ -import { OperatorAsyncFunction } from '../../interfaces'; -import { ZipAsyncIterable } from '../zip'; +import { OperatorAsyncFunction } from '../../interfaces.js'; +import { ZipAsyncIterable } from '../zip.js'; /** * Merges multiple async-iterable sequences into one async-iterable sequence by combining their elements in a pairwise fashion. diff --git a/src/asynciterable/race.ts b/src/asynciterable/race.ts index 0c159b18..80137a24 100644 --- a/src/asynciterable/race.ts +++ b/src/asynciterable/race.ts @@ -1,7 +1,7 @@ -import { AsyncIterableX } from './asynciterablex'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { safeRace } from '../util/safeRace'; +import { AsyncIterableX } from './asynciterablex.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { safeRace } from '../util/safeRace.js'; type MergeResult = { value: T; index: number }; diff --git a/src/asynciterable/range.ts b/src/asynciterable/range.ts index 9d5717cf..ee44332b 100644 --- a/src/asynciterable/range.ts +++ b/src/asynciterable/range.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { throwIfAborted } from '../aborterror.js'; class RangeAsyncIterable extends AsyncIterableX { private _start: number; diff --git a/src/asynciterable/reduce.ts b/src/asynciterable/reduce.ts index 80a27bba..e628df66 100644 --- a/src/asynciterable/reduce.ts +++ b/src/asynciterable/reduce.ts @@ -1,6 +1,6 @@ -import { ReduceOptions } from './reduceoptions'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { ReduceOptions } from './reduceoptions.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * Applies an accumulator function over an async-iterable sequence, returning the result of the aggregation as a diff --git a/src/asynciterable/reduceoptions.ts b/src/asynciterable/reduceoptions.ts index 8a75f0c3..51460423 100644 --- a/src/asynciterable/reduceoptions.ts +++ b/src/asynciterable/reduceoptions.ts @@ -1,4 +1,4 @@ -import { ScanOptions } from './operators/scanoptions'; +import { ScanOptions } from './operators/scanoptions.js'; /** * The reduce options which includes an accumulator function, optional seed, and optional abort signal for cancellation. diff --git a/src/asynciterable/reduceright.ts b/src/asynciterable/reduceright.ts index e2e5a978..fbb46198 100644 --- a/src/asynciterable/reduceright.ts +++ b/src/asynciterable/reduceright.ts @@ -1,6 +1,6 @@ -import { toArray } from './toarray'; -import { ReduceOptions } from './reduceoptions'; -import { throwIfAborted } from '../aborterror'; +import { toArray } from './toarray.js'; +import { ReduceOptions } from './reduceoptions.js'; +import { throwIfAborted } from '../aborterror.js'; /** * Applies an accumulator function over an async-iterable sequence from the end, returning the result of the aggregation as a diff --git a/src/asynciterable/repeatvalue.ts b/src/asynciterable/repeatvalue.ts index 0925198c..882c1fa8 100644 --- a/src/asynciterable/repeatvalue.ts +++ b/src/asynciterable/repeatvalue.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { throwIfAborted } from '../aborterror.js'; /** @ignore */ export class RepeatValueAsyncIterable extends AsyncIterableX { diff --git a/src/asynciterable/sequenceequal.ts b/src/asynciterable/sequenceequal.ts index 6b8f5703..a19ba286 100644 --- a/src/asynciterable/sequenceequal.ts +++ b/src/asynciterable/sequenceequal.ts @@ -1,6 +1,6 @@ -import { comparerAsync } from '../util/comparer'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { comparerAsync } from '../util/comparer.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * The options for sequence equal operations including a comparer and abort signal diff --git a/src/asynciterable/single.ts b/src/asynciterable/single.ts index 3712a5dc..146d5b2c 100644 --- a/src/asynciterable/single.ts +++ b/src/asynciterable/single.ts @@ -1,6 +1,6 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { OptionalFindOptions } from './findoptions'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { OptionalFindOptions } from './findoptions.js'; /** * Returns the only element of an async-iterable sequence that matches the predicate if specified, diff --git a/src/asynciterable/some.ts b/src/asynciterable/some.ts index 96217a01..4be6c5df 100644 --- a/src/asynciterable/some.ts +++ b/src/asynciterable/some.ts @@ -1,6 +1,6 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { FindOptions } from './findoptions'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { FindOptions } from './findoptions.js'; /** * Determines whether any element of an async-iterable sequence satisfies a condition. diff --git a/src/asynciterable/sum.ts b/src/asynciterable/sum.ts index a9758605..b906b8e6 100644 --- a/src/asynciterable/sum.ts +++ b/src/asynciterable/sum.ts @@ -1,7 +1,7 @@ -import { identityAsync } from '../util/identity'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; -import { MathOptions } from './mathoptions'; +import { identityAsync } from '../util/identity.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; +import { MathOptions } from './mathoptions.js'; /** * Computes the sum of a sequence of values. diff --git a/src/asynciterable/throwerrror.ts b/src/asynciterable/throwerrror.ts index 045efe29..5bc6981a 100644 --- a/src/asynciterable/throwerrror.ts +++ b/src/asynciterable/throwerrror.ts @@ -1,5 +1,5 @@ -import { AsyncIterableX } from './asynciterablex'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { throwIfAborted } from '../aborterror.js'; class ThrowAsyncIterable extends AsyncIterableX { private _error: any; diff --git a/src/asynciterable/toarray.ts b/src/asynciterable/toarray.ts index a4544096..c336ef47 100644 --- a/src/asynciterable/toarray.ts +++ b/src/asynciterable/toarray.ts @@ -1,5 +1,5 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * Converts an existing async-iterable to a promise containing the array of values. diff --git a/src/asynciterable/todomstream.ts b/src/asynciterable/todomstream.ts index 9edf2029..e9fd6a72 100644 --- a/src/asynciterable/todomstream.ts +++ b/src/asynciterable/todomstream.ts @@ -1,6 +1,6 @@ -import { publish } from './operators/publish'; -import { fromDOMStream } from './fromdomstream'; -import { AsyncIterableX } from './asynciterablex'; +import { publish } from './operators/publish.js'; +import { fromDOMStream } from './fromdomstream.js'; +import { AsyncIterableX } from './asynciterablex.js'; /** @ignore */ export type ReadableBYOBStreamOptions = QueuingStrategy & { type: 'bytes' }; diff --git a/src/asynciterable/tomap.ts b/src/asynciterable/tomap.ts index 95f7b991..1b3aed77 100644 --- a/src/asynciterable/tomap.ts +++ b/src/asynciterable/tomap.ts @@ -1,6 +1,6 @@ -import { identityAsync } from '../util/identity'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { identityAsync } from '../util/identity.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * The options for the toMap method which include an optional element selector and abort signal for cancellation. diff --git a/src/asynciterable/tonodestream.ts b/src/asynciterable/tonodestream.ts index d1ee59bd..5bdb1e2c 100644 --- a/src/asynciterable/tonodestream.ts +++ b/src/asynciterable/tonodestream.ts @@ -1,5 +1,5 @@ -import { BufferLike } from '../interfaces'; -import { AsyncIterableX } from './asynciterablex'; +import { BufferLike } from '../interfaces.js'; +import { AsyncIterableX } from './asynciterablex.js'; import { Readable, ReadableOptions } from 'stream'; const done = async (_: any) => null as any; diff --git a/src/asynciterable/toobservable.ts b/src/asynciterable/toobservable.ts index 7054c2ef..24126fa0 100644 --- a/src/asynciterable/toobservable.ts +++ b/src/asynciterable/toobservable.ts @@ -1,7 +1,7 @@ -import { toObserver } from '../util/toobserver'; -import { observable as symbolObservable } from '../observer'; -import { Observable, PartialObserver } from '../observer'; -import { Subscription } from '../subscription'; +import { toObserver } from '../util/toobserver.js'; +import { observable as symbolObservable } from '../observer.js'; +import { Observable, PartialObserver } from '../observer.js'; +import { Subscription } from '../subscription.js'; class BooleanSubscription implements Subscription { public isUnsubscribed = false; diff --git a/src/asynciterable/toset.ts b/src/asynciterable/toset.ts index b51fb987..e08d9bcd 100644 --- a/src/asynciterable/toset.ts +++ b/src/asynciterable/toset.ts @@ -1,5 +1,5 @@ -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; /** * Converts the existing async-iterable into a promise which resolves a Set. diff --git a/src/asynciterable/whiledo.ts b/src/asynciterable/whiledo.ts index 795b7ad4..9cb90f64 100644 --- a/src/asynciterable/whiledo.ts +++ b/src/asynciterable/whiledo.ts @@ -1,6 +1,6 @@ -import { AsyncIterableX } from './asynciterablex'; -import { wrapWithAbort } from './operators/withabort'; -import { throwIfAborted } from '../aborterror'; +import { AsyncIterableX } from './asynciterablex.js'; +import { wrapWithAbort } from './operators/withabort.js'; +import { throwIfAborted } from '../aborterror.js'; class WhileAsyncIterable extends AsyncIterableX { private _condition: (signal?: AbortSignal) => boolean | Promise; diff --git a/src/asynciterable/zip.ts b/src/asynciterable/zip.ts index 54f97da5..7271aaf5 100644 --- a/src/asynciterable/zip.ts +++ b/src/asynciterable/zip.ts @@ -1,7 +1,7 @@ -import { wrapWithAbort } from './operators/withabort'; -import { AsyncIterableX } from './asynciterablex'; -import { returnAsyncIterator } from '../util/returniterator'; -import { throwIfAborted } from '../aborterror'; +import { wrapWithAbort } from './operators/withabort.js'; +import { AsyncIterableX } from './asynciterablex.js'; +import { returnAsyncIterator } from '../util/returniterator.js'; +import { throwIfAborted } from '../aborterror.js'; /** @ignore */ export class ZipAsyncIterable extends AsyncIterableX { diff --git a/src/interfaces.ts b/src/interfaces.ts index 94a45e98..5b1074b0 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -1,5 +1,5 @@ -import { IterableX } from './iterable'; -import { AsyncIterableX } from './asynciterable'; +import { IterableX } from './iterable/index.js'; +import { AsyncIterableX } from './asynciterable/index.js'; export type UnaryFunction = (source: T) => R; diff --git a/src/iterable/average.ts b/src/iterable/average.ts index 93e0e4e5..dcb06e2f 100644 --- a/src/iterable/average.ts +++ b/src/iterable/average.ts @@ -1,5 +1,5 @@ -import { identity } from '../util/identity'; -import { MathOptions } from './mathoptions'; +import { identity } from '../util/identity.js'; +import { MathOptions } from './mathoptions.js'; /** * Computes the average of the iterable sequence. diff --git a/src/iterable/catcherror.ts b/src/iterable/catcherror.ts index c55d5af7..827efbba 100644 --- a/src/iterable/catcherror.ts +++ b/src/iterable/catcherror.ts @@ -1,5 +1,5 @@ -import { IterableX } from './iterablex'; -import { returnIterator } from '../util/returniterator'; +import { IterableX } from './iterablex.js'; +import { returnIterator } from '../util/returniterator.js'; /** @ignore */ export class CatchIterable extends IterableX { diff --git a/src/iterable/concat.ts b/src/iterable/concat.ts index 7a730d94..20756b62 100644 --- a/src/iterable/concat.ts +++ b/src/iterable/concat.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; /** @ignore */ export class ConcatIterable extends IterableX { diff --git a/src/iterable/count.ts b/src/iterable/count.ts index ee2b0cc7..66a77042 100644 --- a/src/iterable/count.ts +++ b/src/iterable/count.ts @@ -1,4 +1,4 @@ -import { OptionalFindOptions } from './findoptions'; +import { OptionalFindOptions } from './findoptions.js'; /** * Returns a promise that represents how many elements in the specified iterable sequence satisfy a condition diff --git a/src/iterable/create.ts b/src/iterable/create.ts index fca47f69..273f6d9f 100644 --- a/src/iterable/create.ts +++ b/src/iterable/create.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; class AnonymousIterable extends IterableX { private _fn: () => Iterator; diff --git a/src/iterable/defer.ts b/src/iterable/defer.ts index e5b74cfd..66fe1c6d 100644 --- a/src/iterable/defer.ts +++ b/src/iterable/defer.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; class DeferIterable extends IterableX { private _fn: () => Iterable; diff --git a/src/iterable/empty.ts b/src/iterable/empty.ts index f51b2ce9..9a62cea9 100644 --- a/src/iterable/empty.ts +++ b/src/iterable/empty.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; class EmptyIterable extends IterableX { *[Symbol.iterator](): Iterator { diff --git a/src/iterable/every.ts b/src/iterable/every.ts index 117d2809..aba52572 100644 --- a/src/iterable/every.ts +++ b/src/iterable/every.ts @@ -1,4 +1,4 @@ -import { FindOptions } from './findoptions'; +import { FindOptions } from './findoptions.js'; /** * Determines whether all elements of an iterable sequence satisfy a condition. diff --git a/src/iterable/find.ts b/src/iterable/find.ts index 56c5291e..b3fbe90d 100644 --- a/src/iterable/find.ts +++ b/src/iterable/find.ts @@ -1,4 +1,4 @@ -import { FindOptions } from './findoptions'; +import { FindOptions } from './findoptions.js'; /** * Returns the value of the first element in the provided iterable that satisfies the provided testing function. diff --git a/src/iterable/findindex.ts b/src/iterable/findindex.ts index 51bfbfcc..5a213fe6 100644 --- a/src/iterable/findindex.ts +++ b/src/iterable/findindex.ts @@ -1,4 +1,4 @@ -import { FindOptions } from './findoptions'; +import { FindOptions } from './findoptions.js'; /** * Returns the index of the first element in the array that satisfies the provided testing function. diff --git a/src/iterable/first.ts b/src/iterable/first.ts index 5fe57832..84fdf3a3 100644 --- a/src/iterable/first.ts +++ b/src/iterable/first.ts @@ -1,4 +1,4 @@ -import { OptionalFindOptions } from './findoptions'; +import { OptionalFindOptions } from './findoptions.js'; /** * Returns the first element of an iterable sequence that matches the predicate if provided, or undefined if no such element exists. diff --git a/src/iterable/generate.ts b/src/iterable/generate.ts index ea65bb61..03c5f4b7 100644 --- a/src/iterable/generate.ts +++ b/src/iterable/generate.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; class GenerateIterable extends IterableX { private _initialState: TState; diff --git a/src/iterable/iif.ts b/src/iterable/iif.ts index ca1c3efe..dc081e80 100644 --- a/src/iterable/iif.ts +++ b/src/iterable/iif.ts @@ -1,6 +1,6 @@ -import { IterableX } from './iterablex'; -import { defer } from './defer'; -import { empty } from './empty'; +import { IterableX } from './iterablex.js'; +import { defer } from './defer.js'; +import { empty } from './empty.js'; /** * If the specified condition evaluates true, select the thenSource sequence. diff --git a/src/iterable/includes.ts b/src/iterable/includes.ts index 1f0a32ba..19f54af1 100644 --- a/src/iterable/includes.ts +++ b/src/iterable/includes.ts @@ -1,4 +1,4 @@ -import { comparer } from '../util/comparer'; +import { comparer } from '../util/comparer.js'; /** * Determines whether an itreable includes a certain value among its entries, returning true or false as appropriate. diff --git a/src/iterable/index.node.ts b/src/iterable/index.node.ts index 60db79fb..3275da96 100644 --- a/src/iterable/index.node.ts +++ b/src/iterable/index.node.ts @@ -1,3 +1,3 @@ -export * from './index'; +export * from './index.js'; -export * from './tonodestream'; +export * from './tonodestream.js'; diff --git a/src/iterable/index.ts b/src/iterable/index.ts index 8593b1b2..a5530e28 100644 --- a/src/iterable/index.ts +++ b/src/iterable/index.ts @@ -1,43 +1,39 @@ -export * from './average'; -export * from './catcherror'; -export * from './concat'; -export * from './count'; -export * from './create'; -export * from './defer'; -export * from './elementat'; -export * from './empty'; -export * from './every'; -export * from './findindex'; -export * from './find'; -export * from './first'; -export * from './generate'; -export * from './iif'; -export * from './includes'; -export * from './isempty'; -export * from './iterablex'; -export * from './last'; -export * from './max'; -export * from './maxby'; -export * from './min'; -export * from './minby'; -export * from './of'; -export * from './onerrorresumenext'; -export * from './range'; -export * from './reduceright'; -export * from './reduce'; -export * from './repeatvalue'; -export * from './sequenceequal'; -export * from './single'; -export * from './some'; -export * from './sum'; -export * from './throwerror'; -export * from './toarray'; -export * from './todomstream'; -export * from './tomap'; -export * from './toset'; -export * from './whiledo'; -export * from './zip'; - -import { IterableX } from './iterablex'; -export const as = IterableX.as; -export const from = IterableX.from; +export { average } from './average.js'; +export { catchAll, catchError } from './catcherror.js'; +export { concat } from './concat.js'; +export { count } from './count.js'; +export { create } from './create.js'; +export { defer } from './defer.js'; +export { elementAt } from './elementat.js'; +export { empty } from './empty.js'; +export { every } from './every.js'; +export { findIndex } from './findindex.js'; +export { find } from './find.js'; +export { first } from './first.js'; +export { generate } from './generate.js'; +export { iif } from './iif.js'; +export { includes } from './includes'; +export { isEmpty } from './isempty.js'; +export { IterableX, as, from } from './iterablex.js'; +export { last } from './last.js'; +export { max } from './max.js'; +export { maxBy } from './maxby.js'; +export { min } from './min.js'; +export { minBy } from './minby.js'; +export { of } from './of.js'; +export { onErrorResumeNext } from './onerrorresumenext.js'; +export { range } from './range.js'; +export { reduceRight } from './reduceright.js'; +export { reduce } from './reduce.js'; +export { repeatValue } from './repeatvalue.js'; +export { sequenceEqual } from './sequenceequal.js'; +export { single } from './single.js'; +export { some } from './some.js'; +export { sum } from './sum.js'; +export { throwError } from './throwerror.js'; +export { toArray } from './toarray.js'; +export { toDOMStream } from './todomstream.js'; +export { toMap } from './tomap.js'; +export { toSet } from './toset.js'; +export { whileDo } from './whiledo.js'; +export { zip } from './zip.js'; diff --git a/src/iterable/iterablex.ts b/src/iterable/iterablex.ts index 8e2605cc..4ff85429 100644 --- a/src/iterable/iterablex.ts +++ b/src/iterable/iterablex.ts @@ -1,14 +1,14 @@ -import { identity } from '../util/identity'; -import { UnaryFunction, OperatorFunction } from '../interfaces'; -import { bindCallback } from '../util/bindcallback'; +import { identity } from '../util/identity.js'; +import { UnaryFunction, OperatorFunction } from '../interfaces.js'; +import { bindCallback } from '../util/bindcallback.js'; import { isArrayLike, isIterable, isIterator, isReadableNodeStream, isWritableNodeStream, -} from '../util/isiterable'; -import { toLength } from '../util/tolength'; +} from '../util/isiterable.js'; +import { toLength } from '../util/tolength.js'; /** * This class serves as the base for all operations which support [Symbol.iterator]. @@ -249,3 +249,6 @@ try { } catch (e) { /* */ } + +export const as = IterableX.as; +export const from = IterableX.from; diff --git a/src/iterable/last.ts b/src/iterable/last.ts index e0866b35..fa006fc4 100644 --- a/src/iterable/last.ts +++ b/src/iterable/last.ts @@ -1,4 +1,4 @@ -import { OptionalFindOptions } from './findoptions'; +import { OptionalFindOptions } from './findoptions.js'; /** * Returns the last element of an iterable sequence that satisfies the condition in the predicate if given diff --git a/src/iterable/max.ts b/src/iterable/max.ts index bdde19d3..eab23b75 100644 --- a/src/iterable/max.ts +++ b/src/iterable/max.ts @@ -1,6 +1,6 @@ -import { equalityComparer } from '../util/comparer'; -import { identity } from '../util/identity'; -import { ExtremaOptions } from './extremaoptions'; +import { equalityComparer } from '../util/comparer.js'; +import { identity } from '../util/identity.js'; +import { ExtremaOptions } from './extremaoptions.js'; /** * Returns the maximum element with the optional selector. diff --git a/src/iterable/maxby.ts b/src/iterable/maxby.ts index d62bb24a..14f6fb1b 100644 --- a/src/iterable/maxby.ts +++ b/src/iterable/maxby.ts @@ -1,6 +1,6 @@ -import { extremaBy } from './_extremaby'; -import { ExtremaOptions } from './extremaoptions'; -import { equalityComparer } from '../util/comparer'; +import { extremaBy } from './_extremaby.js'; +import { ExtremaOptions } from './extremaoptions.js'; +import { equalityComparer } from '../util/comparer.js'; /** * Returns the elements in an iterable sequence with the maximum key value. diff --git a/src/iterable/min.ts b/src/iterable/min.ts index 358f829e..42d85270 100644 --- a/src/iterable/min.ts +++ b/src/iterable/min.ts @@ -1,6 +1,6 @@ -import { equalityComparer } from '../util/comparer'; -import { identity } from '../util/identity'; -import { ExtremaOptions } from './extremaoptions'; +import { equalityComparer } from '../util/comparer.js'; +import { identity } from '../util/identity.js'; +import { ExtremaOptions } from './extremaoptions.js'; /** * * Returns the minimum element with the optional selector. diff --git a/src/iterable/minby.ts b/src/iterable/minby.ts index 796367ee..25702733 100644 --- a/src/iterable/minby.ts +++ b/src/iterable/minby.ts @@ -1,6 +1,6 @@ -import { extremaBy } from './_extremaby'; -import { ExtremaOptions } from './extremaoptions'; -import { equalityComparer } from '../util/comparer'; +import { extremaBy } from './_extremaby.js'; +import { ExtremaOptions } from './extremaoptions.js'; +import { equalityComparer } from '../util/comparer.js'; /** * Returns the elements in an terable sequence with the minimum key value. diff --git a/src/iterable/of.ts b/src/iterable/of.ts index 81bf20f3..7faa9ab6 100644 --- a/src/iterable/of.ts +++ b/src/iterable/of.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; /** * Creates an iterable from the specified elements. diff --git a/src/iterable/onerrorresumenext.ts b/src/iterable/onerrorresumenext.ts index 270dcd0e..22cd41f8 100644 --- a/src/iterable/onerrorresumenext.ts +++ b/src/iterable/onerrorresumenext.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; /** @ignore */ export class OnErrorResumeNextIterable extends IterableX { diff --git a/src/iterable/operators/buffer.ts b/src/iterable/operators/buffer.ts index e0cc6f61..11d405ed 100644 --- a/src/iterable/operators/buffer.ts +++ b/src/iterable/operators/buffer.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class BufferIterable extends IterableX { diff --git a/src/iterable/operators/catcherror.ts b/src/iterable/operators/catcherror.ts index 962e828d..3c2dd565 100644 --- a/src/iterable/operators/catcherror.ts +++ b/src/iterable/operators/catcherror.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../iterablex'; -import { returnIterator } from '../../util/returniterator'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { returnIterator } from '../../util/returniterator.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class CatchWithIterable extends IterableX { diff --git a/src/iterable/operators/concatall.ts b/src/iterable/operators/concatall.ts index 9197bf9b..2f293ebe 100644 --- a/src/iterable/operators/concatall.ts +++ b/src/iterable/operators/concatall.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../iterablex'; -import { ConcatIterable } from '../concat'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { ConcatIterable } from '../concat.js'; +import { OperatorFunction } from '../../interfaces.js'; /** * Concatenates all inner iterable sequences, as long as the previous diff --git a/src/iterable/operators/concatwith.ts b/src/iterable/operators/concatwith.ts index d609df08..7b9505d5 100644 --- a/src/iterable/operators/concatwith.ts +++ b/src/iterable/operators/concatwith.ts @@ -1,5 +1,5 @@ -import { OperatorFunction } from '../../interfaces'; -import { ConcatIterable } from '../concat'; +import { OperatorFunction } from '../../interfaces.js'; +import { ConcatIterable } from '../concat.js'; /** * Concatenates the second iterable sequence to the first iterable sequence upon successful termination of the first. diff --git a/src/iterable/operators/defaultifempty.ts b/src/iterable/operators/defaultifempty.ts index 0f71dd42..e487f8e7 100644 --- a/src/iterable/operators/defaultifempty.ts +++ b/src/iterable/operators/defaultifempty.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class DefaultIfEmptyIterable extends IterableX { diff --git a/src/iterable/operators/distinct.ts b/src/iterable/operators/distinct.ts index 73ba7991..1c8af292 100644 --- a/src/iterable/operators/distinct.ts +++ b/src/iterable/operators/distinct.ts @@ -1,9 +1,9 @@ -import { IterableX } from '../iterablex'; -import { identity } from '../../util/identity'; -import { arrayIndexOf } from '../../util/arrayindexof'; -import { comparer as defaultComparer } from '../../util/comparer'; -import { MonoTypeOperatorFunction } from '../../interfaces'; -import { DistinctOptions } from './distinctoptions'; +import { IterableX } from '../iterablex.js'; +import { identity } from '../../util/identity.js'; +import { arrayIndexOf } from '../../util/arrayindexof.js'; +import { comparer as defaultComparer } from '../../util/comparer.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; +import { DistinctOptions } from './distinctoptions.js'; /** @ignore */ export class DistinctIterable extends IterableX { diff --git a/src/iterable/operators/distinctuntilchanged.ts b/src/iterable/operators/distinctuntilchanged.ts index baf97f2c..7b4f0c9b 100644 --- a/src/iterable/operators/distinctuntilchanged.ts +++ b/src/iterable/operators/distinctuntilchanged.ts @@ -1,8 +1,8 @@ -import { IterableX } from '../iterablex'; -import { identity } from '../../util/identity'; -import { comparer as defaultComparer } from '../../util/comparer'; -import { MonoTypeOperatorFunction } from '../../interfaces'; -import { DistinctOptions } from './distinctoptions'; +import { IterableX } from '../iterablex.js'; +import { identity } from '../../util/identity.js'; +import { comparer as defaultComparer } from '../../util/comparer.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; +import { DistinctOptions } from './distinctoptions.js'; /** @ignore */ export class DistinctUntilChangedIterable extends IterableX { diff --git a/src/iterable/operators/dowhile.ts b/src/iterable/operators/dowhile.ts index 5b11f431..1fd4480b 100644 --- a/src/iterable/operators/dowhile.ts +++ b/src/iterable/operators/dowhile.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { concat } from '../concat'; -import { whileDo } from '../whiledo'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { concat } from '../concat.js'; +import { whileDo } from '../whiledo.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** * Generates an async-iterable sequence by repeating a source sequence as long as the given loop postcondition holds. diff --git a/src/iterable/operators/endwith.ts b/src/iterable/operators/endwith.ts index 3a8ff69d..58edbbec 100644 --- a/src/iterable/operators/endwith.ts +++ b/src/iterable/operators/endwith.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class EndWithIterable extends IterableX { diff --git a/src/iterable/operators/except.ts b/src/iterable/operators/except.ts index 0a6f5e27..cb250ef3 100644 --- a/src/iterable/operators/except.ts +++ b/src/iterable/operators/except.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { arrayIndexOf } from '../../util/arrayindexof'; -import { comparer as defaultComparer } from '../../util/comparer'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { arrayIndexOf } from '../../util/arrayindexof.js'; +import { comparer as defaultComparer } from '../../util/comparer.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class ExceptIterable extends IterableX { diff --git a/src/iterable/operators/expand.ts b/src/iterable/operators/expand.ts index 49a850b7..98fd281f 100644 --- a/src/iterable/operators/expand.ts +++ b/src/iterable/operators/expand.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class ExpandIterable extends IterableX { diff --git a/src/iterable/operators/filter.ts b/src/iterable/operators/filter.ts index f537990d..4aec9004 100644 --- a/src/iterable/operators/filter.ts +++ b/src/iterable/operators/filter.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class FilterIterable extends IterableX { diff --git a/src/iterable/operators/finalize.ts b/src/iterable/operators/finalize.ts index c9e1b9f8..a79fb556 100644 --- a/src/iterable/operators/finalize.ts +++ b/src/iterable/operators/finalize.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class FinallyIterable extends IterableX { diff --git a/src/iterable/operators/flat.ts b/src/iterable/operators/flat.ts index 3287b2b8..558f81ae 100644 --- a/src/iterable/operators/flat.ts +++ b/src/iterable/operators/flat.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../iterablex'; -import { isIterable } from '../../util/isiterable'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { isIterable } from '../../util/isiterable.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class FlattenIterable extends IterableX { diff --git a/src/iterable/operators/flatmap.ts b/src/iterable/operators/flatmap.ts index 77899988..e02eedec 100644 --- a/src/iterable/operators/flatmap.ts +++ b/src/iterable/operators/flatmap.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class FlatMapIterable extends IterableX { diff --git a/src/iterable/operators/groupby.ts b/src/iterable/operators/groupby.ts index ec4d7ecc..f6d82a8f 100644 --- a/src/iterable/operators/groupby.ts +++ b/src/iterable/operators/groupby.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { identity } from '../../util/identity'; -import { createGrouping } from './_grouping'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { identity } from '../../util/identity.js'; +import { createGrouping } from './_grouping.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ /** @ignore */ diff --git a/src/iterable/operators/groupjoin.ts b/src/iterable/operators/groupjoin.ts index 39a2a3ba..e829d2d8 100644 --- a/src/iterable/operators/groupjoin.ts +++ b/src/iterable/operators/groupjoin.ts @@ -1,8 +1,8 @@ -import { IterableX } from '../iterablex'; -import { createGrouping } from './_grouping'; -import { empty } from '../empty'; -import { identity } from '../../util/identity'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { createGrouping } from './_grouping.js'; +import { empty } from '../empty.js'; +import { identity } from '../../util/identity.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class GroupJoinIterable extends IterableX { diff --git a/src/iterable/operators/ignoreelements.ts b/src/iterable/operators/ignoreelements.ts index e36ebf22..3d960f9d 100644 --- a/src/iterable/operators/ignoreelements.ts +++ b/src/iterable/operators/ignoreelements.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class IgnoreElementsIterable extends IterableX { diff --git a/src/iterable/operators/index.node.ts b/src/iterable/operators/index.node.ts index 60db79fb..3275da96 100644 --- a/src/iterable/operators/index.node.ts +++ b/src/iterable/operators/index.node.ts @@ -1,3 +1,3 @@ -export * from './index'; +export * from './index.js'; -export * from './tonodestream'; +export * from './tonodestream.js'; diff --git a/src/iterable/operators/index.ts b/src/iterable/operators/index.ts index 15c670aa..933909cf 100644 --- a/src/iterable/operators/index.ts +++ b/src/iterable/operators/index.ts @@ -1,44 +1,44 @@ -export * from './buffer'; -export * from './catcherror'; -export * from './concatall'; -export * from './concatwith'; -export * from './defaultifempty'; -export * from './distinct'; -export * from './distinctuntilchanged'; -export * from './dowhile'; -export * from './endwith'; -export * from './except'; -export * from './expand'; -export * from './filter'; -export * from './finalize'; -export * from './flatmap'; -export * from './flat'; -export * from './groupby'; -export * from './groupjoin'; +export * from './buffer.js'; +export * from './catcherror.js'; +export * from './concatall.js'; +export * from './concatwith.js'; +export * from './defaultifempty.js'; +export * from './distinct.js'; +export * from './distinctuntilchanged.js'; +export * from './dowhile.js'; +export * from './endwith.js'; +export * from './except.js'; +export * from './expand.js'; +export * from './filter.js'; +export * from './finalize.js'; +export * from './flatmap.js'; +export * from './flat.js'; +export * from './groupby.js'; +export * from './groupjoin.js'; export * from './ignoreelements'; -export * from './innerjoin'; -export * from './intersect'; -export * from './map'; -export * from './memoize'; -export * from './orderby'; -export * from './pairwise'; -export * from './pluck'; -export * from './publish'; -export * from './repeat'; -export * from './retry'; -export * from './reverse'; -export * from './scanright'; -export * from './scan'; -export * from './share'; -export * from './skiplast'; -export * from './skip'; -export * from './skipwhile'; -export * from './slice'; -export * from './startwith'; -export * from './takelast'; -export * from './take'; -export * from './takewhile'; -export * from './tap'; -export * from './todomstream'; -export * from './union'; -export * from './zipwith'; +export * from './innerjoin.js'; +export * from './intersect.js'; +export * from './map.js'; +export * from './memoize.js'; +export * from './orderby.js'; +export * from './pairwise.js'; +export * from './pluck.js'; +export * from './publish.js'; +export * from './repeat.js'; +export * from './retry.js'; +export * from './reverse.js'; +export * from './scanright.js'; +export * from './scan.js'; +export * from './share.js'; +export * from './skiplast.js'; +export * from './skip.js'; +export * from './skipwhile.js'; +export * from './slice.js'; +export * from './startwith.js'; +export * from './takelast.js'; +export * from './take.js'; +export * from './takewhile.js'; +export * from './tap.js'; +export * from './todomstream.js'; +export * from './union.js'; +export * from './zipwith.js'; diff --git a/src/iterable/operators/innerjoin.ts b/src/iterable/operators/innerjoin.ts index 9a9c6c4e..638ebe31 100644 --- a/src/iterable/operators/innerjoin.ts +++ b/src/iterable/operators/innerjoin.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { createGrouping } from './_grouping'; -import { identity } from '../../util/identity'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { createGrouping } from './_grouping.js'; +import { identity } from '../../util/identity.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class JoinIterable extends IterableX { diff --git a/src/iterable/operators/intersect.ts b/src/iterable/operators/intersect.ts index 03d0831f..c0e6ea99 100644 --- a/src/iterable/operators/intersect.ts +++ b/src/iterable/operators/intersect.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { arrayIndexOf } from '../../util/arrayindexof'; -import { comparer as defaultComparer } from '../../util/comparer'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { arrayIndexOf } from '../../util/arrayindexof.js'; +import { comparer as defaultComparer } from '../../util/comparer.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; function arrayRemove(array: T[], item: T, comparer: (x: T, y: T) => boolean): boolean { const idx = arrayIndexOf(array, item, comparer); diff --git a/src/iterable/operators/map.ts b/src/iterable/operators/map.ts index fb6fa617..166fe487 100644 --- a/src/iterable/operators/map.ts +++ b/src/iterable/operators/map.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../iterablex'; -import { bindCallback } from '../../util/bindcallback'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { bindCallback } from '../../util/bindcallback.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class MapIterable extends IterableX { diff --git a/src/iterable/operators/memoize.ts b/src/iterable/operators/memoize.ts index 461286d1..d55521ba 100644 --- a/src/iterable/operators/memoize.ts +++ b/src/iterable/operators/memoize.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { IRefCountList, MaxRefCountList, RefCountList } from './_refcountlist'; -import { create } from '../create'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { IRefCountList, MaxRefCountList, RefCountList } from './_refcountlist.js'; +import { create } from '../create.js'; +import { OperatorFunction } from '../../interfaces.js'; class MemoizeBuffer extends IterableX { private _source: Iterator; diff --git a/src/iterable/operators/orderby.ts b/src/iterable/operators/orderby.ts index 0f9c0cf4..7dcefe7b 100644 --- a/src/iterable/operators/orderby.ts +++ b/src/iterable/operators/orderby.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../iterablex'; -import { sorter as defaultSorter } from '../../util/sorter'; -import { UnaryFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { sorter as defaultSorter } from '../../util/sorter.js'; +import { UnaryFunction } from '../../interfaces.js'; /** @ignore */ export abstract class OrderedIterableBaseX extends IterableX { diff --git a/src/iterable/operators/pairwise.ts b/src/iterable/operators/pairwise.ts index a30392e7..1d192a3a 100644 --- a/src/iterable/operators/pairwise.ts +++ b/src/iterable/operators/pairwise.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class PairwiseIterable extends IterableX { diff --git a/src/iterable/operators/pluck.ts b/src/iterable/operators/pluck.ts index eabbbbf6..203228e1 100644 --- a/src/iterable/operators/pluck.ts +++ b/src/iterable/operators/pluck.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../iterablex'; -import { MapIterable } from './map'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MapIterable } from './map.js'; +import { OperatorFunction } from '../../interfaces.js'; function plucker(props: string[], length: number): (x: any) => any { const mapper = (x: any) => { diff --git a/src/iterable/operators/publish.ts b/src/iterable/operators/publish.ts index c03bb53b..185ce255 100644 --- a/src/iterable/operators/publish.ts +++ b/src/iterable/operators/publish.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { RefCountList } from './_refcountlist'; -import { create } from '../create'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { RefCountList } from './_refcountlist.js'; +import { create } from '../create.js'; +import { OperatorFunction } from '../../interfaces.js'; class PublishedBuffer extends IterableX { private _buffer: RefCountList; diff --git a/src/iterable/operators/repeat.ts b/src/iterable/operators/repeat.ts index 9178d64f..b58d41fe 100644 --- a/src/iterable/operators/repeat.ts +++ b/src/iterable/operators/repeat.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class RepeatIterable extends IterableX { diff --git a/src/iterable/operators/retry.ts b/src/iterable/operators/retry.ts index 768f821e..53498f9b 100644 --- a/src/iterable/operators/retry.ts +++ b/src/iterable/operators/retry.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { repeatValue } from '../repeatvalue'; -import { catchAll } from '../catcherror'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { repeatValue } from '../repeatvalue.js'; +import { catchAll } from '../catcherror.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** * Retries the iterable instance the number of given times. If not supplied, it will try infinitely. diff --git a/src/iterable/operators/reverse.ts b/src/iterable/operators/reverse.ts index 6f94addc..c0e04343 100644 --- a/src/iterable/operators/reverse.ts +++ b/src/iterable/operators/reverse.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class ReverseIterable extends IterableX { diff --git a/src/iterable/operators/scan.ts b/src/iterable/operators/scan.ts index be9613d3..beb714ee 100644 --- a/src/iterable/operators/scan.ts +++ b/src/iterable/operators/scan.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../iterablex'; -import { OperatorFunction } from '../../interfaces'; -import { ScanOptions } from './scanoptions'; +import { IterableX } from '../iterablex.js'; +import { OperatorFunction } from '../../interfaces.js'; +import { ScanOptions } from './scanoptions.js'; /** @ignore */ export class ScanIterable extends IterableX { diff --git a/src/iterable/operators/scanright.ts b/src/iterable/operators/scanright.ts index 79de470b..836a3502 100644 --- a/src/iterable/operators/scanright.ts +++ b/src/iterable/operators/scanright.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { toArray } from '../toarray'; -import { OperatorFunction } from '../../interfaces'; -import { ScanOptions } from './scanoptions'; +import { IterableX } from '../iterablex.js'; +import { toArray } from '../toarray.js'; +import { OperatorFunction } from '../../interfaces.js'; +import { ScanOptions } from './scanoptions.js'; /** @ignore */ export class ScanRightIterable extends IterableX { diff --git a/src/iterable/operators/share.ts b/src/iterable/operators/share.ts index c0054bf2..464a4224 100644 --- a/src/iterable/operators/share.ts +++ b/src/iterable/operators/share.ts @@ -1,6 +1,6 @@ -import { IterableX } from '../iterablex'; -import { create } from '../create'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { create } from '../create.js'; +import { OperatorFunction } from '../../interfaces.js'; class SharedIterable extends IterableX { private _it: Iterator; diff --git a/src/iterable/operators/skip.ts b/src/iterable/operators/skip.ts index cdb4db7b..44b9d585 100644 --- a/src/iterable/operators/skip.ts +++ b/src/iterable/operators/skip.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class SkipIterable extends IterableX { diff --git a/src/iterable/operators/skiplast.ts b/src/iterable/operators/skiplast.ts index 244ab2b0..50a0a7d8 100644 --- a/src/iterable/operators/skiplast.ts +++ b/src/iterable/operators/skiplast.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class SkipLastIterable extends IterableX { diff --git a/src/iterable/operators/skipwhile.ts b/src/iterable/operators/skipwhile.ts index 9c8abf94..15ba1492 100644 --- a/src/iterable/operators/skipwhile.ts +++ b/src/iterable/operators/skipwhile.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class SkipWhileIterable extends IterableX { diff --git a/src/iterable/operators/slice.ts b/src/iterable/operators/slice.ts index b22f3fd9..4a4b08ba 100644 --- a/src/iterable/operators/slice.ts +++ b/src/iterable/operators/slice.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class SliceIterable extends IterableX { diff --git a/src/iterable/operators/startwith.ts b/src/iterable/operators/startwith.ts index 2d7c1e87..4c9de725 100644 --- a/src/iterable/operators/startwith.ts +++ b/src/iterable/operators/startwith.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class StartWithIterable extends IterableX { diff --git a/src/iterable/operators/take.ts b/src/iterable/operators/take.ts index e60fc3aa..94e69774 100644 --- a/src/iterable/operators/take.ts +++ b/src/iterable/operators/take.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class TakeIterable extends IterableX { diff --git a/src/iterable/operators/takelast.ts b/src/iterable/operators/takelast.ts index 2dc1d280..9a3e74b0 100644 --- a/src/iterable/operators/takelast.ts +++ b/src/iterable/operators/takelast.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class TakeLastIterable extends IterableX { diff --git a/src/iterable/operators/takewhile.ts b/src/iterable/operators/takewhile.ts index bd9ca275..45a288de 100644 --- a/src/iterable/operators/takewhile.ts +++ b/src/iterable/operators/takewhile.ts @@ -1,5 +1,5 @@ -import { IterableX } from '../iterablex'; -import { OperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export class TakeWhileIterable extends IterableX { diff --git a/src/iterable/operators/tap.ts b/src/iterable/operators/tap.ts index 6392f6aa..6448eec5 100644 --- a/src/iterable/operators/tap.ts +++ b/src/iterable/operators/tap.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { PartialObserver } from '../../observer'; -import { MonoTypeOperatorFunction } from '../../interfaces'; -import { toObserver } from '../../util/toobserver'; +import { IterableX } from '../iterablex.js'; +import { PartialObserver } from '../../observer.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; +import { toObserver } from '../../util/toobserver.js'; /** @ignore */ export class TapIterable extends IterableX { diff --git a/src/iterable/operators/todomstream.ts b/src/iterable/operators/todomstream.ts index 3e26a7ea..eaaf1f24 100644 --- a/src/iterable/operators/todomstream.ts +++ b/src/iterable/operators/todomstream.ts @@ -1,10 +1,10 @@ -import { toDOMStream as toDOMStreamOperator } from '../../iterable/todomstream'; +import { toDOMStream as toDOMStreamOperator } from '../../iterable/todomstream.js'; import { ReadableBYOBStreamOptions, ReadableByteStreamOptions, -} from '../../asynciterable/todomstream'; +} from '../../asynciterable/todomstream.js'; -import { UnaryFunction } from '../../interfaces'; +import { UnaryFunction } from '../../interfaces.js'; export function toDOMStream( strategy?: QueuingStrategy diff --git a/src/iterable/operators/tonodestream.ts b/src/iterable/operators/tonodestream.ts index 1789e073..c49b4688 100644 --- a/src/iterable/operators/tonodestream.ts +++ b/src/iterable/operators/tonodestream.ts @@ -1,6 +1,6 @@ import { ReadableOptions } from 'stream'; -import { IterableReadable } from '../../iterable/tonodestream'; -import { BufferLike, UnaryFunction } from '../../interfaces'; +import { IterableReadable } from '../../iterable/tonodestream.js'; +import { BufferLike, UnaryFunction } from '../../interfaces.js'; export function toNodeStream(): UnaryFunction< Iterable, diff --git a/src/iterable/operators/union.ts b/src/iterable/operators/union.ts index 3ef258a8..d3809d23 100644 --- a/src/iterable/operators/union.ts +++ b/src/iterable/operators/union.ts @@ -1,7 +1,7 @@ -import { IterableX } from '../iterablex'; -import { arrayIndexOf } from '../../util/arrayindexof'; -import { comparer as defaultComparer } from '../../util/comparer'; -import { MonoTypeOperatorFunction } from '../../interfaces'; +import { IterableX } from '../iterablex.js'; +import { arrayIndexOf } from '../../util/arrayindexof.js'; +import { comparer as defaultComparer } from '../../util/comparer.js'; +import { MonoTypeOperatorFunction } from '../../interfaces.js'; /** @ignore */ export class UnionIterable extends IterableX { diff --git a/src/iterable/operators/zipwith.ts b/src/iterable/operators/zipwith.ts index dc5e7a16..10ce8778 100644 --- a/src/iterable/operators/zipwith.ts +++ b/src/iterable/operators/zipwith.ts @@ -1,5 +1,5 @@ -import { OperatorFunction } from '../../interfaces'; -import { ZipIterable } from '../zip'; +import { OperatorFunction } from '../../interfaces.js'; +import { ZipIterable } from '../zip.js'; /** * Merges multiple iterable sequences into one iterable sequence by combining their elements in a pairwise fashion. diff --git a/src/iterable/range.ts b/src/iterable/range.ts index f0d7f4b6..e6341eb9 100644 --- a/src/iterable/range.ts +++ b/src/iterable/range.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; class RangeIterable extends IterableX { private _start: number; diff --git a/src/iterable/reduce.ts b/src/iterable/reduce.ts index 24b96aef..8a675f62 100644 --- a/src/iterable/reduce.ts +++ b/src/iterable/reduce.ts @@ -1,4 +1,4 @@ -import { ReduceOptions } from './reduceoptions'; +import { ReduceOptions } from './reduceoptions.js'; /** * Applies an accumulator function over an iterable sequence, returning the result of the aggregation as a diff --git a/src/iterable/reduceoptions.ts b/src/iterable/reduceoptions.ts index d408c9c1..9efeaf49 100644 --- a/src/iterable/reduceoptions.ts +++ b/src/iterable/reduceoptions.ts @@ -1,3 +1,3 @@ -import { ScanOptions } from './operators/scanoptions'; +import { ScanOptions } from './operators/scanoptions.js'; export type ReduceOptions = ScanOptions; diff --git a/src/iterable/reduceright.ts b/src/iterable/reduceright.ts index c77d5bbb..dfc5b94f 100644 --- a/src/iterable/reduceright.ts +++ b/src/iterable/reduceright.ts @@ -1,5 +1,5 @@ -import { toArray } from './toarray'; -import { ReduceOptions } from './reduceoptions'; +import { toArray } from './toarray.js'; +import { ReduceOptions } from './reduceoptions.js'; /** * Applies an accumulator function over an iterable sequence from the right, returning the result of the aggregation as a diff --git a/src/iterable/repeatvalue.ts b/src/iterable/repeatvalue.ts index b46a8ff6..f671461a 100644 --- a/src/iterable/repeatvalue.ts +++ b/src/iterable/repeatvalue.ts @@ -1,6 +1,6 @@ -import { of } from './of'; -import { RepeatIterable } from './operators/repeat'; -import { IterableX } from './iterablex'; +import { of } from './of.js'; +import { RepeatIterable } from './operators/repeat.js'; +import { IterableX } from './iterablex.js'; /** * Repeats a given value for the specified number of times as an iterable. diff --git a/src/iterable/sequenceequal.ts b/src/iterable/sequenceequal.ts index d2eb011c..036e0a73 100644 --- a/src/iterable/sequenceequal.ts +++ b/src/iterable/sequenceequal.ts @@ -1,4 +1,4 @@ -import { comparer as defaultComparer } from '../util/comparer'; +import { comparer as defaultComparer } from '../util/comparer.js'; /** * The options for sequence equal operations including a comparer and abort signal diff --git a/src/iterable/single.ts b/src/iterable/single.ts index 3005ac1e..42438c67 100644 --- a/src/iterable/single.ts +++ b/src/iterable/single.ts @@ -1,4 +1,4 @@ -import { OptionalFindOptions } from './findoptions'; +import { OptionalFindOptions } from './findoptions.js'; /** * Returns the only element of an iterable sequence that matches the predicate if specified, diff --git a/src/iterable/some.ts b/src/iterable/some.ts index f8ddcc47..cb02e102 100644 --- a/src/iterable/some.ts +++ b/src/iterable/some.ts @@ -1,4 +1,4 @@ -import { FindOptions } from './findoptions'; +import { FindOptions } from './findoptions.js'; /** * Determines whether any element of an iterable sequence satisfies a condition. diff --git a/src/iterable/sum.ts b/src/iterable/sum.ts index d6b1b31d..117c5aa8 100644 --- a/src/iterable/sum.ts +++ b/src/iterable/sum.ts @@ -1,5 +1,5 @@ -import { identity } from '../util/identity'; -import { MathOptions } from './mathoptions'; +import { identity } from '../util/identity.js'; +import { MathOptions } from './mathoptions.js'; /** * Computes the sum of a sequence of values. diff --git a/src/iterable/throwerror.ts b/src/iterable/throwerror.ts index 732d64e2..4c4d94ef 100644 --- a/src/iterable/throwerror.ts +++ b/src/iterable/throwerror.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; class ThrowIterable extends IterableX { private _error: any; diff --git a/src/iterable/todomstream.ts b/src/iterable/todomstream.ts index 459f45d6..030d2470 100644 --- a/src/iterable/todomstream.ts +++ b/src/iterable/todomstream.ts @@ -1,11 +1,11 @@ -import { AsyncIterableX } from '../asynciterable/asynciterablex'; -import { publish } from './operators/publish'; -import { IterableX } from '../iterable/iterablex'; +import { AsyncIterableX } from '../asynciterable/asynciterablex.js'; +import { publish } from './operators/publish.js'; +import { IterableX } from '../iterable/iterablex.js'; import { toDOMStream as asyncIterableToDOMStream, ReadableBYOBStreamOptions, ReadableByteStreamOptions, -} from '../asynciterable/todomstream'; +} from '../asynciterable/todomstream.js'; export function toDOMStream( source: Iterable, diff --git a/src/iterable/tomap.ts b/src/iterable/tomap.ts index 3ec72d8a..58650bdb 100644 --- a/src/iterable/tomap.ts +++ b/src/iterable/tomap.ts @@ -1,4 +1,4 @@ -import { identity } from '../util/identity'; +import { identity } from '../util/identity.js'; /** * The options for the toMap method which include an optional element selector and abort signal for cancellation. diff --git a/src/iterable/tonodestream.ts b/src/iterable/tonodestream.ts index 5b154b4d..9b362128 100644 --- a/src/iterable/tonodestream.ts +++ b/src/iterable/tonodestream.ts @@ -1,5 +1,5 @@ -import { BufferLike } from '../interfaces'; -import { IterableX } from '../iterable/iterablex'; +import { BufferLike } from '../interfaces.js'; +import { IterableX } from '../iterable/iterablex.js'; import { Readable, ReadableOptions } from 'stream'; const done = (_: any) => null as any; diff --git a/src/iterable/whiledo.ts b/src/iterable/whiledo.ts index 027fdc62..1d72056b 100644 --- a/src/iterable/whiledo.ts +++ b/src/iterable/whiledo.ts @@ -1,4 +1,4 @@ -import { IterableX } from './iterablex'; +import { IterableX } from './iterablex.js'; class WhileIterable extends IterableX { private _condition: () => boolean; diff --git a/src/iterable/zip.ts b/src/iterable/zip.ts index 6e384041..f0c048ae 100644 --- a/src/iterable/zip.ts +++ b/src/iterable/zip.ts @@ -1,5 +1,5 @@ -import { IterableX } from './iterablex'; -import { returnIterator } from '../util/returniterator'; +import { IterableX } from './iterablex.js'; +import { returnIterator } from '../util/returniterator.js'; /** @ignore */ export class ZipIterable extends IterableX { diff --git a/src/observer.ts b/src/observer.ts index de7e3125..adb3ea62 100644 --- a/src/observer.ts +++ b/src/observer.ts @@ -1,4 +1,4 @@ -import { Subscription } from './subscription'; +import { Subscription } from './subscription.js'; // Older versions of Rx will polyfill Symbol.observable, which gets // compiled into our UMD bundle. At runtime, our UMD bundle defines its diff --git a/src/scheduler.ts b/src/scheduler.ts index 98c011b4..4810bc5e 100644 --- a/src/scheduler.ts +++ b/src/scheduler.ts @@ -1,4 +1,4 @@ -import { Subscription } from './subscription'; +import { Subscription } from './subscription.js'; export interface Scheduler { readonly now: number; diff --git a/src/util/isiterable.ts b/src/util/isiterable.ts index 40dbcd60..9f71dae9 100644 --- a/src/util/isiterable.ts +++ b/src/util/isiterable.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/ban-types */ -import { Observable } from '../observer'; +import { Observable } from '../observer.js'; /** @ignore */ const isNumber = (x: any) => typeof x === 'number'; diff --git a/src/util/tolength.ts b/src/util/tolength.ts index 911ffa3c..4739c490 100644 --- a/src/util/tolength.ts +++ b/src/util/tolength.ts @@ -1,4 +1,4 @@ -import { toInteger } from './tointeger'; +import { toInteger } from './tointeger.js'; const maxSafeInteger = Math.pow(2, 53) - 1; /** diff --git a/src/util/toobserver.ts b/src/util/toobserver.ts index 3602f7dd..2c51e8f8 100644 --- a/src/util/toobserver.ts +++ b/src/util/toobserver.ts @@ -1,5 +1,5 @@ -import { isFunction } from './isiterable'; -import { Observer, PartialObserver } from '../observer'; +import { isFunction } from './isiterable.js'; +import { Observer, PartialObserver } from '../observer.js'; const noop = (_?: any) => { /**/ From 1c9b32a406d208d2f0504672a260017826022ac3 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Wed, 3 Jan 2024 09:24:21 -0800 Subject: [PATCH 02/44] update gulp scripts to use ESM, add tree-shaking bundle command for testing ESM --- .gitignore | 8 +- gulp/argv.js | 5 +- gulp/bundle-task.js | 136 +++++++++++++++++++++++++++++ gulp/clean-task.js | 21 +++-- gulp/closure-task.js | 24 +++--- gulp/compile-task.js | 17 ++-- gulp/copy-main-task.js | 57 +++++++------ gulp/esm-require.cjs | 38 +++++++++ gulp/memoize-task.js | 10 +-- gulp/package-task.js | 185 ++++++++++++++++++++-------------------- gulp/test-task.js | 27 +++--- gulp/typescript-task.js | 39 ++++----- gulp/util.js | 59 ++++++------- gulpfile.js | 41 +++++---- package.json | 2 + 15 files changed, 430 insertions(+), 239 deletions(-) create mode 100644 gulp/bundle-task.js create mode 100644 gulp/esm-require.cjs diff --git a/.gitignore b/.gitignore index e6cb17a0..291f9d68 100644 --- a/.gitignore +++ b/.gitignore @@ -52,4 +52,10 @@ targets/es2015 targets/esnext # local @std/esm module cache -.esm-cache \ No newline at end of file +.esm-cache + +# jest cache +.jest-cache + +# test bundles +spec/bundle/**/*-bundle.js* diff --git a/gulp/argv.js b/gulp/argv.js index 24088585..30576c27 100644 --- a/gulp/argv.js +++ b/gulp/argv.js @@ -15,7 +15,8 @@ // specific language governing permissions and limitations // under the License. -const argv = require(`command-line-args`)([ +import args from 'command-line-args'; +const argv = args([ { name: `all`, type: Boolean }, { name: 'verbose', alias: 'v', type: Boolean }, { name: `target`, type: String, defaultValue: `` }, @@ -37,4 +38,4 @@ if (argv.target === `src`) { (argv.all || !modules.length) && modules.push(`all`); } -module.exports = { argv, targets, modules }; +export { argv, targets, modules }; diff --git a/gulp/bundle-task.js b/gulp/bundle-task.js new file mode 100644 index 00000000..04060e08 --- /dev/null +++ b/gulp/bundle-task.js @@ -0,0 +1,136 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import gulp from 'gulp'; +import size from 'gulp-vinyl-size'; +import gulpRename from 'gulp-rename'; +import terser from 'gulp-terser'; +import source from 'vinyl-source-stream'; +import buffer from 'vinyl-buffer'; +import { mainExport, npmPkgName, observableFromStreams } from './util.js'; +import { forkJoin as ObservableForkJoin } from 'rxjs'; +import { resolve, join } from 'path'; +import { readdirSync } from 'fs'; +import { execSync } from 'child_process'; + +import gulpEsbuild from 'gulp-esbuild'; +import esbuildAlias from 'esbuild-plugin-alias'; + +import rollupStream from '@rollup/stream'; +import { nodeResolve } from '@rollup/plugin-node-resolve'; +import rollupAlias from '@rollup/plugin-alias'; + +import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; +import webpack from 'webpack-stream'; +import named from 'vinyl-named'; + +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const bundleDir = resolve(__dirname, '../spec/bundle'); + +const fileNames = readdirSync(bundleDir) + .filter(fileName => fileName.endsWith('.js')) + .map(fileName => fileName.replace(/\.js$/, '')); + +const bundlesGlob = join(bundleDir, '**.js'); +const esbuildDir = join(bundleDir, 'esbuild'); +export const esbuildTask = (minify = true) => () => observableFromStreams( + gulp.src(bundlesGlob), + gulpEsbuild({ + bundle: true, + minify, + treeShaking: true, + plugins: [ + esbuildAlias({ + [npmPkgName]: resolve(__dirname, `../targets/${npmPkgName}/${mainExport}.dom.mjs`), + }), + ], + }), + gulpRename((p) => { p.basename += '-bundle'; }), + gulp.dest(esbuildDir), + size({ gzip: true }) +); + +const rollupDir = join(bundleDir, 'rollup'); +export const rollupTask = (minify = true) => () => ObservableForkJoin( + fileNames.map(fileName => observableFromStreams( + rollupStream({ + input: join(bundleDir, `${fileName}.js`), + output: { format: 'commonjs' }, + plugins: [ + rollupAlias({ + entries: { [npmPkgName]: resolve(__dirname, `../targets/es2015/esm/`) } + }), + nodeResolve() + ], + onwarn: (message) => { + if (message.code === 'CIRCULAR_DEPENDENCY') return + console.error(message); + } + }), + source(`${fileName}-bundle.js`), + buffer(), + ...(minify ? [terser()] : []), + gulp.dest(rollupDir), + size({ gzip: true }) + )) +) + +const webpackDir = join(bundleDir, 'webpack'); +export const webpackTask = (opts = { minify: true, analyze: false }) => () => observableFromStreams( + gulp.src(bundlesGlob), + named(), + webpack({ + mode: opts?.minify == false ? 'development' : 'production', + optimization: { + usedExports: true + }, + output: { + filename: '[name]-bundle.js' + }, + module: { + rules: [ + { + resolve: { + fullySpecified: false, + mainFields: ['module', 'main'] + } + } + ] + }, + resolve: { + alias: { [npmPkgName]: resolve(__dirname, `../targets/es2015/esm/`) } + }, + stats: 'errors-only', + plugins: opts?.analyze ? [new BundleAnalyzerPlugin()] : [] + }), + gulp.dest(webpackDir), + size({ gzip: true }) +); + +export const execBundleTask = () => () => observableFromStreams( + gulp.src(join(bundleDir, '**/**-bundle.js')), + async (generator) => { + for await (const file of generator) { + console.log(`executing ${file.path}`); + execSync(`node ${file.path}`); + } + } +); diff --git a/gulp/clean-task.js b/gulp/clean-task.js index abf4c95e..1dd290f8 100644 --- a/gulp/clean-task.js +++ b/gulp/clean-task.js @@ -15,20 +15,19 @@ // specific language governing permissions and limitations // under the License. -const del = require('del'); -const { targetDir } = require('./util'); -const memoizeTask = require('./memoize-task'); -const { catchError } = require('rxjs/operators'); -const { - from: ObservableFrom, - empty: ObservableEmpty, -} = require('rxjs'); +import del from 'del'; +import { targetDir } from './util.js'; +import memoizeTask from './memoize-task.js'; +import { catchError } from 'rxjs/operators/index.js'; +import { + from as ObservableFrom, + empty as ObservableEmpty, +} from 'rxjs'; -const cleanTask = ((cache) => memoizeTask(cache, function clean(target, format) { +export const cleanTask = ((cache) => memoizeTask(cache, function clean(target, format) { const dir = targetDir(target, format); return ObservableFrom(del(dir)) .pipe(catchError((e) => ObservableEmpty())); }))({}); -module.exports = cleanTask; -module.exports.cleanTask = cleanTask; +export default cleanTask; diff --git a/gulp/closure-task.js b/gulp/closure-task.js index b93b30e4..a5951ea6 100644 --- a/gulp/closure-task.js +++ b/gulp/closure-task.js @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -const { +import { targetDir, mainExport, esmRequire, @@ -24,17 +24,18 @@ const { observableFromStreams, shouldRunInChildProcess, spawnGulpCommandInChildProcess, -} = require('./util'); +} from './util.js'; -const fs = require('fs'); -const gulp = require('gulp'); -const path = require('path'); -const mkdirp = require('mkdirp'); -const sourcemaps = require('gulp-sourcemaps'); -const { memoizeTask } = require('./memoize-task'); -const closureCompiler = require('google-closure-compiler').gulp(); +import fs from 'fs'; +import gulp from 'gulp'; +import path from 'path'; +import mkdirp from 'mkdirp'; +import sourcemaps from 'gulp-sourcemaps'; +import { memoizeTask } from './memoize-task.js'; +import cc from 'google-closure-compiler'; +const closureCompiler = cc.gulp() -const closureTask = ((cache) => memoizeTask(cache, async function closure(target, format) { +export const closureTask = ((cache) => memoizeTask(cache, async function closure(target, format) { if (shouldRunInChildProcess(target, format)) { return spawnGulpCommandInChildProcess('compile', target, format); @@ -108,8 +109,7 @@ const createClosureArgs = (target, entry_point, output, externs, libraryName) => }(this, (function (exports) {%output%}.bind(this))));` }); -module.exports = closureTask; -module.exports.closureTask = closureTask; +export default closureTask; function generateUMDExportAssignment(entry) { return [` diff --git a/gulp/compile-task.js b/gulp/compile-task.js index afcefee2..075b37d6 100644 --- a/gulp/compile-task.js +++ b/gulp/compile-task.js @@ -15,15 +15,15 @@ // specific language governing permissions and limitations // under the License. -const { npmPkgName } = require('./util'); -const { memoizeTask } = require('./memoize-task'); -const { empty: ObservableEmpty } = require('rxjs'); +import { npmPkgName } from './util.js'; +import { memoizeTask } from './memoize-task.js'; +import { empty as ObservableEmpty } from 'rxjs'; -const closureTask = require('./closure-task'); -const typescriptTask = require('./typescript-task'); -const { copyMainTask, copyTSTask } = require('./copy-main-task'); +import closureTask from './closure-task.js'; +import typescriptTask from './typescript-task.js'; +import { copyMainTask, copyTSTask } from './copy-main-task.js'; -const compileTask = ((cache) => memoizeTask(cache, function compile(target, format, ...args) { +export const compileTask = ((cache) => memoizeTask(cache, function compile(target, format, ...args) { return target === `src` ? ObservableEmpty() : target === npmPkgName ? copyMainTask(target, format, ...args)() : target === `ts` ? copyTSTask(target, format, ...args)() @@ -31,5 +31,4 @@ const compileTask = ((cache) => memoizeTask(cache, function compile(target, form : typescriptTask(target, format, ...args)(); }))({}); -module.exports = compileTask; -module.exports.compileTask = compileTask; +export default compileTask; diff --git a/gulp/copy-main-task.js b/gulp/copy-main-task.js index a7dbcb23..9ddabed6 100644 --- a/gulp/copy-main-task.js +++ b/gulp/copy-main-task.js @@ -15,51 +15,52 @@ // specific language governing permissions and limitations // under the License. -const { +import { targetDir, observableFromStreams -} = require('./util'); +} from './util.js'; -const del = require('del'); -const gulp = require('gulp'); -const { promisify } = require('util'); -const gulpRename = require(`gulp-rename`); -const { memoizeTask } = require('./memoize-task'); -const exec = promisify(require('child_process').exec); -const { forkJoin: ObservableForkJoin, ReplaySubject } = require('rxjs'); -const { publish, refCount } = require('rxjs/operators'); +import del from 'del'; +import gulp from 'gulp'; +import { promisify } from 'util'; +import gulpRename from 'gulp-rename'; +import gulpReplace from 'gulp-replace'; +import { memoizeTask } from './memoize-task.js'; +import * as childProcess from 'child_process'; +import { forkJoin as ObservableForkJoin, ReplaySubject } from 'rxjs'; +import { publish, refCount } from 'rxjs/operators/index.js'; -const copyMainTask = ((cache) => memoizeTask(cache, function copyMain(target) { +const exec = promisify(childProcess.exec); + +export const copyMainTask = ((cache) => memoizeTask(cache, function copyMain(target) { const out = targetDir(target); - const dtsGlob = `${targetDir(`esnext`, `cjs`)}/**/*.ts`; - const cjsGlob = `${targetDir(`esnext`, `cjs`)}/**/*.js`; - const esmGlob = `${targetDir(`esnext`, `esm`)}/**/*.js`; - const es5UmdGlob = `${targetDir(`es5`, `umd`)}/*.js`; + const dtsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.ts`; + const cjsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.js`; + const esmGlob = `${targetDir(`es2015`, `esm`)}/**/*.js`; + const es2015UmdGlob = `${targetDir(`es2015`, `umd`)}/*.js`; const esnextUmdGlob = `${targetDir(`esnext`, `umd`)}/*.js`; - const cjsSourceMapsGlob = `${targetDir(`esnext`, `cjs`)}/**/*.map`; - const esmSourceMapsGlob = `${targetDir(`esnext`, `esm`)}/**/*.map`; - const es5UmdSourceMapsGlob = `${targetDir(`es5`, `umd`)}/*.map`; + const cjsSourceMapsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.map`; + const esmSourceMapsGlob = `${targetDir(`es2015`, `esm`)}/**/*.map`; + const es2015UmdSourceMapsGlob = `${targetDir(`es2015`, `umd`)}/*.map`; const esnextUmdSourceMapsGlob = `${targetDir(`esnext`, `umd`)}/*.map`; return ObservableForkJoin( observableFromStreams(gulp.src(dtsGlob), gulp.dest(out)), // copy d.ts files observableFromStreams(gulp.src(cjsGlob), gulp.dest(out)), // copy es2015 cjs files observableFromStreams(gulp.src(cjsSourceMapsGlob), gulp.dest(out)), // copy es2015 cjs sourcemaps observableFromStreams(gulp.src(esmSourceMapsGlob), gulp.dest(out)), // copy es2015 esm sourcemaps - observableFromStreams(gulp.src(es5UmdSourceMapsGlob), gulp.dest(out)), // copy es5 umd sourcemap files, but don't rename + observableFromStreams(gulp.src(es2015UmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename observableFromStreams(gulp.src(esnextUmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename - observableFromStreams(gulp.src(esmGlob), gulpRename((p) => { p.extname = '.mjs'; }), gulp.dest(out)), // copy es2015 esm files and rename to `.mjs` - observableFromStreams(gulp.src(es5UmdGlob), gulpRename((p) => { p.basename += `.es5.min`; }), gulp.dest(out)), // copy es5 umd files and add `.min` - observableFromStreams(gulp.src(esnextUmdGlob), gulpRename((p) => { p.basename += `.es2015.min`; }), gulp.dest(out)), // copy es2015 umd files and add `.es2015.min` + observableFromStreams(gulp.src(esmGlob), gulpRename((p) => { p.extname = '.mjs'; }), gulpReplace(`.js'`, `.mjs'`), gulp.dest(out)), // copy es2015 esm files and rename to `.mjs` + observableFromStreams(gulp.src(es2015UmdGlob), gulpRename((p) => { p.basename += `.es2015.min`; }), gulp.dest(out)), // copy es2015 umd files and add `.min` + observableFromStreams(gulp.src(esnextUmdGlob), gulpRename((p) => { p.basename += `.esnext.min`; }), gulp.dest(out)), // copy esnext umd files and add `.esnext.min` ).pipe(publish(new ReplaySubject()), refCount()); }))({}); -const copyTSTask = ((cache) => memoizeTask(cache, async function copyTS(target, format) { +export const copyTSTask = ((cache) => memoizeTask(cache, async function copyTS(target, format) { const out = targetDir(target, format); await exec(`mkdirp ${out}`); await exec(`shx cp -r src/* ${out}`); await del(`${out}/**/*.js`); }))({}); - - -module.exports = copyMainTask; -module.exports.copyTSTask = copyTSTask; -module.exports.copyMainTask = copyMainTask; + + +export default copyMainTask; diff --git a/gulp/esm-require.cjs b/gulp/esm-require.cjs new file mode 100644 index 00000000..e928f3c6 --- /dev/null +++ b/gulp/esm-require.cjs @@ -0,0 +1,38 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +const esm = require('esm'); + +const esmRequire = esm(module, { + mode: `auto`, + cjs: { + /* A boolean for storing ES modules in require.cache. */ + cache: true, + /* A boolean for respecting require.extensions in ESM. */ + extensions: true, + /* A boolean for __esModule interoperability. */ + interop: true, + /* A boolean for importing named exports of CJS modules. */ + namedExports: true, + /* A boolean for following CJS path rules in ESM. */ + paths: true, + /* A boolean for __dirname, __filename, and require in ESM. */ + vars: true, + } +}); + +module.exports = esmRequire; diff --git a/gulp/memoize-task.js b/gulp/memoize-task.js index 408ee3b8..bb522934 100644 --- a/gulp/memoize-task.js +++ b/gulp/memoize-task.js @@ -15,16 +15,16 @@ // specific language governing permissions and limitations // under the License. -const { taskName } = require('./util'); +import { taskName } from './util.js'; -const createTask = ((taskFn) => ((target, format, ...args) => { +export const createTask = ((taskFn) => ((target, format, ...args) => { // Give the memoized fn a displayName so gulp's output is easier to follow. const fn = () => taskFn(target, format, ...args); fn.displayName = `${taskFn.name || ``}:${taskName(target, format, ...args)}:task`; return fn; })); -const memoizeTask = ((cache, taskFn) => ((target, format, ...args) => { +export const memoizeTask = ((cache, taskFn) => ((target, format, ...args) => { // Give the memoized fn a displayName so gulp's output is easier to follow. const fn = () => ( cache[taskName(target, format)] || ( @@ -33,6 +33,4 @@ const memoizeTask = ((cache, taskFn) => ((target, format, ...args) => { return fn; })); -module.exports = memoizeTask; -module.exports.createTask = createTask; -module.exports.memoizeTask = memoizeTask; +export default memoizeTask; diff --git a/gulp/package-task.js b/gulp/package-task.js index 1b8a40c6..ee22c681 100644 --- a/gulp/package-task.js +++ b/gulp/package-task.js @@ -15,106 +15,109 @@ // specific language governing permissions and limitations // under the License. -const { - metadataFiles, packageJSONFields, - mainExport, npmPkgName, npmOrgName, - targetDir, packageName, observableFromStreams -} = require('./util'); +import { + metadataFiles, packageJSONFields, + mainExport, npmPkgName, npmOrgName, + targetDir, packageName, observableFromStreams +} from './util.js'; -const gulp = require('gulp'); -const { memoizeTask } = require('./memoize-task'); -const gulpJsonTransform = require('gulp-json-transform'); -const { - ReplaySubject, - empty: ObservableEmpty, - forkJoin: ObservableForkJoin, -} = require('rxjs'); +import gulp from 'gulp'; +import { memoizeTask } from './memoize-task.js'; +import gulpJsonTransform from 'gulp-json-transform'; +import { + ReplaySubject, + empty as ObservableEmpty, + forkJoin as ObservableForkJoin, +} from 'rxjs'; -const { publish, refCount } = require('rxjs/operators'); +import { publish, refCount } from 'rxjs/operators/index.js'; -const packageTask = ((cache) => memoizeTask(cache, function bundle(target, format) { - if (target === `src`) return ObservableEmpty(); - const out = targetDir(target, format); - const jsonTransform = gulpJsonTransform(target === npmPkgName ? createMainPackageJson(target, format) : - target === `ts` ? createTypeScriptPackageJson(target, format) - : createScopedPackageJSON(target, format), - 2); - return ObservableForkJoin( - observableFromStreams(gulp.src(metadataFiles), gulp.dest(out)), // copy metadata files - observableFromStreams(gulp.src(`package.json`), jsonTransform, gulp.dest(out)) // write packageJSONs - ).pipe(publish(new ReplaySubject()), refCount()); +export const packageTask = ((cache) => memoizeTask(cache, function bundle(target, format) { + if (target === `src`) return ObservableEmpty(); + const out = targetDir(target, format); + const jsonTransform = gulpJsonTransform(target === npmPkgName ? createMainPackageJson(target, format) : + target === `ts` ? createTypeScriptPackageJson(target, format) + : createScopedPackageJSON(target, format), + 2); + return ObservableForkJoin( + observableFromStreams(gulp.src(metadataFiles), gulp.dest(out)), // copy metadata files + observableFromStreams(gulp.src(`package.json`), jsonTransform, gulp.dest(out)) // write packageJSONs + ).pipe(publish(new ReplaySubject()), refCount()); }))({}); -module.exports = packageTask; -module.exports.packageTask = packageTask; +export default packageTask; const createMainPackageJson = (target, format) => (orig) => ({ - ...createTypeScriptPackageJson(target, format)(orig), - bin: orig.bin, - name: npmPkgName, - main: `${mainExport}.node`, - browser: `${mainExport}.dom`, - module: `${mainExport}.dom.mjs`, - types: `${mainExport}.node.d.ts`, - unpkg: `${mainExport}.dom.es5.min.js`, - esm: { mode: `all`, sourceMap: true } + ...createTypeScriptPackageJson(target, format)(orig), + bin: orig.bin, + name: npmPkgName, + type: 'commonjs', + main: `${mainExport}.node.js`, + module: `${mainExport}.node.mjs`, + browser: { + [`./${mainExport}.node.js`]: `./${mainExport}.dom.js`, + [`./${mainExport}.node.mjs`]: `./${mainExport}.dom.mjs` + }, + exports: { + '.': { + node: { + import: `./${mainExport}.node.mjs`, + require: `./${mainExport}.node.js`, + }, + import: `./${mainExport}.dom.mjs`, + require: `./${mainExport}.dom.js`, + }, + './*': { + import: `./*.mjs`, + require: `./*.js` + } + }, + types: `${mainExport}.node.d.ts`, + unpkg: `${mainExport}.dom.es2015.min.js`, + jsdelivr: `${mainExport}.dom.es2015.min.js`, + sideEffects: false, + esm: { mode: `all`, sourceMap: true } }); - + const createTypeScriptPackageJson = (target, format) => (orig) => ({ - ...createScopedPackageJSON(target, format)(orig), - bin: undefined, - module: undefined, - main: `${mainExport}.node.ts`, - types: `${mainExport}.node.ts`, - browser: `${mainExport}.dom.ts`, - dependencies: { - '@types/node': '*', - ...orig.dependencies - } + ...createScopedPackageJSON(target, format)(orig), + bin: undefined, + main: `${mainExport}.node.ts`, + module: `${mainExport}.node.ts`, + types: `${mainExport}.node.ts`, + browser: `${mainExport}.dom.ts`, + type: 'module', + dependencies: { + '@types/node': '*', + ...orig.dependencies + } }); - + const createScopedPackageJSON = (target, format) => (({ name, ...orig }) => - packageJSONFields.reduce( - (xs, key) => ({ ...xs, [key]: xs[key] || orig[key] }), - { - // un-set version, since it's automatically applied during the release process - version: undefined, - // set the scoped package name (e.g. "@apache-arrow/esnext-esm") - name: `${npmOrgName}/${npmPkgName}-${packageName(target, format)}`, - // set "unpkg"/"jsdeliver" if building scoped UMD target - unpkg: format === 'umd' ? `${mainExport}.dom.js` : undefined, - jsdelivr: format === 'umd' ? `${mainExport}.dom.js` : undefined, - // set "browser" if building scoped UMD target, otherwise "Arrow.dom" - browser: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.dom.js`, - // set "main" to "Arrow" if building scoped UMD target, otherwise "Arrow.node" - main: format === 'umd' ? `${mainExport}.dom` : `${mainExport}.node`, - // set "module" (for https://www.npmjs.com/package/@pika/pack) if building scoped ESM target - module: format === 'esm' ? `${mainExport}.dom.js` : undefined, - // include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target - esm: format === `esm` ? { mode: `auto`, sourceMap: true } : undefined, - // set "types" (for TypeScript/VSCode) - types: format === 'umd' ? undefined : `${mainExport}.node.d.ts`, - } - ) + packageJSONFields.reduce( + (xs, key) => ({ ...xs, [key]: xs[key] || orig[key] }), + { + // un-set version, since it's automatically applied during the release process + version: undefined, + // set the scoped package name (e.g. "@apache-arrow/esnext-esm") + name: `${npmOrgName}/${npmPkgName}-${packageName(target, format)}`, + // set "unpkg"/"jsdeliver" if building scoped UMD target + unpkg: format === 'umd' ? `${mainExport}.dom.js` : undefined, + jsdelivr: format === 'umd' ? `${mainExport}.dom.js` : undefined, + // set "browser" if building scoped UMD target, otherwise "Arrow.dom" + browser: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.dom.js`, + // set "main" to "Arrow" if building scoped UMD target, otherwise "Arrow.node" + main: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.node.js`, + // set "type" to `module` or `commonjs` (https://nodejs.org/api/packages.html#packages_type) + type: format === 'esm' ? `module` : `commonjs`, + // set "module" (for https://www.npmjs.com/package/@pika/pack) if building scoped ESM target + module: format === 'esm' ? `${mainExport}.dom.js` : undefined, + // set "sideEffects" to false as a hint to Webpack that it's safe to tree-shake the ESM target + sideEffects: format === 'esm' ? false : undefined, + // include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target + esm: format === `esm` ? { mode: `auto`, sourceMap: true } : undefined, + // set "types" (for TypeScript/VSCode) + types: format === 'umd' ? undefined : `${mainExport}.node.d.ts`, + } + ) ); - -// const createScopedPackageJSON = (target, format) => (({ name, ...orig }) => -// conditionallyAddStandardESMEntry(target, format)( -// packageJSONFields.reduce( -// (xs, key) => ({ ...xs, [key]: xs[key] || orig[key] }), -// { -// name: `${npmOrgName}/${npmPkgName}-${packageName(target, format)}`, -// browser: format === 'umd' ? undefined : `${mainExport}.dom`, -// main: format === 'umd' ? `${mainExport}.dom` : `${mainExport}.node`, -// types: format === 'umd' ? `${mainExport}.d.ts` : `${mainExport}.node.d.ts`, -// version: undefined, unpkg: undefined, module: undefined, [`esm`]: undefined, -// } -// ) -// ) -// ); - -// const conditionallyAddStandardESMEntry = (target, format) => (packageJSON) => ( -// format !== `esm` && format !== `cls` -// ? packageJSON -// : { ...packageJSON, [`esm`]: { mode: `auto`, sourceMap: true } } -// ); diff --git a/gulp/test-task.js b/gulp/test-task.js index 31e7223b..57a17cc2 100644 --- a/gulp/test-task.js +++ b/gulp/test-task.js @@ -15,12 +15,17 @@ // specific language governing permissions and limitations // under the License. -const path = require('path'); -const { argv } = require('./argv'); -const child_process = require(`child_process`); -const { memoizeTask } = require('./memoize-task'); -const { targetAndModuleCombinations } = require('./util'); -const asyncDone = require('util').promisify(require('async-done')); +import * as path from 'path'; +import { argv } from './argv.js'; +import child_process from 'child_process'; +import { memoizeTask } from './memoize-task.js'; +import { npmPkgName, targetAndModuleCombinations } from './util.js'; +import {promisify} from 'util'; +import asyncDone_ from 'async-done'; +const asyncDone = promisify(asyncDone_); + +import { createRequire } from 'module'; +const require = createRequire(import.meta.url); const jestArgv = [`--reporters=jest-silent-reporter`]; @@ -39,13 +44,16 @@ const testOptions = { ...process.env, // hide fs.promises/stream[Symbol.asyncIterator] warnings NODE_NO_WARNINGS: `1`, - TS_JEST_DISABLE_VER_CHECKER: true + // TS_JEST_DISABLE_VER_CHECKER: true }, }; -const testTask = ((cache, execArgv, testOptions) => memoizeTask(cache, function test(target, format) { +export const testTask = ((cache, execArgv, testOptions) => memoizeTask(cache, function test(target, format) { const args = [...execArgv]; const opts = { ...testOptions }; + if (format === 'esm' || target === 'ts' || target === 'src' || target === npmPkgName) { + args.unshift(`--experimental-vm-modules`); + } if (argv.coverage) { args.push(`-c`, `jest.coverage.config.js`, `--coverage`); } else { @@ -61,5 +69,4 @@ const testTask = ((cache, execArgv, testOptions) => memoizeTask(cache, function return asyncDone(() => child_process.spawn(`node`, args, opts)); }))({}, [jest, ...jestArgv], testOptions); -module.exports = testTask; -module.exports.testTask = testTask; +export default testTask; diff --git a/gulp/typescript-task.js b/gulp/typescript-task.js index c4f9648d..e1e7e69d 100644 --- a/gulp/typescript-task.js +++ b/gulp/typescript-task.js @@ -15,27 +15,28 @@ // specific language governing permissions and limitations // under the License. -const { +import { targetDir, tsconfigName, observableFromStreams, shouldRunInChildProcess, spawnGulpCommandInChildProcess, -} = require('./util'); +} from './util.js'; -const gulp = require('gulp'); -const path = require('path'); -const ts = require(`gulp-typescript`); -const sourcemaps = require('gulp-sourcemaps'); -const { memoizeTask } = require('./memoize-task'); -const { +import gulp from 'gulp'; +import path from 'path'; +import tsc from 'typescript'; +import ts from 'gulp-typescript'; +import sourcemaps from 'gulp-sourcemaps'; +import { memoizeTask } from './memoize-task.js'; +import { ReplaySubject, - forkJoin: ObservableForkJoin, -} = require('rxjs'); + forkJoin as ObservableForkJoin, +} from 'rxjs'; -const { takeLast, publish, refCount } = require('rxjs/operators'); +import { takeLast, publish, refCount } from 'rxjs/operators/index.js'; -const typescriptTask = ((cache) => memoizeTask(cache, function typescript(target, format) { +export const typescriptTask = ((cache) => memoizeTask(cache, function typescript(target, format) { if (shouldRunInChildProcess(target, format)) { return spawnGulpCommandInChildProcess('compile', target, format); @@ -48,19 +49,19 @@ const typescriptTask = ((cache) => memoizeTask(cache, function typescript(target }))({}); function compileTypescript(out, tsconfigPath, tsconfigOverrides) { - const tsProject = ts.createProject(tsconfigPath, { typescript: require(`typescript`), ...tsconfigOverrides }); + const tsProject = ts.createProject(tsconfigPath, { typescript: tsc, ...tsconfigOverrides }); const { stream: { js, dts } } = observableFromStreams( tsProject.src(), sourcemaps.init(), tsProject(ts.reporter.defaultReporter()) ); - const writeDTypes = observableFromStreams(dts, gulp.dest(out)); - const mapFile = tsProject.options.module === 5 ? esmMapFile : cjsMapFile; - const writeJS = observableFromStreams(js, sourcemaps.write('./', { mapFile }), gulp.dest(out)); - return ObservableForkJoin(writeDTypes, writeJS); + const writeSources = observableFromStreams(tsProject.src(), gulp.dest(path.join(out, 'src'))); + const writeDTypes = observableFromStreams(dts, sourcemaps.write('./', { includeContent: false, sourceRoot: './src' }), gulp.dest(out)); + const mapFile = tsProject.options.module === tsc.ModuleKind.ES2015 ? esmMapFile : cjsMapFile; + const writeJS = observableFromStreams(js, sourcemaps.write('./', { mapFile, includeContent: false, sourceRoot: './src' }), gulp.dest(out)); + return ObservableForkJoin(writeSources, writeDTypes, writeJS); } function cjsMapFile(mapFilePath) { return mapFilePath; } function esmMapFile(mapFilePath) { return mapFilePath.replace('.js.map', '.mjs.map'); } -module.exports = typescriptTask; -module.exports.typescriptTask = typescriptTask; +export default typescriptTask; diff --git a/gulp/util.js b/gulp/util.js index 9e08bfce..ca3cf126 100644 --- a/gulp/util.js +++ b/gulp/util.js @@ -15,27 +15,35 @@ // specific language governing permissions and limitations // under the License. -const fs = require('fs'); -const path = require(`path`); -const pump = require(`stream`).pipeline; -const child_process = require(`child_process`); -const { targets, modules } = require('./argv'); -const { +import fs from 'fs'; +import path from 'path'; +import { pipeline as pump } from 'stream'; +import child_process from 'child_process'; +import { targets, modules } from './argv.js'; +import { ReplaySubject, - empty: ObservableEmpty, - throwError: ObservableThrow, - fromEvent: ObservableFromEvent -} = require('rxjs'); -const { + empty as ObservableEmpty, + throwError as ObservableThrow, + fromEvent as ObservableFromEvent +} from 'rxjs'; +import { merge, flatMap, takeUntil, defaultIfEmpty, multicast, refCount, -} = require('rxjs/operators'); +} from 'rxjs/operators/index.js'; -const asyncDone = require('util').promisify(require('async-done')); +import {promisify} from 'util'; +import asyncDone_ from 'async-done'; + +import { createRequire } from 'module'; +const require = createRequire(import.meta.url); + +import esmRequire from './esm-require.cjs'; + +const asyncDone = promisify(asyncDone_); const mainExport = `Ix`; const npmPkgName = `ix`; @@ -204,32 +212,13 @@ function* combinations(_targets, _modules) { } } -const esmRequire = require(`esm`)(module, { - mode: `auto`, - cjs: { - /* A boolean for storing ES modules in require.cache. */ - cache: true, - /* A boolean for respecting require.extensions in ESM. */ - extensions: true, - /* A boolean for __esModule interoperability. */ - interop: true, - /* A boolean for importing named exports of CJS modules. */ - namedExports: true, - /* A boolean for following CJS path rules in ESM. */ - paths: true, - /* A boolean for __dirname, __filename, and require in ESM. */ - vars: true, - } -}); - const getUMDExportName = (umdEntryFileName) => umdEntryFileName .split('.') .filter((x) => x != 'dom') .map((x) => x[0].toUpperCase() + x.slice(1)) .join(''); -module.exports = { - +export { mainExport, npmPkgName, npmOrgName, metadataFiles, packageJSONFields, knownTargets, knownModules, tasksToSkipPerTargetOrFormat, @@ -237,6 +226,6 @@ module.exports = { taskName, packageName, tsconfigName, targetDir, combinations, observableFromStreams, ESKeywords, esmRequire, shouldRunInChildProcess, spawnGulpCommandInChildProcess, getUMDExportName, - - targetAndModuleCombinations: [...combinations(targets, modules)] }; + +export const targetAndModuleCombinations = [...combinations(targets, modules)]; diff --git a/gulpfile.js b/gulpfile.js index 192afebf..95c75b34 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -15,24 +15,26 @@ // specific language governing permissions and limitations // under the License. -const del = require('del'); -const gulp = require('gulp'); -const { - from: ObservableFrom, - bindNodeCallback: ObservableBindNodeCallback -} = require('rxjs'); -const { flatMap } = require('rxjs/operators') -const cleanTask = require('./gulp/clean-task'); -const { testTask } = require('./gulp/test-task'); -const compileTask = require('./gulp/compile-task'); -const packageTask = require('./gulp/package-task'); -const { targets, modules } = require('./gulp/argv'); -const { +import * as os from 'os'; +import del from 'del'; +import gulp from 'gulp'; +import { + from as ObservableFrom, + bindNodeCallback as ObservableBindNodeCallback +} from 'rxjs'; +import { flatMap } from 'rxjs/operators/index.js'; +import cleanTask from './gulp/clean-task.js'; +import { testTask } from './gulp/test-task.js'; +import compileTask from './gulp/compile-task.js'; +import packageTask from './gulp/package-task.js'; +import { targets, modules } from './gulp/argv.js'; +import { esbuildTask, rollupTask, webpackTask, execBundleTask } from './gulp/bundle-task.js'; +import { taskName, combinations, targetDir, knownTargets, npmPkgName, UMDSourceTargets, tasksToSkipPerTargetOrFormat -} = require('./gulp/util'); +} from './gulp/util.js'; for (const [target, format] of combinations([`all`], [`all`])) { const task = taskName(target, format); @@ -77,6 +79,15 @@ gulp.task(`build:${npmPkgName}`, ) ); +gulp.task(`bundle:esbuild`, esbuildTask()); +gulp.task(`bundle:rollup`, rollupTask()); +gulp.task(`bundle:webpack`, webpackTask()); +gulp.task(`bundle:webpack:analyze`, webpackTask({ analyze: true })); +gulp.task(`bundle:clean`, () => del(`test/bundle/**/*-bundle.js`)); +gulp.task(`bundle:exec`, execBundleTask()); + +gulp.task(`bundle`, gulp.series(`bundle:clean`, `bundle:esbuild`, `bundle:rollup`, `bundle:webpack`, `bundle:exec`)); + // And finally the global composite tasks gulp.task(`test`, gulpConcurrent(getTasks(`test`))); gulp.task(`clean`, gulp.parallel(getTasks(`clean`))); @@ -85,7 +96,7 @@ gulp.task(`compile`, gulpConcurrent(getTasks(`compile`))); gulp.task(`package`, gulpConcurrent(getTasks(`package`))); gulp.task(`default`, gulp.series(`clean`, `build`, `test`)); -function gulpConcurrent(tasks, numCPUs = Math.max(1, require('os').cpus().length * 0.5) | 0) { +function gulpConcurrent(tasks, numCPUs = Math.max(1, os.cpus().length * 0.5) | 0) { return () => ObservableFrom(tasks.map((task) => gulp.series(task))) .pipe(flatMap((task) => ObservableBindNodeCallback(task)(), numCPUs || 1)); } diff --git a/package.json b/package.json index ebb720d2..b4be503e 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "ix", "private": true, "version": "5.0.0", + "type": "module", "description": "The Interactive Extensions for JavaScript", "scripts": { "lerna": "lerna", @@ -17,6 +18,7 @@ "postinstall": "patch-package --patch-dir ./patches", "commitmsg": "validate-commit-msg", "test:coverage": "gulp test -t src --coverage", + "test:bundle": "gulp bundle", "lint:ci": "eslint src spec", "lint:src": "eslint --fix src", "lint:spec": "eslint --fix spec", From be079eb0d2f4c03a8ad5f48e27b438d777557be7 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Wed, 3 Jan 2024 09:25:05 -0800 Subject: [PATCH 03/44] update jest configs to use ESM, update tsconfigs --- jest.config.js | 68 ++++++++++++++------------- jestconfigs/jest.es2015.cjs.config.js | 37 ++++++++++----- jestconfigs/jest.es2015.esm.config.js | 40 +++++++++++----- jestconfigs/jest.es2015.umd.config.js | 38 ++++++++++----- jestconfigs/jest.es5.cjs.config.js | 37 ++++++++++----- jestconfigs/jest.es5.esm.config.js | 40 +++++++++++----- jestconfigs/jest.es5.umd.config.js | 38 ++++++++++----- jestconfigs/jest.esnext.cjs.config.js | 37 ++++++++++----- jestconfigs/jest.esnext.esm.config.js | 40 +++++++++++----- jestconfigs/jest.esnext.umd.config.js | 38 ++++++++++----- jestconfigs/jest.ix.config.js | 39 ++++++++++----- jestconfigs/jest.src.config.js | 41 +++++++++++----- jestconfigs/jest.ts.config.js | 41 +++++++++++----- tsconfig.json | 16 +++++-- tsconfig/tsconfig.base.json | 44 +++++++++-------- tsconfig/tsconfig.es2015.cjs.json | 4 +- tsconfig/tsconfig.es2015.cls.json | 6 +-- tsconfig/tsconfig.es2015.esm.json | 4 +- tsconfig/tsconfig.es5.cjs.json | 4 +- tsconfig/tsconfig.es5.cls.json | 6 +-- tsconfig/tsconfig.es5.esm.json | 4 +- tsconfig/tsconfig.esnext.cjs.json | 6 +-- tsconfig/tsconfig.esnext.cls.json | 6 +-- tsconfig/tsconfig.esnext.esm.json | 6 +-- 24 files changed, 423 insertions(+), 217 deletions(-) diff --git a/jest.config.js b/jest.config.js index d4f2fd9f..34b5feb9 100644 --- a/jest.config.js +++ b/jest.config.js @@ -15,43 +15,47 @@ // specific language governing permissions and limitations // under the License. -module.exports = { - "verbose": false, - "testEnvironment": "node", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "spec/tsconfig.json" - } - }, - "rootDir": "./", - "roots": [ +export default { + verbose: false, + testEnvironment: "node", + rootDir: ".", + roots: [ "/spec/" ], - "moduleFileExtensions": [ - "js", - "ts", - "tsx" - ], - "coverageReporters": [ - "lcov" - ], - "coveragePathIgnorePatterns": [ + cacheDirectory: ".jest-cache", + extensionsToTreatAsEsm: [".ts"], + moduleFileExtensions: ["js", "mjs", "ts"], + coverageReporters: ["lcov"], + coveragePathIgnorePatterns: [ "spec\\/.*\\.(ts|tsx|js)$", "/node_modules/" ], - "transform": { - "^.+\\.jsx?$": "ts-jest", - "^.+\\.tsx?$": "ts-jest" + moduleNameMapper: { + "^ix$": "/src/Ix.node", + "^ix(.*)": "/src$1", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + testRegex: "(.*(-|\\.)(test|spec)s?)\\.(ts|tsx|js)$", + transform: { + "^.+\\.jsx?$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "spec/tsconfig.json", + useESM: true + } + ], + "^.+\\.tsx?$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "spec/tsconfig.json", + useESM: true + } + ] }, - "transformIgnorePatterns": [ - "/(es5|es2015|esnext)/umd/", - "/node_modules/(?!web-stream-tools).+\\.js$" + transformIgnorePatterns: [ + "/targets/(es5|es2015|esnext|ix)/", + "/node_modules/(?!@openpgp/web-stream-tools)/", ], - "testRegex": "(.*(-|\\.)(test|spec)s?)\\.(ts|tsx|js)$", - "preset": "ts-jest", - "testMatch": null, - "moduleNameMapper": { - "^ix(.*)": "/src/$1.js" - } }; diff --git a/jestconfigs/jest.es2015.cjs.config.js b/jestconfigs/jest.es2015.cjs.config.js index cbde3b52..3f6cbdab 100644 --- a/jestconfigs/jest.es2015.cjs.config.js +++ b/jestconfigs/jest.es2015.cjs.config.js @@ -1,13 +1,28 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.es2015.cjs.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix(.*)": "/targets/es2015/cjs$1", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es2015.cjs.json", + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es2015.cjs.json", + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/targets/es2015/cjs$1" - } }; diff --git a/jestconfigs/jest.es2015.esm.config.js b/jestconfigs/jest.es2015.esm.config.js index 4a5d03b8..d31d462f 100644 --- a/jestconfigs/jest.es2015.esm.config.js +++ b/jestconfigs/jest.es2015.esm.config.js @@ -1,13 +1,31 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.es2015.esm.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix(.*)": "/targets/es2015/esm$1", + "tslib": "tslib/tslib.es6.js", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es2015.esm.json", + useESM: true, + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es2015.esm.json", + useESM: true, + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/targets/es2015/esm$1" - } }; diff --git a/jestconfigs/jest.es2015.umd.config.js b/jestconfigs/jest.es2015.umd.config.js index d074b7b4..8d383a7f 100644 --- a/jestconfigs/jest.es2015.umd.config.js +++ b/jestconfigs/jest.es2015.umd.config.js @@ -1,17 +1,31 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.es2015.umd.json" - } - }, - "moduleNameMapper": { +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleNameMapper: { "^ix/asynciterable/operators(.*)": "/targets/es2015/umd/Ix.dom.asynciterable.operators.js", "^ix/asynciterable(.*)": "/targets/es2015/umd/Ix.dom.asynciterable.js", "^ix/iterable/operators(.*)": "/targets/es2015/umd/Ix.dom.iterable.operators.js", "^ix/iterable(.*)": "/targets/es2015/umd/Ix.dom.iterable.js", - "^ix(.*)": "/targets/es2015/umd/Ix.dom.js" - } + "^ix(.*)": "/targets/es2015/umd/Ix.dom.js", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es2015.umd.json", + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es2015.umd.json", + }, + ], + }, }; diff --git a/jestconfigs/jest.es5.cjs.config.js b/jestconfigs/jest.es5.cjs.config.js index 3a2e1748..80a14e39 100644 --- a/jestconfigs/jest.es5.cjs.config.js +++ b/jestconfigs/jest.es5.cjs.config.js @@ -1,13 +1,28 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.es5.cjs.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix(.*)": "/targets/es5/cjs$1", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es5.cjs.json", + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es5.cjs.json", + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/targets/es5/cjs$1" - } }; diff --git a/jestconfigs/jest.es5.esm.config.js b/jestconfigs/jest.es5.esm.config.js index d15cf5b9..ed8b00b5 100644 --- a/jestconfigs/jest.es5.esm.config.js +++ b/jestconfigs/jest.es5.esm.config.js @@ -1,13 +1,31 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.es5.esm.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix(.*)": "/targets/es5/esm$1", + "tslib": "tslib/tslib.es6.js", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es5.esm.json", + useESM: true, + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es5.esm.json", + useESM: true, + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/targets/es5/esm$1" - } }; diff --git a/jestconfigs/jest.es5.umd.config.js b/jestconfigs/jest.es5.umd.config.js index 3b5e4a87..24ec2c14 100644 --- a/jestconfigs/jest.es5.umd.config.js +++ b/jestconfigs/jest.es5.umd.config.js @@ -1,17 +1,31 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.es5.umd.json" - } - }, - "moduleNameMapper": { +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleNameMapper: { "^ix/asynciterable/operators(.*)": "/targets/es5/umd/Ix.dom.asynciterable.operators.js", "^ix/asynciterable(.*)": "/targets/es5/umd/Ix.dom.asynciterable.js", "^ix/iterable/operators(.*)": "/targets/es5/umd/Ix.dom.iterable.operators.js", "^ix/iterable(.*)": "/targets/es5/umd/Ix.dom.iterable.js", - "^ix(.*)": "/targets/es5/umd/Ix.dom.js" - } + "^ix(.*)": "/targets/es5/umd/Ix.dom.js", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es5.umd.json", + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.es5.umd.json", + }, + ], + }, }; diff --git a/jestconfigs/jest.esnext.cjs.config.js b/jestconfigs/jest.esnext.cjs.config.js index 20ca7a27..cca1b727 100644 --- a/jestconfigs/jest.esnext.cjs.config.js +++ b/jestconfigs/jest.esnext.cjs.config.js @@ -1,13 +1,28 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.esnext.cjs.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix(.*)": "/targets/esnext/cjs$1", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.esnext.cjs.json", + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.esnext.cjs.json", + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/targets/esnext/cjs$1" - } }; diff --git a/jestconfigs/jest.esnext.esm.config.js b/jestconfigs/jest.esnext.esm.config.js index 5f25e5a4..2ba58f88 100644 --- a/jestconfigs/jest.esnext.esm.config.js +++ b/jestconfigs/jest.esnext.esm.config.js @@ -1,13 +1,31 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.esnext.esm.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix(.*)": "/targets/esnext/esm$1", + "tslib": "tslib/tslib.es6.js", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.esnext.esm.json", + useESM: true, + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.esnext.esm.json", + useESM: true, + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/targets/esnext/esm$1" - } }; diff --git a/jestconfigs/jest.esnext.umd.config.js b/jestconfigs/jest.esnext.umd.config.js index be43b59b..b9fb044c 100644 --- a/jestconfigs/jest.esnext.umd.config.js +++ b/jestconfigs/jest.esnext.umd.config.js @@ -1,17 +1,31 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.esnext.umd.json" - } - }, - "moduleNameMapper": { +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleNameMapper: { "^ix/asynciterable/operators(.*)": "/targets/esnext/umd/Ix.dom.asynciterable.operators.js", "^ix/asynciterable(.*)": "/targets/esnext/umd/Ix.dom.asynciterable.js", "^ix/iterable/operators(.*)": "/targets/esnext/umd/Ix.dom.iterable.operators.js", "^ix/iterable(.*)": "/targets/esnext/umd/Ix.dom.iterable.js", - "^ix(.*)": "/targets/esnext/umd/Ix.dom.js" - } + "^ix(.*)": "/targets/esnext/umd/Ix.dom.js", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.esnext.umd.json", + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.esnext.umd.json", + }, + ], + }, }; diff --git a/jestconfigs/jest.ix.config.js b/jestconfigs/jest.ix.config.js index b2497120..da2e9c6c 100644 --- a/jestconfigs/jest.ix.config.js +++ b/jestconfigs/jest.ix.config.js @@ -1,13 +1,30 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.ix.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix(.*)": "/targets/ix$1", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.ix.json", + useESM: true, + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.ix.json", + useESM: true, + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/targets/ix$1" - } }; diff --git a/jestconfigs/jest.src.config.js b/jestconfigs/jest.src.config.js index 4fbcb52f..27e0e605 100644 --- a/jestconfigs/jest.src.config.js +++ b/jestconfigs/jest.src.config.js @@ -1,13 +1,32 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.src.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix": "/src/Ix.node.ts", + "^ix(.*)\\.js": "/src$1.ts", + "tslib": "tslib/tslib.es6.js", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.src.json", + useESM: true, + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.src.json", + useESM: true, + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/src$1" - } }; diff --git a/jestconfigs/jest.ts.config.js b/jestconfigs/jest.ts.config.js index 437ebfa2..e618640d 100644 --- a/jestconfigs/jest.ts.config.js +++ b/jestconfigs/jest.ts.config.js @@ -1,13 +1,32 @@ -module.exports = { - ...require('../jest.config'), - "rootDir": "../", - "globals": { - "ts-jest": { - "diagnostics": false, - "tsconfig": "/spec/tsconfig/tsconfig.ts.json" - } +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: "../", + moduleFileExtensions: ["js", "ts"], + moduleNameMapper: { + "^ix": "/targets/ts/Ix.node", + "^ix(.*)": "/targets/ts$1", + "tslib": "tslib/tslib.es6.js", + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + ...config.transform, + "^.+\\.js$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.ts.json", + useESM: true, + }, + ], + "^.+\\.ts$": [ + "ts-jest", + { + diagnostics: false, + tsconfig: "/spec/tsconfig/tsconfig.ts.json", + useESM: true, + }, + ], }, - "moduleNameMapper": { - "^ix(.*)": "/targets/ts$1" - } }; diff --git a/tsconfig.json b/tsconfig.json index 1aa66487..421513df 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,17 +1,25 @@ { "extends": "./tsconfig/tsconfig.base.json", - "include": ["src/**/*.ts", "spec/**/*.ts"], "formatCodeOptions": { "tabSize": 2, "indentSize": 2 }, "compilerOptions": { - "target": "ESNEXT", - "module": "CommonJS", + "target": "ESNext", + "module": "ESNext", + "isolatedModules": true, + "noEmit": true, + "esModuleInterop": true, "baseUrl": "./", + "rootDir": "./", "paths": { "ix": ["src/Ix.node"], "ix/*": ["src/*"] - } + }, + "allowImportingTsExtensions": true, + }, + "include": ["src/**/*.ts", "spec/**/*.ts"], + "ts-node": { + "swc": true } } diff --git a/tsconfig/tsconfig.base.json b/tsconfig/tsconfig.base.json index 2fe4e103..db349afe 100644 --- a/tsconfig/tsconfig.base.json +++ b/tsconfig/tsconfig.base.json @@ -1,47 +1,51 @@ { - "exclude": [ - "../node_modules" - ], - "include": [ - "../src/**/*.ts" - ], + "exclude": ["../node_modules", "../src/bin/*.ts"], + "include": ["../src/**/*.ts"], "compileOnSave": false, "compilerOptions": { - "baseUrl": "../", + "baseUrl": "./", + "rootDir": "../src", "paths": { - "ix": ["src/Ix.node"], - "ix/*": [ - "src/*" - ] + "ix/*": ["src/*"] }, + /* Basic stuff */ - "moduleResolution": "node", - "lib": [ - "dom", - "esnext", - "esnext.asynciterable" - ], + "moduleResolution": "Node", + "lib": ["DOM", "ESNext", "ESNext.AsyncIterable"], + "esModuleInterop": true, + /* Control what is emitted */ "declaration": true, "declarationMap": true, "noEmitOnError": true, "removeComments": false, + "noErrorTruncation": true, "downlevelIteration": true, + /* Create inline sourcemaps with sources */ "sourceMap": false, "inlineSources": true, "inlineSourceMap": true, + /* The most restrictive settings possible */ "strict": true, - "skipLibCheck": true, + "noImplicitAny": true, + "noImplicitThis": true, + "alwaysStrict": true, + "strictBindCallApply": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "strictPropertyInitialization": true, + + "skipLibCheck": false, "importHelpers": true, "noEmitHelpers": true, - "noImplicitAny": true, "noUnusedLocals": true, "noImplicitReturns": true, - "allowUnusedLabels": false, "noUnusedParameters": true, + "allowUnusedLabels": false, "allowUnreachableCode": false, + "noStrictGenericChecks": false, "noFallthroughCasesInSwitch": true, "forceConsistentCasingInFileNames": true } diff --git a/tsconfig/tsconfig.es2015.cjs.json b/tsconfig/tsconfig.es2015.cjs.json index 7e92d5d2..a30dd4f4 100644 --- a/tsconfig/tsconfig.es2015.cjs.json +++ b/tsconfig/tsconfig.es2015.cjs.json @@ -1,8 +1,8 @@ -//Compiler configuaration to build the ES2015 CommonJS target +// Compiler configuration to build the ES2015 CommonJS target { "extends": "./tsconfig.base.json", "compilerOptions": { "target": "ES2015", - "module": "commonjs" + "module": "CommonJS" } } diff --git a/tsconfig/tsconfig.es2015.cls.json b/tsconfig/tsconfig.es2015.cls.json index 28dc355e..edac1038 100644 --- a/tsconfig/tsconfig.es2015.cls.json +++ b/tsconfig/tsconfig.es2015.cls.json @@ -1,11 +1,9 @@ -//Compiler configuaration to build the ES2015 Closure Compiler target +// Compiler configuration to build the ES2015 Closure Compiler target { "extends": "./tsconfig.base.json", "compilerOptions": { "target": "ES2020", - "module": "es2015", - "declaration": false, - "declarationMap": false, + "module": "ES2015", "noEmitHelpers": true, "importHelpers": false } diff --git a/tsconfig/tsconfig.es2015.esm.json b/tsconfig/tsconfig.es2015.esm.json index a8b34547..17442655 100644 --- a/tsconfig/tsconfig.es2015.esm.json +++ b/tsconfig/tsconfig.es2015.esm.json @@ -1,8 +1,8 @@ -//Compiler configuaration to build the ES2015 ESModules target +// Compiler configuration to build the ES2015 ESModules target { "extends": "./tsconfig.base.json", "compilerOptions": { "target": "ES2015", - "module": "es2015" + "module": "ES2015" } } diff --git a/tsconfig/tsconfig.es5.cjs.json b/tsconfig/tsconfig.es5.cjs.json index cab55c1a..6623275a 100644 --- a/tsconfig/tsconfig.es5.cjs.json +++ b/tsconfig/tsconfig.es5.cjs.json @@ -1,8 +1,8 @@ -//Compiler configuaration to build the ES5 CommonJS target +// Compiler configuration to build the ES5 CommonJS target { "extends": "./tsconfig.base.json", "compilerOptions": { "target": "ES5", - "module": "commonjs" + "module": "CommonJS" } } diff --git a/tsconfig/tsconfig.es5.cls.json b/tsconfig/tsconfig.es5.cls.json index e149ac63..a6a4e80b 100644 --- a/tsconfig/tsconfig.es5.cls.json +++ b/tsconfig/tsconfig.es5.cls.json @@ -1,11 +1,9 @@ -//Compiler configuaration to build the ES5 Closure Compiler target +// Compiler configuration to build the ES5 Closure Compiler target { "extends": "./tsconfig.base.json", "compilerOptions": { "target": "ES2020", - "module": "es2015", - "declaration": false, - "declarationMap": false, + "module": "ES2015", "noEmitHelpers": true, "importHelpers": false } diff --git a/tsconfig/tsconfig.es5.esm.json b/tsconfig/tsconfig.es5.esm.json index 7780883b..572cd392 100644 --- a/tsconfig/tsconfig.es5.esm.json +++ b/tsconfig/tsconfig.es5.esm.json @@ -1,8 +1,8 @@ -//Compiler configuaration to build the ES5 ESModules target +// Compiler configuration to build the ES5 ESModules target { "extends": "./tsconfig.base.json", "compilerOptions": { "target": "ES5", - "module": "es2015" + "module": "ES2015" } } diff --git a/tsconfig/tsconfig.esnext.cjs.json b/tsconfig/tsconfig.esnext.cjs.json index 06b2ee5c..05e79b36 100644 --- a/tsconfig/tsconfig.esnext.cjs.json +++ b/tsconfig/tsconfig.esnext.cjs.json @@ -1,8 +1,8 @@ -//Compiler configuaration to build the ESNext CommonJS target +// Compiler configuration to build the ESNext CommonJS target { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ESNEXT", - "module": "commonjs" + "target": "ESNext", + "module": "CommonJS" } } diff --git a/tsconfig/tsconfig.esnext.cls.json b/tsconfig/tsconfig.esnext.cls.json index 839de5cd..335e7599 100644 --- a/tsconfig/tsconfig.esnext.cls.json +++ b/tsconfig/tsconfig.esnext.cls.json @@ -1,11 +1,9 @@ -//Compiler configuaration to build the ESNext Closure Compiler target +// Compiler configuration to build the ESNext Closure Compiler target { "extends": "./tsconfig.base.json", "compilerOptions": { "target": "ES2020", - "module": "es2015", - "declaration": false, - "declarationMap": false, + "module": "ES2015", "noEmitHelpers": true, "importHelpers": false } diff --git a/tsconfig/tsconfig.esnext.esm.json b/tsconfig/tsconfig.esnext.esm.json index c614f2ec..0975f731 100644 --- a/tsconfig/tsconfig.esnext.esm.json +++ b/tsconfig/tsconfig.esnext.esm.json @@ -1,8 +1,8 @@ -//Compiler configuaration to build the ESNext ESModules target +// Compiler configuration to build the ESNext ESModules target { "extends": "./tsconfig.base.json", "compilerOptions": { - "target": "ESNEXT", - "module": "es2015" + "target": "ESNext", + "module": "ES2015" } } From 07e09d46588af479d910009d80761b8727ad470c Mon Sep 17 00:00:00 2001 From: ptaylor Date: Wed, 3 Jan 2024 09:25:15 -0800 Subject: [PATCH 04/44] update dependencies --- .vscode/launch.json | 6 +++++- package.json | 37 ++++++++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index c3545883..4fdb37b5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,6 +9,10 @@ "request": "launch", "name": "Debug Gulp Build", "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js", + "skipFiles": [ + "/internal/fs/utils", + "/internal/url", + ], "args": [ "build", // Specify we want to debug the "src" target, which won't clean or build -- essentially a "dry-run" of the gulp build @@ -25,7 +29,7 @@ "program": "${workspaceFolder}/node_modules/.bin/jest", "skipFiles": [ "/**/*", - "${workspaceFolder}/node_modules/**/*", + // "${workspaceFolder}/node_modules/**/*", ], "env": { "NODE_NO_WARNINGS": "1", diff --git a/package.json b/package.json index b4be503e..ed38acb7 100644 --- a/package.json +++ b/package.json @@ -49,12 +49,18 @@ "CHANGELOG.md" ], "dependencies": { + "@swc/helpers": "^0.5.2", "@types/node": ">=13.7.4", "tslib": "^2.3.0" }, "devDependencies": { + "@openpgp/web-stream-tools": "0.0.13", + "@rollup/plugin-alias": "5.1.0", + "@rollup/plugin-node-resolve": "15.1.0", + "@rollup/stream": "3.0.1", + "@swc/core": "1.3.82", "@types/glob": "7.1.1", - "@types/jest": "27.4.0", + "@types/jest": "29.5.11", "@typescript-eslint/eslint-plugin": "^6.16.0", "@typescript-eslint/parser": "^6.16.0", "abortcontroller-polyfill": "1.4.0", @@ -69,19 +75,25 @@ "coveralls": "3.0.9", "cz-conventional-changelog": "3.1.0", "del": "5.1.0", + "esbuild": "0.19.2", + "esbuild-plugin-alias": "0.2.1", "eslint": "^8.56.0", "eslint-plugin-jest": "^27.6.0", "esm": "https://github.com/jsg2021/esm/releases/download/v3.x.x-pr883/esm-3.x.x-pr883.tgz", "glob": "7.1.6", "google-closure-compiler": "20220601.0.0", "gulp": "4.0.2", - "gulp-json-transform": "0.4.7", + "gulp-esbuild": "0.11.1", + "gulp-json-transform": "0.4.8", "gulp-rename": "2.0.0", + "gulp-replace": "1.1.4", "gulp-sourcemaps": "2.6.5", + "gulp-terser": "2.1.0", "gulp-typescript": "5.0.1", + "gulp-vinyl-size": "1.1.4", + "gulp-util": "3.0.8", "husky": "4.2.3", - "jest": "28.1.3", - "jest-environment-node-debug": "2.0.0", + "jest": "29.7.0", "jest-silent-reporter": "0.5.0", "json": "10.0.0", "lerna": "3.20.2", @@ -93,19 +105,22 @@ "pre-git": "3.17.1", "prettier": "2.0.1", "rimraf": "3.0.2", + "rollup": "4.9.2", "rxjs": "6.5.4", "shx": "0.3.2", "source-map-loader": "0.2.4", - "terser": "4.6.4", - "terser-webpack-plugin": "2.3.5", - "ts-jest": "28.0.7", - "ts-node": "8.6.2", + "ts-jest": "29.1.1", + "ts-node": "10.9.2", "typedoc": "0.25.4", "typescript": "5.3.3", "validate-commit-msg": "2.14.0", - "web-stream-tools": "0.0.1", - "web-streams-polyfill": "2.1.0", - "webpack": "4.41.6" + "vinyl-buffer": "1.0.1", + "vinyl-named": "1.1.0", + "vinyl-source-stream": "2.0.0", + "web-streams-polyfill": "3.2.1", + "webpack": "5.86.0", + "webpack-bundle-analyzer": "4.10.1", + "webpack-stream": "7.0.0" }, "config": { "commitizen": { From 37b6dc7822192bcdca3d01956faa25ee71e11eea Mon Sep 17 00:00:00 2001 From: ptaylor Date: Wed, 3 Jan 2024 09:34:51 -0800 Subject: [PATCH 05/44] rename .eslintrc.js -> .eslintrc.cjs --- .eslintrc.js => .eslintrc.cjs | 1 + 1 file changed, 1 insertion(+) rename .eslintrc.js => .eslintrc.cjs (98%) diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 98% rename from .eslintrc.js rename to .eslintrc.cjs index 1f2a376d..d6f77f64 100644 --- a/.eslintrc.js +++ b/.eslintrc.cjs @@ -22,6 +22,7 @@ module.exports = { node: true, }, parser: "@typescript-eslint/parser", + ignorePatterns: ["spec/bundle/**/*.js"], parserOptions: { project: "tsconfig.json", sourceType: "module", From c95c350d6b95f93609dea568772bf24631915402 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Wed, 3 Jan 2024 09:37:46 -0800 Subject: [PATCH 06/44] formatting --- gulp/argv.js | 23 +-- gulp/bundle-task.js | 151 +++++++++-------- gulp/clean-task.js | 13 +- gulp/closure-task.js | 235 ++++++++++++++------------ gulp/compile-task.js | 19 ++- gulp/copy-main-task.js | 52 ++++-- gulp/memoize-task.js | 20 +-- gulp/package-task.js | 110 ++++++------ gulp/test-task.js | 43 ++--- gulp/typescript-task.js | 69 +++++--- gulp/util.js | 166 ++++++++++++------ gulpfile.js | 111 ++++++------ jest.config.js | 55 +++--- jest.coverage.config.js | 14 +- jestconfigs/jest.es2015.cjs.config.js | 20 +-- jestconfigs/jest.es2015.esm.config.js | 22 +-- jestconfigs/jest.es2015.umd.config.js | 27 +-- jestconfigs/jest.es5.cjs.config.js | 20 +-- jestconfigs/jest.es5.esm.config.js | 22 +-- jestconfigs/jest.es5.umd.config.js | 27 +-- jestconfigs/jest.esnext.cjs.config.js | 20 +-- jestconfigs/jest.esnext.esm.config.js | 22 +-- jestconfigs/jest.esnext.umd.config.js | 27 +-- jestconfigs/jest.ix.config.js | 20 +-- jestconfigs/jest.src.config.js | 24 +-- jestconfigs/jest.ts.config.js | 24 +-- 26 files changed, 742 insertions(+), 614 deletions(-) diff --git a/gulp/argv.js b/gulp/argv.js index 30576c27..cb2ff2a0 100644 --- a/gulp/argv.js +++ b/gulp/argv.js @@ -16,16 +16,19 @@ // under the License. import args from 'command-line-args'; -const argv = args([ - { name: `all`, type: Boolean }, - { name: 'verbose', alias: 'v', type: Boolean }, - { name: `target`, type: String, defaultValue: `` }, - { name: `module`, type: String, defaultValue: `` }, - { name: `coverage`, type: Boolean, defaultValue: false }, - { name: `tests`, type: String, multiple: true, defaultValue: [`spec/*`] }, - { name: `targets`, alias: `t`, type: String, multiple: true, defaultValue: [] }, - { name: `modules`, alias: `m`, type: String, multiple: true, defaultValue: [] }, -], { partial: true }); +const argv = args( + [ + { name: `all`, type: Boolean }, + { name: 'verbose', alias: 'v', type: Boolean }, + { name: `target`, type: String, defaultValue: `` }, + { name: `module`, type: String, defaultValue: `` }, + { name: `coverage`, type: Boolean, defaultValue: false }, + { name: `tests`, type: String, multiple: true, defaultValue: [`spec/*`] }, + { name: `targets`, alias: `t`, type: String, multiple: true, defaultValue: [] }, + { name: `modules`, alias: `m`, type: String, multiple: true, defaultValue: [] }, + ], + { partial: true } +); const { targets, modules } = argv; diff --git a/gulp/bundle-task.js b/gulp/bundle-task.js index 04060e08..9ef22577 100644 --- a/gulp/bundle-task.js +++ b/gulp/bundle-task.js @@ -46,91 +46,96 @@ const __dirname = dirname(__filename); const bundleDir = resolve(__dirname, '../spec/bundle'); const fileNames = readdirSync(bundleDir) - .filter(fileName => fileName.endsWith('.js')) - .map(fileName => fileName.replace(/\.js$/, '')); + .filter((fileName) => fileName.endsWith('.js')) + .map((fileName) => fileName.replace(/\.js$/, '')); const bundlesGlob = join(bundleDir, '**.js'); const esbuildDir = join(bundleDir, 'esbuild'); -export const esbuildTask = (minify = true) => () => observableFromStreams( - gulp.src(bundlesGlob), - gulpEsbuild({ - bundle: true, - minify, - treeShaking: true, - plugins: [ - esbuildAlias({ - [npmPkgName]: resolve(__dirname, `../targets/${npmPkgName}/${mainExport}.dom.mjs`), - }), - ], - }), - gulpRename((p) => { p.basename += '-bundle'; }), - gulp.dest(esbuildDir), - size({ gzip: true }) -); - -const rollupDir = join(bundleDir, 'rollup'); -export const rollupTask = (minify = true) => () => ObservableForkJoin( - fileNames.map(fileName => observableFromStreams( - rollupStream({ - input: join(bundleDir, `${fileName}.js`), - output: { format: 'commonjs' }, +export const esbuildTask = (minify = true) => () => + observableFromStreams( + gulp.src(bundlesGlob), + gulpEsbuild({ + bundle: true, + minify, + treeShaking: true, plugins: [ - rollupAlias({ - entries: { [npmPkgName]: resolve(__dirname, `../targets/es2015/esm/`) } + esbuildAlias({ + [npmPkgName]: resolve(__dirname, `../targets/${npmPkgName}/${mainExport}.dom.mjs`), }), - nodeResolve() ], - onwarn: (message) => { - if (message.code === 'CIRCULAR_DEPENDENCY') return - console.error(message); - } }), - source(`${fileName}-bundle.js`), - buffer(), - ...(minify ? [terser()] : []), - gulp.dest(rollupDir), + gulpRename((p) => { + p.basename += '-bundle'; + }), + gulp.dest(esbuildDir), size({ gzip: true }) - )) -) + ); + +const rollupDir = join(bundleDir, 'rollup'); +export const rollupTask = (minify = true) => () => + ObservableForkJoin( + fileNames.map((fileName) => + observableFromStreams( + rollupStream({ + input: join(bundleDir, `${fileName}.js`), + output: { format: 'commonjs' }, + plugins: [ + rollupAlias({ + entries: { [npmPkgName]: resolve(__dirname, `../targets/es2015/esm/`) }, + }), + nodeResolve(), + ], + onwarn: (message) => { + if (message.code === 'CIRCULAR_DEPENDENCY') return; + console.error(message); + }, + }), + source(`${fileName}-bundle.js`), + buffer(), + ...(minify ? [terser()] : []), + gulp.dest(rollupDir), + size({ gzip: true }) + ) + ) + ); const webpackDir = join(bundleDir, 'webpack'); -export const webpackTask = (opts = { minify: true, analyze: false }) => () => observableFromStreams( - gulp.src(bundlesGlob), - named(), - webpack({ - mode: opts?.minify == false ? 'development' : 'production', - optimization: { - usedExports: true - }, - output: { - filename: '[name]-bundle.js' - }, - module: { - rules: [ - { - resolve: { - fullySpecified: false, - mainFields: ['module', 'main'] - } - } - ] - }, - resolve: { - alias: { [npmPkgName]: resolve(__dirname, `../targets/es2015/esm/`) } - }, - stats: 'errors-only', - plugins: opts?.analyze ? [new BundleAnalyzerPlugin()] : [] - }), - gulp.dest(webpackDir), - size({ gzip: true }) -); +export const webpackTask = (opts = { minify: true, analyze: false }) => () => + observableFromStreams( + gulp.src(bundlesGlob), + named(), + webpack({ + mode: opts?.minify == false ? 'development' : 'production', + optimization: { + usedExports: true, + }, + output: { + filename: '[name]-bundle.js', + }, + module: { + rules: [ + { + resolve: { + fullySpecified: false, + mainFields: ['module', 'main'], + }, + }, + ], + }, + resolve: { + alias: { [npmPkgName]: resolve(__dirname, `../targets/es2015/esm/`) }, + }, + stats: 'errors-only', + plugins: opts?.analyze ? [new BundleAnalyzerPlugin()] : [], + }), + gulp.dest(webpackDir), + size({ gzip: true }) + ); -export const execBundleTask = () => () => observableFromStreams( - gulp.src(join(bundleDir, '**/**-bundle.js')), - async (generator) => { +export const execBundleTask = () => () => + observableFromStreams(gulp.src(join(bundleDir, '**/**-bundle.js')), async (generator) => { for await (const file of generator) { console.log(`executing ${file.path}`); execSync(`node ${file.path}`); } - } -); + }); diff --git a/gulp/clean-task.js b/gulp/clean-task.js index 1dd290f8..bccb1b88 100644 --- a/gulp/clean-task.js +++ b/gulp/clean-task.js @@ -19,15 +19,12 @@ import del from 'del'; import { targetDir } from './util.js'; import memoizeTask from './memoize-task.js'; import { catchError } from 'rxjs/operators/index.js'; -import { - from as ObservableFrom, - empty as ObservableEmpty, -} from 'rxjs'; +import { from as ObservableFrom, empty as ObservableEmpty } from 'rxjs'; -export const cleanTask = ((cache) => memoizeTask(cache, function clean(target, format) { +export const cleanTask = ((cache) => + memoizeTask(cache, function clean(target, format) { const dir = targetDir(target, format); - return ObservableFrom(del(dir)) - .pipe(catchError((e) => ObservableEmpty())); -}))({}); + return ObservableFrom(del(dir)).pipe(catchError((e) => ObservableEmpty())); + }))({}); export default cleanTask; diff --git a/gulp/closure-task.js b/gulp/closure-task.js index a5951ea6..99cd7d47 100644 --- a/gulp/closure-task.js +++ b/gulp/closure-task.js @@ -16,14 +16,14 @@ // under the License. import { - targetDir, - mainExport, - esmRequire, - getUMDExportName, - gCCLanguageNames, - observableFromStreams, - shouldRunInChildProcess, - spawnGulpCommandInChildProcess, + targetDir, + mainExport, + esmRequire, + getUMDExportName, + gCCLanguageNames, + observableFromStreams, + shouldRunInChildProcess, + spawnGulpCommandInChildProcess, } from './util.js'; import fs from 'fs'; @@ -33,12 +33,12 @@ import mkdirp from 'mkdirp'; import sourcemaps from 'gulp-sourcemaps'; import { memoizeTask } from './memoize-task.js'; import cc from 'google-closure-compiler'; -const closureCompiler = cc.gulp() - -export const closureTask = ((cache) => memoizeTask(cache, async function closure(target, format) { +const closureCompiler = cc.gulp(); +export const closureTask = ((cache) => + memoizeTask(cache, async function closure(target, format) { if (shouldRunInChildProcess(target, format)) { - return spawnGulpCommandInChildProcess('compile', target, format); + return spawnGulpCommandInChildProcess('compile', target, format); } const src = targetDir(target, `cls`); @@ -46,73 +46,83 @@ export const closureTask = ((cache) => memoizeTask(cache, async function closure await mkdirp(out); - await Promise.all([ + await Promise.all( + [ `${mainExport}.dom`, `${mainExport}.dom.iterable`, `${mainExport}.dom.asynciterable`, `${mainExport}.dom.iterable.operators`, - `${mainExport}.dom.asynciterable.operators` - ].map(closureCompile)); + `${mainExport}.dom.asynciterable.operators`, + ].map(closureCompile) + ); async function closureCompile(entry) { - - const entry_point = path.join(src, `${entry}.dom.cls.js`); - const externsPath = path.join(out, `${entry}.externs.js`); - - await Promise.all([ - fs.promises.writeFile(entry_point, generateUMDExportAssignment(entry)), - fs.promises.writeFile(externsPath, generateExternsFile(path.resolve(`${src}/${entry}.js`))) - ]); - - return await observableFromStreams( - gulp.src([ - /* external libs first */ - `node_modules/tslib/package.json`, - `node_modules/tslib/tslib.es6.js`, - `node_modules/rxjs/package.json`, - `node_modules/rxjs/util/root.js`, - `node_modules/rxjs/internal/symbol/observable.js`, - `${src}/**/*.js` /* <-- then sources globs */ - ], { base: `./` }), - sourcemaps.init(), - closureCompiler(createClosureArgs(target, entry_point, entry, externsPath, getUMDExportName(entry)), { - platform: ['native', 'java', 'javascript'] - }), - // rename the sourcemaps from *.js.map files to *.min.js.map - sourcemaps.write(`.`, { mapFile: (mapPath) => mapPath.replace(`.js.map`, `.${target}.min.js.map`) }), - gulp.dest(out) - ).toPromise(); + const entry_point = path.join(src, `${entry}.dom.cls.js`); + const externsPath = path.join(out, `${entry}.externs.js`); + + await Promise.all([ + fs.promises.writeFile(entry_point, generateUMDExportAssignment(entry)), + fs.promises.writeFile(externsPath, generateExternsFile(path.resolve(`${src}/${entry}.js`))), + ]); + + return await observableFromStreams( + gulp.src( + [ + /* external libs first */ + `node_modules/tslib/package.json`, + `node_modules/tslib/tslib.es6.js`, + `node_modules/rxjs/package.json`, + `node_modules/rxjs/util/root.js`, + `node_modules/rxjs/internal/symbol/observable.js`, + `${src}/**/*.js` /* <-- then sources globs */, + ], + { base: `./` } + ), + sourcemaps.init(), + closureCompiler( + createClosureArgs(target, entry_point, entry, externsPath, getUMDExportName(entry)), + { + platform: ['native', 'java', 'javascript'], + } + ), + // rename the sourcemaps from *.js.map files to *.min.js.map + sourcemaps.write(`.`, { + mapFile: (mapPath) => mapPath.replace(`.js.map`, `.${target}.min.js.map`), + }), + gulp.dest(out) + ).toPromise(); } -}))({}); + }))({}); const createClosureArgs = (target, entry_point, output, externs, libraryName) => ({ - externs, - entry_point, - third_party: true, - warning_level: `QUIET`, - dependency_mode: `PRUNE`, - rewrite_polyfills: false, - module_resolution: `NODE`, - // formatting: `PRETTY_PRINT`, - // debug: true, - compilation_level: `ADVANCED`, - process_common_js_modules: true, - package_json_entry_names: `module,jsnext:main,main`, - assume_function_wrapper: true, - js_output_file: `${output}.js`, - language_in: gCCLanguageNames[`esnext`], - language_out: gCCLanguageNames[target], - output_wrapper: `(function (global, factory) { + externs, + entry_point, + third_party: true, + warning_level: `QUIET`, + dependency_mode: `PRUNE`, + rewrite_polyfills: false, + module_resolution: `NODE`, + // formatting: `PRETTY_PRINT`, + // debug: true, + compilation_level: `ADVANCED`, + process_common_js_modules: true, + package_json_entry_names: `module,jsnext:main,main`, + assume_function_wrapper: true, + js_output_file: `${output}.js`, + language_in: gCCLanguageNames[`esnext`], + language_out: gCCLanguageNames[target], + output_wrapper: `(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['${libraryName}'], factory) : (factory(global.${libraryName} = global.${libraryName} || {})); -}(this, (function (exports) {%output%}.bind(this))));` +}(this, (function (exports) {%output%}.bind(this))));`, }); export default closureTask; function generateUMDExportAssignment(entry) { - return [` + return [ + ` import { __await } from 'tslib'; __await.prototype[Symbol.toStringTag] = '__await'; Object.defineProperty(__await, Symbol.hasInstance, { @@ -120,36 +130,43 @@ Object.defineProperty(__await, Symbol.hasInstance, { return !!(inst && inst[Symbol.toStringTag] === '__await'); } });`, - `import * as exports0 from './${entry}';`, - 'Object.assign(arguments[0], exports0);' - ].join('\n'); + `import * as exports0 from './${entry}';`, + 'Object.assign(arguments[0], exports0);', + ].join('\n'); } function generateExternsFile(entryModulePath) { - const entryModule = esmRequire(entryModulePath, { warnings: false }); - return [ - externsHeader(), - ...getPublicExportedNames(entryModule) - .map(externBody).filter(Boolean) - ].join('\n'); + const entryModule = esmRequire(entryModulePath, { warnings: false }); + return [ + externsHeader(), + ...getPublicExportedNames(entryModule).map(externBody).filter(Boolean), + ].join('\n'); } function externBody({ exportName, staticNames, instanceNames }) { - return [ - `var ${exportName} = function() {};`, - staticNames.map((staticName) => (isNaN(+staticName) - ? `/** @type {?} */\n${exportName}.${staticName} = function() {};` - : `/** @type {?} */\n${exportName}[${staticName}] = function() {};` - )).join('\n'), - instanceNames.map((instanceName) => (isNaN(+instanceName) - ? `/** @type {?} */\n${exportName}.prototype.${instanceName};` - : `/** @type {?} */\n${exportName}.prototype[${instanceName}];` - )).join('\n') - ].filter(Boolean).join('\n'); + return [ + `var ${exportName} = function() {};`, + staticNames + .map((staticName) => + isNaN(+staticName) + ? `/** @type {?} */\n${exportName}.${staticName} = function() {};` + : `/** @type {?} */\n${exportName}[${staticName}] = function() {};` + ) + .join('\n'), + instanceNames + .map((instanceName) => + isNaN(+instanceName) + ? `/** @type {?} */\n${exportName}.prototype.${instanceName};` + : `/** @type {?} */\n${exportName}.prototype[${instanceName}];` + ) + .join('\n'), + ] + .filter(Boolean) + .join('\n'); } function externsHeader() { - return (` + return ` // @ts-nocheck /** * @fileoverview Closure Compiler externs for Ix @@ -164,37 +181,35 @@ Symbol.observable; Symbol.asyncIterator; /** @type {symbol} */ var symbolObservable = function() {}; -`); +`; } // Reflect on the Ix entrypoint module to build the closure externs file. // Assume all the non-inherited static and prototype members of the Ix entrypoint // and its direct exports are public, and should be preserved through minification. function getPublicExportedNames(entryModule) { - const fn = function() {}; - const isStaticOrProtoName = (x) => ( - !(x in fn) && - (x !== `default`) && - (x !== `undefined`) && - (x !== `__esModule`) && - (x !== `constructor`) - ); - return Object - .getOwnPropertyNames(entryModule) - .filter((name) => name !== 'default') - .filter((name) => ( - typeof entryModule[name] === `object` || - typeof entryModule[name] === `function` - )) - .map((name) => [name, entryModule[name]]) - .reduce((reserved, [name, value]) => { - - const staticNames = value && - typeof value === 'object' ? Object.getOwnPropertyNames(value).filter(isStaticOrProtoName) : - typeof value === 'function' ? Object.getOwnPropertyNames(value).filter(isStaticOrProtoName) : []; - - const instanceNames = (typeof value === `function` && Object.getOwnPropertyNames(value.prototype || {}) || []).filter(isStaticOrProtoName); - - return [...reserved, { exportName: name, staticNames, instanceNames }]; - }, []); + const fn = function () {}; + const isStaticOrProtoName = (x) => + !(x in fn) && x !== `default` && x !== `undefined` && x !== `__esModule` && x !== `constructor`; + return Object.getOwnPropertyNames(entryModule) + .filter((name) => name !== 'default') + .filter( + (name) => typeof entryModule[name] === `object` || typeof entryModule[name] === `function` + ) + .map((name) => [name, entryModule[name]]) + .reduce((reserved, [name, value]) => { + const staticNames = + value && typeof value === 'object' + ? Object.getOwnPropertyNames(value).filter(isStaticOrProtoName) + : typeof value === 'function' + ? Object.getOwnPropertyNames(value).filter(isStaticOrProtoName) + : []; + + const instanceNames = ( + (typeof value === `function` && Object.getOwnPropertyNames(value.prototype || {})) || + [] + ).filter(isStaticOrProtoName); + + return [...reserved, { exportName: name, staticNames, instanceNames }]; + }, []); } diff --git a/gulp/compile-task.js b/gulp/compile-task.js index 075b37d6..fdf65722 100644 --- a/gulp/compile-task.js +++ b/gulp/compile-task.js @@ -23,12 +23,17 @@ import closureTask from './closure-task.js'; import typescriptTask from './typescript-task.js'; import { copyMainTask, copyTSTask } from './copy-main-task.js'; -export const compileTask = ((cache) => memoizeTask(cache, function compile(target, format, ...args) { - return target === `src` ? ObservableEmpty() - : target === npmPkgName ? copyMainTask(target, format, ...args)() - : target === `ts` ? copyTSTask(target, format, ...args)() - : format === `umd` ? closureTask(target, format, ...args)() - : typescriptTask(target, format, ...args)(); -}))({}); +export const compileTask = ((cache) => + memoizeTask(cache, function compile(target, format, ...args) { + return target === `src` + ? ObservableEmpty() + : target === npmPkgName + ? copyMainTask(target, format, ...args)() + : target === `ts` + ? copyTSTask(target, format, ...args)() + : format === `umd` + ? closureTask(target, format, ...args)() + : typescriptTask(target, format, ...args)(); + }))({}); export default compileTask; diff --git a/gulp/copy-main-task.js b/gulp/copy-main-task.js index 9ddabed6..14fa3278 100644 --- a/gulp/copy-main-task.js +++ b/gulp/copy-main-task.js @@ -15,9 +15,7 @@ // specific language governing permissions and limitations // under the License. -import { - targetDir, observableFromStreams -} from './util.js'; +import { targetDir, observableFromStreams } from './util.js'; import del from 'del'; import gulp from 'gulp'; @@ -31,7 +29,8 @@ import { publish, refCount } from 'rxjs/operators/index.js'; const exec = promisify(childProcess.exec); -export const copyMainTask = ((cache) => memoizeTask(cache, function copyMain(target) { +export const copyMainTask = ((cache) => + memoizeTask(cache, function copyMain(target) { const out = targetDir(target); const dtsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.ts`; const cjsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.js`; @@ -43,24 +42,43 @@ export const copyMainTask = ((cache) => memoizeTask(cache, function copyMain(tar const es2015UmdSourceMapsGlob = `${targetDir(`es2015`, `umd`)}/*.map`; const esnextUmdSourceMapsGlob = `${targetDir(`esnext`, `umd`)}/*.map`; return ObservableForkJoin( - observableFromStreams(gulp.src(dtsGlob), gulp.dest(out)), // copy d.ts files - observableFromStreams(gulp.src(cjsGlob), gulp.dest(out)), // copy es2015 cjs files - observableFromStreams(gulp.src(cjsSourceMapsGlob), gulp.dest(out)), // copy es2015 cjs sourcemaps - observableFromStreams(gulp.src(esmSourceMapsGlob), gulp.dest(out)), // copy es2015 esm sourcemaps - observableFromStreams(gulp.src(es2015UmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename - observableFromStreams(gulp.src(esnextUmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename - observableFromStreams(gulp.src(esmGlob), gulpRename((p) => { p.extname = '.mjs'; }), gulpReplace(`.js'`, `.mjs'`), gulp.dest(out)), // copy es2015 esm files and rename to `.mjs` - observableFromStreams(gulp.src(es2015UmdGlob), gulpRename((p) => { p.basename += `.es2015.min`; }), gulp.dest(out)), // copy es2015 umd files and add `.min` - observableFromStreams(gulp.src(esnextUmdGlob), gulpRename((p) => { p.basename += `.esnext.min`; }), gulp.dest(out)), // copy esnext umd files and add `.esnext.min` + observableFromStreams(gulp.src(dtsGlob), gulp.dest(out)), // copy d.ts files + observableFromStreams(gulp.src(cjsGlob), gulp.dest(out)), // copy es2015 cjs files + observableFromStreams(gulp.src(cjsSourceMapsGlob), gulp.dest(out)), // copy es2015 cjs sourcemaps + observableFromStreams(gulp.src(esmSourceMapsGlob), gulp.dest(out)), // copy es2015 esm sourcemaps + observableFromStreams(gulp.src(es2015UmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename + observableFromStreams(gulp.src(esnextUmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename + observableFromStreams( + gulp.src(esmGlob), + gulpRename((p) => { + p.extname = '.mjs'; + }), + gulpReplace(`.js'`, `.mjs'`), + gulp.dest(out) + ), // copy es2015 esm files and rename to `.mjs` + observableFromStreams( + gulp.src(es2015UmdGlob), + gulpRename((p) => { + p.basename += `.es2015.min`; + }), + gulp.dest(out) + ), // copy es2015 umd files and add `.min` + observableFromStreams( + gulp.src(esnextUmdGlob), + gulpRename((p) => { + p.basename += `.esnext.min`; + }), + gulp.dest(out) + ) // copy esnext umd files and add `.esnext.min` ).pipe(publish(new ReplaySubject()), refCount()); -}))({}); + }))({}); -export const copyTSTask = ((cache) => memoizeTask(cache, async function copyTS(target, format) { +export const copyTSTask = ((cache) => + memoizeTask(cache, async function copyTS(target, format) { const out = targetDir(target, format); await exec(`mkdirp ${out}`); await exec(`shx cp -r src/* ${out}`); await del(`${out}/**/*.js`); -}))({}); - + }))({}); export default copyMainTask; diff --git a/gulp/memoize-task.js b/gulp/memoize-task.js index bb522934..bc5502f2 100644 --- a/gulp/memoize-task.js +++ b/gulp/memoize-task.js @@ -17,20 +17,20 @@ import { taskName } from './util.js'; -export const createTask = ((taskFn) => ((target, format, ...args) => { +export const createTask = (taskFn) => (target, format, ...args) => { // Give the memoized fn a displayName so gulp's output is easier to follow. const fn = () => taskFn(target, format, ...args); fn.displayName = `${taskFn.name || ``}:${taskName(target, format, ...args)}:task`; return fn; -})); +}; -export const memoizeTask = ((cache, taskFn) => ((target, format, ...args) => { - // Give the memoized fn a displayName so gulp's output is easier to follow. - const fn = () => ( - cache[taskName(target, format)] || ( - cache[taskName(target, format)] = taskFn(target, format, ...args))); - fn.displayName = `${taskFn.name || ``}:${taskName(target, format, ...args)}:task`; - return fn; -})); +export const memoizeTask = (cache, taskFn) => (target, format, ...args) => { + // Give the memoized fn a displayName so gulp's output is easier to follow. + const fn = () => + cache[taskName(target, format)] || + (cache[taskName(target, format)] = taskFn(target, format, ...args)); + fn.displayName = `${taskFn.name || ``}:${taskName(target, format, ...args)}:task`; + return fn; +}; export default memoizeTask; diff --git a/gulp/package-task.js b/gulp/package-task.js index ee22c681..15f7913f 100644 --- a/gulp/package-task.js +++ b/gulp/package-task.js @@ -16,34 +16,40 @@ // under the License. import { - metadataFiles, packageJSONFields, - mainExport, npmPkgName, npmOrgName, - targetDir, packageName, observableFromStreams + metadataFiles, + packageJSONFields, + mainExport, + npmPkgName, + npmOrgName, + targetDir, + packageName, + observableFromStreams, } from './util.js'; import gulp from 'gulp'; import { memoizeTask } from './memoize-task.js'; import gulpJsonTransform from 'gulp-json-transform'; -import { - ReplaySubject, - empty as ObservableEmpty, - forkJoin as ObservableForkJoin, -} from 'rxjs'; +import { ReplaySubject, empty as ObservableEmpty, forkJoin as ObservableForkJoin } from 'rxjs'; import { publish, refCount } from 'rxjs/operators/index.js'; -export const packageTask = ((cache) => memoizeTask(cache, function bundle(target, format) { - if (target === `src`) return ObservableEmpty(); - const out = targetDir(target, format); - const jsonTransform = gulpJsonTransform(target === npmPkgName ? createMainPackageJson(target, format) : - target === `ts` ? createTypeScriptPackageJson(target, format) - : createScopedPackageJSON(target, format), - 2); - return ObservableForkJoin( - observableFromStreams(gulp.src(metadataFiles), gulp.dest(out)), // copy metadata files - observableFromStreams(gulp.src(`package.json`), jsonTransform, gulp.dest(out)) // write packageJSONs - ).pipe(publish(new ReplaySubject()), refCount()); -}))({}); +export const packageTask = ((cache) => + memoizeTask(cache, function bundle(target, format) { + if (target === `src`) return ObservableEmpty(); + const out = targetDir(target, format); + const jsonTransform = gulpJsonTransform( + target === npmPkgName + ? createMainPackageJson(target, format) + : target === `ts` + ? createTypeScriptPackageJson(target, format) + : createScopedPackageJSON(target, format), + 2 + ); + return ObservableForkJoin( + observableFromStreams(gulp.src(metadataFiles), gulp.dest(out)), // copy metadata files + observableFromStreams(gulp.src(`package.json`), jsonTransform, gulp.dest(out)) // write packageJSONs + ).pipe(publish(new ReplaySubject()), refCount()); + }))({}); export default packageTask; @@ -56,7 +62,7 @@ const createMainPackageJson = (target, format) => (orig) => ({ module: `${mainExport}.node.mjs`, browser: { [`./${mainExport}.node.js`]: `./${mainExport}.dom.js`, - [`./${mainExport}.node.mjs`]: `./${mainExport}.dom.mjs` + [`./${mainExport}.node.mjs`]: `./${mainExport}.dom.mjs`, }, exports: { '.': { @@ -69,14 +75,14 @@ const createMainPackageJson = (target, format) => (orig) => ({ }, './*': { import: `./*.mjs`, - require: `./*.js` - } + require: `./*.js`, + }, }, types: `${mainExport}.node.d.ts`, unpkg: `${mainExport}.dom.es2015.min.js`, jsdelivr: `${mainExport}.dom.es2015.min.js`, sideEffects: false, - esm: { mode: `all`, sourceMap: true } + esm: { mode: `all`, sourceMap: true }, }); const createTypeScriptPackageJson = (target, format) => (orig) => ({ @@ -89,35 +95,31 @@ const createTypeScriptPackageJson = (target, format) => (orig) => ({ type: 'module', dependencies: { '@types/node': '*', - ...orig.dependencies - } + ...orig.dependencies, + }, }); -const createScopedPackageJSON = (target, format) => (({ name, ...orig }) => - packageJSONFields.reduce( - (xs, key) => ({ ...xs, [key]: xs[key] || orig[key] }), - { - // un-set version, since it's automatically applied during the release process - version: undefined, - // set the scoped package name (e.g. "@apache-arrow/esnext-esm") - name: `${npmOrgName}/${npmPkgName}-${packageName(target, format)}`, - // set "unpkg"/"jsdeliver" if building scoped UMD target - unpkg: format === 'umd' ? `${mainExport}.dom.js` : undefined, - jsdelivr: format === 'umd' ? `${mainExport}.dom.js` : undefined, - // set "browser" if building scoped UMD target, otherwise "Arrow.dom" - browser: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.dom.js`, - // set "main" to "Arrow" if building scoped UMD target, otherwise "Arrow.node" - main: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.node.js`, - // set "type" to `module` or `commonjs` (https://nodejs.org/api/packages.html#packages_type) - type: format === 'esm' ? `module` : `commonjs`, - // set "module" (for https://www.npmjs.com/package/@pika/pack) if building scoped ESM target - module: format === 'esm' ? `${mainExport}.dom.js` : undefined, - // set "sideEffects" to false as a hint to Webpack that it's safe to tree-shake the ESM target - sideEffects: format === 'esm' ? false : undefined, - // include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target - esm: format === `esm` ? { mode: `auto`, sourceMap: true } : undefined, - // set "types" (for TypeScript/VSCode) - types: format === 'umd' ? undefined : `${mainExport}.node.d.ts`, - } - ) -); +const createScopedPackageJSON = (target, format) => ({ name, ...orig }) => + packageJSONFields.reduce((xs, key) => ({ ...xs, [key]: xs[key] || orig[key] }), { + // un-set version, since it's automatically applied during the release process + version: undefined, + // set the scoped package name (e.g. "@apache-arrow/esnext-esm") + name: `${npmOrgName}/${npmPkgName}-${packageName(target, format)}`, + // set "unpkg"/"jsdeliver" if building scoped UMD target + unpkg: format === 'umd' ? `${mainExport}.dom.js` : undefined, + jsdelivr: format === 'umd' ? `${mainExport}.dom.js` : undefined, + // set "browser" if building scoped UMD target, otherwise "Arrow.dom" + browser: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.dom.js`, + // set "main" to "Arrow" if building scoped UMD target, otherwise "Arrow.node" + main: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.node.js`, + // set "type" to `module` or `commonjs` (https://nodejs.org/api/packages.html#packages_type) + type: format === 'esm' ? `module` : `commonjs`, + // set "module" (for https://www.npmjs.com/package/@pika/pack) if building scoped ESM target + module: format === 'esm' ? `${mainExport}.dom.js` : undefined, + // set "sideEffects" to false as a hint to Webpack that it's safe to tree-shake the ESM target + sideEffects: format === 'esm' ? false : undefined, + // include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target + esm: format === `esm` ? { mode: `auto`, sourceMap: true } : undefined, + // set "types" (for TypeScript/VSCode) + types: format === 'umd' ? undefined : `${mainExport}.node.d.ts`, + }); diff --git a/gulp/test-task.js b/gulp/test-task.js index 57a17cc2..89ce6c98 100644 --- a/gulp/test-task.js +++ b/gulp/test-task.js @@ -20,7 +20,7 @@ import { argv } from './argv.js'; import child_process from 'child_process'; import { memoizeTask } from './memoize-task.js'; import { npmPkgName, targetAndModuleCombinations } from './util.js'; -import {promisify} from 'util'; +import { promisify } from 'util'; import asyncDone_ from 'async-done'; const asyncDone = promisify(asyncDone_); @@ -48,25 +48,26 @@ const testOptions = { }, }; -export const testTask = ((cache, execArgv, testOptions) => memoizeTask(cache, function test(target, format) { - const args = [...execArgv]; - const opts = { ...testOptions }; - if (format === 'esm' || target === 'ts' || target === 'src' || target === npmPkgName) { - args.unshift(`--experimental-vm-modules`); - } - if (argv.coverage) { - args.push(`-c`, `jest.coverage.config.js`, `--coverage`); - } else { - const cfgname = [target, format].filter(Boolean).join('.'); - // args.push(`--verbose`, `--no-cache`, `-i`); - args.push(`-c`, `jestconfigs/jest.${cfgname}.config.js`, ...argv.tests); - } - opts.env = { - ...opts.env, - TEST_DOM_STREAMS: (target === 'src' || format === 'umd').toString(), - TEST_NODE_STREAMS: (target === 'src' || format !== 'umd').toString(), - }; - return asyncDone(() => child_process.spawn(`node`, args, opts)); -}))({}, [jest, ...jestArgv], testOptions); +export const testTask = ((cache, execArgv, testOptions) => + memoizeTask(cache, function test(target, format) { + const args = [...execArgv]; + const opts = { ...testOptions }; + if (format === 'esm' || target === 'ts' || target === 'src' || target === npmPkgName) { + args.unshift(`--experimental-vm-modules`); + } + if (argv.coverage) { + args.push(`-c`, `jest.coverage.config.js`, `--coverage`); + } else { + const cfgname = [target, format].filter(Boolean).join('.'); + // args.push(`--verbose`, `--no-cache`, `-i`); + args.push(`-c`, `jestconfigs/jest.${cfgname}.config.js`, ...argv.tests); + } + opts.env = { + ...opts.env, + TEST_DOM_STREAMS: (target === 'src' || format === 'umd').toString(), + TEST_NODE_STREAMS: (target === 'src' || format !== 'umd').toString(), + }; + return asyncDone(() => child_process.spawn(`node`, args, opts)); + }))({}, [jest, ...jestArgv], testOptions); export default testTask; diff --git a/gulp/typescript-task.js b/gulp/typescript-task.js index e1e7e69d..ef52dd84 100644 --- a/gulp/typescript-task.js +++ b/gulp/typescript-task.js @@ -16,11 +16,11 @@ // under the License. import { - targetDir, - tsconfigName, - observableFromStreams, - shouldRunInChildProcess, - spawnGulpCommandInChildProcess, + targetDir, + tsconfigName, + observableFromStreams, + shouldRunInChildProcess, + spawnGulpCommandInChildProcess, } from './util.js'; import gulp from 'gulp'; @@ -29,39 +29,54 @@ import tsc from 'typescript'; import ts from 'gulp-typescript'; import sourcemaps from 'gulp-sourcemaps'; import { memoizeTask } from './memoize-task.js'; -import { - ReplaySubject, - forkJoin as ObservableForkJoin, -} from 'rxjs'; +import { ReplaySubject, forkJoin as ObservableForkJoin } from 'rxjs'; import { takeLast, publish, refCount } from 'rxjs/operators/index.js'; -export const typescriptTask = ((cache) => memoizeTask(cache, function typescript(target, format) { - +export const typescriptTask = ((cache) => + memoizeTask(cache, function typescript(target, format) { if (shouldRunInChildProcess(target, format)) { - return spawnGulpCommandInChildProcess('compile', target, format); + return spawnGulpCommandInChildProcess('compile', target, format); } const out = targetDir(target, format); const tsconfigPath = path.join(`tsconfig`, `tsconfig.${tsconfigName(target, format)}.json`); - return compileTypescript(out, tsconfigPath) - .pipe(takeLast(1), publish(new ReplaySubject()), refCount()) -}))({}); + return compileTypescript(out, tsconfigPath).pipe( + takeLast(1), + publish(new ReplaySubject()), + refCount() + ); + }))({}); function compileTypescript(out, tsconfigPath, tsconfigOverrides) { - const tsProject = ts.createProject(tsconfigPath, { typescript: tsc, ...tsconfigOverrides }); - const { stream: { js, dts } } = observableFromStreams( - tsProject.src(), sourcemaps.init(), - tsProject(ts.reporter.defaultReporter()) - ); - const writeSources = observableFromStreams(tsProject.src(), gulp.dest(path.join(out, 'src'))); - const writeDTypes = observableFromStreams(dts, sourcemaps.write('./', { includeContent: false, sourceRoot: './src' }), gulp.dest(out)); - const mapFile = tsProject.options.module === tsc.ModuleKind.ES2015 ? esmMapFile : cjsMapFile; - const writeJS = observableFromStreams(js, sourcemaps.write('./', { mapFile, includeContent: false, sourceRoot: './src' }), gulp.dest(out)); - return ObservableForkJoin(writeSources, writeDTypes, writeJS); + const tsProject = ts.createProject(tsconfigPath, { typescript: tsc, ...tsconfigOverrides }); + const { + stream: { js, dts }, + } = observableFromStreams( + tsProject.src(), + sourcemaps.init(), + tsProject(ts.reporter.defaultReporter()) + ); + const writeSources = observableFromStreams(tsProject.src(), gulp.dest(path.join(out, 'src'))); + const writeDTypes = observableFromStreams( + dts, + sourcemaps.write('./', { includeContent: false, sourceRoot: './src' }), + gulp.dest(out) + ); + const mapFile = tsProject.options.module === tsc.ModuleKind.ES2015 ? esmMapFile : cjsMapFile; + const writeJS = observableFromStreams( + js, + sourcemaps.write('./', { mapFile, includeContent: false, sourceRoot: './src' }), + gulp.dest(out) + ); + return ObservableForkJoin(writeSources, writeDTypes, writeJS); } -function cjsMapFile(mapFilePath) { return mapFilePath; } -function esmMapFile(mapFilePath) { return mapFilePath.replace('.js.map', '.mjs.map'); } +function cjsMapFile(mapFilePath) { + return mapFilePath; +} +function esmMapFile(mapFilePath) { + return mapFilePath.replace('.js.map', '.mjs.map'); +} export default typescriptTask; diff --git a/gulp/util.js b/gulp/util.js index ca3cf126..6b36cc16 100644 --- a/gulp/util.js +++ b/gulp/util.js @@ -24,7 +24,7 @@ import { ReplaySubject, empty as ObservableEmpty, throwError as ObservableThrow, - fromEvent as ObservableFromEvent + fromEvent as ObservableFromEvent, } from 'rxjs'; import { merge, @@ -35,7 +35,7 @@ import { refCount, } from 'rxjs/operators/index.js'; -import {promisify} from 'util'; +import { promisify } from 'util'; import asyncDone_ from 'async-done'; import { createRequire } from 'module'; @@ -54,20 +54,29 @@ const knownTargets = [`es5`, `es2015`, `esnext`]; const knownModules = [`cjs`, `esm`, `cls`, `umd`]; const tasksToSkipPerTargetOrFormat = { src: { clean: true, build: true }, - cls: { test: true, package: true } + cls: { test: true, package: true }, }; const packageJSONFields = [ - `version`, `license`, `description`, - `author`, `homepage`, `repository`, - `bugs`, `keywords`, `dependencies` + `version`, + `license`, + `description`, + `author`, + `homepage`, + `repository`, + `bugs`, + `keywords`, + `dependencies`, ]; const metadataFiles = [`LICENSE`, `readme.md`, `CHANGELOG.md`].map((filename) => { - let err = false, prefixes = [`./`, `../`]; + let err = false, + prefixes = [`./`, `../`]; let p = prefixes.find((prefix) => { try { fs.statSync(path.resolve(path.join(prefix, filename))); - } catch (e) { return false; } + } catch (e) { + return false; + } return true; }); if (!p) { @@ -82,7 +91,7 @@ const gCCLanguageNames = { es2015: `ECMASCRIPT_2015`, es2016: `ECMASCRIPT_2016`, es2017: `ECMASCRIPT_2017`, - esnext: `ECMASCRIPT_NEXT` + esnext: `ECMASCRIPT_NEXT`, }; const UMDSourceTargets = { @@ -90,13 +99,15 @@ const UMDSourceTargets = { es2015: `es2015`, es2016: `es2015`, es2017: `es2015`, - esnext: `esnext` + esnext: `esnext`, }; const terserLanguageNames = { - es5: 5, es2015: 6, - es2016: 7, es2017: 8, - esnext: 8 // <--- ? + es5: 5, + es2015: 6, + es2016: 7, + es2017: 8, + esnext: 8, // <--- ? }; // ES7+ keywords Terser shouldn't mangle @@ -106,17 +117,35 @@ const ESKeywords = [ // GroupedIterable/GroupedAsyncIterable `key`, // PropertyDescriptors - `configurable`, `enumerable`, + `configurable`, + `enumerable`, // IteratorResult, Symbol.asyncIterator - `done`, `value`, `Symbol.asyncIterator`, `asyncIterator`, + `done`, + `value`, + `Symbol.asyncIterator`, + `asyncIterator`, // AsyncObserver - `values`, `hasError`, `hasCompleted`, `errorValue`, `closed`, + `values`, + `hasError`, + `hasCompleted`, + `errorValue`, + `closed`, // Observable/Subscription/Scheduler - `next`, `error`, `complete`, `subscribe`, `unsubscribe`, `isUnsubscribed`, + `next`, + `error`, + `complete`, + `subscribe`, + `unsubscribe`, + `isUnsubscribed`, // EventTarget - `addListener`, `removeListener`, `addEventListener`, `removeEventListener`, + `addListener`, + `removeListener`, + `addEventListener`, + `removeEventListener`, // AbortController - `AbortController`, `AbortSignal`, `AbortError` + `AbortController`, + `AbortSignal`, + `AbortError`, ]; function taskName(target, format) { @@ -137,9 +166,13 @@ function targetDir(target, format) { function shouldRunInChildProcess(target, format) { // If we're building more than one module/target, then yes run this task in a child process - if (targets.length > 1 || modules.length > 1) { return true; } + if (targets.length > 1 || modules.length > 1) { + return true; + } // If the target we're building *isn't* the target the gulp command was configured to run, then yes run that in a child process - if (targets[0] !== target || modules[0] !== format) { return true; } + if (targets[0] !== target || modules[0] !== format) { + return true; + } // Otherwise no need -- either gulp was run for just one target, or we've been spawned as the child of a multi-target parent gulp return false; } @@ -148,22 +181,29 @@ const gulp = path.join(path.parse(require.resolve(`gulp`)).dir, `bin/gulp.js`); function spawnGulpCommandInChildProcess(command, target, format) { const err = []; return asyncDone(() => { - const child = child_process.spawn( - `node`, - [gulp, command, '-t', target, '-m', format, `-L`], - { - stdio: [`ignore`, `ignore`, `pipe`], - env: { ...process.env, NODE_NO_WARNINGS: `1` } - }); + const child = child_process.spawn(`node`, [gulp, command, '-t', target, '-m', format, `-L`], { + stdio: [`ignore`, `ignore`, `pipe`], + env: { ...process.env, NODE_NO_WARNINGS: `1` }, + }); child.stderr.on('data', (line) => err.push(line)); return child; - }).catch(() => Promise.reject(err.length > 0 ? err.join('\n') - : `Error in "${command}:${taskName(target, format)}" task.`)); + }).catch(() => + Promise.reject( + err.length > 0 ? err.join('\n') : `Error in "${command}:${taskName(target, format)}" task.` + ) + ); } -const logAndDie = (e) => { if (e) { console.error(e); process.exit(1) } }; +const logAndDie = (e) => { + if (e) { + console.error(e); + process.exit(1); + } +}; function observableFromStreams(...streams) { - if (streams.length <= 0) { return ObservableEmpty(); } + if (streams.length <= 0) { + return ObservableEmpty(); + } const pumped = streams.length <= 1 ? streams[0] : pump(...streams, logAndDie); const fromEvent = ObservableFromEvent.bind(null, pumped); const streamObs = fromEvent(`data`).pipe( @@ -171,14 +211,14 @@ function observableFromStreams(...streams) { takeUntil(fromEvent(`end`).pipe(merge(fromEvent(`close`)))), defaultIfEmpty(`empty stream`), multicast(new ReplaySubject()), - refCount()); + refCount() + ); streamObs.stream = pumped; streamObs.observable = streamObs; return streamObs; } function* combinations(_targets, _modules) { - const targets = known(knownTargets, _targets || [`all`]); const modules = known(knownModules, _modules || [`all`]); @@ -200,32 +240,50 @@ function* combinations(_targets, _modules) { } function known(known, values) { - return ~values.indexOf(`all`) ? known - : ~values.indexOf(`src`) ? [`src`] - : Object.keys( - values.reduce((map, arg) => (( - (known.indexOf(arg) !== -1) && - (map[arg.toLowerCase()] = true) - || true) && map - ), {}) + return ~values.indexOf(`all`) + ? known + : ~values.indexOf(`src`) + ? [`src`] + : Object.keys( + values.reduce( + (map, arg) => + ((known.indexOf(arg) !== -1 && (map[arg.toLowerCase()] = true)) || true) && map, + {} + ) ).sort((a, b) => known.indexOf(a) - known.indexOf(b)); } } -const getUMDExportName = (umdEntryFileName) => umdEntryFileName - .split('.') - .filter((x) => x != 'dom') - .map((x) => x[0].toUpperCase() + x.slice(1)) - .join(''); +const getUMDExportName = (umdEntryFileName) => + umdEntryFileName + .split('.') + .filter((x) => x != 'dom') + .map((x) => x[0].toUpperCase() + x.slice(1)) + .join(''); export { - mainExport, npmPkgName, npmOrgName, metadataFiles, packageJSONFields, - - knownTargets, knownModules, tasksToSkipPerTargetOrFormat, - gCCLanguageNames, UMDSourceTargets, terserLanguageNames, - - taskName, packageName, tsconfigName, targetDir, combinations, observableFromStreams, - ESKeywords, esmRequire, shouldRunInChildProcess, spawnGulpCommandInChildProcess, getUMDExportName, + mainExport, + npmPkgName, + npmOrgName, + metadataFiles, + packageJSONFields, + knownTargets, + knownModules, + tasksToSkipPerTargetOrFormat, + gCCLanguageNames, + UMDSourceTargets, + terserLanguageNames, + taskName, + packageName, + tsconfigName, + targetDir, + combinations, + observableFromStreams, + ESKeywords, + esmRequire, + shouldRunInChildProcess, + spawnGulpCommandInChildProcess, + getUMDExportName, }; export const targetAndModuleCombinations = [...combinations(targets, modules)]; diff --git a/gulpfile.js b/gulpfile.js index 95c75b34..895d8742 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -18,10 +18,7 @@ import * as os from 'os'; import del from 'del'; import gulp from 'gulp'; -import { - from as ObservableFrom, - bindNodeCallback as ObservableBindNodeCallback -} from 'rxjs'; +import { from as ObservableFrom, bindNodeCallback as ObservableBindNodeCallback } from 'rxjs'; import { flatMap } from 'rxjs/operators/index.js'; import cleanTask from './gulp/clean-task.js'; import { testTask } from './gulp/test-task.js'; @@ -30,53 +27,60 @@ import packageTask from './gulp/package-task.js'; import { targets, modules } from './gulp/argv.js'; import { esbuildTask, rollupTask, webpackTask, execBundleTask } from './gulp/bundle-task.js'; import { - taskName, combinations, - targetDir, knownTargets, - npmPkgName, UMDSourceTargets, - tasksToSkipPerTargetOrFormat + taskName, + combinations, + targetDir, + knownTargets, + npmPkgName, + UMDSourceTargets, + tasksToSkipPerTargetOrFormat, } from './gulp/util.js'; for (const [target, format] of combinations([`all`], [`all`])) { - const task = taskName(target, format); - gulp.task(`clean:${task}`, cleanTask(target, format)); - gulp.task( `test:${task}`, testTask(target, format)); - gulp.task(`compile:${task}`, compileTask(target, format)); - gulp.task(`package:${task}`, packageTask(target, format)); - gulp.task(`build:${task}`, gulp.series( - `clean:${task}`, `compile:${task}`, `package:${task}` - )); + const task = taskName(target, format); + gulp.task(`clean:${task}`, cleanTask(target, format)); + gulp.task(`test:${task}`, testTask(target, format)); + gulp.task(`compile:${task}`, compileTask(target, format)); + gulp.task(`package:${task}`, packageTask(target, format)); + gulp.task(`build:${task}`, gulp.series(`clean:${task}`, `compile:${task}`, `package:${task}`)); } // The UMD bundles build temporary es5/6/next targets via TS, // then run the TS source through either closure-compiler or // a minifier, so we special case that here. knownTargets.forEach((target) => { - const umd = taskName(target, `umd`); - const cls = taskName(UMDSourceTargets[target], `cls`); - gulp.task(`build:${umd}`, gulp.series( - `build:${cls}`, - `clean:${umd}`, `compile:${umd}`, `package:${umd}`, - function remove_closure_tmp_files() { - return del(targetDir(target, `cls`)) - } - )); + const umd = taskName(target, `umd`); + const cls = taskName(UMDSourceTargets[target], `cls`); + gulp.task( + `build:${umd}`, + gulp.series( + `build:${cls}`, + `clean:${umd}`, + `compile:${umd}`, + `package:${umd}`, + function remove_closure_tmp_files() { + return del(targetDir(target, `cls`)); + } + ) + ); }); // The main "ix" module builds the es5/umd, es2015/cjs, // es2015/esm, and es2015/umd targets, then copies and renames the // compiled output into the ix folder -gulp.task(`build:${npmPkgName}`, - gulp.series( - gulp.parallel( - `build:${taskName(`es5`, `umd`)}`, - `build:${taskName(`esnext`, `cjs`)}`, - `build:${taskName(`esnext`, `esm`)}`, - `build:${taskName(`esnext`, `umd`)}` - ), - `clean:${npmPkgName}`, - `compile:${npmPkgName}`, - `package:${npmPkgName}` - ) +gulp.task( + `build:${npmPkgName}`, + gulp.series( + gulp.parallel( + `build:${taskName(`es5`, `umd`)}`, + `build:${taskName(`esnext`, `cjs`)}`, + `build:${taskName(`esnext`, `esm`)}`, + `build:${taskName(`esnext`, `umd`)}` + ), + `clean:${npmPkgName}`, + `compile:${npmPkgName}`, + `package:${npmPkgName}` + ) ); gulp.task(`bundle:esbuild`, esbuildTask()); @@ -86,7 +90,10 @@ gulp.task(`bundle:webpack:analyze`, webpackTask({ analyze: true })); gulp.task(`bundle:clean`, () => del(`test/bundle/**/*-bundle.js`)); gulp.task(`bundle:exec`, execBundleTask()); -gulp.task(`bundle`, gulp.series(`bundle:clean`, `bundle:esbuild`, `bundle:rollup`, `bundle:webpack`, `bundle:exec`)); +gulp.task( + `bundle`, + gulp.series(`bundle:clean`, `bundle:esbuild`, `bundle:rollup`, `bundle:webpack`, `bundle:exec`) +); // And finally the global composite tasks gulp.task(`test`, gulpConcurrent(getTasks(`test`))); @@ -94,21 +101,25 @@ gulp.task(`clean`, gulp.parallel(getTasks(`clean`))); gulp.task(`build`, gulpConcurrent(getTasks(`build`))); gulp.task(`compile`, gulpConcurrent(getTasks(`compile`))); gulp.task(`package`, gulpConcurrent(getTasks(`package`))); -gulp.task(`default`, gulp.series(`clean`, `build`, `test`)); +gulp.task(`default`, gulp.series(`clean`, `build`, `test`)); function gulpConcurrent(tasks, numCPUs = Math.max(1, os.cpus().length * 0.5) | 0) { - return () => ObservableFrom(tasks.map((task) => gulp.series(task))) - .pipe(flatMap((task) => ObservableBindNodeCallback(task)(), numCPUs || 1)); + return () => + ObservableFrom(tasks.map((task) => gulp.series(task))).pipe( + flatMap((task) => ObservableBindNodeCallback(task)(), numCPUs || 1) + ); } function getTasks(name) { - const tasks = []; - if (targets.indexOf(`ts`) !== -1) tasks.push(`${name}:ts`); - if (targets.indexOf(npmPkgName) !== -1) tasks.push(`${name}:${npmPkgName}`); - for (const [target, format] of combinations(targets, modules)) { - if (tasksToSkipPerTargetOrFormat[target] && tasksToSkipPerTargetOrFormat[target][name]) continue; - if (tasksToSkipPerTargetOrFormat[format] && tasksToSkipPerTargetOrFormat[format][name]) continue; - tasks.push(`${name}:${taskName(target, format)}`); - } - return tasks.length && tasks || [(done) => done()]; + const tasks = []; + if (targets.indexOf(`ts`) !== -1) tasks.push(`${name}:ts`); + if (targets.indexOf(npmPkgName) !== -1) tasks.push(`${name}:${npmPkgName}`); + for (const [target, format] of combinations(targets, modules)) { + if (tasksToSkipPerTargetOrFormat[target] && tasksToSkipPerTargetOrFormat[target][name]) + continue; + if (tasksToSkipPerTargetOrFormat[format] && tasksToSkipPerTargetOrFormat[format][name]) + continue; + tasks.push(`${name}:${taskName(target, format)}`); + } + return (tasks.length && tasks) || [(done) => done()]; } diff --git a/jest.config.js b/jest.config.js index 34b5feb9..a3c04f78 100644 --- a/jest.config.js +++ b/jest.config.js @@ -17,45 +17,40 @@ export default { verbose: false, - testEnvironment: "node", - rootDir: ".", - roots: [ - "/spec/" - ], - cacheDirectory: ".jest-cache", - extensionsToTreatAsEsm: [".ts"], - moduleFileExtensions: ["js", "mjs", "ts"], - coverageReporters: ["lcov"], - coveragePathIgnorePatterns: [ - "spec\\/.*\\.(ts|tsx|js)$", - "/node_modules/" - ], + testEnvironment: 'node', + rootDir: '.', + roots: ['/spec/'], + cacheDirectory: '.jest-cache', + extensionsToTreatAsEsm: ['.ts'], + moduleFileExtensions: ['js', 'mjs', 'ts'], + coverageReporters: ['lcov'], + coveragePathIgnorePatterns: ['spec\\/.*\\.(ts|tsx|js)$', '/node_modules/'], moduleNameMapper: { - "^ix$": "/src/Ix.node", - "^ix(.*)": "/src$1", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix$': '/src/Ix.node', + '^ix(.*)': '/src$1', + '^(\\.{1,2}/.*)\\.js$': '$1', }, - testRegex: "(.*(-|\\.)(test|spec)s?)\\.(ts|tsx|js)$", + testRegex: '(.*(-|\\.)(test|spec)s?)\\.(ts|tsx|js)$', transform: { - "^.+\\.jsx?$": [ - "ts-jest", + '^.+\\.jsx?$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "spec/tsconfig.json", - useESM: true - } + tsconfig: 'spec/tsconfig.json', + useESM: true, + }, ], - "^.+\\.tsx?$": [ - "ts-jest", + '^.+\\.tsx?$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "spec/tsconfig.json", - useESM: true - } - ] + tsconfig: 'spec/tsconfig.json', + useESM: true, + }, + ], }, transformIgnorePatterns: [ - "/targets/(es5|es2015|esnext|ix)/", - "/node_modules/(?!@openpgp/web-stream-tools)/", + '/targets/(es5|es2015|esnext|ix)/', + '/node_modules/(?!@openpgp/web-stream-tools)/', ], }; diff --git a/jest.coverage.config.js b/jest.coverage.config.js index 0853366b..8aec960f 100644 --- a/jest.coverage.config.js +++ b/jest.coverage.config.js @@ -16,11 +16,11 @@ // under the License. module.exports = { - ...require('./jest.config'), - "globals": { - "ts-jest": { - "diagnostics": false, - "tsConfig": "spec/tsconfig.coverage.json" - } - } + ...require('./jest.config'), + globals: { + 'ts-jest': { + diagnostics: false, + tsConfig: 'spec/tsconfig.coverage.json', + }, + }, }; diff --git a/jestconfigs/jest.es2015.cjs.config.js b/jestconfigs/jest.es2015.cjs.config.js index 3f6cbdab..cdb833a8 100644 --- a/jestconfigs/jest.es2015.cjs.config.js +++ b/jestconfigs/jest.es2015.cjs.config.js @@ -2,26 +2,26 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix(.*)": "/targets/es2015/cjs$1", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix(.*)': '/targets/es2015/cjs$1', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es2015.cjs.json", + tsconfig: '/spec/tsconfig/tsconfig.es2015.cjs.json', }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es2015.cjs.json", + tsconfig: '/spec/tsconfig/tsconfig.es2015.cjs.json', }, ], }, diff --git a/jestconfigs/jest.es2015.esm.config.js b/jestconfigs/jest.es2015.esm.config.js index d31d462f..3a2a9785 100644 --- a/jestconfigs/jest.es2015.esm.config.js +++ b/jestconfigs/jest.es2015.esm.config.js @@ -2,28 +2,28 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix(.*)": "/targets/es2015/esm$1", - "tslib": "tslib/tslib.es6.js", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix(.*)': '/targets/es2015/esm$1', + tslib: 'tslib/tslib.es6.js', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es2015.esm.json", + tsconfig: '/spec/tsconfig/tsconfig.es2015.esm.json', useESM: true, }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es2015.esm.json", + tsconfig: '/spec/tsconfig/tsconfig.es2015.esm.json', useESM: true, }, ], diff --git a/jestconfigs/jest.es2015.umd.config.js b/jestconfigs/jest.es2015.umd.config.js index 8d383a7f..d19efdea 100644 --- a/jestconfigs/jest.es2015.umd.config.js +++ b/jestconfigs/jest.es2015.umd.config.js @@ -2,29 +2,30 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", + rootDir: '../', moduleNameMapper: { - "^ix/asynciterable/operators(.*)": "/targets/es2015/umd/Ix.dom.asynciterable.operators.js", - "^ix/asynciterable(.*)": "/targets/es2015/umd/Ix.dom.asynciterable.js", - "^ix/iterable/operators(.*)": "/targets/es2015/umd/Ix.dom.iterable.operators.js", - "^ix/iterable(.*)": "/targets/es2015/umd/Ix.dom.iterable.js", - "^ix(.*)": "/targets/es2015/umd/Ix.dom.js", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix/asynciterable/operators(.*)': + '/targets/es2015/umd/Ix.dom.asynciterable.operators.js', + '^ix/asynciterable(.*)': '/targets/es2015/umd/Ix.dom.asynciterable.js', + '^ix/iterable/operators(.*)': '/targets/es2015/umd/Ix.dom.iterable.operators.js', + '^ix/iterable(.*)': '/targets/es2015/umd/Ix.dom.iterable.js', + '^ix(.*)': '/targets/es2015/umd/Ix.dom.js', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es2015.umd.json", + tsconfig: '/spec/tsconfig/tsconfig.es2015.umd.json', }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es2015.umd.json", + tsconfig: '/spec/tsconfig/tsconfig.es2015.umd.json', }, ], }, diff --git a/jestconfigs/jest.es5.cjs.config.js b/jestconfigs/jest.es5.cjs.config.js index 80a14e39..8c79431a 100644 --- a/jestconfigs/jest.es5.cjs.config.js +++ b/jestconfigs/jest.es5.cjs.config.js @@ -2,26 +2,26 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix(.*)": "/targets/es5/cjs$1", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix(.*)': '/targets/es5/cjs$1', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es5.cjs.json", + tsconfig: '/spec/tsconfig/tsconfig.es5.cjs.json', }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es5.cjs.json", + tsconfig: '/spec/tsconfig/tsconfig.es5.cjs.json', }, ], }, diff --git a/jestconfigs/jest.es5.esm.config.js b/jestconfigs/jest.es5.esm.config.js index ed8b00b5..2e3b78ab 100644 --- a/jestconfigs/jest.es5.esm.config.js +++ b/jestconfigs/jest.es5.esm.config.js @@ -2,28 +2,28 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix(.*)": "/targets/es5/esm$1", - "tslib": "tslib/tslib.es6.js", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix(.*)': '/targets/es5/esm$1', + tslib: 'tslib/tslib.es6.js', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es5.esm.json", + tsconfig: '/spec/tsconfig/tsconfig.es5.esm.json', useESM: true, }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es5.esm.json", + tsconfig: '/spec/tsconfig/tsconfig.es5.esm.json', useESM: true, }, ], diff --git a/jestconfigs/jest.es5.umd.config.js b/jestconfigs/jest.es5.umd.config.js index 24ec2c14..ef3e8426 100644 --- a/jestconfigs/jest.es5.umd.config.js +++ b/jestconfigs/jest.es5.umd.config.js @@ -2,29 +2,30 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", + rootDir: '../', moduleNameMapper: { - "^ix/asynciterable/operators(.*)": "/targets/es5/umd/Ix.dom.asynciterable.operators.js", - "^ix/asynciterable(.*)": "/targets/es5/umd/Ix.dom.asynciterable.js", - "^ix/iterable/operators(.*)": "/targets/es5/umd/Ix.dom.iterable.operators.js", - "^ix/iterable(.*)": "/targets/es5/umd/Ix.dom.iterable.js", - "^ix(.*)": "/targets/es5/umd/Ix.dom.js", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix/asynciterable/operators(.*)': + '/targets/es5/umd/Ix.dom.asynciterable.operators.js', + '^ix/asynciterable(.*)': '/targets/es5/umd/Ix.dom.asynciterable.js', + '^ix/iterable/operators(.*)': '/targets/es5/umd/Ix.dom.iterable.operators.js', + '^ix/iterable(.*)': '/targets/es5/umd/Ix.dom.iterable.js', + '^ix(.*)': '/targets/es5/umd/Ix.dom.js', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es5.umd.json", + tsconfig: '/spec/tsconfig/tsconfig.es5.umd.json', }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.es5.umd.json", + tsconfig: '/spec/tsconfig/tsconfig.es5.umd.json', }, ], }, diff --git a/jestconfigs/jest.esnext.cjs.config.js b/jestconfigs/jest.esnext.cjs.config.js index cca1b727..0ca9de54 100644 --- a/jestconfigs/jest.esnext.cjs.config.js +++ b/jestconfigs/jest.esnext.cjs.config.js @@ -2,26 +2,26 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix(.*)": "/targets/esnext/cjs$1", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix(.*)': '/targets/esnext/cjs$1', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.esnext.cjs.json", + tsconfig: '/spec/tsconfig/tsconfig.esnext.cjs.json', }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.esnext.cjs.json", + tsconfig: '/spec/tsconfig/tsconfig.esnext.cjs.json', }, ], }, diff --git a/jestconfigs/jest.esnext.esm.config.js b/jestconfigs/jest.esnext.esm.config.js index 2ba58f88..d7ec7e5f 100644 --- a/jestconfigs/jest.esnext.esm.config.js +++ b/jestconfigs/jest.esnext.esm.config.js @@ -2,28 +2,28 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix(.*)": "/targets/esnext/esm$1", - "tslib": "tslib/tslib.es6.js", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix(.*)': '/targets/esnext/esm$1', + tslib: 'tslib/tslib.es6.js', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.esnext.esm.json", + tsconfig: '/spec/tsconfig/tsconfig.esnext.esm.json', useESM: true, }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.esnext.esm.json", + tsconfig: '/spec/tsconfig/tsconfig.esnext.esm.json', useESM: true, }, ], diff --git a/jestconfigs/jest.esnext.umd.config.js b/jestconfigs/jest.esnext.umd.config.js index b9fb044c..47d97f44 100644 --- a/jestconfigs/jest.esnext.umd.config.js +++ b/jestconfigs/jest.esnext.umd.config.js @@ -2,29 +2,30 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", + rootDir: '../', moduleNameMapper: { - "^ix/asynciterable/operators(.*)": "/targets/esnext/umd/Ix.dom.asynciterable.operators.js", - "^ix/asynciterable(.*)": "/targets/esnext/umd/Ix.dom.asynciterable.js", - "^ix/iterable/operators(.*)": "/targets/esnext/umd/Ix.dom.iterable.operators.js", - "^ix/iterable(.*)": "/targets/esnext/umd/Ix.dom.iterable.js", - "^ix(.*)": "/targets/esnext/umd/Ix.dom.js", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix/asynciterable/operators(.*)': + '/targets/esnext/umd/Ix.dom.asynciterable.operators.js', + '^ix/asynciterable(.*)': '/targets/esnext/umd/Ix.dom.asynciterable.js', + '^ix/iterable/operators(.*)': '/targets/esnext/umd/Ix.dom.iterable.operators.js', + '^ix/iterable(.*)': '/targets/esnext/umd/Ix.dom.iterable.js', + '^ix(.*)': '/targets/esnext/umd/Ix.dom.js', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.esnext.umd.json", + tsconfig: '/spec/tsconfig/tsconfig.esnext.umd.json', }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.esnext.umd.json", + tsconfig: '/spec/tsconfig/tsconfig.esnext.umd.json', }, ], }, diff --git a/jestconfigs/jest.ix.config.js b/jestconfigs/jest.ix.config.js index da2e9c6c..09767c87 100644 --- a/jestconfigs/jest.ix.config.js +++ b/jestconfigs/jest.ix.config.js @@ -2,27 +2,27 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix(.*)": "/targets/ix$1", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix(.*)': '/targets/ix$1', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.ix.json", + tsconfig: '/spec/tsconfig/tsconfig.ix.json', useESM: true, }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.ix.json", + tsconfig: '/spec/tsconfig/tsconfig.ix.json', useESM: true, }, ], diff --git a/jestconfigs/jest.src.config.js b/jestconfigs/jest.src.config.js index 27e0e605..d9b2fd69 100644 --- a/jestconfigs/jest.src.config.js +++ b/jestconfigs/jest.src.config.js @@ -2,29 +2,29 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix": "/src/Ix.node.ts", - "^ix(.*)\\.js": "/src$1.ts", - "tslib": "tslib/tslib.es6.js", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix': '/src/Ix.node.ts', + '^ix(.*)\\.js': '/src$1.ts', + tslib: 'tslib/tslib.es6.js', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.src.json", + tsconfig: '/spec/tsconfig/tsconfig.src.json', useESM: true, }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.src.json", + tsconfig: '/spec/tsconfig/tsconfig.src.json', useESM: true, }, ], diff --git a/jestconfigs/jest.ts.config.js b/jestconfigs/jest.ts.config.js index e618640d..d86b9a5b 100644 --- a/jestconfigs/jest.ts.config.js +++ b/jestconfigs/jest.ts.config.js @@ -2,29 +2,29 @@ import config from '../jest.config.js'; export default { ...config, - rootDir: "../", - moduleFileExtensions: ["js", "ts"], + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], moduleNameMapper: { - "^ix": "/targets/ts/Ix.node", - "^ix(.*)": "/targets/ts$1", - "tslib": "tslib/tslib.es6.js", - "^(\\.{1,2}/.*)\\.js$": "$1", + '^ix': '/targets/ts/Ix.node', + '^ix(.*)': '/targets/ts$1', + tslib: 'tslib/tslib.es6.js', + '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { ...config.transform, - "^.+\\.js$": [ - "ts-jest", + '^.+\\.js$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.ts.json", + tsconfig: '/spec/tsconfig/tsconfig.ts.json', useESM: true, }, ], - "^.+\\.ts$": [ - "ts-jest", + '^.+\\.ts$': [ + 'ts-jest', { diagnostics: false, - tsconfig: "/spec/tsconfig/tsconfig.ts.json", + tsconfig: '/spec/tsconfig/tsconfig.ts.json', useESM: true, }, ], From ff7a3afa4441a3151542e28ae10e08c0e6504404 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 20:31:44 -0700 Subject: [PATCH 07/44] get it all working --- .esdoc.json | 7 - .eslintignore | 6 + .github/workflows/docs.yml | 6 +- .github/workflows/main.pr.yml | 54 ++- .gitignore | 4 +- .npmrc | 7 +- .vscode/extensions.json | 7 + .vscode/launch.json | 204 +++++----- .vscode/settings.json | 22 ++ gulp/argv.js | 40 +- gulp/bundle-task.js | 166 ++++---- gulp/clean-task.js | 29 +- gulp/closure-task.js | 362 ++++++++++-------- gulp/compile-task.js | 38 +- gulp/copy-main-task.js | 91 ++--- gulp/esm-require.cjs | 17 - gulp/memoize-task.js | 45 +-- gulp/package-task.js | 206 +++++----- gulp/test-task.js | 81 ++-- gulp/typescript-task.js | 96 ++--- gulp/util.js | 334 +++++----------- gulpfile.js | 154 +++----- index.cjs | 1 + index.mjs | 1 + index.ts | 1 + jest.config.js | 93 ++--- jest.coverage.config.js | 26 -- jestconfigs/jest.coverage.config.js | 7 + jestconfigs/jest.es2015.cjs.config.js | 48 +-- jestconfigs/jest.es2015.esm.config.js | 53 ++- jestconfigs/jest.es2015.umd.config.js | 56 +-- jestconfigs/jest.es5.cjs.config.js | 48 +-- jestconfigs/jest.es5.esm.config.js | 53 ++- jestconfigs/jest.es5.umd.config.js | 56 +-- jestconfigs/jest.esnext.cjs.config.js | 48 +-- jestconfigs/jest.esnext.esm.config.js | 53 ++- jestconfigs/jest.esnext.umd.config.js | 56 +-- jestconfigs/jest.ix.config.js | 52 +-- jestconfigs/jest.src.config.js | 54 ++- jestconfigs/jest.ts.config.js | 54 ++- package.json | 59 ++- spec/tsconfig.coverage.json | 10 - spec/tsconfig.json | 2 +- spec/tsconfig/tsconfig.coverage.json | 6 + spec/tsconfig/tsconfig.ix.json | 2 +- ...ators.ts => Ix.asynciterable.operators.ts} | 0 ...m.asynciterable.ts => Ix.asynciterable.ts} | 0 src/Ix.dom.ts | 10 +- ....operators.ts => Ix.iterable.operators.ts} | 0 src/{Ix.dom.iterable.ts => Ix.iterable.ts} | 0 test/bundle/asynciterable-of.js | 3 + test/bundle/asynciterable.js | 3 + test/bundle/iterable-of.js | 3 + test/bundle/iterable.js | 3 + tsconfig.json | 1 - tsconfig/tsconfig.base.json | 1 - tsconfig/tsconfig.docs.json | 8 + typedoc.js | 18 - typedoc.json | 18 + 59 files changed, 1285 insertions(+), 1598 deletions(-) delete mode 100644 .esdoc.json create mode 100644 .eslintignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 index.cjs create mode 100644 index.mjs create mode 100644 index.ts delete mode 100644 jest.coverage.config.js create mode 100644 jestconfigs/jest.coverage.config.js delete mode 100644 spec/tsconfig.coverage.json create mode 100644 spec/tsconfig/tsconfig.coverage.json rename src/{Ix.dom.asynciterable.operators.ts => Ix.asynciterable.operators.ts} (100%) rename src/{Ix.dom.asynciterable.ts => Ix.asynciterable.ts} (100%) rename src/{Ix.dom.iterable.operators.ts => Ix.iterable.operators.ts} (100%) rename src/{Ix.dom.iterable.ts => Ix.iterable.ts} (100%) create mode 100644 test/bundle/asynciterable-of.js create mode 100644 test/bundle/asynciterable.js create mode 100644 test/bundle/iterable-of.js create mode 100644 test/bundle/iterable.js create mode 100644 tsconfig/tsconfig.docs.json delete mode 100644 typedoc.js create mode 100644 typedoc.json diff --git a/.esdoc.json b/.esdoc.json deleted file mode 100644 index 96c74b93..00000000 --- a/.esdoc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "source": "./targets/es2015/cjs", - "destination": "./doc", - "plugins": [{ - "name": "esdoc-standard-plugin" - }] -} \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..8f1992e6 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,6 @@ +.eslintrc.cjs +gulp +jest.config.js +jestconfigs +targets +test/bundle/ diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d74466cb..325da36a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -18,14 +18,16 @@ jobs: container: node:16.15.1-bullseye steps: - name: Checkout main - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: main + persist-credentials: false - name: Checkout gh-pages - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: gh-pages path: gh-pages + persist-credentials: false - name: Build Docs working-directory: main run: | diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 911a1743..fabe1bcd 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -8,22 +8,24 @@ on: jobs: lint-pull-request: name: Lint pull request - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: fail-fast: true matrix: - node: [18.x] + node: [20.x] steps: - name: Setup node v${{ matrix.node }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + persist-credentials: false - name: Cache node_modules - uses: actions/cache@v2 + uses: actions/cache@v4 with: key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json') }} path: | @@ -31,19 +33,19 @@ jobs: - name: Check if source or test files changed id: files_changed - uses: tj-actions/changed-files@v41 + uses: tj-actions/changed-files@v44 with: files: | src/**/* spec/**/* - name: Install dependencies - if: ${{ steps.files_changed.outputs.any_changed == 'true' || steps.files_changed.outputs.any_deleted == 'true' }} + if: ${{ steps.files_changed.outputs.any_modified == 'true' }} run: | yarn - name: Lint files - if: ${{ steps.files_changed.outputs.any_changed == 'true' || steps.files_changed.outputs.any_deleted == 'true' }} + if: ${{ steps.files_changed.outputs.any_modified == 'true' }} run: | yarn lint:ci @@ -51,32 +53,36 @@ jobs: needs: - lint-pull-request name: Build and test pull request - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: fail-fast: true matrix: - node: [14.x, 16.x, 18.x] + node: [14.x, 16.x, 18.x, 20.x] module: [cjs, esm, umd] target: [es5, es2015, esnext] exclude: - {node: 14.x, target: esnext} + include: + - {node: 20.x, target: src, args: --coverage} steps: - name: Setup node v${{ matrix.node }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + persist-credentials: false - name: Cache targets - uses: actions/cache@v2 + uses: actions/cache@v4 with: key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json') }} path: | targets - name: Cache node_modules - uses: actions/cache@v2 + uses: actions/cache@v4 with: key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json') }} path: | @@ -84,29 +90,35 @@ jobs: - name: Check if test files changed id: test_files_changed - uses: tj-actions/changed-files@v41 + uses: tj-actions/changed-files@v44 with: files: | spec/**/* - name: Check if source files changed id: source_files_changed - uses: tj-actions/changed-files@v41 + uses: tj-actions/changed-files@v44 with: files: | src/**/* - name: Install dependencies - if: ${{ steps.test_files_changed.outputs.any_changed == 'true' || steps.test_files_changed.outputs.any_deleted == 'true' || steps.source_files_changed.outputs.any_changed == 'true' || steps.source_files_changed.outputs.any_deleted == 'true' }} + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} run: | yarn --ignore-optional --ignore-engines --non-interactive - name: Build package - if: ${{ steps.source_files_changed.outputs.any_changed == 'true' || steps.source_files_changed.outputs.any_deleted == 'true' }} + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} + env: + ecmascriptver: "${{ matrix.target }}" + module_format: "${{ matrix.module }}" run: | - yarn build -t ${{ matrix.target }} -m ${{ matrix.module }} + yarn build ${ecmascriptver:+-t ${ecmascriptver}} ${module_format:+-m ${module_format}} - name: Test package - if: ${{ steps.test_files_changed.outputs.any_changed == 'true' || steps.test_files_changed.outputs.any_deleted == 'true' || steps.source_files_changed.outputs.any_changed == 'true' || steps.source_files_changed.outputs.any_deleted == 'true' }} + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} + env: + ecmascriptver: "${{ matrix.target }}" + module_format: "${{ matrix.module }}" run: | - yarn test -t ${{ matrix.target }} -m ${{ matrix.module }} + yarn test ${ecmascriptver:+-t ${ecmascriptver}} ${module_format:+-m ${module_format}} ${{ matrix.args }} diff --git a/.gitignore b/.gitignore index 291f9d68..b0431f5b 100644 --- a/.gitignore +++ b/.gitignore @@ -36,8 +36,6 @@ package-lock.json .node_repl_history # editor configurations -.vscode/** -!.vscode/launch.json .editorconfig # esdoc output @@ -58,4 +56,4 @@ targets/esnext .jest-cache # test bundles -spec/bundle/**/*-bundle.js* +test/bundle/**/*-bundle.js* diff --git a/.npmrc b/.npmrc index af38968e..891cc8a3 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,8 @@ -save-prefix= +audit=false +fund=false package-lock=false +save-prefix= +save-exact=true engine-strict=true +update-notifier=false +registry=https://registry.npmjs.org/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..fb771bcd --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "augustocdias.tasks-shell-input", + "orta.vscode-jest" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json index 4fdb37b5..7cb84327 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,89 +1,119 @@ { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Debug Gulp Build", - "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js", - "skipFiles": [ - "/internal/fs/utils", - "/internal/url", - ], - "args": [ - "build", - // Specify we want to debug the "src" target, which won't clean or build -- essentially a "dry-run" of the gulp build - "--target", - "src" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Debug Unit Tests", - "cwd": "${workspaceRoot}", - "console": "integratedTerminal", - "program": "${workspaceFolder}/node_modules/.bin/jest", - "skipFiles": [ - "/**/*", - // "${workspaceFolder}/node_modules/**/*", - ], - "env": { - "NODE_NO_WARNINGS": "1", - "TEST_DOM_STREAMS": "true", - "TEST_NODE_STREAMS": "true", - }, - "args": [ - "--verbose", - "--no-cache", - "--runInBand", - "-c", "jestconfigs/jest.${input:TEST_TARGET}.config.js", - "${input:TEST_FILE}" - ] - } - ], - "inputs": [ - { - "type": "pickString", - "default": "src", - "id": "TEST_TARGET", - "options": [ - "src", - "ix", - "ts", - "es5.cjs", - "es5.esm", - "es5.umd", - "es2015.cjs", - "es2015.esm", - "es2015.umd", - "esnext.cjs", - "esnext.esm", - "esnext.umd", - ], - "description": "The JS version + Module format combination to test (or src to test source files)", - }, - { - "type": "command", - "id": "TEST_FILE", - "command": "shellCommand.execute", - "args": { - "cwd": "${workspaceFolder}", - "description": "Select a file to debug", - "command": "./node_modules/.bin/jest --listTests | sed -r \"s@$PWD/spec/@@g\"", - } - }, - { - "type": "command", - "id": "TEST_RUNTIME_ARGS", - "command": "shellCommand.execute", - "args": { - "useSingleResult": "true", - "command": "case \"${input:TEST_TARGET}\" in *cjs | *umd | ix) echo '';; *) echo '--experimental-vm-modules';; esac" - } - }, - ], + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "inputs": [ + { + "type": "command", + "id": "TEST_TARGET", + "command": "shellCommand.execute", + "args": { + "cwd": "${workspaceFolder}", + "description": "The JS version + Module format combination to test (or src to test source files)", + "command": "echo \"src\nix\nts\nes5.cjs\nes5.esm\nes5.umd\nes2015.cjs\nes2015.esm\nes2015.umd\nesnext.cjs\nesnext.esm\nesnext.umd\"" + } + }, + { + "type": "command", + "id": "TEST_FILE", + "command": "shellCommand.execute", + "args": { + "cwd": "${workspaceFolder}", + "description": "Select a file to debug", + "command": "node_modules/.bin/jest --listTests | sed -r \"s@$PWD/spec/@@g\"", + } + }, + { + "type": "command", + "id": "BUNDLE_FILE", + "command": "shellCommand.execute", + "args": { + "cwd": "${workspaceFolder}", + "description": "Select a file to debug", + "command": "ls test/bundle/**/*-bundle.js", + } + }, + { + "type": "command", + "id": "TEST_RUNTIME_ARGS", + "command": "shellCommand.execute", + "args": { + "useSingleResult": "true", + "command": "case \"${input:TEST_TARGET}\" in *cjs | *umd) echo '--no-warnings';; *) echo '--experimental-vm-modules';; esac" + } + }, + ], + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Debug Gulp Build", + "cwd": "${workspaceFolder}", + "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js", + "args": [ + "build", + // Specify we want to debug the "src" target, which won't clean or build -- essentially a "dry-run" of the gulp build + "--target", + "src" + ] + }, + { + "type": "node", + "request": "launch", + "name": "Debug Unit Tests", + "cwd": "${workspaceFolder}", + "console": "integratedTerminal", + "program": "${workspaceFolder}/node_modules/.bin/jest", + "skipFiles": [ + "/**/*.js", + "${workspaceFolder}/node_modules/**/*.js" + ], + "env": { + "NODE_NO_WARNINGS": "1", + "NODE_ENV": "production", + "TEST_DOM_STREAMS": "true", + "TEST_NODE_STREAMS": "true", + }, + "runtimeArgs": ["${input:TEST_RUNTIME_ARGS}"], + "args": [ + "--verbose", + "--runInBand", + "-c", "jestconfigs/jest.${input:TEST_TARGET}.config.js", + "${input:TEST_FILE}" + ] + }, + { + "type": "node", + "request": "launch", + "name": "Debug Bundle", + "cwd": "${workspaceFolder}", + "program": "${input:BUNDLE_FILE}", + "skipFiles": [ + "/**" + ] + }, + { + "type": "node", + "name": "vscode-jest-tests", + "request": "launch", + "cwd": "${workspaceFolder}", + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "program": "${workspaceFolder}/node_modules/.bin/jest", + "runtimeArgs": [ + "--experimental-vm-modules" + ], + "args": [ + "--runInBand", + "--watchAll=false" + ], + "env": { + "NODE_NO_WARNINGS": "1", + "TEST_DOM_STREAMS": "true", + "TEST_NODE_STREAMS": "true", + "TEST_TS_SOURCE": "true" + }, + } + ] } diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..6b592237 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,22 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib", + "editor.trimAutoWhitespace": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "[javascript]": { + "editor.tabSize": 4, + "editor.formatOnSave": true, + "editor.formatOnSaveMode": "file", + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "[typescript]": { + "editor.tabSize": 2, + "editor.formatOnSave": true, + "editor.formatOnSaveMode": "file", + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "jest.jestCommandLine": "node --experimental-vm-modules node_modules/jest/bin/jest.js --config jest.config.js", + "jest.autoRun": {"watch": false, "onSave": "test-src-file"}, + "typescript.preferences.importModuleSpecifierEnding": "js" +} diff --git a/gulp/argv.js b/gulp/argv.js index cb2ff2a0..05976cb2 100644 --- a/gulp/argv.js +++ b/gulp/argv.js @@ -1,44 +1,22 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - import args from 'command-line-args'; -const argv = args( - [ +export const argv = args([ { name: `all`, type: Boolean }, - { name: 'verbose', alias: 'v', type: Boolean }, + { name: 'verbose', alias: `v`, type: Boolean }, { name: `target`, type: String, defaultValue: `` }, { name: `module`, type: String, defaultValue: `` }, { name: `coverage`, type: Boolean, defaultValue: false }, { name: `tests`, type: String, multiple: true, defaultValue: [`spec/*`] }, { name: `targets`, alias: `t`, type: String, multiple: true, defaultValue: [] }, { name: `modules`, alias: `m`, type: String, multiple: true, defaultValue: [] }, - ], - { partial: true } -); +], { partial: true }); -const { targets, modules } = argv; +export const { targets, modules } = argv; if (argv.target === `src`) { - argv.target && !targets.length && targets.push(argv.target); + argv.target && !targets.length && targets.push(argv.target); } else { - argv.target && !targets.length && targets.push(argv.target); - argv.module && !modules.length && modules.push(argv.module); - (argv.all || !targets.length) && targets.push(`all`); - (argv.all || !modules.length) && modules.push(`all`); + argv.target && !targets.length && targets.push(argv.target); + argv.module && !modules.length && modules.push(argv.module); + (argv.all || !targets.length) && targets.push(`all`); + (argv.all || !modules.length) && modules.push(`all`); } - -export { argv, targets, modules }; diff --git a/gulp/bundle-task.js b/gulp/bundle-task.js index 9ef22577..45d00c5b 100644 --- a/gulp/bundle-task.js +++ b/gulp/bundle-task.js @@ -1,141 +1,123 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - import gulp from 'gulp'; import size from 'gulp-vinyl-size'; import gulpRename from 'gulp-rename'; import terser from 'gulp-terser'; import source from 'vinyl-source-stream'; import buffer from 'vinyl-buffer'; -import { mainExport, npmPkgName, observableFromStreams } from './util.js'; +import { npmPkgName, observableFromStreams } from './util.js'; import { forkJoin as ObservableForkJoin } from 'rxjs'; -import { resolve, join } from 'path'; -import { readdirSync } from 'fs'; -import { execSync } from 'child_process'; +import { resolve, join } from 'node:path'; +import { readdirSync } from 'node:fs'; +import { execSync } from 'node:child_process'; import gulpEsbuild from 'gulp-esbuild'; import esbuildAlias from 'esbuild-plugin-alias'; import rollupStream from '@rollup/stream'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import rollupAlias from '@rollup/plugin-alias'; +import rollupPluginCommonJS from '@rollup/plugin-commonjs'; +import rollupPluginNodeResolve from '@rollup/plugin-node-resolve'; +import rollupPluginAlias from '@rollup/plugin-alias'; import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; import webpack from 'webpack-stream'; import named from 'vinyl-named'; -import { fileURLToPath } from 'url'; -import { dirname } from 'path'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); -const bundleDir = resolve(__dirname, '../spec/bundle'); +const bundleDir = resolve(__dirname, '../test/bundle'); const fileNames = readdirSync(bundleDir) - .filter((fileName) => fileName.endsWith('.js')) - .map((fileName) => fileName.replace(/\.js$/, '')); + .filter(fileName => fileName.endsWith('.js')) + .map(fileName => fileName.replace(/\.js$/, '')); const bundlesGlob = join(bundleDir, '**.js'); const esbuildDir = join(bundleDir, 'esbuild'); -export const esbuildTask = (minify = true) => () => - observableFromStreams( +export const esbuildTask = (minify = true) => () => observableFromStreams( gulp.src(bundlesGlob), gulpEsbuild({ - bundle: true, - minify, - treeShaking: true, - plugins: [ - esbuildAlias({ - [npmPkgName]: resolve(__dirname, `../targets/${npmPkgName}/${mainExport}.dom.mjs`), - }), - ], - }), - gulpRename((p) => { - p.basename += '-bundle'; + bundle: true, + minify, + treeShaking: true, + plugins: [ + esbuildAlias({ + 'ix': resolve(__dirname, `../targets/${npmPkgName}/Ix.dom.mjs`), + 'ix/Ix.iterable.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.iterable.mjs`), + 'ix/Ix.asynciterable.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.asynciterable.mjs`), + }), + ], }), + gulpRename((p) => { p.basename += '-bundle'; }), gulp.dest(esbuildDir), size({ gzip: true }) - ); +); const rollupDir = join(bundleDir, 'rollup'); -export const rollupTask = (minify = true) => () => - ObservableForkJoin( - fileNames.map((fileName) => - observableFromStreams( +export const rollupTask = (minify = true) => () => ObservableForkJoin( + fileNames.map(fileName => observableFromStreams( rollupStream({ - input: join(bundleDir, `${fileName}.js`), - output: { format: 'commonjs' }, - plugins: [ - rollupAlias({ - entries: { [npmPkgName]: resolve(__dirname, `../targets/es2015/esm/`) }, - }), - nodeResolve(), - ], - onwarn: (message) => { - if (message.code === 'CIRCULAR_DEPENDENCY') return; - console.error(message); - }, + input: join(bundleDir, `${fileName}.js`), + output: { format: 'cjs' }, + treeshake: true, + plugins: [ + rollupPluginAlias({ + entries: { 'ix': resolve(__dirname, `../targets/${npmPkgName}/`) } + }), + rollupPluginNodeResolve() + ], + onwarn: (message) => { + if (message.code === 'CIRCULAR_DEPENDENCY') return + console.error(message); + } }), source(`${fileName}-bundle.js`), buffer(), ...(minify ? [terser()] : []), gulp.dest(rollupDir), size({ gzip: true }) - ) - ) - ); + )) +) const webpackDir = join(bundleDir, 'webpack'); -export const webpackTask = (opts = { minify: true, analyze: false }) => () => - observableFromStreams( +export const webpackTask = (opts = { minify: true, analyze: false }) => () => observableFromStreams( gulp.src(bundlesGlob), named(), webpack({ - mode: opts?.minify == false ? 'development' : 'production', - optimization: { - usedExports: true, - }, - output: { - filename: '[name]-bundle.js', - }, - module: { - rules: [ - { - resolve: { - fullySpecified: false, - mainFields: ['module', 'main'], - }, - }, - ], - }, - resolve: { - alias: { [npmPkgName]: resolve(__dirname, `../targets/es2015/esm/`) }, - }, - stats: 'errors-only', - plugins: opts?.analyze ? [new BundleAnalyzerPlugin()] : [], + mode: opts?.minify == false ? 'development' : 'production', + optimization: { + usedExports: true + }, + output: { + filename: '[name]-bundle.js' + }, + module: { + rules: [ + { + resolve: { + fullySpecified: false, + } + } + ] + }, + resolve: { + extensions: ['.mjs', '.js'], + alias: { 'ix': resolve(__dirname, `../targets/${npmPkgName}/`) } + }, + stats: 'errors-only', + plugins: opts?.analyze ? [new BundleAnalyzerPlugin()] : [] }), gulp.dest(webpackDir), size({ gzip: true }) - ); +); -export const execBundleTask = () => () => - observableFromStreams(gulp.src(join(bundleDir, '**/**-bundle.js')), async (generator) => { - for await (const file of generator) { - console.log(`executing ${file.path}`); - execSync(`node ${file.path}`); +export const execBundleTask = () => () => observableFromStreams( + gulp.src(join(bundleDir, '**/**-bundle.js')), + async (generator) => { + for await (const file of generator) { + console.log(`executing ${file.path}`); + execSync(`${process.argv[0]} ${file.path}`, { stdio: 'inherit' }); + } } - }); +); diff --git a/gulp/clean-task.js b/gulp/clean-task.js index bccb1b88..6e34b54e 100644 --- a/gulp/clean-task.js +++ b/gulp/clean-task.js @@ -1,30 +1,13 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import del from 'del'; +import { deleteAsync as del } from 'del'; import { targetDir } from './util.js'; import memoizeTask from './memoize-task.js'; import { catchError } from 'rxjs/operators/index.js'; -import { from as ObservableFrom, empty as ObservableEmpty } from 'rxjs'; +import { from as ObservableFrom, EMPTY as ObservableEmpty } from 'rxjs'; -export const cleanTask = ((cache) => - memoizeTask(cache, function clean(target, format) { +export const cleanTask = ((cache) => memoizeTask(cache, function clean(target, format) { const dir = targetDir(target, format); - return ObservableFrom(del(dir)).pipe(catchError((e) => ObservableEmpty())); - }))({}); + return ObservableFrom(del(dir)) + .pipe(catchError((e) => ObservableEmpty())); +}))({}); export default cleanTask; diff --git a/gulp/closure-task.js b/gulp/closure-task.js index 99cd7d47..c10f1e9e 100644 --- a/gulp/closure-task.js +++ b/gulp/closure-task.js @@ -1,173 +1,193 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import { - targetDir, - mainExport, - esmRequire, - getUMDExportName, - gCCLanguageNames, - observableFromStreams, - shouldRunInChildProcess, - spawnGulpCommandInChildProcess, -} from './util.js'; - -import fs from 'fs'; +import { esmRequire, gCCLanguageNames, mainExport, observableFromStreams, shouldRunInChildProcess, spawnGulpCommandInChildProcess, targetDir } from "./util.js"; + import gulp from 'gulp'; -import path from 'path'; -import mkdirp from 'mkdirp'; import sourcemaps from 'gulp-sourcemaps'; +import { mkdirp } from 'mkdirp'; +import fs from 'node:fs'; +import https from 'node:https'; +import Path from 'node:path'; +import { PassThrough } from 'node:stream'; import { memoizeTask } from './memoize-task.js'; -import cc from 'google-closure-compiler'; -const closureCompiler = cc.gulp(); -export const closureTask = ((cache) => - memoizeTask(cache, async function closure(target, format) { +import closureCompiler from 'google-closure-compiler'; +const compiler = closureCompiler.gulp(); + +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const closureCompilerVer = JSON.parse(fs.readFileSync(Path.join(__dirname, '..', 'package.json'))).devDependencies['google-closure-compiler'].split('.')[0]; + +export const closureTask = ((cache) => memoizeTask(cache, async function closure(target, format) { + if (shouldRunInChildProcess(target, format)) { - return spawnGulpCommandInChildProcess('compile', target, format); + return spawnGulpCommandInChildProcess('compile', target, format); } const src = targetDir(target, `cls`); + const srcAbsolute = Path.resolve(src); const out = targetDir(target, format); + const closeCompilerPolyfills = new Set(); + await mkdirp(out); await Promise.all( - [ - `${mainExport}.dom`, - `${mainExport}.dom.iterable`, - `${mainExport}.dom.asynciterable`, - `${mainExport}.dom.iterable.operators`, - `${mainExport}.dom.asynciterable.operators`, - ].map(closureCompile) + [ + `${mainExport}.dom`, + `${mainExport}.iterable`, + `${mainExport}.asynciterable`, + `${mainExport}.iterable.operators`, + `${mainExport}.asynciterable.operators`, + ].map(closureCompile) ); + // Download the closure compiler polyfill sources for sourcemaps + await Promise.all([...closeCompilerPolyfills].map(async (path) => { + + await fs.promises.mkdir( + Path.join(out, Path.parse(path).dir), + { recursive: true, mode: 0o755 } + ); + + const res = new PassThrough(); + const req = https.request( + new URL(`https://raw.githubusercontent.com/google/closure-compiler/v${closureCompilerVer}/${path}`), + (res_) => { + if (res_.statusCode === 200) { + res_.pipe(res); + } else { + res.end(); + } + } + ); + + req.on('error', (e) => res.emit('error', e)).end(); + + return observableFromStreams(res, fs.createWriteStream(Path.join(out, path))).toPromise(); + })); + async function closureCompile(entry) { - const entry_point = path.join(src, `${entry}.dom.cls.js`); - const externsPath = path.join(out, `${entry}.externs.js`); - - await Promise.all([ - fs.promises.writeFile(entry_point, generateUMDExportAssignment(entry)), - fs.promises.writeFile(externsPath, generateExternsFile(path.resolve(`${src}/${entry}.js`))), - ]); - - return await observableFromStreams( - gulp.src( - [ - /* external libs first */ - `node_modules/tslib/package.json`, - `node_modules/tslib/tslib.es6.js`, - `node_modules/rxjs/package.json`, - `node_modules/rxjs/util/root.js`, - `node_modules/rxjs/internal/symbol/observable.js`, - `${src}/**/*.js` /* <-- then sources globs */, - ], - { base: `./` } - ), - sourcemaps.init(), - closureCompiler( - createClosureArgs(target, entry_point, entry, externsPath, getUMDExportName(entry)), - { - platform: ['native', 'java', 'javascript'], - } - ), - // rename the sourcemaps from *.js.map files to *.min.js.map - sourcemaps.write(`.`, { - mapFile: (mapPath) => mapPath.replace(`.js.map`, `.${target}.min.js.map`), - }), - gulp.dest(out) - ).toPromise(); + const entry_point = Path.join(src, `${entry}.cls.js`); + const externsPath = Path.join(out, `${entry}.externs.js`); + + const exportedImports = [ + Path.join(srcAbsolute, `${entry}.js`) + ].reduce((entries, publicModulePath) => [ + ...entries, { + publicModulePath, + exports_: getPublicExportedNames(esmRequire(publicModulePath)) + } + ], []); + + await Promise.all([ + fs.promises.writeFile(externsPath, generateExternsFile(exportedImports)), + fs.promises.writeFile(entry_point, generateUMDExportAssignment(srcAbsolute, exportedImports)) + ]); + + await Promise.all([ + runClosureCompileAsObservable().toPromise(), + observableFromStreams(gulp.src(`${src}/**/*.d.ts`), gulp.dest(out)).toPromise(), // copy .d.ts files, + observableFromStreams(gulp.src(`${src}/**/*.d.ts.map`), gulp.dest(out)).toPromise(), // copy .d.ts.map files, + observableFromStreams(gulp.src(`${src}/src/**/*`), gulp.dest(`${out}/src`)).toPromise(), // copy TS source files, + ]); + + function runClosureCompileAsObservable() { + return observableFromStreams( + gulp.src([ + /* external libs first */ + `node_modules/rxjs/package.json`, + `node_modules/rxjs/util/root.js`, + `node_modules/rxjs/internal/symbol/observable.js`, + `${src}/**/*.js` /* <-- then source globs */ + ], { base: `./` }), + sourcemaps.init(), + compiler(createClosureArgs(entry_point, entry, externsPath, target), { + platform: ['native', 'java', 'javascript'] + }), + sourcemaps.mapSources((path) => { + if (path.indexOf(`${src}/`) === 0) { + return path.slice(`${src}/`.length); + } + if (path.includes('com/google')) { + closeCompilerPolyfills.add(path); + return path.slice(`src/`.length); + } + return path; + }), + // rename the sourcemaps from *.js.map files to *.min.js.map + sourcemaps.write(`./`, { + sourceRoot: './src', + includeContent: false, + mapFile: (mapPath) => mapPath.replace(`.js.map`, `.${target}.min.js.map`), + }), + gulp.dest(out) + ); + } } - }))({}); - -const createClosureArgs = (target, entry_point, output, externs, libraryName) => ({ - externs, - entry_point, - third_party: true, - warning_level: `QUIET`, - dependency_mode: `PRUNE`, - rewrite_polyfills: false, - module_resolution: `NODE`, - // formatting: `PRETTY_PRINT`, - // debug: true, - compilation_level: `ADVANCED`, - process_common_js_modules: true, - package_json_entry_names: `module,jsnext:main,main`, - assume_function_wrapper: true, - js_output_file: `${output}.js`, - language_in: gCCLanguageNames[`esnext`], - language_out: gCCLanguageNames[target], - output_wrapper: `(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['${libraryName}'], factory) : - (factory(global.${libraryName} = global.${libraryName} || {})); -}(this, (function (exports) {%output%}.bind(this))));`, -}); +}))({}); export default closureTask; -function generateUMDExportAssignment(entry) { - return [ - ` -import { __await } from 'tslib'; -__await.prototype[Symbol.toStringTag] = '__await'; -Object.defineProperty(__await, Symbol.hasInstance, { - writable: true, configurable: true, value(inst) { - return !!(inst && inst[Symbol.toStringTag] === '__await'); - } -});`, - `import * as exports0 from './${entry}';`, - 'Object.assign(arguments[0], exports0);', - ].join('\n'); +const createClosureArgs = (entry_point, output, externs, target) => ({ + externs, + entry_point, + third_party: true, + warning_level: `QUIET`, + dependency_mode: `PRUNE`, + rewrite_polyfills: false, + module_resolution: `NODE`, + // formatting: `PRETTY_PRINT`, + // debug: true, + compilation_level: `ADVANCED`, + package_json_entry_names: `module,jsnext:main,main`, + assume_function_wrapper: true, + js_output_file: `${output}.js`, + language_in: gCCLanguageNames[`esnext`], + language_out: gCCLanguageNames[target], + output_wrapper: `(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory(global.Ix = global.Ix || {})); +}(this, (function (exports) {%output%}.bind(this))));` +}); + +function generateUMDExportAssignment(src, exportedImports) { + return [ + ...exportedImports.map(({ publicModulePath }, i) => { + const p = publicModulePath.slice(src.length + 1); + return (`import * as exports${i} from './${p}';`); + }).filter(Boolean), + 'Object.assign(arguments[0], exports0);' + ].join('\n'); } -function generateExternsFile(entryModulePath) { - const entryModule = esmRequire(entryModulePath, { warnings: false }); - return [ - externsHeader(), - ...getPublicExportedNames(entryModule).map(externBody).filter(Boolean), - ].join('\n'); +function generateExternsFile(exportedImports) { + return [ + externsHeader(), + ...exportedImports.reduce((externBodies, { exports_ }) => [ + ...externBodies, ...exports_.map(externBody) + ], []).filter(Boolean) + ].join('\n'); } function externBody({ exportName, staticNames, instanceNames }) { - return [ - `var ${exportName} = function() {};`, - staticNames - .map((staticName) => - isNaN(+staticName) - ? `/** @type {?} */\n${exportName}.${staticName} = function() {};` - : `/** @type {?} */\n${exportName}[${staticName}] = function() {};` - ) - .join('\n'), - instanceNames - .map((instanceName) => - isNaN(+instanceName) - ? `/** @type {?} */\n${exportName}.prototype.${instanceName};` - : `/** @type {?} */\n${exportName}.prototype[${instanceName}];` - ) - .join('\n'), - ] - .filter(Boolean) - .join('\n'); + return [ + `var ${exportName} = function() {};`, + staticNames.map((staticName) => (isNaN(+staticName) + ? `/** @type {?} */\n${exportName}.${staticName} = function() {};` + : `/** @type {?} */\n${exportName}[${staticName}] = function() {};` + )).join('\n'), + instanceNames.map((instanceName) => (isNaN(+instanceName) + ? `/** @type {?} */\n${exportName}.prototype.${instanceName};` + : `/** @type {?} */\n${exportName}.prototype[${instanceName}];` + )).join('\n') + ].filter(Boolean).join('\n'); } function externsHeader() { - return ` -// @ts-nocheck + return (`// @ts-nocheck +/* eslint-disable */ /** * @fileoverview Closure Compiler externs for Ix * @externs @@ -178,38 +198,40 @@ Symbol.iterator; /** @type {symbol} */ Symbol.observable; /** @type {symbol} */ +Symbol.toPrimitive; +/** @type {symbol} */ Symbol.asyncIterator; /** @type {symbol} */ var symbolObservable = function() {}; -`; +`); } -// Reflect on the Ix entrypoint module to build the closure externs file. -// Assume all the non-inherited static and prototype members of the Ix entrypoint -// and its direct exports are public, and should be preserved through minification. function getPublicExportedNames(entryModule) { - const fn = function () {}; - const isStaticOrProtoName = (x) => - !(x in fn) && x !== `default` && x !== `undefined` && x !== `__esModule` && x !== `constructor`; - return Object.getOwnPropertyNames(entryModule) - .filter((name) => name !== 'default') - .filter( - (name) => typeof entryModule[name] === `object` || typeof entryModule[name] === `function` - ) - .map((name) => [name, entryModule[name]]) - .reduce((reserved, [name, value]) => { - const staticNames = - value && typeof value === 'object' - ? Object.getOwnPropertyNames(value).filter(isStaticOrProtoName) - : typeof value === 'function' - ? Object.getOwnPropertyNames(value).filter(isStaticOrProtoName) - : []; - - const instanceNames = ( - (typeof value === `function` && Object.getOwnPropertyNames(value.prototype || {})) || - [] - ).filter(isStaticOrProtoName); - - return [...reserved, { exportName: name, staticNames, instanceNames }]; - }, []); + const fn = function () { }; + const isStaticOrProtoName = (x) => ( + !(x in fn) && + (x !== `default`) && + (x !== `undefined`) && + (x !== `__esModule`) && + (x !== `constructor`) && + !(x.startsWith('_')) + ); + return Object + .getOwnPropertyNames(entryModule) + .filter((name) => name !== 'default') + .filter((name) => ( + typeof entryModule[name] === `object` || + typeof entryModule[name] === `function` + )) + .map((name) => [name, entryModule[name]]) + .reduce((reserved, [name, value]) => { + + const staticNames = value && + typeof value === 'object' ? Object.getOwnPropertyNames(value).filter(isStaticOrProtoName) : + typeof value === 'function' ? Object.getOwnPropertyNames(value).filter(isStaticOrProtoName) : []; + + const instanceNames = (typeof value === `function` && Object.getOwnPropertyNames(value.prototype || {}) || []).filter(isStaticOrProtoName); + + return [...reserved, { exportName: name, staticNames, instanceNames }]; + }, []); } diff --git a/gulp/compile-task.js b/gulp/compile-task.js index fdf65722..a1b3becb 100644 --- a/gulp/compile-task.js +++ b/gulp/compile-task.js @@ -1,39 +1,17 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - +import { Observable } from 'rxjs'; import { npmPkgName } from './util.js'; import { memoizeTask } from './memoize-task.js'; -import { empty as ObservableEmpty } from 'rxjs'; import closureTask from './closure-task.js'; import typescriptTask from './typescript-task.js'; import { copyMainTask, copyTSTask } from './copy-main-task.js'; -export const compileTask = ((cache) => - memoizeTask(cache, function compile(target, format, ...args) { - return target === `src` - ? ObservableEmpty() - : target === npmPkgName - ? copyMainTask(target, format, ...args)() - : target === `ts` - ? copyTSTask(target, format, ...args)() - : format === `umd` - ? closureTask(target, format, ...args)() - : typescriptTask(target, format, ...args)(); - }))({}); +const compileTask = ((cache) => memoizeTask(cache, function compile(target, format, ...args) { + return target === `src` ? Observable.empty() + : target === npmPkgName ? copyMainTask(target, format, ...args)() + : target === `ts` ? copyTSTask(target, format, ...args)() + : format === `umd` ? closureTask(target, format, ...args)() + : typescriptTask(target, format, ...args)(); +}))({}); export default compileTask; diff --git a/gulp/copy-main-task.js b/gulp/copy-main-task.js index 14fa3278..d09b32bc 100644 --- a/gulp/copy-main-task.js +++ b/gulp/copy-main-task.js @@ -1,84 +1,41 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - import { targetDir, observableFromStreams } from './util.js'; -import del from 'del'; import gulp from 'gulp'; -import { promisify } from 'util'; +import path from 'node:path'; +import { mkdirp } from 'mkdirp'; import gulpRename from 'gulp-rename'; import gulpReplace from 'gulp-replace'; import { memoizeTask } from './memoize-task.js'; -import * as childProcess from 'child_process'; -import { forkJoin as ObservableForkJoin, ReplaySubject } from 'rxjs'; -import { publish, refCount } from 'rxjs/operators/index.js'; - -const exec = promisify(childProcess.exec); +import { ReplaySubject, forkJoin as ObservableForkJoin } from 'rxjs'; +import { share } from 'rxjs/operators/index.js'; +import { pipeline } from 'stream/promises'; -export const copyMainTask = ((cache) => - memoizeTask(cache, function copyMain(target) { +export const copyMainTask = ((cache) => memoizeTask(cache, function copyMain(target) { const out = targetDir(target); - const dtsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.ts`; + const dtsGlob = `${targetDir(`es2015`, `esm`)}/**/*.ts`; const cjsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.js`; const esmGlob = `${targetDir(`es2015`, `esm`)}/**/*.js`; const es2015UmdGlob = `${targetDir(`es2015`, `umd`)}/*.js`; const esnextUmdGlob = `${targetDir(`esnext`, `umd`)}/*.js`; - const cjsSourceMapsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.map`; + const cjsSourceMapsGlob = `${targetDir(`es2015`, `cjs`)}/**/*.js.map`; const esmSourceMapsGlob = `${targetDir(`es2015`, `esm`)}/**/*.map`; const es2015UmdSourceMapsGlob = `${targetDir(`es2015`, `umd`)}/*.map`; const esnextUmdSourceMapsGlob = `${targetDir(`esnext`, `umd`)}/*.map`; - return ObservableForkJoin( - observableFromStreams(gulp.src(dtsGlob), gulp.dest(out)), // copy d.ts files - observableFromStreams(gulp.src(cjsGlob), gulp.dest(out)), // copy es2015 cjs files - observableFromStreams(gulp.src(cjsSourceMapsGlob), gulp.dest(out)), // copy es2015 cjs sourcemaps - observableFromStreams(gulp.src(esmSourceMapsGlob), gulp.dest(out)), // copy es2015 esm sourcemaps - observableFromStreams(gulp.src(es2015UmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename - observableFromStreams(gulp.src(esnextUmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename - observableFromStreams( - gulp.src(esmGlob), - gulpRename((p) => { - p.extname = '.mjs'; - }), - gulpReplace(`.js'`, `.mjs'`), - gulp.dest(out) - ), // copy es2015 esm files and rename to `.mjs` - observableFromStreams( - gulp.src(es2015UmdGlob), - gulpRename((p) => { - p.basename += `.es2015.min`; - }), - gulp.dest(out) - ), // copy es2015 umd files and add `.min` - observableFromStreams( - gulp.src(esnextUmdGlob), - gulpRename((p) => { - p.basename += `.esnext.min`; - }), - gulp.dest(out) - ) // copy esnext umd files and add `.esnext.min` - ).pipe(publish(new ReplaySubject()), refCount()); - }))({}); + return ObservableForkJoin([ + observableFromStreams(gulp.src(dtsGlob), gulp.dest(out)), // copy d.ts files + observableFromStreams(gulp.src(cjsGlob), gulp.dest(out)), // copy es2015 cjs files + observableFromStreams(gulp.src(cjsSourceMapsGlob), gulp.dest(out)), // copy es2015 cjs sourcemaps + observableFromStreams(gulp.src(esmSourceMapsGlob), gulpRename((p) => { p.basename = p.basename.replace('.js', '.mjs'); }), gulpReplace(`.js"`, `.mjs"`), gulp.dest(out)), // copy es2015 esm sourcemaps + observableFromStreams(gulp.src(es2015UmdSourceMapsGlob), gulp.dest(out)), // copy es2015 umd sourcemap files, but don't rename + observableFromStreams(gulp.src(esnextUmdSourceMapsGlob), gulp.dest(out)), // copy esnext umd sourcemap files, but don't rename + observableFromStreams(gulp.src(esmGlob), gulpRename((p) => { p.extname = '.mjs'; }), gulpReplace(`.js'`, `.mjs'`), gulpReplace(`.js.map`, `.mjs.map`), gulp.dest(out)), // copy es2015 esm files and rename to `.mjs` + observableFromStreams(gulp.src(es2015UmdGlob), gulpRename((p) => { p.basename += `.es2015.min`; }), gulp.dest(out)), // copy es2015 umd files and add `.es2015.min` + observableFromStreams(gulp.src(esnextUmdGlob), gulpRename((p) => { p.basename += `.esnext.min`; }), gulp.dest(out)), // copy esnext umd files and add `.esnext.min` + ]).pipe(share({ connector: () => new ReplaySubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })); +}))({}); -export const copyTSTask = ((cache) => - memoizeTask(cache, async function copyTS(target, format) { +export const copyTSTask = ((cache) => memoizeTask(cache, async function copyTS(target, format) { const out = targetDir(target, format); - await exec(`mkdirp ${out}`); - await exec(`shx cp -r src/* ${out}`); - await del(`${out}/**/*.js`); - }))({}); - -export default copyMainTask; + await mkdirp(path.join(out, 'bin')); + await pipeline(gulp.src(`src/**/*`), gulp.dest(out)); +}))({}); diff --git a/gulp/esm-require.cjs b/gulp/esm-require.cjs index e928f3c6..f4189835 100644 --- a/gulp/esm-require.cjs +++ b/gulp/esm-require.cjs @@ -1,20 +1,3 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - const esm = require('esm'); const esmRequire = esm(module, { diff --git a/gulp/memoize-task.js b/gulp/memoize-task.js index bc5502f2..61be72f2 100644 --- a/gulp/memoize-task.js +++ b/gulp/memoize-task.js @@ -1,36 +1,19 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - import { taskName } from './util.js'; -export const createTask = (taskFn) => (target, format, ...args) => { - // Give the memoized fn a displayName so gulp's output is easier to follow. - const fn = () => taskFn(target, format, ...args); - fn.displayName = `${taskFn.name || ``}:${taskName(target, format, ...args)}:task`; - return fn; -}; +export const createTask = ((taskFn) => ((target, format, ...args) => { + // Give the memoized fn a displayName so gulp's output is easier to follow. + const fn = () => taskFn(target, format, ...args); + fn.displayName = `${taskFn.name || ``}:${taskName(target, format, ...args)}:task`; + return fn; +})); -export const memoizeTask = (cache, taskFn) => (target, format, ...args) => { - // Give the memoized fn a displayName so gulp's output is easier to follow. - const fn = () => - cache[taskName(target, format)] || - (cache[taskName(target, format)] = taskFn(target, format, ...args)); - fn.displayName = `${taskFn.name || ``}:${taskName(target, format, ...args)}:task`; - return fn; -}; +export const memoizeTask = ((cache, taskFn) => ((target, format, ...args) => { + // Give the memoized fn a displayName so gulp's output is easier to follow. + const fn = () => ( + cache[taskName(target, format)] || ( + cache[taskName(target, format)] = taskFn(target, format, ...args))); + fn.displayName = `${taskFn.name || ``}:${taskName(target, format, ...args)}:task`; + return fn; +})); export default memoizeTask; diff --git a/gulp/package-task.js b/gulp/package-task.js index 15f7913f..83847145 100644 --- a/gulp/package-task.js +++ b/gulp/package-task.js @@ -1,125 +1,117 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import { - metadataFiles, - packageJSONFields, - mainExport, - npmPkgName, - npmOrgName, - targetDir, - packageName, - observableFromStreams, -} from './util.js'; +import { metadataFiles, packageJSONFields, mainExport, npmPkgName, npmOrgName, targetDir, packageName, observableFromStreams } from './util.js'; import gulp from 'gulp'; import { memoizeTask } from './memoize-task.js'; +import { ReplaySubject, EMPTY as ObservableEmpty, forkJoin as ObservableForkJoin } from 'rxjs'; +import { share } from 'rxjs/operators/index.js'; import gulpJsonTransform from 'gulp-json-transform'; -import { ReplaySubject, empty as ObservableEmpty, forkJoin as ObservableForkJoin } from 'rxjs'; - -import { publish, refCount } from 'rxjs/operators/index.js'; -export const packageTask = ((cache) => - memoizeTask(cache, function bundle(target, format) { +export const packageTask = ((cache) => memoizeTask(cache, function bundle(target, format) { if (target === `src`) return ObservableEmpty(); const out = targetDir(target, format); - const jsonTransform = gulpJsonTransform( - target === npmPkgName - ? createMainPackageJson(target, format) - : target === `ts` - ? createTypeScriptPackageJson(target, format) - : createScopedPackageJSON(target, format), - 2 - ); - return ObservableForkJoin( - observableFromStreams(gulp.src(metadataFiles), gulp.dest(out)), // copy metadata files - observableFromStreams(gulp.src(`package.json`), jsonTransform, gulp.dest(out)) // write packageJSONs - ).pipe(publish(new ReplaySubject()), refCount()); - }))({}); + const jsonTransform = gulpJsonTransform(target === npmPkgName ? createMainPackageJson(target, format) : + target === `ts` ? createTypeScriptPackageJson(target, format) + : createScopedPackageJSON(target, format), + 2); + return ObservableForkJoin([ + observableFromStreams(gulp.src(metadataFiles), gulp.dest(out)), // copy metadata files + observableFromStreams(gulp.src(`package.json`), jsonTransform, gulp.dest(out)) // write packageJSONs + ]).pipe(share({ connector: () => new ReplaySubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })); +}))({}); export default packageTask; const createMainPackageJson = (target, format) => (orig) => ({ - ...createTypeScriptPackageJson(target, format)(orig), - bin: orig.bin, - name: npmPkgName, - type: 'commonjs', - main: `${mainExport}.node.js`, - module: `${mainExport}.node.mjs`, - browser: { - [`./${mainExport}.node.js`]: `./${mainExport}.dom.js`, - [`./${mainExport}.node.mjs`]: `./${mainExport}.dom.mjs`, - }, - exports: { - '.': { - node: { - import: `./${mainExport}.node.mjs`, - require: `./${mainExport}.node.js`, - }, - import: `./${mainExport}.dom.mjs`, - require: `./${mainExport}.dom.js`, + ...createTypeScriptPackageJson(target, format)(orig), + bin: orig.bin, + name: npmPkgName, + type: 'commonjs', + main: `${mainExport}.node.js`, + module: `${mainExport}.node.mjs`, + types: `${mainExport}.node.d.ts`, + unpkg: `${mainExport}.es2015.min.js`, + jsdelivr: `${mainExport}.es2015.min.js`, + browser: { + [`./${mainExport}.node.js`]: `./${mainExport}.dom.js`, + [`./${mainExport}.node.mjs`]: `./${mainExport}.dom.mjs` }, - './*': { - import: `./*.mjs`, - require: `./*.js`, + exports: { + '.': { + node: { + import: { + types: `./${mainExport}.node.d.ts`, + default: `./${mainExport}.node.mjs`, + }, + require: { + types: `./${mainExport}.node.d.ts`, + default: `./${mainExport}.node.js`, + }, + }, + import: { + types: `./${mainExport}.dom.d.ts`, + default: `./${mainExport}.dom.mjs`, + }, + require: { + types: `./${mainExport}.dom.d.ts`, + default: `./${mainExport}.dom.js`, + } + }, + './*': { + import: { + types: `./*.d.ts`, + default: `./*.mjs`, + }, + require: { + types: `./*.d.ts`, + default: `./*.js`, + }, + }, }, - }, - types: `${mainExport}.node.d.ts`, - unpkg: `${mainExport}.dom.es2015.min.js`, - jsdelivr: `${mainExport}.dom.es2015.min.js`, - sideEffects: false, - esm: { mode: `all`, sourceMap: true }, + sideEffects: false, + esm: { mode: `all`, sourceMap: true } }); const createTypeScriptPackageJson = (target, format) => (orig) => ({ - ...createScopedPackageJSON(target, format)(orig), - bin: undefined, - main: `${mainExport}.node.ts`, - module: `${mainExport}.node.ts`, - types: `${mainExport}.node.ts`, - browser: `${mainExport}.dom.ts`, - type: 'module', - dependencies: { - '@types/node': '*', - ...orig.dependencies, - }, + ...createScopedPackageJSON(target, format)(orig), + bin: undefined, + main: `${mainExport}.node.ts`, + module: `${mainExport}.node.ts`, + types: `${mainExport}.node.ts`, + browser: `${mainExport}.dom.ts`, + type: 'module', + sideEffects: false, + esm: { mode: `auto`, sourceMap: true }, + dependencies: { + '@types/node': '*', + ...orig.dependencies + } }); -const createScopedPackageJSON = (target, format) => ({ name, ...orig }) => - packageJSONFields.reduce((xs, key) => ({ ...xs, [key]: xs[key] || orig[key] }), { - // un-set version, since it's automatically applied during the release process - version: undefined, - // set the scoped package name (e.g. "@apache-arrow/esnext-esm") - name: `${npmOrgName}/${npmPkgName}-${packageName(target, format)}`, - // set "unpkg"/"jsdeliver" if building scoped UMD target - unpkg: format === 'umd' ? `${mainExport}.dom.js` : undefined, - jsdelivr: format === 'umd' ? `${mainExport}.dom.js` : undefined, - // set "browser" if building scoped UMD target, otherwise "Arrow.dom" - browser: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.dom.js`, - // set "main" to "Arrow" if building scoped UMD target, otherwise "Arrow.node" - main: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.node.js`, - // set "type" to `module` or `commonjs` (https://nodejs.org/api/packages.html#packages_type) - type: format === 'esm' ? `module` : `commonjs`, - // set "module" (for https://www.npmjs.com/package/@pika/pack) if building scoped ESM target - module: format === 'esm' ? `${mainExport}.dom.js` : undefined, - // set "sideEffects" to false as a hint to Webpack that it's safe to tree-shake the ESM target - sideEffects: format === 'esm' ? false : undefined, - // include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target - esm: format === `esm` ? { mode: `auto`, sourceMap: true } : undefined, - // set "types" (for TypeScript/VSCode) - types: format === 'umd' ? undefined : `${mainExport}.node.d.ts`, - }); +const createScopedPackageJSON = (target, format) => (({ name, ...orig }) => + packageJSONFields.reduce( + (xs, key) => ({ ...xs, [key]: xs[key] || orig[key] }), + { + // un-set version, since it's automatically applied during the release process + version: undefined, + // set the scoped package name (e.g. "@reactivex/ix-esnext-esm") + name: `${npmOrgName}/${packageName(target, format)}`, + // set "unpkg"/"jsdeliver" if building scoped UMD target + unpkg: format === 'umd' ? `${mainExport}.js` : undefined, + jsdelivr: format === 'umd' ? `${mainExport}.js` : undefined, + // set "browser" if building scoped UMD target, otherwise "Ix.dom" + browser: format === 'umd' ? `${mainExport}.js` : `${mainExport}.dom.js`, + // set "main" to "Ix" if building scoped UMD target, otherwise "Ix.node" + main: format === 'umd' ? `${mainExport}.js` : `${mainExport}.node.js`, + // set "type" to `module` or `commonjs` (https://nodejs.org/api/packages.html#packages_type) + type: format === 'esm' ? `module` : `commonjs`, + // set "module" if building scoped ESM target + module: format === 'esm' ? `${mainExport}.node.js` : undefined, + // set "sideEffects" to false as a hint to Webpack that it's safe to tree-shake the ESM target + sideEffects: format === 'esm' ? false : undefined, + // include "esm" settings for https://www.npmjs.com/package/esm if building scoped ESM target + esm: format === `esm` ? { mode: `auto`, sourceMap: true } : undefined, + // set "types" to "Ix.dom" if building scoped UMD target, otherwise "Ix.node" + types: format === 'umd' ? `${mainExport}.dom.d.ts` : `${mainExport}.node.d.ts`, + } + ) +); diff --git a/gulp/test-task.js b/gulp/test-task.js index 89ce6c98..fda45db1 100644 --- a/gulp/test-task.js +++ b/gulp/test-task.js @@ -1,73 +1,58 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import * as path from 'path'; +import path from 'node:path'; import { argv } from './argv.js'; -import child_process from 'child_process'; +import { promisify } from 'node:util'; +import child_process from 'node:child_process'; import { memoizeTask } from './memoize-task.js'; -import { npmPkgName, targetAndModuleCombinations } from './util.js'; -import { promisify } from 'util'; -import asyncDone_ from 'async-done'; -const asyncDone = promisify(asyncDone_); +import asyncDoneSync from 'async-done'; +const asyncDone = promisify(asyncDoneSync); +import { targetAndModuleCombinations, npmPkgName } from './util.js'; +import { createRequire } from 'node:module'; -import { createRequire } from 'module'; const require = createRequire(import.meta.url); -const jestArgv = [`--reporters=jest-silent-reporter`]; +const jestArgv = []; if (argv.verbose) { - jestArgv.push(`--verbose`); + jestArgv.push(`--verbose`); +} else { + jestArgv.push(`--reporters=jest-silent-reporter`); } if (targetAndModuleCombinations.length > 1) { - jestArgv.push(`--detectOpenHandles`, `--no-cache`); + jestArgv.push(`--detectOpenHandles`); } const jest = path.join(path.parse(require.resolve(`jest`)).dir, `../bin/jest.js`); const testOptions = { - stdio: [`ignore`, `inherit`, `inherit`], - env: { - ...process.env, - // hide fs.promises/stream[Symbol.asyncIterator] warnings - NODE_NO_WARNINGS: `1`, - // TS_JEST_DISABLE_VER_CHECKER: true - }, + stdio: [`ignore`, `inherit`, `inherit`], + env: { + ...process.env, + // hide fs.promises/stream[Symbol.asyncIterator] warnings + NODE_NO_WARNINGS: `1`, + }, }; -export const testTask = ((cache, execArgv, testOptions) => - memoizeTask(cache, function test(target, format) { - const args = [...execArgv]; +export const testTask = ((cache, execArgv, testOptions) => memoizeTask(cache, function test(target, format) { const opts = { ...testOptions }; + const args = [...execArgv]; if (format === 'esm' || target === 'ts' || target === 'src' || target === npmPkgName) { - args.unshift(`--experimental-vm-modules`); + args.unshift(`--experimental-vm-modules`); } if (argv.coverage) { - args.push(`-c`, `jest.coverage.config.js`, `--coverage`); + args.push(`-c`, `jestconfigs/jest.coverage.config.js`); } else { - const cfgname = [target, format].filter(Boolean).join('.'); - // args.push(`--verbose`, `--no-cache`, `-i`); - args.push(`-c`, `jestconfigs/jest.${cfgname}.config.js`, ...argv.tests); + const cfgname = [target, format].filter(Boolean).join('.'); + args.push(`-c`, `jestconfigs/jest.${cfgname}.config.js`); } + args.push(...(argv._unknown || [])); + args.push(...argv.tests); opts.env = { - ...opts.env, - TEST_DOM_STREAMS: (target === 'src' || format === 'umd').toString(), - TEST_NODE_STREAMS: (target === 'src' || format !== 'umd').toString(), + ...opts.env, + TEST_TARGET: target, + TEST_MODULE: format, + TEST_DOM_STREAMS: (target === 'src' || format === 'umd').toString(), + TEST_NODE_STREAMS: (target === 'src' || format !== 'umd').toString(), + TEST_TS_SOURCE: !!argv.coverage || (target === 'src') || (opts.env.TEST_TS_SOURCE === 'true') }; return asyncDone(() => child_process.spawn(`node`, args, opts)); - }))({}, [jest, ...jestArgv], testOptions); - -export default testTask; +}))({}, [jest, ...jestArgv], testOptions); diff --git a/gulp/typescript-task.js b/gulp/typescript-task.js index ef52dd84..d390904a 100644 --- a/gulp/typescript-task.js +++ b/gulp/typescript-task.js @@ -1,82 +1,44 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import { - targetDir, - tsconfigName, - observableFromStreams, - shouldRunInChildProcess, - spawnGulpCommandInChildProcess, -} from './util.js'; +import { targetDir, tsconfigName, observableFromStreams, shouldRunInChildProcess, spawnGulpCommandInChildProcess } from './util.js'; import gulp from 'gulp'; -import path from 'path'; +import path from 'node:path'; import tsc from 'typescript'; import ts from 'gulp-typescript'; import sourcemaps from 'gulp-sourcemaps'; import { memoizeTask } from './memoize-task.js'; -import { ReplaySubject, forkJoin as ObservableForkJoin } from 'rxjs'; - -import { takeLast, publish, refCount } from 'rxjs/operators/index.js'; +import { ReplaySubject, forkJoin as ObservableForkJoin, defer as ObservableDefer } from 'rxjs'; +import { takeLast, share, concat } from 'rxjs/operators/index.js'; -export const typescriptTask = ((cache) => - memoizeTask(cache, function typescript(target, format) { +export const typescriptTask = ((cache) => memoizeTask(cache, function typescript(target, format) { if (shouldRunInChildProcess(target, format)) { - return spawnGulpCommandInChildProcess('compile', target, format); + return spawnGulpCommandInChildProcess('compile', target, format); } const out = targetDir(target, format); const tsconfigPath = path.join(`tsconfig`, `tsconfig.${tsconfigName(target, format)}.json`); - return compileTypescript(out, tsconfigPath).pipe( - takeLast(1), - publish(new ReplaySubject()), - refCount() - ); - }))({}); + return compileTypescript(out, tsconfigPath) + .pipe(takeLast(1)) + .pipe(share({ connector: () => new ReplaySubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })) +}))({}); -function compileTypescript(out, tsconfigPath, tsconfigOverrides) { - const tsProject = ts.createProject(tsconfigPath, { typescript: tsc, ...tsconfigOverrides }); - const { - stream: { js, dts }, - } = observableFromStreams( - tsProject.src(), - sourcemaps.init(), - tsProject(ts.reporter.defaultReporter()) - ); - const writeSources = observableFromStreams(tsProject.src(), gulp.dest(path.join(out, 'src'))); - const writeDTypes = observableFromStreams( - dts, - sourcemaps.write('./', { includeContent: false, sourceRoot: './src' }), - gulp.dest(out) - ); - const mapFile = tsProject.options.module === tsc.ModuleKind.ES2015 ? esmMapFile : cjsMapFile; - const writeJS = observableFromStreams( - js, - sourcemaps.write('./', { mapFile, includeContent: false, sourceRoot: './src' }), - gulp.dest(out) - ); - return ObservableForkJoin(writeSources, writeDTypes, writeJS); -} +export default typescriptTask; -function cjsMapFile(mapFilePath) { - return mapFilePath; -} -function esmMapFile(mapFilePath) { - return mapFilePath.replace('.js.map', '.mjs.map'); +function compileTypescript(out, tsconfigPath, tsconfigOverrides, writeSourcemaps = true) { + const tsProject = ts.createProject(tsconfigPath, { typescript: tsc, ...tsconfigOverrides }); + const { stream: { js, dts } } = observableFromStreams( + tsProject.src(), sourcemaps.init(), + tsProject(ts.reporter.defaultReporter()) + ); + const writeSources = observableFromStreams(tsProject.src(), gulp.dest(path.join(out, 'src'))); + const writeDTypes = observableFromStreams(dts, sourcemaps.write('./', { includeContent: false, sourceRoot: './src' }), gulp.dest(out)); + const writeJSArgs = writeSourcemaps ? [ + js, + sourcemaps.write('./', { includeContent: false, sourceRoot: './src' }), + gulp.dest(out) + ] : [ + js, + gulp.dest(out) + ]; + const writeJS = observableFromStreams(...writeJSArgs); + return ObservableForkJoin([writeSources, writeDTypes, writeJS]); } - -export default typescriptTask; diff --git a/gulp/util.js b/gulp/util.js index 6b36cc16..508bed01 100644 --- a/gulp/util.js +++ b/gulp/util.js @@ -1,50 +1,19 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import fs from 'fs'; -import path from 'path'; -import { pipeline as pump } from 'stream'; -import child_process from 'child_process'; +import fs from 'node:fs'; +import path from 'node:path'; +import child_process from 'node:child_process'; +import stream from 'node:stream'; +import util from 'node:util'; +import asyncDoneSync from 'async-done'; +const pump = stream.pipeline; import { targets, modules } from './argv.js'; -import { - ReplaySubject, - empty as ObservableEmpty, - throwError as ObservableThrow, - fromEvent as ObservableFromEvent, -} from 'rxjs'; -import { - merge, - flatMap, - takeUntil, - defaultIfEmpty, - multicast, - refCount, -} from 'rxjs/operators/index.js'; - -import { promisify } from 'util'; -import asyncDone_ from 'async-done'; +import { ReplaySubject, empty as ObservableEmpty, throwError as ObservableThrow, fromEvent as ObservableFromEvent } from 'rxjs'; +import { share, flatMap, takeUntil, defaultIfEmpty, merge } from 'rxjs/operators/index.js'; +const asyncDone = util.promisify(asyncDoneSync); +import { createRequire } from 'node:module'; +import esmRequire from './esm-require.cjs' -import { createRequire } from 'module'; const require = createRequire(import.meta.url); -import esmRequire from './esm-require.cjs'; - -const asyncDone = promisify(asyncDone_); - const mainExport = `Ix`; const npmPkgName = `ix`; const npmOrgName = `@reactivex`; @@ -53,237 +22,140 @@ const releasesRootDir = `targets`; const knownTargets = [`es5`, `es2015`, `esnext`]; const knownModules = [`cjs`, `esm`, `cls`, `umd`]; const tasksToSkipPerTargetOrFormat = { - src: { clean: true, build: true }, - cls: { test: true, package: true }, + src: { clean: true, build: true }, + cls: { test: true, package: true } }; const packageJSONFields = [ - `version`, - `license`, - `description`, - `author`, - `homepage`, - `repository`, - `bugs`, - `keywords`, - `dependencies`, + `version`, `license`, `description`, + `author`, `homepage`, `repository`, + `bugs`, `keywords`, `dependencies`, + `bin` ]; const metadataFiles = [`LICENSE`, `readme.md`, `CHANGELOG.md`].map((filename) => { - let err = false, - prefixes = [`./`, `../`]; - let p = prefixes.find((prefix) => { - try { - fs.statSync(path.resolve(path.join(prefix, filename))); - } catch (e) { - return false; + const prefixes = [`./`, `../`]; + const p = prefixes.find((prefix) => { + try { + fs.statSync(path.resolve(path.join(prefix, filename))); + } catch (e) { return false; } + return true; + }); + if (!p) { + throw new Error(`Couldn't find ${filename} in ./ or ../`); } - return true; - }); - if (!p) { - throw new Error(`Couldn't find ${filename} in ./ or ../`); - } - return path.join(p, filename); + return path.join(p, filename); }); // see: https://github.com/google/closure-compiler/blob/c1372b799d94582eaf4b507a4a22558ff26c403c/src/com/google/javascript/jscomp/CompilerOptions.java#L2988 const gCCLanguageNames = { - es5: `ECMASCRIPT5`, - es2015: `ECMASCRIPT_2015`, - es2016: `ECMASCRIPT_2016`, - es2017: `ECMASCRIPT_2017`, - esnext: `ECMASCRIPT_NEXT`, + es5: `ECMASCRIPT5`, + es2015: `ECMASCRIPT_2015`, + es2016: `ECMASCRIPT_2016`, + es2017: `ECMASCRIPT_2017`, + es2018: `ECMASCRIPT_2018`, + es2019: `ECMASCRIPT_2019`, + esnext: `ECMASCRIPT_NEXT` }; -const UMDSourceTargets = { - es5: `es5`, - es2015: `es2015`, - es2016: `es2015`, - es2017: `es2015`, - esnext: `esnext`, -}; - -const terserLanguageNames = { - es5: 5, - es2015: 6, - es2016: 7, - es2017: 8, - esnext: 8, // <--- ? -}; - -// ES7+ keywords Terser shouldn't mangle -// Hardcoded here since some are from ES7+, others are -// only defined in interfaces, so difficult to get by reflection. -const ESKeywords = [ - // GroupedIterable/GroupedAsyncIterable - `key`, - // PropertyDescriptors - `configurable`, - `enumerable`, - // IteratorResult, Symbol.asyncIterator - `done`, - `value`, - `Symbol.asyncIterator`, - `asyncIterator`, - // AsyncObserver - `values`, - `hasError`, - `hasCompleted`, - `errorValue`, - `closed`, - // Observable/Subscription/Scheduler - `next`, - `error`, - `complete`, - `subscribe`, - `unsubscribe`, - `isUnsubscribed`, - // EventTarget - `addListener`, - `removeListener`, - `addEventListener`, - `removeEventListener`, - // AbortController - `AbortController`, - `AbortSignal`, - `AbortError`, -]; - function taskName(target, format) { - return !format ? target : `${target}:${format}`; + return !format ? target : `${target}:${format}`; } function packageName(target, format) { - return !format ? target : `${target}-${format}`; + return !format ? target : `${target}-${format}`; } function tsconfigName(target, format) { - return !format ? target : `${target}.${format}`; + return !format ? target : `${target}.${format}`; } function targetDir(target, format) { - return path.join(releasesRootDir, ...(!format ? [target] : [target, format])); + return path.join(releasesRootDir, ...(!format ? [target] : [target, format])); } function shouldRunInChildProcess(target, format) { - // If we're building more than one module/target, then yes run this task in a child process - if (targets.length > 1 || modules.length > 1) { - return true; - } - // If the target we're building *isn't* the target the gulp command was configured to run, then yes run that in a child process - if (targets[0] !== target || modules[0] !== format) { - return true; - } - // Otherwise no need -- either gulp was run for just one target, or we've been spawned as the child of a multi-target parent gulp - return false; + // If we're building more than one module/target, then yes run this task in a child process + if (targets.length > 1 || modules.length > 1) { return true; } + // If the target we're building *isn't* the target the gulp command was configured to run, then yes run that in a child process + if (targets[0] !== target || modules[0] !== format) { return true; } + // Otherwise no need -- either gulp was run for just one target, or we've been spawned as the child of a multi-target parent gulp + return false; } const gulp = path.join(path.parse(require.resolve(`gulp`)).dir, `bin/gulp.js`); function spawnGulpCommandInChildProcess(command, target, format) { - const err = []; - return asyncDone(() => { - const child = child_process.spawn(`node`, [gulp, command, '-t', target, '-m', format, `-L`], { - stdio: [`ignore`, `ignore`, `pipe`], - env: { ...process.env, NODE_NO_WARNINGS: `1` }, - }); - child.stderr.on('data', (line) => err.push(line)); - return child; - }).catch(() => - Promise.reject( - err.length > 0 ? err.join('\n') : `Error in "${command}:${taskName(target, format)}" task.` - ) - ); + const err = []; + return asyncDone(() => { + const child = child_process.spawn( + `node`, + [gulp, command, '-t', target, '-m', format, `-L`], + { + stdio: [`ignore`, `ignore`, `pipe`], + env: { ...process.env, NODE_NO_WARNINGS: `1` } + }); + child.stderr.on('data', (line) => err.push(line)); + return child; + }).catch(() => Promise.reject(err.length > 0 ? err.join('\n') + : `Error in "${command}:${taskName(target, format)}" task.`)); } -const logAndDie = (e) => { - if (e) { - console.error(e); - process.exit(1); - } -}; +const logAndDie = (e) => { if (e) { console.error(e); process.exit(1); } }; function observableFromStreams(...streams) { - if (streams.length <= 0) { - return ObservableEmpty(); - } - const pumped = streams.length <= 1 ? streams[0] : pump(...streams, logAndDie); - const fromEvent = ObservableFromEvent.bind(null, pumped); - const streamObs = fromEvent(`data`).pipe( - merge(fromEvent(`error`).pipe(flatMap((e) => ObservableThrow(e)))), - takeUntil(fromEvent(`end`).pipe(merge(fromEvent(`close`)))), - defaultIfEmpty(`empty stream`), - multicast(new ReplaySubject()), - refCount() - ); - streamObs.stream = pumped; - streamObs.observable = streamObs; - return streamObs; + if (streams.length <= 0) { return ObservableEmpty(); } + const pumped = streams.length <= 1 ? streams[0] : pump(...streams, logAndDie); + const fromEvent = ObservableFromEvent.bind(null, pumped); + const streamObs = fromEvent(`data`).pipe( + merge(fromEvent(`error`).pipe(flatMap((e) => ObservableThrow(e)))), + takeUntil(fromEvent(`end`).pipe(merge(fromEvent(`close`)))), + defaultIfEmpty(`empty stream`), + share({ connector: () => new ReplaySubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) + ); + streamObs.stream = pumped; + streamObs.observable = streamObs; + return streamObs; } function* combinations(_targets, _modules) { - const targets = known(knownTargets, _targets || [`all`]); - const modules = known(knownModules, _modules || [`all`]); + const targets = known(knownTargets, _targets || [`all`]); + const modules = known(knownModules, _modules || [`all`]); - if (_targets.indexOf(`src`) > -1) { - yield [`src`, ``]; - return; - } + if (_targets.includes(`src`)) { + yield [`src`, ``]; + return; + } - if (_targets.indexOf(`all`) > -1 && _modules.indexOf(`all`) > -1) { - yield [`ts`, ``]; - yield [`src`, ``]; - yield [npmPkgName, ``]; - } + if (_targets.includes(`all`) && _modules.includes(`all`)) { + yield [`ts`, ``]; + yield [`src`, ``]; + yield [npmPkgName, ``]; + } - for (const format of modules) { - for (const target of targets) { - yield [target, format]; + for (const format of modules) { + for (const target of targets) { + yield [target, format]; + } } - } - function known(known, values) { - return ~values.indexOf(`all`) - ? known - : ~values.indexOf(`src`) - ? [`src`] - : Object.keys( - values.reduce( - (map, arg) => - ((known.indexOf(arg) !== -1 && (map[arg.toLowerCase()] = true)) || true) && map, - {} - ) - ).sort((a, b) => known.indexOf(a) - known.indexOf(b)); - } + function known(known, values) { + return values.includes(`all`) ? known + : values.includes(`src`) ? [`src`] + : Object.keys( + values.reduce((map, arg) => (( + (known.includes(arg)) && + (map[arg.toLowerCase()] = true) + || true) && map + ), {}) + ).sort((a, b) => known.indexOf(a) - known.indexOf(b)); + } } -const getUMDExportName = (umdEntryFileName) => - umdEntryFileName - .split('.') - .filter((x) => x != 'dom') - .map((x) => x[0].toUpperCase() + x.slice(1)) - .join(''); - export { - mainExport, - npmPkgName, - npmOrgName, - metadataFiles, - packageJSONFields, - knownTargets, - knownModules, - tasksToSkipPerTargetOrFormat, - gCCLanguageNames, - UMDSourceTargets, - terserLanguageNames, - taskName, - packageName, - tsconfigName, - targetDir, - combinations, - observableFromStreams, - ESKeywords, - esmRequire, - shouldRunInChildProcess, - spawnGulpCommandInChildProcess, - getUMDExportName, + mainExport, npmPkgName, npmOrgName, metadataFiles, packageJSONFields, + + knownTargets, knownModules, tasksToSkipPerTargetOrFormat, gCCLanguageNames, + + taskName, packageName, tsconfigName, targetDir, combinations, observableFromStreams, + esmRequire, shouldRunInChildProcess, spawnGulpCommandInChildProcess, }; export const targetAndModuleCombinations = [...combinations(targets, modules)]; diff --git a/gulpfile.js b/gulpfile.js index 895d8742..ef97ec95 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,98 +1,61 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import * as os from 'os'; -import del from 'del'; +import { deleteAsync as del } from 'del'; +import os from 'os'; import gulp from 'gulp'; +import { targets } from './gulp/argv.js'; import { from as ObservableFrom, bindNodeCallback as ObservableBindNodeCallback } from 'rxjs'; -import { flatMap } from 'rxjs/operators/index.js'; +import { mergeMap } from 'rxjs/operators/index.js'; import cleanTask from './gulp/clean-task.js'; -import { testTask } from './gulp/test-task.js'; import compileTask from './gulp/compile-task.js'; import packageTask from './gulp/package-task.js'; -import { targets, modules } from './gulp/argv.js'; +import { testTask } from './gulp/test-task.js'; import { esbuildTask, rollupTask, webpackTask, execBundleTask } from './gulp/bundle-task.js'; -import { - taskName, - combinations, - targetDir, - knownTargets, - npmPkgName, - UMDSourceTargets, - tasksToSkipPerTargetOrFormat, -} from './gulp/util.js'; +import { taskName, combinations, targetDir, knownTargets, npmPkgName, tasksToSkipPerTargetOrFormat, targetAndModuleCombinations } from './gulp/util.js'; for (const [target, format] of combinations([`all`], [`all`])) { - const task = taskName(target, format); - gulp.task(`clean:${task}`, cleanTask(target, format)); - gulp.task(`test:${task}`, testTask(target, format)); - gulp.task(`compile:${task}`, compileTask(target, format)); - gulp.task(`package:${task}`, packageTask(target, format)); - gulp.task(`build:${task}`, gulp.series(`clean:${task}`, `compile:${task}`, `package:${task}`)); + const task = taskName(target, format); + gulp.task(`clean:${task}`, cleanTask(target, format)); + gulp.task(`test:${task}`, testTask(target, format)); + gulp.task(`compile:${task}`, compileTask(target, format)); + gulp.task(`package:${task}`, packageTask(target, format)); + gulp.task(`build:${task}`, gulp.series( + `clean:${task}`, `compile:${task}`, `package:${task}` + )); } // The UMD bundles build temporary es5/6/next targets via TS, // then run the TS source through either closure-compiler or // a minifier, so we special case that here. knownTargets.forEach((target) => { - const umd = taskName(target, `umd`); - const cls = taskName(UMDSourceTargets[target], `cls`); - gulp.task( - `build:${umd}`, - gulp.series( - `build:${cls}`, - `clean:${umd}`, - `compile:${umd}`, - `package:${umd}`, - function remove_closure_tmp_files() { - return del(targetDir(target, `cls`)); - } - ) - ); + const umd = taskName(target, `umd`); + const cls = taskName(target, `cls`); + gulp.task(`build:${umd}`, gulp.series( + `build:${cls}`, + `clean:${umd}`, `compile:${umd}`, `package:${umd}`, + function remove_closure_tmp_files() { + return del(targetDir(target, `cls`)) + } + )); }); -// The main "ix" module builds the es5/umd, es2015/cjs, -// es2015/esm, and es2015/umd targets, then copies and renames the -// compiled output into the ix folder -gulp.task( - `build:${npmPkgName}`, - gulp.series( - gulp.parallel( - `build:${taskName(`es5`, `umd`)}`, - `build:${taskName(`esnext`, `cjs`)}`, - `build:${taskName(`esnext`, `esm`)}`, - `build:${taskName(`esnext`, `umd`)}` - ), - `clean:${npmPkgName}`, - `compile:${npmPkgName}`, - `package:${npmPkgName}` - ) -); +gulp.task(`build:ts`, gulp.series( + `build:es5:umd`, `clean:ts`, `compile:ts`, `package:ts` +)); -gulp.task(`bundle:esbuild`, esbuildTask()); -gulp.task(`bundle:rollup`, rollupTask()); -gulp.task(`bundle:webpack`, webpackTask()); -gulp.task(`bundle:webpack:analyze`, webpackTask({ analyze: true })); -gulp.task(`bundle:clean`, () => del(`test/bundle/**/*-bundle.js`)); -gulp.task(`bundle:exec`, execBundleTask()); - -gulp.task( - `bundle`, - gulp.series(`bundle:clean`, `bundle:esbuild`, `bundle:rollup`, `bundle:webpack`, `bundle:exec`) +// The main "ix" module builds the es2015/umd, es2015/cjs, +// es2015/esm, and esnext/umd targets, then copies and renames the +// compiled output into the ix folder +gulp.task(`build:${npmPkgName}`, + gulp.series( + gulp.parallel( + `build:${taskName(`es2015`, `umd`)}`, + `build:${taskName(`es2015`, `cjs`)}`, + `build:${taskName(`es2015`, `esm`)}`, + `build:${taskName(`esnext`, `umd`)}` + ), + `clean:${npmPkgName}`, + `compile:${npmPkgName}`, + `package:${npmPkgName}` + ) ); // And finally the global composite tasks @@ -103,23 +66,28 @@ gulp.task(`compile`, gulpConcurrent(getTasks(`compile`))); gulp.task(`package`, gulpConcurrent(getTasks(`package`))); gulp.task(`default`, gulp.series(`clean`, `build`, `test`)); +gulp.task(`bundle:esbuild`, esbuildTask()); +gulp.task(`bundle:rollup`, rollupTask()); +gulp.task(`bundle:webpack`, webpackTask()); +gulp.task(`bundle:webpack:analyze`, webpackTask({ analyze: true })); +gulp.task(`bundle:clean`, () => del(`test/bundle/**/*-bundle.js`)); +gulp.task(`bundle:exec`, execBundleTask()); + +gulp.task(`bundle`, gulp.series(`bundle:clean`, `bundle:esbuild`, `bundle:rollup`, `bundle:webpack`, `bundle:exec`)); + function gulpConcurrent(tasks, numCPUs = Math.max(1, os.cpus().length * 0.5) | 0) { - return () => - ObservableFrom(tasks.map((task) => gulp.series(task))).pipe( - flatMap((task) => ObservableBindNodeCallback(task)(), numCPUs || 1) - ); + return () => ObservableFrom(tasks.map((task) => gulp.series(task))) + .pipe(mergeMap((task) => ObservableBindNodeCallback(task)(), numCPUs || 1)); } function getTasks(name) { - const tasks = []; - if (targets.indexOf(`ts`) !== -1) tasks.push(`${name}:ts`); - if (targets.indexOf(npmPkgName) !== -1) tasks.push(`${name}:${npmPkgName}`); - for (const [target, format] of combinations(targets, modules)) { - if (tasksToSkipPerTargetOrFormat[target] && tasksToSkipPerTargetOrFormat[target][name]) - continue; - if (tasksToSkipPerTargetOrFormat[format] && tasksToSkipPerTargetOrFormat[format][name]) - continue; - tasks.push(`${name}:${taskName(target, format)}`); - } - return (tasks.length && tasks) || [(done) => done()]; + const tasks = []; + if (targets.includes(`ts`)) tasks.push(`${name}:ts`); + if (targets.includes(npmPkgName)) tasks.push(`${name}:${npmPkgName}`); + for (const [target, format] of targetAndModuleCombinations) { + if (tasksToSkipPerTargetOrFormat[target] && tasksToSkipPerTargetOrFormat[target][name]) continue; + if (tasksToSkipPerTargetOrFormat[format] && tasksToSkipPerTargetOrFormat[format][name]) continue; + tasks.push(`${name}:${taskName(target, format)}`); + } + return tasks.length && tasks || [(done) => done()]; } diff --git a/index.cjs b/index.cjs new file mode 100644 index 00000000..7269c624 --- /dev/null +++ b/index.cjs @@ -0,0 +1 @@ +module.exports = require('./targets/ix'); diff --git a/index.mjs b/index.mjs new file mode 100644 index 00000000..56015775 --- /dev/null +++ b/index.mjs @@ -0,0 +1 @@ +export * from './targets/ix/Ix.node.mjs'; diff --git a/index.ts b/index.ts new file mode 100644 index 00000000..809226ff --- /dev/null +++ b/index.ts @@ -0,0 +1 @@ +export * from './src/Ix.node.ts'; diff --git a/jest.config.js b/jest.config.js index a3c04f78..36ca7159 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,56 +1,45 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - export default { - verbose: false, - testEnvironment: 'node', - rootDir: '.', - roots: ['/spec/'], - cacheDirectory: '.jest-cache', - extensionsToTreatAsEsm: ['.ts'], - moduleFileExtensions: ['js', 'mjs', 'ts'], - coverageReporters: ['lcov'], - coveragePathIgnorePatterns: ['spec\\/.*\\.(ts|tsx|js)$', '/node_modules/'], - moduleNameMapper: { - '^ix$': '/src/Ix.node', - '^ix(.*)': '/src$1', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - testRegex: '(.*(-|\\.)(test|spec)s?)\\.(ts|tsx|js)$', - transform: { - '^.+\\.jsx?$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: 'spec/tsconfig.json', - useESM: true, - }, + verbose: false, + testEnvironment: 'node', + rootDir: '.', + roots: [ + '/spec/', ], - '^.+\\.tsx?$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: 'spec/tsconfig.json', - useESM: true, - }, + cacheDirectory: '.jest-cache', + extensionsToTreatAsEsm: ['.ts'], + moduleFileExtensions: ['js', 'mjs', 'ts'], + coverageProvider: 'v8', + coverageReporters: ['lcov', 'json', ['text', { skipFull: true }]], + coveragePathIgnorePatterns: [ + 'spec\\/.*\\.(ts|js)$', + '/node_modules/', + ], + moduleNameMapper: { + '^ix$': '/src/Ix.node', + '^ix(.*)': '/src$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + testRegex: '(.*(-|\\.)spec)\\.(ts|js)$', + transform: { + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: 'spec/tsconfig.json', + useESM: true, + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: 'spec/tsconfig.json', + useESM: true, + }, + ], + }, + transformIgnorePatterns: [ + '/targets/(es5|es2015|esnext|ix)/', + '/node_modules/(?!@openpgp/web-stream-tools)/', ], - }, - transformIgnorePatterns: [ - '/targets/(es5|es2015|esnext|ix)/', - '/node_modules/(?!@openpgp/web-stream-tools)/', - ], }; diff --git a/jest.coverage.config.js b/jest.coverage.config.js deleted file mode 100644 index 8aec960f..00000000 --- a/jest.coverage.config.js +++ /dev/null @@ -1,26 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -module.exports = { - ...require('./jest.config'), - globals: { - 'ts-jest': { - diagnostics: false, - tsConfig: 'spec/tsconfig.coverage.json', - }, - }, -}; diff --git a/jestconfigs/jest.coverage.config.js b/jestconfigs/jest.coverage.config.js new file mode 100644 index 00000000..9b9a4ba6 --- /dev/null +++ b/jestconfigs/jest.coverage.config.js @@ -0,0 +1,7 @@ +import config from './jest.src.config.js'; + +export default { + ...config, + reporters: undefined, + collectCoverage: true, +}; diff --git a/jestconfigs/jest.es2015.cjs.config.js b/jestconfigs/jest.es2015.cjs.config.js index cdb833a8..ef5bcd08 100644 --- a/jestconfigs/jest.es2015.cjs.config.js +++ b/jestconfigs/jest.es2015.cjs.config.js @@ -1,28 +1,28 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix(.*)': '/targets/es2015/cjs$1', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es2015.cjs.json', - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es2015.cjs.json', - }, - ], - }, + ...config, + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], + moduleNameMapper: { + '^ix(.*)': '/targets/es2015/cjs$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es2015.cjs.json', + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es2015.cjs.json', + }, + ], + }, }; diff --git a/jestconfigs/jest.es2015.esm.config.js b/jestconfigs/jest.es2015.esm.config.js index 3a2a9785..13a93ef2 100644 --- a/jestconfigs/jest.es2015.esm.config.js +++ b/jestconfigs/jest.es2015.esm.config.js @@ -1,31 +1,30 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix(.*)': '/targets/es2015/esm$1', - tslib: 'tslib/tslib.es6.js', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es2015.esm.json', - useESM: true, - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es2015.esm.json', - useESM: true, - }, - ], - }, + ...config, + rootDir: '../', + moduleNameMapper: { + '^ix(.*)': '/targets/es2015/esm$1', + tslib: 'tslib/tslib.es6.js', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es2015.esm.json', + useESM: true, + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es2015.esm.json', + useESM: true, + }, + ], + }, }; diff --git a/jestconfigs/jest.es2015.umd.config.js b/jestconfigs/jest.es2015.umd.config.js index d19efdea..557c07e5 100644 --- a/jestconfigs/jest.es2015.umd.config.js +++ b/jestconfigs/jest.es2015.umd.config.js @@ -1,32 +1,32 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleNameMapper: { - '^ix/asynciterable/operators(.*)': - '/targets/es2015/umd/Ix.dom.asynciterable.operators.js', - '^ix/asynciterable(.*)': '/targets/es2015/umd/Ix.dom.asynciterable.js', - '^ix/iterable/operators(.*)': '/targets/es2015/umd/Ix.dom.iterable.operators.js', - '^ix/iterable(.*)': '/targets/es2015/umd/Ix.dom.iterable.js', - '^ix(.*)': '/targets/es2015/umd/Ix.dom.js', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es2015.umd.json', - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es2015.umd.json', - }, - ], - }, + ...config, + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], + moduleNameMapper: { + '^ix/asynciterable/operators(.*)': '/targets/es2015/umd/Ix.asynciterable.operators.js', + '^ix/iterable/operators(.*)': '/targets/es2015/umd/Ix.iterable.operators.js', + '^ix/asynciterable(.*)': '/targets/es2015/umd/Ix.asynciterable.js', + '^ix/iterable(.*)': '/targets/es2015/umd/Ix.iterable.js', + '^ix': '/targets/es2015/umd/Ix.js', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es2015.umd.json', + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es2015.umd.json', + }, + ], + }, }; diff --git a/jestconfigs/jest.es5.cjs.config.js b/jestconfigs/jest.es5.cjs.config.js index 8c79431a..e891aebd 100644 --- a/jestconfigs/jest.es5.cjs.config.js +++ b/jestconfigs/jest.es5.cjs.config.js @@ -1,28 +1,28 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix(.*)': '/targets/es5/cjs$1', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es5.cjs.json', - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es5.cjs.json', - }, - ], - }, + ...config, + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], + moduleNameMapper: { + '^ix(.*)': '/targets/es5/cjs$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es5.cjs.json', + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es5.cjs.json', + }, + ], + }, }; diff --git a/jestconfigs/jest.es5.esm.config.js b/jestconfigs/jest.es5.esm.config.js index 2e3b78ab..fe610a50 100644 --- a/jestconfigs/jest.es5.esm.config.js +++ b/jestconfigs/jest.es5.esm.config.js @@ -1,31 +1,30 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix(.*)': '/targets/es5/esm$1', - tslib: 'tslib/tslib.es6.js', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es5.esm.json', - useESM: true, - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es5.esm.json', - useESM: true, - }, - ], - }, + ...config, + rootDir: '../', + moduleNameMapper: { + '^ix(.*)': '/targets/es5/esm$1', + tslib: 'tslib/tslib.es6.js', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es5.esm.json', + useESM: true, + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es5.esm.json', + useESM: true, + }, + ], + }, }; diff --git a/jestconfigs/jest.es5.umd.config.js b/jestconfigs/jest.es5.umd.config.js index ef3e8426..7f288b76 100644 --- a/jestconfigs/jest.es5.umd.config.js +++ b/jestconfigs/jest.es5.umd.config.js @@ -1,32 +1,32 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleNameMapper: { - '^ix/asynciterable/operators(.*)': - '/targets/es5/umd/Ix.dom.asynciterable.operators.js', - '^ix/asynciterable(.*)': '/targets/es5/umd/Ix.dom.asynciterable.js', - '^ix/iterable/operators(.*)': '/targets/es5/umd/Ix.dom.iterable.operators.js', - '^ix/iterable(.*)': '/targets/es5/umd/Ix.dom.iterable.js', - '^ix(.*)': '/targets/es5/umd/Ix.dom.js', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es5.umd.json', - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.es5.umd.json', - }, - ], - }, + ...config, + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], + moduleNameMapper: { + '^ix/asynciterable/operators(.*)': '/targets/es5/umd/Ix.asynciterable.operators.js', + '^ix/iterable/operators(.*)': '/targets/es5/umd/Ix.iterable.operators.js', + '^ix/asynciterable(.*)': '/targets/es5/umd/Ix.asynciterable.js', + '^ix/iterable(.*)': '/targets/es5/umd/Ix.iterable.js', + '^ix': '/targets/es5/umd/Ix.dom.js', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es5.umd.json', + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.es5.umd.json', + }, + ], + }, }; diff --git a/jestconfigs/jest.esnext.cjs.config.js b/jestconfigs/jest.esnext.cjs.config.js index 0ca9de54..bff55c9e 100644 --- a/jestconfigs/jest.esnext.cjs.config.js +++ b/jestconfigs/jest.esnext.cjs.config.js @@ -1,28 +1,28 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix(.*)': '/targets/esnext/cjs$1', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.esnext.cjs.json', - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.esnext.cjs.json', - }, - ], - }, + ...config, + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], + moduleNameMapper: { + '^ix(.*)': '/targets/esnext/cjs$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.esnext.cjs.json', + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.esnext.cjs.json', + }, + ], + }, }; diff --git a/jestconfigs/jest.esnext.esm.config.js b/jestconfigs/jest.esnext.esm.config.js index d7ec7e5f..4ec66077 100644 --- a/jestconfigs/jest.esnext.esm.config.js +++ b/jestconfigs/jest.esnext.esm.config.js @@ -1,31 +1,30 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix(.*)': '/targets/esnext/esm$1', - tslib: 'tslib/tslib.es6.js', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.esnext.esm.json', - useESM: true, - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.esnext.esm.json', - useESM: true, - }, - ], - }, + ...config, + rootDir: '../', + moduleNameMapper: { + '^ix(.*)': '/targets/esnext/esm$1', + tslib: 'tslib/tslib.es6.js', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.esnext.esm.json', + useESM: true, + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.esnext.esm.json', + useESM: true, + }, + ], + }, }; diff --git a/jestconfigs/jest.esnext.umd.config.js b/jestconfigs/jest.esnext.umd.config.js index 47d97f44..8527cc09 100644 --- a/jestconfigs/jest.esnext.umd.config.js +++ b/jestconfigs/jest.esnext.umd.config.js @@ -1,32 +1,32 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleNameMapper: { - '^ix/asynciterable/operators(.*)': - '/targets/esnext/umd/Ix.dom.asynciterable.operators.js', - '^ix/asynciterable(.*)': '/targets/esnext/umd/Ix.dom.asynciterable.js', - '^ix/iterable/operators(.*)': '/targets/esnext/umd/Ix.dom.iterable.operators.js', - '^ix/iterable(.*)': '/targets/esnext/umd/Ix.dom.iterable.js', - '^ix(.*)': '/targets/esnext/umd/Ix.dom.js', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.esnext.umd.json', - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.esnext.umd.json', - }, - ], - }, + ...config, + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], + moduleNameMapper: { + '^ix/asynciterable/operators(.*)': '/targets/esnext/umd/Ix.asynciterable.operators.js', + '^ix/iterable/operators(.*)': '/targets/esnext/umd/Ix.iterable.operators.js', + '^ix/asynciterable(.*)': '/targets/esnext/umd/Ix.asynciterable.js', + '^ix/iterable(.*)': '/targets/esnext/umd/Ix.iterable.js', + '^ix': '/targets/esnext/umd/Ix.js', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.esnext.umd.json', + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.esnext.umd.json', + }, + ], + }, }; diff --git a/jestconfigs/jest.ix.config.js b/jestconfigs/jest.ix.config.js index 09767c87..03a8e1aa 100644 --- a/jestconfigs/jest.ix.config.js +++ b/jestconfigs/jest.ix.config.js @@ -1,30 +1,30 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix(.*)': '/targets/ix$1', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.ix.json', - useESM: true, - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.ix.json', - useESM: true, - }, - ], - }, + ...config, + rootDir: '../', + moduleFileExtensions: ['js', 'ts'], + moduleNameMapper: { + '^ix(.*)': '/targets/ix$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.ix.json', + useESM: true, + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.ix.json', + useESM: true, + }, + ], + }, }; diff --git a/jestconfigs/jest.src.config.js b/jestconfigs/jest.src.config.js index d9b2fd69..20fb5495 100644 --- a/jestconfigs/jest.src.config.js +++ b/jestconfigs/jest.src.config.js @@ -1,32 +1,30 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix': '/src/Ix.node.ts', - '^ix(.*)\\.js': '/src$1.ts', - tslib: 'tslib/tslib.es6.js', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.src.json', - useESM: true, - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.src.json', - useESM: true, - }, - ], - }, + ...config, + rootDir: '../', + moduleNameMapper: { + '^ix$': '/src/Ix.node', + '^ix(.*)\\.js$': '/src$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.src.json', + useESM: true, + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.src.json', + useESM: true, + }, + ], + }, }; diff --git a/jestconfigs/jest.ts.config.js b/jestconfigs/jest.ts.config.js index d86b9a5b..fcad7220 100644 --- a/jestconfigs/jest.ts.config.js +++ b/jestconfigs/jest.ts.config.js @@ -1,32 +1,30 @@ import config from '../jest.config.js'; export default { - ...config, - rootDir: '../', - moduleFileExtensions: ['js', 'ts'], - moduleNameMapper: { - '^ix': '/targets/ts/Ix.node', - '^ix(.*)': '/targets/ts$1', - tslib: 'tslib/tslib.es6.js', - '^(\\.{1,2}/.*)\\.js$': '$1', - }, - transform: { - ...config.transform, - '^.+\\.js$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.ts.json', - useESM: true, - }, - ], - '^.+\\.ts$': [ - 'ts-jest', - { - diagnostics: false, - tsconfig: '/spec/tsconfig/tsconfig.ts.json', - useESM: true, - }, - ], - }, + ...config, + rootDir: '../', + moduleNameMapper: { + '^ix$': '/targets/ts/Ix.node', + '^ix(.*)\\.js$': '/targets/ts$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + ...config.transform, + '^.+\\.js$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.ts.json', + useESM: true, + }, + ], + '^.+\\.ts$': [ + 'ts-jest', + { + diagnostics: false, + tsconfig: '/spec/tsconfig/tsconfig.ts.json', + useESM: true, + }, + ], + }, }; diff --git a/package.json b/package.json index ed38acb7..18a4c0af 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "debug": "gulp debug", "lint": "run-p lint:src lint:spec", "release": "./npm-release.sh", - "doc": "shx rm -rf ./doc && typedoc --options typedoc.js", + "doc": "del-cli ./doc && typedoc", "postinstall": "patch-package --patch-dir ./patches", "commitmsg": "validate-commit-msg", "test:coverage": "gulp test -t src --coverage", @@ -22,7 +22,7 @@ "lint:ci": "eslint src spec", "lint:src": "eslint --fix src", "lint:spec": "eslint --fix spec", - "prepublishOnly": "echo \"Error: do 'npm run release' instead of 'npm publish'\" && exit 1" + "prepublishOnly": "echo \"Error: do 'yarn release' instead of 'npm publish'\" && exit 1" }, "author": "Matthew Podwysocki ", "homepage": "https://github.com/ReactiveX/IxJS#readme", @@ -49,70 +49,65 @@ "CHANGELOG.md" ], "dependencies": { - "@swc/helpers": "^0.5.2", "@types/node": ">=13.7.4", - "tslib": "^2.3.0" + "tslib": "^2.6.2" }, "devDependencies": { "@openpgp/web-stream-tools": "0.0.13", - "@rollup/plugin-alias": "5.1.0", + "@rollup/plugin-alias": "5.0.0", + "@rollup/plugin-commonjs": "25.0.7", "@rollup/plugin-node-resolve": "15.1.0", "@rollup/stream": "3.0.1", "@swc/core": "1.3.82", - "@types/glob": "7.1.1", - "@types/jest": "29.5.11", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", + "@swc/helpers": ">=0.5.2", + "@types/glob": "8.1.0", + "@types/jest": "29.5.3", + "@typescript-eslint/eslint-plugin": "5.62.0", + "@typescript-eslint/parser": "5.62.0", "abortcontroller-polyfill": "1.4.0", - "async-done": "1.3.2", - "benchmark": "2.1.4", + "async-done": "2.0.0", "command-line-args": "5.1.1", "commitizen": "4.0.3", "conventional-changelog": "3.1.18", "conventional-changelog-angular": "5.0.6", "conventional-changelog-cli": "2.0.31", "conventional-github-releaser": "3.1.3", - "coveralls": "3.0.9", "cz-conventional-changelog": "3.1.0", - "del": "5.1.0", - "esbuild": "0.19.2", + "del": "7.1.0", + "del-cli": "5.1.0", + "esbuild": "0.20.0", "esbuild-plugin-alias": "0.2.1", - "eslint": "^8.56.0", - "eslint-plugin-jest": "^27.6.0", + "eslint": "8.52.0", + "eslint-plugin-jest": "27.4.2", + "eslint-plugin-unicorn": "49.0.0", "esm": "https://github.com/jsg2021/esm/releases/download/v3.x.x-pr883/esm-3.x.x-pr883.tgz", - "glob": "7.1.6", - "google-closure-compiler": "20220601.0.0", + "glob": "10.3.10", + "google-closure-compiler": "20230802.0.0", "gulp": "4.0.2", "gulp-esbuild": "0.11.1", "gulp-json-transform": "0.4.8", "gulp-rename": "2.0.0", "gulp-replace": "1.1.4", - "gulp-sourcemaps": "2.6.5", + "gulp-sourcemaps": "3.0.0", "gulp-terser": "2.1.0", "gulp-typescript": "5.0.1", "gulp-vinyl-size": "1.1.4", - "gulp-util": "3.0.8", - "husky": "4.2.3", - "jest": "29.7.0", + "jest": "29.6.2", "jest-silent-reporter": "0.5.0", - "json": "10.0.0", "lerna": "3.20.2", "lint-staged": "10.0.7", - "mkdirp": "1.0.3", + "mkdirp": "3.0.1", "npm-run-all": "4.1.5", "patch-package": "6.2.0", "postinstall-postinstall": "2.0.0", "pre-git": "3.17.1", "prettier": "2.0.1", - "rimraf": "3.0.2", - "rollup": "4.9.2", + "rollup": "4.3.0", "rxjs": "6.5.4", - "shx": "0.3.2", - "source-map-loader": "0.2.4", "ts-jest": "29.1.1", - "ts-node": "10.9.2", - "typedoc": "0.25.4", - "typescript": "5.3.3", + "ts-node": "10.9.1", + "typedoc": "0.24.8", + "typescript": "5.1.6", "validate-commit-msg": "2.14.0", "vinyl-buffer": "1.0.1", "vinyl-named": "1.1.0", @@ -152,6 +147,6 @@ "analyzeCommits": "simple-commit-message" }, "engines": { - "node": ">=10.0" + "node": ">=12.0" } } diff --git a/spec/tsconfig.coverage.json b/spec/tsconfig.coverage.json deleted file mode 100644 index e81f0580..00000000 --- a/spec/tsconfig.coverage.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "es2015", - "baseUrl": "../", - "paths": { - "ix": ["src"] - } - } -} diff --git a/spec/tsconfig.json b/spec/tsconfig.json index 40edf352..a39a1ea5 100644 --- a/spec/tsconfig.json +++ b/spec/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../tsconfig.json", - "include": ["../src/**/*.ts", "../test/**/*.ts"], + "include": ["../src/**/*.ts", "../spec/**/*.ts"], "compilerOptions": { "target": "ESNext", "module": "NodeNext", diff --git a/spec/tsconfig/tsconfig.coverage.json b/spec/tsconfig/tsconfig.coverage.json new file mode 100644 index 00000000..e6dfb09e --- /dev/null +++ b/spec/tsconfig/tsconfig.coverage.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "target": "ESNext", + } +} diff --git a/spec/tsconfig/tsconfig.ix.json b/spec/tsconfig/tsconfig.ix.json index 8f193c30..a89083b1 100644 --- a/spec/tsconfig/tsconfig.ix.json +++ b/spec/tsconfig/tsconfig.ix.json @@ -1,4 +1,4 @@ -// TypeScript configuration for the apache-arrow target's tests +// TypeScript configuration for the ix target's tests { "extends": "./tsconfig.base.json", "compilerOptions": { diff --git a/src/Ix.dom.asynciterable.operators.ts b/src/Ix.asynciterable.operators.ts similarity index 100% rename from src/Ix.dom.asynciterable.operators.ts rename to src/Ix.asynciterable.operators.ts diff --git a/src/Ix.dom.asynciterable.ts b/src/Ix.asynciterable.ts similarity index 100% rename from src/Ix.dom.asynciterable.ts rename to src/Ix.asynciterable.ts diff --git a/src/Ix.dom.ts b/src/Ix.dom.ts index 1de5fdf3..c921bbf7 100644 --- a/src/Ix.dom.ts +++ b/src/Ix.dom.ts @@ -1,15 +1,7 @@ -// Manually re-export because closure-compiler doesn't support `export * from X` syntax yet /** @ignore */ export * from './Ix.js'; -export { default } from './Ix.js'; -export { symbolObservable } from './Ix.js'; -export { OrderedIterable } from './Ix.js'; -export { OrderedIterableBase } from './Ix.js'; -export { OrderedAsyncIterable } from './Ix.js'; -export { OrderedAsyncIterableBase } from './Ix.js'; -export { AsyncSink, Iterable, AsyncIterable } from './Ix.js'; -export { +export type { ReadableBYOBStreamOptions, ReadableByteStreamOptions, } from './asynciterable/todomstream.js'; diff --git a/src/Ix.dom.iterable.operators.ts b/src/Ix.iterable.operators.ts similarity index 100% rename from src/Ix.dom.iterable.operators.ts rename to src/Ix.iterable.operators.ts diff --git a/src/Ix.dom.iterable.ts b/src/Ix.iterable.ts similarity index 100% rename from src/Ix.dom.iterable.ts rename to src/Ix.iterable.ts diff --git a/test/bundle/asynciterable-of.js b/test/bundle/asynciterable-of.js new file mode 100644 index 00000000..7ab1107b --- /dev/null +++ b/test/bundle/asynciterable-of.js @@ -0,0 +1,3 @@ +import { of as _of } from 'ix/Ix.asynciterable.mjs'; + +console.log(_of); diff --git a/test/bundle/asynciterable.js b/test/bundle/asynciterable.js new file mode 100644 index 00000000..fc2c53c2 --- /dev/null +++ b/test/bundle/asynciterable.js @@ -0,0 +1,3 @@ +import { AsyncIterable } from 'ix'; + +console.log(AsyncIterable); diff --git a/test/bundle/iterable-of.js b/test/bundle/iterable-of.js new file mode 100644 index 00000000..482586fd --- /dev/null +++ b/test/bundle/iterable-of.js @@ -0,0 +1,3 @@ +import { of as _of } from 'ix/Ix.iterable.mjs'; + +console.log(_of); diff --git a/test/bundle/iterable.js b/test/bundle/iterable.js new file mode 100644 index 00000000..e5f92c86 --- /dev/null +++ b/test/bundle/iterable.js @@ -0,0 +1,3 @@ +import { Iterable } from 'ix'; + +console.log(Iterable); diff --git a/tsconfig.json b/tsconfig.json index 421513df..483d9e16 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,6 @@ "module": "ESNext", "isolatedModules": true, "noEmit": true, - "esModuleInterop": true, "baseUrl": "./", "rootDir": "./", "paths": { diff --git a/tsconfig/tsconfig.base.json b/tsconfig/tsconfig.base.json index db349afe..7d6ab128 100644 --- a/tsconfig/tsconfig.base.json +++ b/tsconfig/tsconfig.base.json @@ -12,7 +12,6 @@ /* Basic stuff */ "moduleResolution": "Node", "lib": ["DOM", "ESNext", "ESNext.AsyncIterable"], - "esModuleInterop": true, /* Control what is emitted */ "declaration": true, diff --git a/tsconfig/tsconfig.docs.json b/tsconfig/tsconfig.docs.json new file mode 100644 index 00000000..8083d711 --- /dev/null +++ b/tsconfig/tsconfig.docs.json @@ -0,0 +1,8 @@ +// Compiler configuration to build the docs +{ + "extends": "./tsconfig.base.json", + "include": ["../src/**/*.ts"], + "compilerOptions": { + "target": "ESNext", + } +} diff --git a/typedoc.js b/typedoc.js deleted file mode 100644 index f19f0be2..00000000 --- a/typedoc.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - entryPoints: [ - 'src/Ix.ts', - 'src/Ix.dom.ts', - 'src/Ix.node.ts', - 'src/iterable/index.ts', - 'src/iterable/operators/index.ts', - 'src/asynciterable/index.ts', - 'src/asynciterable/operators/index.ts', - ], - out: 'doc', - name: 'IxJS', - tsconfig: 'tsconfig.json', - hideGenerator: true, - excludePrivate: true, - excludeProtected: true, - excludeExternals: true, -}; diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 00000000..9ee649c0 --- /dev/null +++ b/typedoc.json @@ -0,0 +1,18 @@ +{ + "entryPoints": [ + "src/Ix.ts", + "src/Ix.dom.ts", + "src/Ix.node.ts", + "src/Ix.iterable.ts", + "src/Ix.iterable.operators.ts", + "src/Ix.asynciterable.ts", + "src/Ix.asynciterable.operators.ts" + ], + "out": "doc", + "name": "ReactiveX IxJS", + "tsconfig": "tsconfig/tsconfig.docs.json", + "excludePrivate": true, + "excludeProtected": true, + "excludeExternals": true, + "includeVersion": true +} From 50c6c1c3e9746216abd0d75bc7833e93b3865bcd Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 20:44:26 -0700 Subject: [PATCH 08/44] Update job names --- .github/workflows/main.pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index fabe1bcd..e8518036 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -7,7 +7,7 @@ on: jobs: lint-pull-request: - name: Lint pull request + name: Lint runs-on: ubuntu-22.04 strategy: fail-fast: true @@ -52,7 +52,7 @@ jobs: build-and-test-pull-request: needs: - lint-pull-request - name: Build and test pull request + name: Test runs-on: ubuntu-22.04 strategy: fail-fast: true From 90241f284cad999cc876196397a960ba2f13526e Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 20:45:17 -0700 Subject: [PATCH 09/44] add concurrency --- .github/workflows/main.pr.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index e8518036..1cc3287c 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -1,5 +1,9 @@ name: Build pull request +concurrency: + group: pr-on-${{ github.event_name }}-from-${{ github.ref_name }} + cancel-in-progress: true + on: pull_request: branches: From ca6015185b3e132f34bf98fa7cb6199cbc3850fd Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 20:49:38 -0700 Subject: [PATCH 10/44] add @rollup/rollup-linux-x64-gnu as an optional dependency --- .github/workflows/docs.yml | 2 +- .github/workflows/main.pr.yml | 2 +- package.json | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 325da36a..d96e0775 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -32,7 +32,7 @@ jobs: working-directory: main run: | set -x - yarn --ignore-optional --ignore-engines --non-interactive + yarn --ignore-engines --non-interactive yarn doc - name: Copy Docs to gh-pages run: | diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 1cc3287c..42b32602 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -109,7 +109,7 @@ jobs: - name: Install dependencies if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} run: | - yarn --ignore-optional --ignore-engines --non-interactive + yarn --ignore-engines --non-interactive - name: Build package if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} diff --git a/package.json b/package.json index 18a4c0af..28e28b3a 100644 --- a/package.json +++ b/package.json @@ -117,6 +117,9 @@ "webpack-bundle-analyzer": "4.10.1", "webpack-stream": "7.0.0" }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.17.2" + }, "config": { "commitizen": { "path": "cz-conventional-changelog" From dc4ab754d8b049c0798746e1f3f78b8c82307dde Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 20:52:55 -0700 Subject: [PATCH 11/44] drop node 14.x --- .github/workflows/main.pr.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 42b32602..3e01f07d 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -61,11 +61,9 @@ jobs: strategy: fail-fast: true matrix: - node: [14.x, 16.x, 18.x, 20.x] + node: [16.x, 18.x, 20.x] module: [cjs, esm, umd] target: [es5, es2015, esnext] - exclude: - - {node: 14.x, target: esnext} include: - {node: 20.x, target: src, args: --coverage} steps: From 2e0c02472ab87102e67888a3a016c8d3b0f7de18 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 20:53:10 -0700 Subject: [PATCH 12/44] don't fail fast --- .github/workflows/main.pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 3e01f07d..db454df6 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -59,7 +59,7 @@ jobs: name: Test runs-on: ubuntu-22.04 strategy: - fail-fast: true + fail-fast: false matrix: node: [16.x, 18.x, 20.x] module: [cjs, esm, umd] From 3769617c61e7fc61676a1fd553d44b1fca8b2f95 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 20:58:32 -0700 Subject: [PATCH 13/44] share more node_modules caches --- .github/workflows/main.pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index db454df6..35bdfe0e 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -46,7 +46,7 @@ jobs: - name: Install dependencies if: ${{ steps.files_changed.outputs.any_modified == 'true' }} run: | - yarn + yarn --ignore-engines --non-interactive - name: Lint files if: ${{ steps.files_changed.outputs.any_modified == 'true' }} @@ -86,7 +86,7 @@ jobs: - name: Cache node_modules uses: actions/cache@v4 with: - key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json') }} + key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json') }} path: | node_modules From 2cdc776f980a9e2d2ca0c735aba5305bc7490886 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 20:58:40 -0700 Subject: [PATCH 14/44] fix module name mapper --- jestconfigs/jest.es2015.umd.config.js | 2 +- jestconfigs/jest.esnext.umd.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jestconfigs/jest.es2015.umd.config.js b/jestconfigs/jest.es2015.umd.config.js index 557c07e5..2e93ddef 100644 --- a/jestconfigs/jest.es2015.umd.config.js +++ b/jestconfigs/jest.es2015.umd.config.js @@ -9,7 +9,7 @@ export default { '^ix/iterable/operators(.*)': '/targets/es2015/umd/Ix.iterable.operators.js', '^ix/asynciterable(.*)': '/targets/es2015/umd/Ix.asynciterable.js', '^ix/iterable(.*)': '/targets/es2015/umd/Ix.iterable.js', - '^ix': '/targets/es2015/umd/Ix.js', + '^ix': '/targets/es2015/umd/Ix.dom.js', '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { diff --git a/jestconfigs/jest.esnext.umd.config.js b/jestconfigs/jest.esnext.umd.config.js index 8527cc09..1b324469 100644 --- a/jestconfigs/jest.esnext.umd.config.js +++ b/jestconfigs/jest.esnext.umd.config.js @@ -9,7 +9,7 @@ export default { '^ix/iterable/operators(.*)': '/targets/esnext/umd/Ix.iterable.operators.js', '^ix/asynciterable(.*)': '/targets/esnext/umd/Ix.asynciterable.js', '^ix/iterable(.*)': '/targets/esnext/umd/Ix.iterable.js', - '^ix': '/targets/esnext/umd/Ix.js', + '^ix': '/targets/esnext/umd/Ix.dom.js', '^(\\.{1,2}/.*)\\.js$': '$1', }, transform: { From 80814cbb6db758aeb25b3c830a482ec9d3139b1d Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 21:17:02 -0700 Subject: [PATCH 15/44] simplify main.pr.yaml, add job to test bundler tree-shaking --- .github/workflows/main.pr.yml | 68 +++++++++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 35bdfe0e..1384c786 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -43,14 +43,10 @@ jobs: src/**/* spec/**/* - - name: Install dependencies - if: ${{ steps.files_changed.outputs.any_modified == 'true' }} - run: | - yarn --ignore-engines --non-interactive - - name: Lint files if: ${{ steps.files_changed.outputs.any_modified == 'true' }} run: | + yarn --ignore-engines --non-interactive yarn lint:ci build-and-test-pull-request: @@ -80,15 +76,13 @@ jobs: uses: actions/cache@v4 with: key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json') }} - path: | - targets + path: targets - name: Cache node_modules uses: actions/cache@v4 with: key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json') }} - path: | - node_modules + path: node_modules - name: Check if test files changed id: test_files_changed @@ -102,10 +96,12 @@ jobs: uses: tj-actions/changed-files@v44 with: files: | + .npmrc + package.json src/**/* - name: Install dependencies - if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} run: | yarn --ignore-engines --non-interactive @@ -118,9 +114,59 @@ jobs: yarn build ${ecmascriptver:+-t ${ecmascriptver}} ${module_format:+-m ${module_format}} - name: Test package - if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} env: ecmascriptver: "${{ matrix.target }}" module_format: "${{ matrix.module }}" run: | yarn test ${ecmascriptver:+-t ${ecmascriptver}} ${module_format:+-m ${module_format}} ${{ matrix.args }} + + test-tree-shaking-pull-request: + needs: + - build-and-test-pull-request + name: Test tree shaking + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + node: [20.x] + steps: + - name: Setup node v${{ matrix.node }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Cache targets + uses: actions/cache@v4 + with: + key: ${{ runner.os }}-targets-${{ matrix.node }}-ix-${{ hashFiles('package.json') }} + path: | + targets + + - name: Cache node_modules + uses: actions/cache@v4 + with: + key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json') }} + path: | + node_modules + + - name: Check if source files changed + id: source_files_changed + uses: tj-actions/changed-files@v44 + with: + files: | + .npmrc + package.json + src/**/* + test/bundle/**/* + + - name: Test bundler tree-shaking + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' }} + run: | + yarn --ignore-engines --non-interactive + yarn build -t ix + yarn test:bundle From 26fd7fc60b1938165901acf63d115a3e7734823a Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 21:23:37 -0700 Subject: [PATCH 16/44] increase due times in timeout-spec.ts --- .github/workflows/main.pr.yml | 6 ++---- spec/asynciterable-operators/timeout-spec.ts | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 1384c786..f830926e 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -144,15 +144,13 @@ jobs: uses: actions/cache@v4 with: key: ${{ runner.os }}-targets-${{ matrix.node }}-ix-${{ hashFiles('package.json') }} - path: | - targets + path: targets - name: Cache node_modules uses: actions/cache@v4 with: key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json') }} - path: | - node_modules + path: node_modules - name: Check if source files changed id: source_files_changed diff --git a/spec/asynciterable-operators/timeout-spec.ts b/spec/asynciterable-operators/timeout-spec.ts index d7e84ce7..ec364167 100644 --- a/spec/asynciterable-operators/timeout-spec.ts +++ b/spec/asynciterable-operators/timeout-spec.ts @@ -5,11 +5,11 @@ import { TimeoutError } from 'ix/asynciterable/operators/timeout.js'; test('AsyncIterable#timeout drops none', async () => { const xs = async function* () { - yield await delayValue(1, 50); - yield await delayValue(2, 50); - yield await delayValue(3, 50); + yield await delayValue(1, 500); + yield await delayValue(2, 500); + yield await delayValue(3, 500); }; - const ys = as(xs()).pipe(timeout(100)); + const ys = as(xs()).pipe(timeout(1000)); const it = ys[Symbol.asyncIterator](); await hasNext(it, 1); @@ -20,10 +20,10 @@ test('AsyncIterable#timeout drops none', async () => { test('AsyncIterable#timeout throws when delayed', async () => { const xs = async function* () { - yield await delayValue(1, 50); - yield await delayValue(2, 200); + yield await delayValue(1, 500); + yield await delayValue(2, 2000); }; - const ys = as(xs()).pipe(timeout(100)); + const ys = as(xs()).pipe(timeout(1000)); const it = ys[Symbol.asyncIterator](); await hasNext(it, 1); @@ -34,14 +34,14 @@ test('AsyncIterable#timeout throws when delayed', async () => { test('AsyncIterable#timeout triggers finalize', async () => { let done = false; const xs = async function* () { - yield await delayValue(1, 50); - yield await delayValue(2, 200); + yield await delayValue(1, 500); + yield await delayValue(2, 2000); }; const ys = as(xs()).pipe( finalize(() => { done = true; }), - timeout(100) + timeout(1000) ); const it = ys[Symbol.asyncIterator](); From e9cd99f329d127315ff66ef4cae1ad331d46727d Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 21:27:00 -0700 Subject: [PATCH 17/44] commit yarn lockfile --- .github/workflows/main.pr.yml | 12 +- .gitignore | 1 - yarn.lock | 13301 ++++++++++++++++++++++++++++++++ 3 files changed, 13308 insertions(+), 6 deletions(-) create mode 100644 yarn.lock diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index f830926e..c6339f52 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -31,7 +31,7 @@ jobs: - name: Cache node_modules uses: actions/cache@v4 with: - key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json') }} + key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json', 'yarn.lock') }} path: | node_modules @@ -75,13 +75,13 @@ jobs: - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json') }} + key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock') }} path: targets - name: Cache node_modules uses: actions/cache@v4 with: - key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json') }} + key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json', 'yarn.lock') }} path: node_modules - name: Check if test files changed @@ -97,6 +97,7 @@ jobs: with: files: | .npmrc + yarn.lock package.json src/**/* @@ -143,13 +144,13 @@ jobs: - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-${{ matrix.node }}-ix-${{ hashFiles('package.json') }} + key: ${{ runner.os }}-targets-${{ matrix.node }}-ix-${{ hashFiles('package.json', 'yarn.lock') }} path: targets - name: Cache node_modules uses: actions/cache@v4 with: - key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json') }} + key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json', 'yarn.lock') }} path: node_modules - name: Check if source files changed @@ -158,6 +159,7 @@ jobs: with: files: | .npmrc + yarn.lock package.json src/**/* test/bundle/**/* diff --git a/.gitignore b/.gitignore index b0431f5b..9000f7f6 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,6 @@ build/Release dist # npm/yarn stuff -yarn.lock node_modules package-lock.json diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..b4f48daf --- /dev/null +++ b/yarn.lock @@ -0,0 +1,13301 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2": + version "7.24.2" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== + dependencies: + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" + +"@babel/compat-data@^7.23.5": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz#15ab5b98e101972d171aeef92ac70d8d6718f06a" + integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.24.5" + "@babel/helpers" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.24.5", "@babel/generator@^7.7.2": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3" + integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA== + dependencies: + "@babel/types" "^7.24.5" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.24.3": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== + dependencies: + "@babel/types" "^7.24.0" + +"@babel/helper-module-transforms@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545" + integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.24.3" + "@babel/helper-simple-access" "^7.24.5" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/helper-validator-identifier" "^7.24.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz#a924607dd254a65695e5bd209b98b902b3b2f11a" + integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== + +"@babel/helper-simple-access@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz#50da5b72f58c16b07fbd992810be6049478e85ba" + integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== + dependencies: + "@babel/types" "^7.24.5" + +"@babel/helper-split-export-declaration@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6" + integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== + dependencies: + "@babel/types" "^7.24.5" + +"@babel/helper-string-parser@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + +"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" + integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helpers@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz#fedeb87eeafa62b621160402181ad8585a22a40a" + integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + +"@babel/highlight@^7.24.2": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e" + integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.5" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" + integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8" + integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA== + dependencies: + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/types" "^7.24.5" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.3.3": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7" + integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== + dependencies: + "@babel/helper-string-parser" "^7.24.1" + "@babel/helper-validator-identifier" "^7.24.5" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@commitlint/config-validator@^19.0.3": + version "19.0.3" + resolved "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz#052b181a30da6b4fc16dc5230f4589ac95e0bc81" + integrity sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q== + dependencies: + "@commitlint/types" "^19.0.3" + ajv "^8.11.0" + +"@commitlint/execute-rule@^19.0.0": + version "19.0.0" + resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz#928fb239ae8deec82a6e3b05ec9cfe20afa83856" + integrity sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw== + +"@commitlint/load@>6.1.1": + version "19.2.0" + resolved "https://registry.npmjs.org/@commitlint/load/-/load-19.2.0.tgz#3ca51fdead4f1e1e09c9c7df343306412b1ef295" + integrity sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ== + dependencies: + "@commitlint/config-validator" "^19.0.3" + "@commitlint/execute-rule" "^19.0.0" + "@commitlint/resolve-extends" "^19.1.0" + "@commitlint/types" "^19.0.3" + chalk "^5.3.0" + cosmiconfig "^9.0.0" + cosmiconfig-typescript-loader "^5.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + +"@commitlint/resolve-extends@^19.1.0": + version "19.1.0" + resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz#fa5b8f921e9c8d76f53624c35bf25b9676bd73fa" + integrity sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg== + dependencies: + "@commitlint/config-validator" "^19.0.3" + "@commitlint/types" "^19.0.3" + global-directory "^4.0.1" + import-meta-resolve "^4.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" + +"@commitlint/types@^19.0.3": + version "19.0.3" + resolved "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz#feff4ecac2b5c359f2a57f9ab094b2ac80ef0266" + integrity sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA== + dependencies: + "@types/conventional-commits-parser" "^5.0.0" + chalk "^5.3.0" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@discoveryjs/json-ext@0.5.7": + version "0.5.7" + resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@esbuild/aix-ppc64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz#509621cca4e67caf0d18561a0c56f8b70237472f" + integrity sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw== + +"@esbuild/android-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" + integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== + +"@esbuild/android-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz#109a6fdc4a2783fc26193d2687827045d8fef5ab" + integrity sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q== + +"@esbuild/android-arm@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" + integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== + +"@esbuild/android-arm@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.0.tgz#1397a2c54c476c4799f9b9073550ede496c94ba5" + integrity sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g== + +"@esbuild/android-x64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" + integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== + +"@esbuild/android-x64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.0.tgz#2b615abefb50dc0a70ac313971102f4ce2fdb3ca" + integrity sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ== + +"@esbuild/darwin-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" + integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== + +"@esbuild/darwin-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz#5c122ed799eb0c35b9d571097f77254964c276a2" + integrity sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ== + +"@esbuild/darwin-x64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" + integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== + +"@esbuild/darwin-x64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz#9561d277002ba8caf1524f209de2b22e93d170c1" + integrity sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw== + +"@esbuild/freebsd-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" + integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== + +"@esbuild/freebsd-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz#84178986a3138e8500d17cc380044868176dd821" + integrity sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ== + +"@esbuild/freebsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" + integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== + +"@esbuild/freebsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz#3f9ce53344af2f08d178551cd475629147324a83" + integrity sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ== + +"@esbuild/linux-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" + integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== + +"@esbuild/linux-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz#24efa685515689df4ecbc13031fa0a9dda910a11" + integrity sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw== + +"@esbuild/linux-arm@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" + integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== + +"@esbuild/linux-arm@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz#6b586a488e02e9b073a75a957f2952b3b6e87b4c" + integrity sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg== + +"@esbuild/linux-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" + integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== + +"@esbuild/linux-ia32@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz#84ce7864f762708dcebc1b123898a397dea13624" + integrity sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w== + +"@esbuild/linux-loong64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" + integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== + +"@esbuild/linux-loong64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz#1922f571f4cae1958e3ad29439c563f7d4fd9037" + integrity sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw== + +"@esbuild/linux-mips64el@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" + integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== + +"@esbuild/linux-mips64el@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz#7ca1bd9df3f874d18dbf46af009aebdb881188fe" + integrity sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ== + +"@esbuild/linux-ppc64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" + integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== + +"@esbuild/linux-ppc64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz#8f95baf05f9486343bceeb683703875d698708a4" + integrity sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw== + +"@esbuild/linux-riscv64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" + integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== + +"@esbuild/linux-riscv64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz#ca63b921d5fe315e28610deb0c195e79b1a262ca" + integrity sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA== + +"@esbuild/linux-s390x@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" + integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== + +"@esbuild/linux-s390x@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz#cb3d069f47dc202f785c997175f2307531371ef8" + integrity sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ== + +"@esbuild/linux-x64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" + integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== + +"@esbuild/linux-x64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz#ac617e0dc14e9758d3d7efd70288c14122557dc7" + integrity sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg== + +"@esbuild/netbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" + integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== + +"@esbuild/netbsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz#6cc778567f1513da6e08060e0aeb41f82eb0f53c" + integrity sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ== + +"@esbuild/openbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" + integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== + +"@esbuild/openbsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz#76848bcf76b4372574fb4d06cd0ed1fb29ec0fbe" + integrity sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA== + +"@esbuild/sunos-x64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" + integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== + +"@esbuild/sunos-x64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz#ea4cd0639bf294ad51bc08ffbb2dac297e9b4706" + integrity sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g== + +"@esbuild/win32-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" + integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== + +"@esbuild/win32-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz#a5c171e4a7f7e4e8be0e9947a65812c1535a7cf0" + integrity sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ== + +"@esbuild/win32-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" + integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== + +"@esbuild/win32-ia32@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz#f8ac5650c412d33ea62d7551e0caf82da52b7f85" + integrity sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg== + +"@esbuild/win32-x64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" + integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== + +"@esbuild/win32-x64@0.20.0": + version "0.20.0" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz#2efddf82828aac85e64cef62482af61c29561bee" + integrity sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.2": + version "2.1.4" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.52.0": + version "8.52.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c" + integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== + +"@evocateur/libnpmaccess@^3.1.2": + version "3.1.2" + resolved "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" + integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + +"@evocateur/libnpmpublish@^1.2.2": + version "1.2.2" + resolved "https://registry.npmjs.org/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a" + integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + semver "^5.5.1" + ssri "^6.0.1" + +"@evocateur/npm-registry-fetch@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66" + integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g== + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + npm-package-arg "^6.1.0" + safe-buffer "^5.1.2" + +"@evocateur/pacote@^9.6.3": + version "9.6.5" + resolved "https://registry.npmjs.org/@evocateur/pacote/-/pacote-9.6.5.tgz#33de32ba210b6f17c20ebab4d497efc6755f4ae5" + integrity sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + bluebird "^3.5.3" + cacache "^12.0.3" + chownr "^1.1.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.5.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.4.4" + npm-pick-manifest "^3.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.3" + safe-buffer "^5.2.0" + semver "^5.7.0" + ssri "^6.0.1" + tar "^4.4.10" + unique-filename "^1.1.1" + which "^1.3.1" + +"@gulp-sourcemaps/identity-map@^2.0.1": + version "2.0.1" + resolved "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz#a6e8b1abec8f790ec6be2b8c500e6e68037c0019" + integrity sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q== + dependencies: + acorn "^6.4.1" + normalize-path "^3.0.0" + postcss "^7.0.16" + source-map "^0.6.0" + through2 "^3.0.1" + +"@gulp-sourcemaps/map-sources@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" + integrity sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A== + dependencies: + normalize-path "^2.0.1" + through2 "^2.0.3" + +"@humanwhocodes/config-array@^0.11.13": + version "0.11.14" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@hutson/parse-repository-url@^3.0.0": + version "3.0.2" + resolved "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" + integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.6.2", "@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^29.6.1", "@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lerna/add@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/add/-/add-3.20.0.tgz#bea7edf36fc93fb72ec34cb9ba854c48d4abf309" + integrity sha512-AnH1oRIEEg/VDa3SjYq4x1/UglEAvrZuV0WssHUMN81RTZgQk3we+Mv3qZNddrZ/fBcZu2IAdN/EQ3+ie2JxKQ== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/bootstrap" "3.20.0" + "@lerna/command" "3.18.5" + "@lerna/filter-options" "3.20.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + npm-package-arg "^6.1.0" + p-map "^2.1.0" + semver "^6.2.0" + +"@lerna/bootstrap@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.20.0.tgz#635d71046830f208e851ab429a63da1747589e37" + integrity sha512-Wylullx3uthKE7r4izo09qeRGL20Y5yONlQEjPCfnbxCC2Elu+QcPu4RC6kqKQ7b+g7pdC3OOgcHZjngrwr5XQ== + dependencies: + "@lerna/command" "3.18.5" + "@lerna/filter-options" "3.20.0" + "@lerna/has-npm-version" "3.16.5" + "@lerna/npm-install" "3.16.5" + "@lerna/package-graph" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.16.5" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/symlink-binary" "3.17.0" + "@lerna/symlink-dependencies" "3.17.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + get-port "^4.2.0" + multimatch "^3.0.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + read-package-tree "^5.1.6" + semver "^6.2.0" + +"@lerna/changed@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/changed/-/changed-3.20.0.tgz#66b97ebd6c8f8d207152ee524a0791846a9097ae" + integrity sha512-+hzMFSldbRPulZ0vbKk6RD9f36gaH3Osjx34wrrZ62VB4pKmjyuS/rxVYkCA3viPLHoiIw2F8zHM5BdYoDSbjw== + dependencies: + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.18.5" + "@lerna/listable" "3.18.5" + "@lerna/output" "3.13.0" + +"@lerna/check-working-tree@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz#b4f8ae61bb4523561dfb9f8f8d874dd46bb44baa" + integrity sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ== + dependencies: + "@lerna/collect-uncommitted" "3.16.5" + "@lerna/describe-ref" "3.16.5" + "@lerna/validation-error" "3.13.0" + +"@lerna/child-process@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz#38fa3c18064aa4ac0754ad80114776a7b36a69b2" + integrity sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg== + dependencies: + chalk "^2.3.1" + execa "^1.0.0" + strong-log-transformer "^2.0.0" + +"@lerna/clean@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/clean/-/clean-3.20.0.tgz#ba777e373ddeae63e57860df75d47a9e5264c5b2" + integrity sha512-9ZdYrrjQvR5wNXmHfDsfjWjp0foOkCwKe3hrckTzkAeQA1ibyz5llGwz5e1AeFrV12e2/OLajVqYfe+qdkZUgg== + dependencies: + "@lerna/command" "3.18.5" + "@lerna/filter-options" "3.20.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.16.5" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + +"@lerna/cli@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.5.tgz#c90c461542fcd35b6d5b015a290fb0dbfb41d242" + integrity sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA== + dependencies: + "@lerna/global-options" "3.13.0" + dedent "^0.7.0" + npmlog "^4.1.2" + yargs "^14.2.2" + +"@lerna/collect-uncommitted@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz#a494d61aac31cdc7aec4bbe52c96550274132e63" + integrity sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg== + dependencies: + "@lerna/child-process" "3.16.5" + chalk "^2.3.1" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/collect-updates@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.20.0.tgz#62f9d76ba21a25b7d9fbf31c02de88744a564bd1" + integrity sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/describe-ref" "3.16.5" + minimatch "^3.0.4" + npmlog "^4.1.2" + slash "^2.0.0" + +"@lerna/command@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/command/-/command-3.18.5.tgz#14c6d2454adbfd365f8027201523e6c289cd3cd9" + integrity sha512-36EnqR59yaTU4HrR1C9XDFti2jRx0BgpIUBeWn129LZZB8kAB3ov1/dJNa1KcNRKp91DncoKHLY99FZ6zTNpMQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/package-graph" "3.18.5" + "@lerna/project" "3.18.0" + "@lerna/validation-error" "3.13.0" + "@lerna/write-log-file" "3.13.0" + clone-deep "^4.0.1" + dedent "^0.7.0" + execa "^1.0.0" + is-ci "^2.0.0" + npmlog "^4.1.2" + +"@lerna/conventional-commits@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.18.5.tgz#08efd2e5b45acfaf3f151a53a3ec7ecade58a7bc" + integrity sha512-qcvXIEJ3qSgalxXnQ7Yxp5H9Ta5TVyai6vEor6AAEHc20WiO7UIdbLDCxBtiiHMdGdpH85dTYlsoYUwsCJu3HQ== + dependencies: + "@lerna/validation-error" "3.13.0" + conventional-changelog-angular "^5.0.3" + conventional-changelog-core "^3.1.6" + conventional-recommended-bump "^5.0.0" + fs-extra "^8.1.0" + get-stream "^4.0.0" + lodash.template "^4.5.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + semver "^6.2.0" + +"@lerna/create-symlink@3.16.2": + version "3.16.2" + resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967" + integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw== + dependencies: + "@zkochan/cmd-shim" "^3.1.0" + fs-extra "^8.1.0" + npmlog "^4.1.2" + +"@lerna/create@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/create/-/create-3.18.5.tgz#11ac539f069248eaf7bc4c42e237784330f4fc47" + integrity sha512-cHpjocbpKmLopCuZFI7cKEM3E/QY8y+yC7VtZ4FQRSaLU8D8i2xXtXmYaP1GOlVNavji0iwoXjuNpnRMInIr2g== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.18.5" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + camelcase "^5.0.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + globby "^9.2.0" + init-package-json "^1.10.3" + npm-package-arg "^6.1.0" + p-reduce "^1.0.0" + pify "^4.0.1" + semver "^6.2.0" + slash "^2.0.0" + validate-npm-package-license "^3.0.3" + validate-npm-package-name "^3.0.0" + whatwg-url "^7.0.0" + +"@lerna/describe-ref@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz#a338c25aaed837d3dc70b8a72c447c5c66346ac0" + integrity sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw== + dependencies: + "@lerna/child-process" "3.16.5" + npmlog "^4.1.2" + +"@lerna/diff@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/diff/-/diff-3.18.5.tgz#e9e2cb882f84d5b84f0487c612137305f07accbc" + integrity sha512-u90lGs+B8DRA9Z/2xX4YaS3h9X6GbypmGV6ITzx9+1Ga12UWGTVlKaCXBgONMBjzJDzAQOK8qPTwLA57SeBLgA== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.18.5" + "@lerna/validation-error" "3.13.0" + npmlog "^4.1.2" + +"@lerna/exec@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/exec/-/exec-3.20.0.tgz#29f0c01aee2340eb46f90706731fef2062a49639" + integrity sha512-pS1mmC7kzV668rHLWuv31ClngqeXjeHC8kJuM+W2D6IpUVMGQHLcCTYLudFgQsuKGVpl0DGNYG+sjLhAPiiu6A== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.18.5" + "@lerna/filter-options" "3.20.0" + "@lerna/profiler" "3.20.0" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/filter-options@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.20.0.tgz#0f0f5d5a4783856eece4204708cc902cbc8af59b" + integrity sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g== + dependencies: + "@lerna/collect-updates" "3.20.0" + "@lerna/filter-packages" "3.18.0" + dedent "^0.7.0" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/filter-packages@3.18.0": + version "3.18.0" + resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz#6a7a376d285208db03a82958cfb8172e179b4e70" + integrity sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ== + dependencies: + "@lerna/validation-error" "3.13.0" + multimatch "^3.0.0" + npmlog "^4.1.2" + +"@lerna/get-npm-exec-opts@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz#d1b552cb0088199fc3e7e126f914e39a08df9ea5" + integrity sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw== + dependencies: + npmlog "^4.1.2" + +"@lerna/get-packed@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff" + integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw== + dependencies: + fs-extra "^8.1.0" + ssri "^6.0.1" + tar "^4.4.8" + +"@lerna/github-client@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.16.5.tgz#2eb0235c3bf7a7e5d92d73e09b3761ab21f35c2e" + integrity sha512-rHQdn8Dv/CJrO3VouOP66zAcJzrHsm+wFuZ4uGAai2At2NkgKH+tpNhQy2H1PSC0Ezj9LxvdaHYrUzULqVK5Hw== + dependencies: + "@lerna/child-process" "3.16.5" + "@octokit/plugin-enterprise-rest" "^3.6.1" + "@octokit/rest" "^16.28.4" + git-url-parse "^11.1.2" + npmlog "^4.1.2" + +"@lerna/gitlab-client@3.15.0": + version "3.15.0" + resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz#91f4ec8c697b5ac57f7f25bd50fe659d24aa96a6" + integrity sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q== + dependencies: + node-fetch "^2.5.0" + npmlog "^4.1.2" + whatwg-url "^7.0.0" + +"@lerna/global-options@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" + integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== + +"@lerna/has-npm-version@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz#ab83956f211d8923ea6afe9b979b38cc73b15326" + integrity sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q== + dependencies: + "@lerna/child-process" "3.16.5" + semver "^6.2.0" + +"@lerna/import@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/import/-/import-3.18.5.tgz#a9c7d8601870729851293c10abd18b3707f7ba5e" + integrity sha512-PH0WVLEgp+ORyNKbGGwUcrueW89K3Iuk/DDCz8mFyG2IG09l/jOF0vzckEyGyz6PO5CMcz4TI1al/qnp3FrahQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.18.5" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + p-map-series "^1.0.0" + +"@lerna/info@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/info/-/info-3.20.0.tgz#3a5212f3029f2bc6255f9533bdf4bcb120ef329a" + integrity sha512-Rsz+KQF9mczbGUbPTrtOed1N0C+cA08Qz0eX/oI+NNjvsryZIju/o7uedG4I3P55MBiAioNrJI88fHH3eTgYug== + dependencies: + "@lerna/command" "3.18.5" + "@lerna/output" "3.13.0" + envinfo "^7.3.1" + +"@lerna/init@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/init/-/init-3.18.5.tgz#86dd0b2b3290755a96975069b5cb007f775df9f5" + integrity sha512-oCwipWrha98EcJAHm8AGd2YFFLNI7AW9AWi0/LbClj1+XY9ah+uifXIgYGfTk63LbgophDd8936ZEpHMxBsbAg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.18.5" + fs-extra "^8.1.0" + p-map "^2.1.0" + write-json-file "^3.2.0" + +"@lerna/link@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/link/-/link-3.18.5.tgz#f24347e4f0b71d54575bd37cfa1794bc8ee91b18" + integrity sha512-xTN3vktJpkT7Nqc3QkZRtHO4bT5NvuLMtKNIBDkks0HpGxC9PRyyqwOoCoh1yOGbrWIuDezhfMg3Qow+6I69IQ== + dependencies: + "@lerna/command" "3.18.5" + "@lerna/package-graph" "3.18.5" + "@lerna/symlink-dependencies" "3.17.0" + p-map "^2.1.0" + slash "^2.0.0" + +"@lerna/list@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/list/-/list-3.20.0.tgz#7e67cc29c5cf661cfd097e8a7c2d3dcce7a81029" + integrity sha512-fXTicPrfioVnRzknyPawmYIVkzDRBaQqk9spejS1S3O1DOidkihK0xxNkr8HCVC0L22w6f92g83qWDp2BYRUbg== + dependencies: + "@lerna/command" "3.18.5" + "@lerna/filter-options" "3.20.0" + "@lerna/listable" "3.18.5" + "@lerna/output" "3.13.0" + +"@lerna/listable@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.5.tgz#e82798405b5ed8fc51843c8ef1e7a0e497388a1a" + integrity sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg== + dependencies: + "@lerna/query-graph" "3.18.5" + chalk "^2.3.1" + columnify "^1.5.4" + +"@lerna/log-packed@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16" + integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ== + dependencies: + byte-size "^5.0.1" + columnify "^1.5.4" + has-unicode "^2.0.1" + npmlog "^4.1.2" + +"@lerna/npm-conf@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827" + integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA== + dependencies: + config-chain "^1.1.11" + pify "^4.0.1" + +"@lerna/npm-dist-tag@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz#9ef9abb7c104077b31f6fab22cc73b314d54ac55" + integrity sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + "@lerna/otplease" "3.18.5" + figgy-pudding "^3.5.1" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + +"@lerna/npm-install@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz#d6bfdc16f81285da66515ae47924d6e278d637d3" + integrity sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/get-npm-exec-opts" "3.13.0" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + signal-exit "^3.0.2" + write-pkg "^3.1.0" + +"@lerna/npm-publish@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.18.5.tgz#240e4039959fd9816b49c5b07421e11b5cb000af" + integrity sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg== + dependencies: + "@evocateur/libnpmpublish" "^1.2.2" + "@lerna/otplease" "3.18.5" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + read-package-json "^2.0.13" + +"@lerna/npm-run-script@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz#9c2ec82453a26c0b46edc0bb7c15816c821f5c15" + integrity sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/get-npm-exec-opts" "3.13.0" + npmlog "^4.1.2" + +"@lerna/otplease@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.18.5.tgz#b77b8e760b40abad9f7658d988f3ea77d4fd0231" + integrity sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog== + dependencies: + "@lerna/prompt" "3.18.5" + figgy-pudding "^3.5.1" + +"@lerna/output@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz#3ded7cc908b27a9872228a630d950aedae7a4989" + integrity sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg== + dependencies: + npmlog "^4.1.2" + +"@lerna/pack-directory@3.16.4": + version "3.16.4" + resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693" + integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng== + dependencies: + "@lerna/get-packed" "3.16.0" + "@lerna/package" "3.16.0" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + npm-packlist "^1.4.4" + npmlog "^4.1.2" + tar "^4.4.10" + temp-write "^3.4.0" + +"@lerna/package-graph@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.5.tgz#c740e2ea3578d059e551633e950690831b941f6b" + integrity sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA== + dependencies: + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/validation-error" "3.13.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + semver "^6.2.0" + +"@lerna/package@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" + integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== + dependencies: + load-json-file "^5.3.0" + npm-package-arg "^6.1.0" + write-pkg "^3.1.0" + +"@lerna/prerelease-id-from-version@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" + integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== + dependencies: + semver "^6.2.0" + +"@lerna/profiler@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-3.20.0.tgz#0f6dc236f4ea8f9ea5f358c6703305a4f32ad051" + integrity sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg== + dependencies: + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npmlog "^4.1.2" + upath "^1.2.0" + +"@lerna/project@3.18.0": + version "3.18.0" + resolved "https://registry.npmjs.org/@lerna/project/-/project-3.18.0.tgz#56feee01daeb42c03cbdf0ed8a2a10cbce32f670" + integrity sha512-+LDwvdAp0BurOAWmeHE3uuticsq9hNxBI0+FMHiIai8jrygpJGahaQrBYWpwbshbQyVLeQgx3+YJdW2TbEdFWA== + dependencies: + "@lerna/package" "3.16.0" + "@lerna/validation-error" "3.13.0" + cosmiconfig "^5.1.0" + dedent "^0.7.0" + dot-prop "^4.2.0" + glob-parent "^5.0.0" + globby "^9.2.0" + load-json-file "^5.3.0" + npmlog "^4.1.2" + p-map "^2.1.0" + resolve-from "^4.0.0" + write-json-file "^3.2.0" + +"@lerna/prompt@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.18.5.tgz#628cd545f225887d060491ab95df899cfc5218a1" + integrity sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ== + dependencies: + inquirer "^6.2.0" + npmlog "^4.1.2" + +"@lerna/publish@3.20.2": + version "3.20.2" + resolved "https://registry.npmjs.org/@lerna/publish/-/publish-3.20.2.tgz#a45d29813099b3249657ea913d0dc3f8ebc5cc2e" + integrity sha512-N7Y6PdhJ+tYQPdI1tZum8W25cDlTp4D6brvRacKZusweWexxaopbV8RprBaKexkEX/KIbncuADq7qjDBdQHzaA== + dependencies: + "@evocateur/libnpmaccess" "^3.1.2" + "@evocateur/npm-registry-fetch" "^4.0.0" + "@evocateur/pacote" "^9.6.3" + "@lerna/check-working-tree" "3.16.5" + "@lerna/child-process" "3.16.5" + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.18.5" + "@lerna/describe-ref" "3.16.5" + "@lerna/log-packed" "3.16.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/npm-dist-tag" "3.18.5" + "@lerna/npm-publish" "3.18.5" + "@lerna/otplease" "3.18.5" + "@lerna/output" "3.13.0" + "@lerna/pack-directory" "3.16.4" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + "@lerna/version" "3.20.2" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-pipe "^1.2.0" + semver "^6.2.0" + +"@lerna/pulse-till-done@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz#c8e9ce5bafaf10d930a67d7ed0ccb5d958fe0110" + integrity sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA== + dependencies: + npmlog "^4.1.2" + +"@lerna/query-graph@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.5.tgz#df4830bb5155273003bf35e8dda1c32d0927bd86" + integrity sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA== + dependencies: + "@lerna/package-graph" "3.18.5" + figgy-pudding "^3.5.1" + +"@lerna/resolve-symlink@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386" + integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ== + dependencies: + fs-extra "^8.1.0" + npmlog "^4.1.2" + read-cmd-shim "^1.0.1" + +"@lerna/rimraf-dir@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz#04316ab5ffd2909657aaf388ea502cb8c2f20a09" + integrity sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA== + dependencies: + "@lerna/child-process" "3.16.5" + npmlog "^4.1.2" + path-exists "^3.0.0" + rimraf "^2.6.2" + +"@lerna/run-lifecycle@3.16.2": + version "3.16.2" + resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00" + integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A== + dependencies: + "@lerna/npm-conf" "3.16.0" + figgy-pudding "^3.5.1" + npm-lifecycle "^3.1.2" + npmlog "^4.1.2" + +"@lerna/run-topologically@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.5.tgz#3cd639da20e967d7672cb88db0f756b92f2fdfc3" + integrity sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg== + dependencies: + "@lerna/query-graph" "3.18.5" + figgy-pudding "^3.5.1" + p-queue "^4.0.0" + +"@lerna/run@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/run/-/run-3.20.0.tgz#a479f7c42bdf9ebabb3a1e5a2bdebb7a8d201151" + integrity sha512-9U3AqeaCeB7KsGS9oyKNp62s9vYoULg/B4cqXTKZkc+OKL6QOEjYHYVSBcMK9lUXrMjCjDIuDSX3PnTCPxQ2Dw== + dependencies: + "@lerna/command" "3.18.5" + "@lerna/filter-options" "3.20.0" + "@lerna/npm-run-script" "3.16.5" + "@lerna/output" "3.13.0" + "@lerna/profiler" "3.20.0" + "@lerna/run-topologically" "3.18.5" + "@lerna/timer" "3.13.0" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/symlink-binary@3.17.0": + version "3.17.0" + resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz#8f8031b309863814883d3f009877f82e38aef45a" + integrity sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/package" "3.16.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + +"@lerna/symlink-dependencies@3.17.0": + version "3.17.0" + resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz#48d6360e985865a0e56cd8b51b308a526308784a" + integrity sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/resolve-symlink" "3.16.0" + "@lerna/symlink-binary" "3.17.0" + fs-extra "^8.1.0" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + +"@lerna/timer@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz#bcd0904551db16e08364d6c18e5e2160fc870781" + integrity sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw== + +"@lerna/validation-error@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz#c86b8f07c5ab9539f775bd8a54976e926f3759c3" + integrity sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA== + dependencies: + npmlog "^4.1.2" + +"@lerna/version@3.20.2": + version "3.20.2" + resolved "https://registry.npmjs.org/@lerna/version/-/version-3.20.2.tgz#3709141c0f537741d9bc10cb24f56897bcb30428" + integrity sha512-ckBJMaBWc+xJen0cMyCE7W67QXLLrc0ELvigPIn8p609qkfNM0L0CF803MKxjVOldJAjw84b8ucNWZLvJagP/Q== + dependencies: + "@lerna/check-working-tree" "3.16.5" + "@lerna/child-process" "3.16.5" + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.18.5" + "@lerna/conventional-commits" "3.18.5" + "@lerna/github-client" "3.16.5" + "@lerna/gitlab-client" "3.15.0" + "@lerna/output" "3.13.0" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.18.5" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + chalk "^2.3.1" + dedent "^0.7.0" + load-json-file "^5.3.0" + minimatch "^3.0.4" + npmlog "^4.1.2" + p-map "^2.1.0" + p-pipe "^1.2.0" + p-reduce "^1.0.0" + p-waterfall "^1.0.0" + semver "^6.2.0" + slash "^2.0.0" + temp-write "^3.4.0" + write-json-file "^3.2.0" + +"@lerna/write-log-file@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz#b78d9e4cfc1349a8be64d91324c4c8199e822a26" + integrity sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A== + dependencies: + npmlog "^4.1.2" + write-file-atomic "^2.3.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@octokit/auth-token@^2.4.0": + version "2.5.0" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + dependencies: + "@octokit/types" "^6.0.3" + +"@octokit/endpoint@^6.0.1": + version "6.0.12" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + dependencies: + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== + +"@octokit/plugin-enterprise-rest@^3.6.1": + version "3.6.2" + resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz#74de25bef21e0182b4fa03a8678cd00a4e67e561" + integrity sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA== + +"@octokit/plugin-paginate-rest@^1.1.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" + integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q== + dependencies: + "@octokit/types" "^2.0.1" + +"@octokit/plugin-request-log@^1.0.0": + version "1.0.4" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@2.4.0": + version "2.4.0" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" + integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ== + dependencies: + "@octokit/types" "^2.0.1" + deprecation "^2.3.1" + +"@octokit/request-error@^1.0.2": + version "1.2.1" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" + integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== + dependencies: + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.2.0": + version "5.6.3" + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@^16.28.4": + version "16.43.2" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz#c53426f1e1d1044dee967023e3279c50993dd91b" + integrity sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/plugin-paginate-rest" "^1.1.1" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "2.4.0" + "@octokit/request" "^5.2.0" + "@octokit/request-error" "^1.0.2" + atob-lite "^2.0.0" + before-after-hook "^2.0.0" + btoa-lite "^1.0.0" + deprecation "^2.0.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^4.0.0" + +"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": + version "2.16.2" + resolved "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" + integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1": + version "6.41.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + dependencies: + "@octokit/openapi-types" "^12.11.0" + +"@openpgp/web-stream-tools@0.0.13": + version "0.0.13" + resolved "https://registry.npmjs.org/@openpgp/web-stream-tools/-/web-stream-tools-0.0.13.tgz#f0be50120c152efb11b65df29ab482dc192dbbd7" + integrity sha512-VQ0O0lUcD9ilLcMLQMJMgPhp8fDgMd4copd+UhSBGjud0vbI1ONQ3ffAhixEMml/AApLJtqCpd7PJcccPliFSA== + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.25" + resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" + integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== + +"@rollup/plugin-alias@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.0.0.tgz#70f3d504bd17d8922e35c6b61c08b40a6ec25af2" + integrity sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA== + dependencies: + slash "^4.0.0" + +"@rollup/plugin-commonjs@25.0.7": + version "25.0.7" + resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz#145cec7589ad952171aeb6a585bbeabd0fd3b4cf" + integrity sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.30.3" + +"@rollup/plugin-node-resolve@15.1.0": + version "15.1.0" + resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.1.0.tgz#9ffcd8e8c457080dba89bb9fcb583a6778dc757e" + integrity sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + +"@rollup/pluginutils@^5.0.1": + version "5.1.0" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rollup/rollup-android-arm-eabi@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.3.0.tgz#8ad8a660b18f1a24ad4a272738a65ac4788a8811" + integrity sha512-/4pns6BYi8MXdwnXM44yoGAcFYVHL/BYlB2q1HXZ6AzH++LaiEVWFpBWQ/glXhbMbv3E3o09igrHFbP/snhAvA== + +"@rollup/rollup-android-arm64@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.3.0.tgz#17b0f412034d14668c8acc8b7cbd8b1c76279599" + integrity sha512-nLO/JsL9idr416vzi3lHm3Xm+QZh4qHij8k3Er13kZr5YhL7/+kBAx84kDmPc7HMexLmwisjDCeDIKNFp8mDlQ== + +"@rollup/rollup-darwin-arm64@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.3.0.tgz#80c4a4dd7b120906d4e655808fb9005784a8bf35" + integrity sha512-dGhVBlllt4iHwTGy21IEoMOTN5wZoid19zEIxsdY29xcEiOEHqzDa7Sqrkh5OE7LKCowL61eFJXxYe/+pYa7ZQ== + +"@rollup/rollup-darwin-x64@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.3.0.tgz#52ad0db40d9b5ae047dfc08e54e4b3f42feaef82" + integrity sha512-h8wRfHeLEbU3NzaP1Oku7BYXCJQiTRr+8U0lklyOQXxXiEpHLL8tk1hFl+tezoRKLcPJD7joKaK74ASsqt3Ekg== + +"@rollup/rollup-linux-arm-gnueabihf@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.3.0.tgz#2ad3d190af01d7fc8704e8e782c4a24006a9f21a" + integrity sha512-wP4VgR/gfV18sylTuym3sxRTkAgUR2vh6YLeX/GEznk5jCYcYSlx585XlcUcl0c8UffIZlRJ09raWSX3JDb4GA== + +"@rollup/rollup-linux-arm64-gnu@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.3.0.tgz#4f7ba42f779f06e93876755b7393c61676e2958a" + integrity sha512-v/14JCYVkqRSJeQbxFx4oUkwVQQw6lFMN7bd4vuARBc3X2lmomkxBsc+BFiIDL/BK+CTx5AOh/k9XmqDnKWRVg== + +"@rollup/rollup-linux-arm64-musl@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.3.0.tgz#64795a09dac02b4d779819509a793b93ba7e4c0d" + integrity sha512-tNhfYqFH5OxtRzfkTOKdgFYlPSZnlDLNW4+leNEvQZhwTJxoTwsZAAhR97l3qVry/kkLyJPBK+Q8EAJLPinDIg== + +"@rollup/rollup-linux-x64-gnu@4.17.2": + version "4.17.2" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz#b521d271798d037ad70c9f85dd97d25f8a52e811" + integrity sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ== + +"@rollup/rollup-linux-x64-gnu@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.3.0.tgz#00c1ff131ba16881eb1a0ad46b0aa10dcacb010e" + integrity sha512-pw77m8QywdsoFdFOgmc8roF1inBI0rciqzO8ffRUgLoq7+ee9o5eFqtEcS6hHOOplgifAUUisP8cAnwl9nUYPw== + +"@rollup/rollup-linux-x64-musl@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.3.0.tgz#89479dce5e5bf6850fbca92fa7f1637ddd70c9ef" + integrity sha512-tJs7v2MnV2F8w6X1UpPHl/43OfxjUy9SuJ2ZPoxn79v9vYteChVYO/ueLHCpRMmyTUIVML3N9z4azl9ENH8Xxg== + +"@rollup/rollup-win32-arm64-msvc@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.3.0.tgz#1a36aba17c7efe6d61e98b8049e70b40e33b1f45" + integrity sha512-OKGxp6kATQdTyI2DF+e9s+hB3/QZB45b6e+dzcfW1SUqiF6CviWyevhmT4USsMEdP3mlpC9zxLz3Oh+WaTMOSw== + +"@rollup/rollup-win32-ia32-msvc@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.3.0.tgz#a0b1f79afde51e390a7725b7c15ab4e0df780aea" + integrity sha512-DDZ5AH68JJ2ClQFEA1aNnfA7Ybqyeh0644rGbrLOdNehTmzfICHiWSn0OprzYi9HAshTPQvlwrM+bi2kuaIOjQ== + +"@rollup/rollup-win32-x64-msvc@4.3.0": + version "4.3.0" + resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.3.0.tgz#0b9bcc159b93c911efb5a2c39ec5d70dd0a589dc" + integrity sha512-dMvGV8p92GQ8jhNlGIKpyhVZPzJlT258pPrM5q2F8lKcc9Iv9BbfdnhX1OfinYWnb9ms5zLw6MlaMnqLfUkKnQ== + +"@rollup/stream@3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@rollup/stream/-/stream-3.0.1.tgz#485452d6f1016ac1b0513060f90ff02aaca3e1c0" + integrity sha512-wdzoakLc9UiPOFa1k17ukfEtvQ0p7JuNFvOZT1DhO5Z5CrTf71An01U9+v+aebYcaLCwy3tLwpCSUF7K7xVN0A== + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.1" + resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + dependencies: + any-observable "^0.3.0" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@swc/core-darwin-arm64@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.82.tgz#bbf9874747b51053d8a59ea26c3e235c326f24a3" + integrity sha512-JfsyDW34gVKD3uE0OUpUqYvAD3yseEaicnFP6pB292THtLJb0IKBBnK50vV/RzEJtc1bR3g1kNfxo2PeurZTrA== + +"@swc/core-darwin-x64@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.82.tgz#145cdde16678e0d793620035783e5b413a16ac43" + integrity sha512-ogQWgNMq7qTpITjcP3dnzkFNj7bh6SwMr859GvtOTrE75H7L7jDWxESfH4f8foB/LGxBKiDNmxKhitCuAsZK4A== + +"@swc/core-linux-arm-gnueabihf@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.82.tgz#0c2f32c5793f2ac8e8ccf416aec84d016c30ef7b" + integrity sha512-7TMXG1lXlNhD0kUiEqs+YlGV4irAdBa2quuy+XI3oJf2fBK6dQfEq4xBy65B3khrorzQS3O0oDGQ+cmdpHExHA== + +"@swc/core-linux-arm64-gnu@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.82.tgz#2313d4901fa0ebdd2a0f189909073e1e8a07f1d6" + integrity sha512-26JkOujbzcItPAmIbD5vHJxQVy5ihcSu3YHTKwope1h28sApZdtE7S3e2G3gsZRTIdsCQkXUtAQeqHxGWWR3pw== + +"@swc/core-linux-arm64-musl@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.82.tgz#6e96cf6e52e647fecf27511d766bea90e96f8a2f" + integrity sha512-8Izj9tuuMpoc3cqiPBRtwqpO1BZ/+sfZVsEhLxrbOFlcSb8LnKyMle1g3JMMUwI4EU75RGVIzZMn8A6GOKdJbA== + +"@swc/core-linux-x64-gnu@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.82.tgz#6275c10d7c8c0768550bc7934c9dd8cde4881d92" + integrity sha512-0GSrIBScQwTaPv46T2qB7XnDYxndRCpwH4HMjh6FN+I+lfPUhTSJKW8AonqrqT1TbpFIgvzQs7EnTsD7AnSCow== + +"@swc/core-linux-x64-musl@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.82.tgz#edb98c30bd0de42bf1a63469937630d942c71988" + integrity sha512-KJUnaaepDKNzrEbwz4jv0iC3/t9x0NSoe06fnkAlhh2+NFKWKKJhVCOBTrpds8n7eylBDIXUlK34XQafjVMUdg== + +"@swc/core-win32-arm64-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.82.tgz#0a8e9b361aac37d01f684c8a3d3e94e5f8c3b14f" + integrity sha512-TR3MHKhDYIyGyFcyl2d/p1ftceXcubAhX5wRSOdtOyr5+K/v3jbyCCqN7bbqO5o43wQVCwwR/drHleYyDZvg8Q== + +"@swc/core-win32-ia32-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.82.tgz#096854ff764282766271f1354ee1214358a8bf01" + integrity sha512-ZX4HzVVt6hs84YUg70UvyBJnBOIspmQQM0iXSzBvOikk3zRoN7BnDwQH4GScvevCEBuou60+i4I6d5kHLOfh8Q== + +"@swc/core-win32-x64-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.82.tgz#1181070bff4a13a7fcc7f1020eef1571f8c1257a" + integrity sha512-4mJMnex21kbQoaHeAmHnVwQN9/XAfPszJ6n9HI7SVH+aAHnbBIR0M59/b50/CJMjTj5niUGk7EwQ3nhVNOG32g== + +"@swc/core@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.82.tgz#8f6c53db3c23a1769b6c5085fbcb3b1df9548a40" + integrity sha512-jpC1a18HMH67018Ij2jh+hT7JBFu7ZKcQVfrZ8K6JuEY+kjXmbea07P9MbQUZbAe0FB+xi3CqEVCP73MebodJQ== + dependencies: + "@swc/types" "^0.1.4" + optionalDependencies: + "@swc/core-darwin-arm64" "1.3.82" + "@swc/core-darwin-x64" "1.3.82" + "@swc/core-linux-arm-gnueabihf" "1.3.82" + "@swc/core-linux-arm64-gnu" "1.3.82" + "@swc/core-linux-arm64-musl" "1.3.82" + "@swc/core-linux-x64-gnu" "1.3.82" + "@swc/core-linux-x64-musl" "1.3.82" + "@swc/core-win32-arm64-msvc" "1.3.82" + "@swc/core-win32-ia32-msvc" "1.3.82" + "@swc/core-win32-x64-msvc" "1.3.82" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/helpers@>=0.5.2": + version "0.5.11" + resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz#5bab8c660a6e23c13b2d23fcd1ee44a2db1b0cb7" + integrity sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A== + dependencies: + tslib "^2.4.0" + +"@swc/types@^0.1.4": + version "0.1.7" + resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.7.tgz#ea5d658cf460abff51507ca8d26e2d391bafb15e" + integrity sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ== + dependencies: + "@swc/counter" "^0.1.3" + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.5" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + +"@types/conventional-commits-parser@^5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#8c9d23e0b415b24b91626d07017303755d542dc8" + integrity sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.7" + resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.56.10" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/expect@^1.20.4": + version "1.20.4" + resolved "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" + integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== + +"@types/glob@8.1.0": + version "8.1.0" + resolved "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== + dependencies: + "@types/minimatch" "^5.1.2" + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@29.5.3": + version "29.5.3" + resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.3.tgz#7a35dc0044ffb8b56325c6802a4781a626b05777" + integrity sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/minimatch@*", "@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/minimist@^1.2.0", "@types/minimist@^1.2.2": + version "1.2.5" + resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/node@*", "@types/node@>= 8", "@types/node@>=13.7.4": + version "20.12.12" + resolved "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz#7cbecdf902085cec634fdb362172dfe12b8f2050" + integrity sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw== + dependencies: + undici-types "~5.26.4" + +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + +"@types/semver@^7.3.12": + version "7.5.8" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/vinyl@^2.0.4": + version "2.0.12" + resolved "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz#17642ca9a8ae10f3db018e9f885da4188db4c6e6" + integrity sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw== + dependencies: + "@types/expect" "^1.20.4" + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^15.0.0": + version "15.0.19" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz#328fb89e46109ecbdb70c295d96ff2f46dfd01b9" + integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== + dependencies: + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + +"@typescript-eslint/type-utils@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== + dependencies: + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.10.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + dependencies: + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.11.5": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +"@zkochan/cmd-shim@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" + integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg== + dependencies: + is-windows "^1.0.0" + mkdirp-promise "^5.0.1" + mz "^2.5.0" + +JSONStream@^1.0.4, JSONStream@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abortcontroller-polyfill@1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.4.0.tgz#0d5eb58e522a461774af8086414f68e1dda7a6c4" + integrity sha512-3ZFfCRfDzx3GFjO6RAkYx81lPGpUS20ISxux9gLxuKnqafNcFQo59+IoZqpO2WvQlyc287B62HDnDdNYRmlvWA== + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.0, acorn-walk@^8.1.1: + version "8.3.2" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^8.0.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.3" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.3.tgz#c210afce942b4287e2df2fbfe6c0d57eda2ce634" + integrity sha512-yqXL+k5rr8+ZRpOAntkaaRgWgE5o8ESAj5DyRmVTCSoZxXmqemb9Dd7T4i5UzwuERdLAJUy6XzR9zFVuf0kzkw== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" + integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== + dependencies: + clean-stack "^4.0.0" + indent-string "^5.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.11.0: + version "8.13.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz#a3939eaec9fb80d217ddf0c3376948c023f28c91" + integrity sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA== + dependencies: + fast-deep-equal "^3.1.3" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.4.1" + +always-error@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/always-error/-/always-error-1.0.0.tgz#95c84042cfa86f38c86ca6c2cc42c0a0103441b2" + integrity sha512-FQOCVM9Tv+0skDiLBTemM0LN9IdoRxCqbo+AVpPPRorj34VvC7mFORDWdtEPKHRjC4N0KaxGGpVv35/7k0QbWA== + +am-i-a-dependency@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/am-i-a-dependency/-/am-i-a-dependency-1.1.2.tgz#f9d3422304d6f642f821e4c407565035f6167f1f" + integrity sha512-h9Wm0GBuTJVKbtwDHBzdJr932O9iTR5lAgebGSke1b3V4pqzbwOsa1R3bYhff89Ch3+v3A4EgbX3vem+5Rl6Zg== + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA== + dependencies: + string-width "^2.0.0" + +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== + dependencies: + ansi-wrap "^0.1.0" + +ansi-colors@^3.0.5: + version "3.2.4" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw== + +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw== + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^1.0.0, ansi-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d" + integrity sha512-q5i8bFLg2wDfsuR56c1NzlJFPzVD+9mxhDrhqOGigEFa87OZHlF+9dWeGWzVTP/0ECiA/JUGzfzRr2t3eYORRw== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-sequence-parser@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf" + integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw== + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + integrity sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA== + dependencies: + buffer-equal "^1.0.0" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== + +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + integrity sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA== + dependencies: + make-iterator "^1.0.0" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + integrity sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw== + dependencies: + make-iterator "^1.0.0" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-back@^3.0.1: + version "3.1.0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== + +array-each@^1.0.0, array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + integrity sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw== + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== + dependencies: + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" + +array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.reduce@^1.0.6: + version "1.0.7" + resolved "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz#6aadc2f995af29cb887eb866d981dc85ab6f7dc7" + integrity sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-array-method-boxes-properly "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + is-string "^1.0.7" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +asap@^2.0.0, asap@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +async-done@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz#f1ec5df738c6383a52b0a30d0902fd897329c15a" + integrity sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw== + dependencies: + end-of-stream "^1.4.4" + once "^1.4.0" + stream-exhaust "^1.0.2" + +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.2" + resolved "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^2.0.0" + stream-exhaust "^1.0.1" + +async-each@^1.0.1: + version "1.0.6" + resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" + integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== + +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + integrity sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw== + dependencies: + async-done "^1.2.2" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + integrity sha512-LEeSAWeh2Gfa2FtlQE1shxQ8zi5F9GHarrGKz08TMdODD5T4eH6BMsvtnhbWZ+XQn+Gb6om/917ucvRu7l7ukw== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.12.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + integrity sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg== + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +bare-events@^2.2.0: + version "2.2.2" + resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz#a98a41841f98b2efe7ecc5c5468814469b018078" + integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +before-after-hook@^2.0.0: + version "2.2.3" + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binaryextensions@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" + integrity sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^1.2.1: + version "1.2.3" + resolved "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@2.9.24: + version "2.9.24" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-2.9.24.tgz#14a2e75f0548323dc35aa440d92007ca154e967c" + integrity sha512-F6vWSDdJRZ5mKeycWf7+l81ibpnjRtQz26eBTUxjpet9tUpN0rz+TV6uO0CCySHdtW4dDZNBSqbbMKoxPChqYw== + +bluebird@3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== + +bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.14.5, browserslist@^4.22.2: + version "4.23.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA== + +buffer-equal@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" + integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q== + +byte-size@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" + integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== + +cacache@^12.0.0, cacache@^12.0.3: + version "12.0.4" + resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ== + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +cachedir@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" + integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== + +cachedir@2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ== + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q== + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase-keys@^7.0.0: + version "7.0.2" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" + integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== + dependencies: + camelcase "^6.3.0" + map-obj "^4.1.0" + quick-lru "^5.1.1" + type-fest "^1.2.1" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw== + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0, camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001587: + version "1.0.30001620" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz#78bb6f35b8fe315b96b8590597094145d0b146b4" + integrity sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew== + +capture-stack-trace@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz#1c43f6b059d4249e7f3f8724f15f048b927d3a8a" + integrity sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chalk@2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" + integrity sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@4.x, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chdir-promise@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/chdir-promise/-/chdir-promise-0.6.2.tgz#d4cfa0a96a112a8149341b69e2866d162f0e2dbd" + integrity sha512-EG5MutQt4qTxoQPfBtPCfU1A/MqborgaO66xrPSD/dRTB40OLN0wy+YAo5ZAw7DawhtCPdZHAdQ206fyWkhoiw== + dependencies: + bluebird "^3.5.1" + check-more-types "2.24.0" + debug "3.1.0" + lazy-ass "1.6.0" + +check-more-types@2.23.0: + version "2.23.0" + resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.23.0.tgz#6226264d30b1095aa1c0a5b874edbdd5d2d0a66f" + integrity sha512-dDo5EKT4pZj5GArqso+z2TJmk5/fb+MqtwqJO4IdVhmL9rjglTvndCTRRwxDlQT9FObaYJENljJ0A+8ckAYakQ== + +check-more-types@2.24.0: + version "2.24.0" + resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== + +check-more-types@2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.3.0.tgz#b8397c69dc92a3e645f18932c045b09c74419ec4" + integrity sha512-4+BBBEpnsINJiW6xFPoTvavMHCV7Ko1UrI9BeDkBE9sR4H3lthKyrzLDoa59Qmi0kY+0YENUlF9ltu3UGUAdvA== + +chokidar@^2.0.0: + version "2.1.8" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0, ci-info@^3.8.0: + version "3.9.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cjs-module-lexer@^1.0.0: + version "1.3.1" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c" + integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + integrity sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== + dependencies: + escape-string-regexp "^1.0.5" + +clean-stack@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" + integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== + dependencies: + escape-string-regexp "5.0.0" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg== + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A== + dependencies: + restore-cursor "^1.0.1" + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-table@0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + integrity sha512-h/TzJrgwzVV+W6laITBZAxAWfBjX4T0x+LF5XJdS1AzDkXqmraMNnKQ/O/f3AHJKVR85fOglUEdS/B0P1wS7Aw== + dependencies: + colors "1.0.3" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-width@^1.0.1: + version "1.1.1" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz#a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d" + integrity sha512-eMU2akIeEIkCxGXUNmDnJq1KzOIiPnJ+rKqRe6hcxE3vIOPvpMrBYOn/Bl7zNlYJj/zQxXquAnozHUCf9Whnsg== + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== + dependencies: + mimic-response "^1.0.0" + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + integrity sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA== + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== + +colors@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w== + +colors@~0.6.0-1: + version "0.6.2" + resolved "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" + integrity sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw== + +columnify@^1.5.4: + version "1.6.0" + resolved "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + dependencies: + strip-ansi "^6.0.1" + wcwidth "^1.0.0" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +command-line-args@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a" + integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg== + dependencies: + array-back "^3.0.1" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +commander@2.12.2: + version "2.12.2" + resolved "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" + integrity sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" + integrity sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ== + +commitizen@4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/commitizen/-/commitizen-4.0.3.tgz#c19a4213257d0525b85139e2f36db7cc3b4f6dae" + integrity sha512-lxu0F/Iq4dudoFeIl5pY3h3CQJzkmQuh3ygnaOvqhAD8Wu2pYBI17ofqSuPHNsBTEOh1r1AVa9kR4Hp0FAHKcQ== + dependencies: + cachedir "2.2.0" + cz-conventional-changelog "3.0.1" + dedent "0.7.0" + detect-indent "6.0.0" + find-node-modules "2.0.0" + find-root "1.1.0" + fs-extra "8.1.0" + glob "7.1.4" + inquirer "6.5.0" + is-utf8 "^0.2.1" + lodash "4.17.15" + minimist "1.2.0" + shelljs "0.7.6" + strip-bom "4.0.0" + strip-json-comments "3.0.1" + +commitizen@^4.0.3: + version "4.3.0" + resolved "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz#0d056c542a2d2b1f9b9aba981aa32575b2849924" + integrity sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw== + dependencies: + cachedir "2.3.0" + cz-conventional-changelog "3.3.0" + dedent "0.7.0" + detect-indent "6.1.0" + find-node-modules "^2.1.2" + find-root "1.1.0" + fs-extra "9.1.0" + glob "7.2.3" + inquirer "8.2.5" + is-utf8 "^0.2.1" + lodash "4.17.21" + minimist "1.2.7" + strip-bom "4.0.0" + strip-json-comments "3.1.1" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compare-func@^1.3.1: + version "1.3.4" + resolved "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz#6b07c4c5e8341119baf44578085bda0f4a823516" + integrity sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q== + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +component-emitter@^1.2.1: + version "1.3.1" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.0, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^3.0.0: + version "3.1.5" + resolved "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" + integrity sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA== + dependencies: + dot-prop "^4.2.1" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +conventional-changelog-angular@5.0.6: + version "5.0.6" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" + integrity sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-angular@^1.6.6: + version "1.6.6" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" + integrity sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-angular@^5.0.12, conventional-changelog-angular@^5.0.3, conventional-changelog-angular@^5.0.6: + version "5.0.13" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" + integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-atom@^2.0.0, conventional-changelog-atom@^2.0.3, conventional-changelog-atom@^2.0.8: + version "2.0.8" + resolved "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" + integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== + dependencies: + q "^1.5.1" + +conventional-changelog-cli@2.0.31: + version "2.0.31" + resolved "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.31.tgz#3345581170fbb540416946e460fef519a64aef43" + integrity sha512-nMINylKAamBLM3OmD7/44d9TPZ3V58IDTXoGC/QtXxve+1Sj37BQTzIEW3TNaviZ2ZV/b5Dqg0eSk4DNP5fBdA== + dependencies: + add-stream "^1.0.0" + conventional-changelog "^3.1.18" + lodash "^4.17.15" + meow "^5.0.0" + tempfile "^3.0.0" + +conventional-changelog-codemirror@^2.0.0, conventional-changelog-codemirror@^2.0.3, conventional-changelog-codemirror@^2.0.8: + version "2.0.8" + resolved "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" + integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== + dependencies: + q "^1.5.1" + +conventional-changelog-conventionalcommits@^4.2.3, conventional-changelog-conventionalcommits@^4.5.0: + version "4.6.3" + resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz#0765490f56424b46f6cb4db9135902d6e5a36dc2" + integrity sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + +conventional-changelog-core@^3.1.0, conventional-changelog-core@^3.1.6: + version "3.2.3" + resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" + integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== + dependencies: + conventional-changelog-writer "^4.0.6" + conventional-commits-parser "^3.0.3" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "2.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^2.0.3" + lodash "^4.2.1" + normalize-package-data "^2.3.5" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^3.0.0" + +conventional-changelog-core@^4.1.4, conventional-changelog-core@^4.2.1: + version "4.2.4" + resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" + integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== + dependencies: + add-stream "^1.0.0" + conventional-changelog-writer "^5.0.0" + conventional-commits-parser "^3.2.0" + dateformat "^3.0.0" + get-pkg-repo "^4.0.0" + git-raw-commits "^2.0.8" + git-remote-origin-url "^2.0.0" + git-semver-tags "^4.1.1" + lodash "^4.17.15" + normalize-package-data "^3.0.0" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^4.0.0" + +conventional-changelog-ember@^2.0.1, conventional-changelog-ember@^2.0.4, conventional-changelog-ember@^2.0.9: + version "2.0.9" + resolved "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" + integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== + dependencies: + q "^1.5.1" + +conventional-changelog-eslint@^3.0.0, conventional-changelog-eslint@^3.0.4, conventional-changelog-eslint@^3.0.9: + version "3.0.9" + resolved "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" + integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== + dependencies: + q "^1.5.1" + +conventional-changelog-express@^2.0.0, conventional-changelog-express@^2.0.1, conventional-changelog-express@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" + integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== + dependencies: + q "^1.5.1" + +conventional-changelog-jquery@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" + integrity sha512-wbz5vVcvu/SPZTDFB21fF/xo5zFq6NQR42jhtUfOrrP1N/ZjNshhGb3expCGqHYdnUHzPevHeUafsVrdxVD5Og== + dependencies: + q "^1.4.1" + +conventional-changelog-jquery@^3.0.11, conventional-changelog-jquery@^3.0.6: + version "3.0.11" + resolved "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" + integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== + dependencies: + q "^1.5.1" + +conventional-changelog-jscs@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" + integrity sha512-V8sey4tE0nJUlWGi2PZKDMfawYLf/+F165xhhDjcIoTEJDxssVV5PMVzTQzjS6U/dEX85fWkur+bs6imOqkIng== + dependencies: + q "^1.4.1" + +conventional-changelog-jshint@^2.0.0, conventional-changelog-jshint@^2.0.3, conventional-changelog-jshint@^2.0.9: + version "2.0.9" + resolved "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" + integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-preset-loader@^2.0.1, conventional-changelog-preset-loader@^2.1.1, conventional-changelog-preset-loader@^2.3.0, conventional-changelog-preset-loader@^2.3.4: + version "2.3.4" + resolved "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== + +conventional-changelog-writer@^4.0.6: + version "4.1.0" + resolved "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz#1ca7880b75aa28695ad33312a1f2366f4b12659f" + integrity sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw== + dependencies: + compare-func "^2.0.0" + conventional-commits-filter "^2.0.7" + dateformat "^3.0.0" + handlebars "^4.7.6" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + meow "^8.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^4.0.0" + +conventional-changelog-writer@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz#e0757072f045fe03d91da6343c843029e702f359" + integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ== + dependencies: + conventional-commits-filter "^2.0.7" + dateformat "^3.0.0" + handlebars "^4.7.7" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + meow "^8.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^4.0.0" + +conventional-changelog@3.1.18: + version "3.1.18" + resolved "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.18.tgz#7da0a5ab34a604b920b8bf71c6cf5d952f0e805e" + integrity sha512-aN6a3rjgV8qwAJj3sC/Lme2kvswWO7fFSGQc32gREcwIOsaiqBaO6f2p0NomFaPDnTqZ+mMZFLL3hlzvEnZ0mQ== + dependencies: + conventional-changelog-angular "^5.0.6" + conventional-changelog-atom "^2.0.3" + conventional-changelog-codemirror "^2.0.3" + conventional-changelog-conventionalcommits "^4.2.3" + conventional-changelog-core "^4.1.4" + conventional-changelog-ember "^2.0.4" + conventional-changelog-eslint "^3.0.4" + conventional-changelog-express "^2.0.1" + conventional-changelog-jquery "^3.0.6" + conventional-changelog-jshint "^2.0.3" + conventional-changelog-preset-loader "^2.3.0" + +conventional-changelog@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-2.0.3.tgz#779cff582c0091d2b24574003eaa82ef5ddf653d" + integrity sha512-4bcII9cJHSKb2qi9e8qGF6aJHLf/AB0dokhyR+X6QILTMl77s4l163vK+reXhajvfOYbbHQvsrWybr5+PKZwNA== + dependencies: + conventional-changelog-angular "^1.6.6" + conventional-changelog-atom "^2.0.0" + conventional-changelog-codemirror "^2.0.0" + conventional-changelog-core "^3.1.0" + conventional-changelog-ember "^2.0.1" + conventional-changelog-eslint "^3.0.0" + conventional-changelog-express "^2.0.0" + conventional-changelog-jquery "^0.1.0" + conventional-changelog-jscs "^0.1.0" + conventional-changelog-jshint "^2.0.0" + conventional-changelog-preset-loader "^2.0.1" + +conventional-changelog@^3.1.18: + version "3.1.25" + resolved "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz#3e227a37d15684f5aa1fb52222a6e9e2536ccaff" + integrity sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ== + dependencies: + conventional-changelog-angular "^5.0.12" + conventional-changelog-atom "^2.0.8" + conventional-changelog-codemirror "^2.0.8" + conventional-changelog-conventionalcommits "^4.5.0" + conventional-changelog-core "^4.2.1" + conventional-changelog-ember "^2.0.9" + conventional-changelog-eslint "^3.0.9" + conventional-changelog-express "^2.0.6" + conventional-changelog-jquery "^3.0.11" + conventional-changelog-jshint "^2.0.9" + conventional-changelog-preset-loader "^2.3.4" + +conventional-commit-message@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/conventional-commit-message/-/conventional-commit-message-1.1.0.tgz#ece8c661a168e983692e1d5a14875acb59510f6a" + integrity sha512-Ukx5qtI7U0mdXi0zEaCsIGLp9Wk8YP2Zd5gZOhZ4LXlTjaFR9eQmo+qBH86AZWcHPAIta8p82B/BbCuz8kUkag== + dependencies: + check-more-types "2.3.0" + cz-conventional-changelog "1.1.5" + lazy-ass "1.3.0" + word-wrap "1.1.0" + +conventional-commit-types@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.3.0.tgz#bc3c8ebba0a9e4b3ecc548f1d0674e251ab8be22" + integrity sha512-6iB39PrcGYdz0n3z31kj6/Km6mK9hm9oMRhwcLnKxE7WNoeRKZbTAobliKrbYZ5jqyCvtcVEfjCiaEzhL3AVmQ== + +conventional-commit-types@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz#7c9214e58eae93e85dd66dbfbafe7e4fffa2365b" + integrity sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== + +conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" + integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" + +conventional-commits-parser@^3.0.3, conventional-commits-parser@^3.2.0: + version "3.2.4" + resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" + integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +conventional-github-releaser@3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/conventional-github-releaser/-/conventional-github-releaser-3.1.3.tgz#0074165abd0da675e56cfd08b3601de8faa4dcba" + integrity sha512-Yt2h9FrpMZV9geO38aXqCvd5N3YGnXZ07Du2kWjSWnBE+QIqcp+dAat/svvWfQyyKMiB1otcZidetPJoKRauqA== + dependencies: + conventional-changelog "^2.0.0" + dateformat "^3.0.0" + debug "^3.1.0" + gh-got "^7.0.0" + git-semver-tags "^2.0.0" + lodash.merge "^4.0.2" + meow "^5.0.0" + object-assign "^4.0.1" + q "^1.4.1" + semver "^5.0.1" + semver-regex "^2.0.0" + through2 "^2.0.0" + +conventional-recommended-bump@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba" + integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^2.1.1" + conventional-commits-filter "^2.0.2" + conventional-commits-parser "^3.0.3" + git-raw-commits "2.0.0" + git-semver-tags "^2.0.3" + meow "^4.0.0" + q "^1.5.1" + +convert-source-map@^1.0.0, convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +copy-props@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2" + integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw== + dependencies: + each-props "^1.3.2" + is-plain-object "^5.0.0" + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig-typescript-loader@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz#0d3becfe022a871f7275ceb2397d692e06045dc8" + integrity sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA== + dependencies: + jiti "^1.19.1" + +cosmiconfig@^5.1.0: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw== + dependencies: + capture-stack-trace "^1.0.0" + +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg== + +css@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng== + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" + integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== + +cz-conventional-changelog@1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-1.1.5.tgz#0a4d1550c4e2fb6a3aed8f6cd858c21760e119b8" + integrity sha512-k9n5N/R+vHP7/MsvGH+3OQRhKNdP5xaOefCdb/N4tmx89uaiHOU+RWT1UtNup8i8/Z+QPRBEfjEHbyufGA0Wvg== + dependencies: + word-wrap "^1.0.3" + +cz-conventional-changelog@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz#2f4bc7390e3244e4df293e6ba351e4c740a7c764" + integrity sha512-TMjkSrvju5fPQV+Ho8TIioAgXkly8h3vJ/txiczJrlUaLpgMGA6ssnwquLMWzNZZyCsJK5r4kPgwdohC4UAGmQ== + dependencies: + conventional-commit-types "^2.0.0" + lodash.map "^4.5.1" + longest "^1.0.1" + right-pad "^1.0.1" + word-wrap "^1.0.3" + +cz-conventional-changelog@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.0.1.tgz#b1f207ae050355e7ada65aad5c52e9de3d0c8e5b" + integrity sha512-7KASIwB8/ClEyCRvQrCPbN7WkQnUSjSSVNyPM+gDJ0jskLi8h8N2hrdpyeCk7fIqKMRzziqVSOBTB8yyLTMHGQ== + dependencies: + chalk "^2.4.1" + conventional-commit-types "^2.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + right-pad "^1.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + +cz-conventional-changelog@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.1.0.tgz#1e004a4f507531347a5f78ab4ed65c3ff693fc97" + integrity sha512-SCwPPOF+7qMh1DZkJhrwaxCvZzPaz2E9BwQzcZwBuHlpcJj9zzz7K5vADQRhHuxStaHZFSLbDlZEdcls4bKu7Q== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + right-pad "^1.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + +cz-conventional-changelog@3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" + integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + +d3-helpers@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/d3-helpers/-/d3-helpers-0.3.0.tgz#4b31dce4a2121a77336384574d893fbed5fb293d" + integrity sha512-uNJ5QRsTW7CdNC6CHX528VwIEzYCC/iFHMQ9ReaDUGA+iiJXHcR2uKobK68FkKSWmNYPxwaUV+9SswjoygF6VA== + +d@1, d@^1.0.1, d@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + integrity sha512-jyweV/k0rbv2WK4r9KLayuBrSh2Py0tNmV7LBoSMH4hMQyrG8OPyIOWB2VEx4DJKXWmK4lopYMVvORlDt2S8Aw== + dependencies: + number-is-nan "^1.0.0" + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug-fabulous@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz#af8a08632465224ef4174a9f06308c3c2a1ebc8e" + integrity sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg== + dependencies: + debug "3.X" + memoizee "0.4.X" + object-assign "4.X" + +debug@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@3.X, debug@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== + +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decamelize@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" + integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + +dedent@0.7.0, dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +dedent@^1.0.0: + version "1.5.3" + resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== + dependencies: + kind-of "^5.0.2" + +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + integrity sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del-cli@5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/del-cli/-/del-cli-5.1.0.tgz#740eca1c7a9eb13043e68d8a361cf0ff9a18d5c8" + integrity sha512-xwMeh2acluWeccsfzE7VLsG3yTr7nWikbfw+xhMnpRrF15pGSkw+3/vJZWlGoE4I86UiLRNHicmKt4tkIX9Jtg== + dependencies: + del "^7.1.0" + meow "^10.1.3" + +del@7.1.0, del@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/del/-/del-7.1.0.tgz#0de0044d556b649ff05387f1fa7c885e155fd1b6" + integrity sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg== + dependencies: + globby "^13.1.2" + graceful-fs "^4.2.10" + is-glob "^4.0.3" + is-path-cwd "^3.0.0" + is-path-inside "^4.0.0" + p-map "^5.5.0" + rimraf "^3.0.2" + slash "^4.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== + +detect-indent@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + +detect-indent@6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== + +detect-newline@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +dezalgo@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + integrity sha512-k4ELWeEU3uCcwub7+dWydqQBRjAjkV9L33HjVRG5Xo2QybI6ja/v+4W73SRi8ubCqJz0l9XsTP1NbewfyqaSlw== + dependencies: + is-obj "^1.0.0" + +dot-prop@^4.2.0, dot-prop@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" + integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== + dependencies: + is-obj "^1.0.0" + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +duplexer@^0.1.1, duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +each-props@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +electron-to-chromium@^1.4.668: + version "1.4.774" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz#1017d1758aaeeefe5423aa9d67b4b1e5d1d0a856" + integrity sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg== + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.4: + version "1.4.4" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.14.1: + version "5.16.1" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz#e8bc63d51b826d6f1cbc0a150ecb5a8b0c62e567" + integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +env-paths@^2.2.0, env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@^7.3.1: + version "7.13.0" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" + integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA== + +errno@^0.1.3: + version "0.1.8" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.5.3" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz#25969419de9c0b1fbe54279789023e8a9a788412" + integrity sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.53, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.64" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" + +es6-iterator@^2.0.1, es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +es6-weak-map@^2.0.1, es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +esbuild-plugin-alias@0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" + integrity sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ== + +esbuild@0.20.0: + version "0.20.0" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.0.tgz#a7170b63447286cd2ff1f01579f09970e6965da4" + integrity sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.20.0" + "@esbuild/android-arm" "0.20.0" + "@esbuild/android-arm64" "0.20.0" + "@esbuild/android-x64" "0.20.0" + "@esbuild/darwin-arm64" "0.20.0" + "@esbuild/darwin-x64" "0.20.0" + "@esbuild/freebsd-arm64" "0.20.0" + "@esbuild/freebsd-x64" "0.20.0" + "@esbuild/linux-arm" "0.20.0" + "@esbuild/linux-arm64" "0.20.0" + "@esbuild/linux-ia32" "0.20.0" + "@esbuild/linux-loong64" "0.20.0" + "@esbuild/linux-mips64el" "0.20.0" + "@esbuild/linux-ppc64" "0.20.0" + "@esbuild/linux-riscv64" "0.20.0" + "@esbuild/linux-s390x" "0.20.0" + "@esbuild/linux-x64" "0.20.0" + "@esbuild/netbsd-x64" "0.20.0" + "@esbuild/openbsd-x64" "0.20.0" + "@esbuild/sunos-x64" "0.20.0" + "@esbuild/win32-arm64" "0.20.0" + "@esbuild/win32-ia32" "0.20.0" + "@esbuild/win32-x64" "0.20.0" + +esbuild@^0.17.11: + version "0.17.19" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" + integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== + optionalDependencies: + "@esbuild/android-arm" "0.17.19" + "@esbuild/android-arm64" "0.17.19" + "@esbuild/android-x64" "0.17.19" + "@esbuild/darwin-arm64" "0.17.19" + "@esbuild/darwin-x64" "0.17.19" + "@esbuild/freebsd-arm64" "0.17.19" + "@esbuild/freebsd-x64" "0.17.19" + "@esbuild/linux-arm" "0.17.19" + "@esbuild/linux-arm64" "0.17.19" + "@esbuild/linux-ia32" "0.17.19" + "@esbuild/linux-loong64" "0.17.19" + "@esbuild/linux-mips64el" "0.17.19" + "@esbuild/linux-ppc64" "0.17.19" + "@esbuild/linux-riscv64" "0.17.19" + "@esbuild/linux-s390x" "0.17.19" + "@esbuild/linux-x64" "0.17.19" + "@esbuild/netbsd-x64" "0.17.19" + "@esbuild/openbsd-x64" "0.17.19" + "@esbuild/sunos-x64" "0.17.19" + "@esbuild/win32-arm64" "0.17.19" + "@esbuild/win32-ia32" "0.17.19" + "@esbuild/win32-x64" "0.17.19" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-plugin-jest@27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.4.2.tgz#181d999ac67a9b6040db1d27935887cf5a2882ed" + integrity sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg== + dependencies: + "@typescript-eslint/utils" "^5.10.0" + +eslint-plugin-unicorn@49.0.0: + version "49.0.0" + resolved "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-49.0.0.tgz#4449ea954d7e1455eec8518f9417d7021b245fa8" + integrity sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + "@eslint-community/eslint-utils" "^4.4.0" + ci-info "^3.8.0" + clean-regexp "^1.0.0" + esquery "^1.5.0" + indent-string "^4.0.0" + is-builtin-module "^3.2.1" + jsesc "^3.0.2" + pluralize "^8.0.0" + read-pkg-up "^7.0.1" + regexp-tree "^0.1.27" + regjsparser "^0.10.0" + semver "^7.5.4" + strip-indent "^3.0.0" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@8.52.0: + version "8.52.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz#d0cd4a1fac06427a61ef9242b9353f36ea7062fc" + integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.52.0" + "@humanwhocodes/config-array" "^0.11.13" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +"esm@https://github.com/jsg2021/esm/releases/download/v3.x.x-pr883/esm-3.x.x-pr883.tgz": + version "3.2.25" + resolved "https://github.com/jsg2021/esm/releases/download/v3.x.x-pr883/esm-3.x.x-pr883.tgz#c463cfa4e14aceea6b7cd7e669ef90de072ea60a" + +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2, esquery@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg== + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== + dependencies: + homedir-polyfill "^1.0.1" + +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fancy-log@^1.3.2, fancy-log@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + +fancy-log@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz#cad207b8396d69ae4796d74d17dff5f68b2f7343" + integrity sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA== + dependencies: + color-support "^1.1.3" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-fifo@^1.1.0: + version "1.3.2" + resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9" + integrity sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^1.3.5, figures@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@^9.0.11: + version "9.0.11" + resolved "https://registry.npmjs.org/filesize/-/filesize-9.0.11.tgz#4ac3a42c084232dd9b2a1da0107f32d42fcfa5e4" + integrity sha512-gTAiTtI0STpKa5xesyTA9hA3LX4ga8sm2nWRcffEa1L/5vQwb4mj2MdzMkoHoGv4QzfDshQZuYscQSf8c4TKOA== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + +find-node-modules@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz#5db1fb9e668a3d451db3d618cd167cdd59e41b69" + integrity sha512-8MWIBRgJi/WpjjfVXumjPKCtmQ10B+fjx6zmSA+770GMJirLhWIzg8l763rhjl9xaeaHbnxPNRQKq2mgMhr+aw== + dependencies: + findup-sync "^3.0.0" + merge "^1.2.1" + +find-node-modules@^2.1.2: + version "2.1.3" + resolved "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz#3c976cff2ca29ee94b4f9eafc613987fc4c0ee44" + integrity sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg== + dependencies: + findup-sync "^4.0.0" + merge "^2.1.1" + +find-parent-dir@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz#c5c385b96858c3351f95d446cab866cbf9f11125" + integrity sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A== + +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + +find-root@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@2.1.0, find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-yarn-workspace-root@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" + integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q== + dependencies: + fs-extra "^4.0.3" + micromatch "^3.1.4" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g== + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" + integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^4.0.2" + resolve-dir "^1.0.1" + +findup@0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb" + integrity sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA== + dependencies: + colors "~0.6.0-1" + commander "~2.1.0" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: + version "1.1.1" + resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== + dependencies: + for-in "^1.0.1" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +from2@^2.1.0, from2@^2.1.1: + version "2.3.0" + resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@8.1.0, fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + integrity sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ== + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + integrity sha512-xPCyvcEOxCJDxhBfXDNH+zA7mIRGb2aY1gIUJWsZkpJbp1BLHl+/Sycg26Dv+ZbZAJkO61tzbBtqHUi30NGBvg== + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-pkg-repo@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" + integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== + dependencies: + "@hutson/parse-repository-url" "^3.0.0" + hosted-git-info "^4.0.0" + through2 "^2.0.0" + yargs "^16.2.0" + +get-port@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" + integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +ggit@2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/ggit/-/ggit-2.4.2.tgz#38fbddfffd2faab98e29f8a15e12d59a6557abbc" + integrity sha512-4pltyhG4cjVT1Nqs9pq8Iykc/lTibc4LKRUAxszA9+OgwpfGhbsFgzhtyXwh5AbiWZrBa87nIHzyVGlJoT4nCw== + dependencies: + always-error "1.0.0" + bluebird "3.5.1" + chdir-promise "0.6.2" + check-more-types "2.24.0" + cli-table "0.3.1" + colors "1.1.2" + commander "2.12.2" + d3-helpers "0.3.0" + debug "3.1.0" + find-up "2.1.0" + glob "7.1.2" + lazy-ass "1.6.0" + lodash "4.17.4" + moment "2.19.3" + moment-timezone "0.5.14" + optimist "0.6.1" + pluralize "7.0.0" + q "2.0.3" + quote "0.4.0" + ramda "0.25.0" + semver "5.4.1" + +gh-got@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/gh-got/-/gh-got-7.1.0.tgz#f2b14eef375ce49b66d5f034a1c124f56dc5bcf0" + integrity sha512-KeWkkhresa7sbpzQLYzITMgez5rMigUsijhmSAHcLDORIMUbdlkdoZyaN1wQvIjmUZnyb/wkAPaXb4MQKX0mdQ== + dependencies: + got "^8.0.0" + is-plain-obj "^1.1.0" + +git-raw-commits@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" + integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-raw-commits@^2.0.8: + version "2.0.11" + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^2.0.0, git-semver-tags@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" + integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== + dependencies: + meow "^4.0.0" + semver "^6.0.0" + +git-semver-tags@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" + integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== + dependencies: + meow "^8.0.0" + semver "^6.0.0" + +git-up@^4.0.0: + version "4.0.5" + resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" + integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== + dependencies: + is-ssh "^1.3.0" + parse-url "^6.0.0" + +git-url-parse@^11.1.2: + version "11.6.0" + resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" + integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== + dependencies: + git-up "^4.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== + dependencies: + ini "^1.3.2" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + integrity sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw== + dependencies: + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob-watcher@^5.0.3: + version "5.0.5" + resolved "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz#aa6bce648332924d9a8489be41e3e5c52d4186dc" + integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw== + dependencies: + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + normalize-path "^3.0.0" + object.defaults "^1.1.0" + +glob@10.3.10: + version "10.3.10" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.4: + version "7.1.4" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.2.3, glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-directory@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e" + integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== + dependencies: + ini "4.1.1" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== + dependencies: + ini "^1.3.4" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.1.2: + version "13.2.2" + resolved "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +glogg@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" + integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== + dependencies: + sparkles "^1.0.0" + +google-closure-compiler-java@^20230802.0.0: + version "20230802.0.0" + resolved "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20230802.0.0.tgz#5de4679f3d014b6b66471a48fb82c2772db4c872" + integrity sha512-PWKLMLwj7pR/U0yYbiy649LLqAscu+F1gyY4Y/jK6CmSLb8cIJbL8BTJd00828TzTNfWnYwxbkcQw0y9C2YsGw== + +google-closure-compiler-linux@^20230802.0.0: + version "20230802.0.0" + resolved "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20230802.0.0.tgz#1acaf12ef386e5c1dcb5ff5796d4ae9f48ebce46" + integrity sha512-F13U4iSXiWeGtHOFS25LVem1s6zI+pJvXVPVR7zSib5ppoUJ0JXnABJQezUR3FnpxmnkALG4oIGW0syH9zPLZA== + +google-closure-compiler-osx@^20230802.0.0: + version "20230802.0.0" + resolved "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20230802.0.0.tgz#10746ecfa81ad6eecc4d42d4ce9d0ed3ca8071e7" + integrity sha512-ANAi/ux92Tt+Na7vFDLeK2hRzotjC5j+nxoPtE0OcuNcbjji5dREKoJxkq7r0YwRTCzAFZszK5ip/NPdTOdCEg== + +google-closure-compiler-windows@^20230802.0.0: + version "20230802.0.0" + resolved "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20230802.0.0.tgz#d57968dc24d5e0d538840b4313e1bec7c71b18d6" + integrity sha512-ZQPujoNiiUyTGl8zEGR/0yAygWnbMtX/NQ/S/EHVgq5nmYkvDEVuiVbgpPAmO9lzBTq0hvUTRRATZbTU2ISxgA== + +google-closure-compiler@20230802.0.0: + version "20230802.0.0" + resolved "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20230802.0.0.tgz#849181359823f8c9130faec9a1597377680823d6" + integrity sha512-o2fYoc8lqOBdhm95Ick0vWrtwH2Icd5yLZhbTcQ0T7NfGiBepYvx1BB63hR8ebgzEZemz9Fh+O6Kg/3Mjm28ww== + dependencies: + chalk "4.x" + google-closure-compiler-java "^20230802.0.0" + minimist "1.x" + vinyl "2.x" + vinyl-sourcemaps-apply "^0.2.0" + optionalDependencies: + google-closure-compiler-linux "^20230802.0.0" + google-closure-compiler-osx "^20230802.0.0" + google-closure-compiler-windows "^20230802.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg== + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +got@^8.0.0: + version "8.3.2" + resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +gulp-cli@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f" + integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A== + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.4.0" + isobject "^3.0.1" + liftoff "^3.1.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.2.0" + yargs "^7.1.0" + +gulp-esbuild@0.11.1: + version "0.11.1" + resolved "https://registry.npmjs.org/gulp-esbuild/-/gulp-esbuild-0.11.1.tgz#85d0ebbacae844dbbae02bb6f9d4216e9b45cee7" + integrity sha512-+Lbc4NXBcSXtvvz9wIZNrxGfgF70NgBfSNhHi3o4jKD36KQxFVKRECU72ZsSqyy08qXojK6Cur5/S0Ds+2xpSg== + dependencies: + esbuild "^0.17.11" + plugin-error "^2.0.1" + vinyl "^3.0.0" + +gulp-json-transform@0.4.8: + version "0.4.8" + resolved "https://registry.npmjs.org/gulp-json-transform/-/gulp-json-transform-0.4.8.tgz#fdbd19fd5327661ccdfc5977621f739ea86d557d" + integrity sha512-FBVn1HqNf0hqsgrspA7Xz2i/HxRZPKnccMapKPfIE+PANuCmtmgMD2OfRLbqRGBb0Xwl1pE76sSct5gyF1zsfw== + dependencies: + ansi-colors "^1.0.1" + fancy-log "^1.3.2" + plugin-error "^1.0.1" + promise "^8.0.1" + through2 "^2.0.3" + vinyl "^2.1.0" + +gulp-rename@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz#9bbc3962b0c0f52fc67cd5eaff6c223ec5b9cf6c" + integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== + +gulp-replace@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.1.4.tgz#06a0e9ee36f30e343c1e0a2dd760ec32c8a3d3b2" + integrity sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw== + dependencies: + "@types/node" "*" + "@types/vinyl" "^2.0.4" + istextorbinary "^3.0.0" + replacestream "^4.0.3" + yargs-parser ">=5.0.0-security.0" + +gulp-sourcemaps@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz#2e154e1a2efed033c0e48013969e6f30337b2743" + integrity sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ== + dependencies: + "@gulp-sourcemaps/identity-map" "^2.0.1" + "@gulp-sourcemaps/map-sources" "^1.0.0" + acorn "^6.4.1" + convert-source-map "^1.0.0" + css "^3.0.0" + debug-fabulous "^1.0.0" + detect-newline "^2.0.0" + graceful-fs "^4.0.0" + source-map "^0.6.0" + strip-bom-string "^1.0.0" + through2 "^2.0.0" + +gulp-terser@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/gulp-terser/-/gulp-terser-2.1.0.tgz#149b693a1adbde922807b60b844bb7351dafbde1" + integrity sha512-lQ3+JUdHDVISAlUIUSZ/G9Dz/rBQHxOiYDQ70IVWFQeh4b33TC1MCIU+K18w07PS3rq/CVc34aQO4SUbdaNMPQ== + dependencies: + plugin-error "^1.0.1" + terser "^5.9.0" + through2 "^4.0.2" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-typescript@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz#96c6565a6eb31e08c2aae1c857b1a079e6226d94" + integrity sha512-YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ== + dependencies: + ansi-colors "^3.0.5" + plugin-error "^1.0.1" + source-map "^0.7.3" + through2 "^3.0.0" + vinyl "^2.1.0" + vinyl-fs "^3.0.3" + +gulp-vinyl-size@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/gulp-vinyl-size/-/gulp-vinyl-size-1.1.4.tgz#06b98a8aa9f91f420ea3068798800aa21f8ccdc1" + integrity sha512-k8QTnUD69CnQnbpbXExFRtMDtQ9jIc5nZXYyVNB5Z+7xrZIO3hVS0zotoWwZawgtBLNLvAnm6JZ3zL+O1ysQ3A== + dependencies: + fancy-log "^2.0.0" + filesize "^9.0.11" + gzip-size "^6.0.0" + +gulp@4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" + integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== + dependencies: + glob-watcher "^5.0.3" + gulp-cli "^2.2.0" + undertaker "^1.2.1" + vinyl-fs "^3.0.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + integrity sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw== + dependencies: + glogg "^1.0.0" + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handlebars@^4.7.6, handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-unicode@^2.0.0, has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: + version "2.8.9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hr@0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/hr/-/hr-0.1.3.tgz#d9aa30f5929dabfd0b65ba395938a3e184dbcafe" + integrity sha512-/ESbNMmBUOiMb4ibd73ArxjuzkRviEzFtFLG0eVYjMMBNkSibEX1oOEDL31InrfhHTpTsMg0Q5atOxQHrN6mpw== + +html-escaper@^2.0.0, html-escaper@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-proxy-agent@^2.2.3: + version "2.2.4" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +iconv-lite@^0.4.17, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== + +ignore-walk@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== + dependencies: + minimatch "^3.0.4" + +ignore@^4.0.3: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +import-meta-resolve@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" + integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg== + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indent-string@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" + integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== + +ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw== + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +inquirer-confirm@0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/inquirer-confirm/-/inquirer-confirm-0.2.2.tgz#6f406d037bf9d9e455ef0f953929f357fe9a8848" + integrity sha512-1WP0lz0m0cOi0IQZY4/+48s4QG3HFXa2EpOEoFC6xz6sYJBpgTDR2fmNvoF1W1mocuFpbsq1LKTRhEiatv8oXg== + dependencies: + bluebird "2.9.24" + inquirer "0.8.2" + +inquirer@0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + integrity sha512-bOetEz5+/WpgaW4D1NYOk1aD+JCqRjqu/FwRFgnIfiP7FC/zinsrfyO1vlS3nyH/R7S0IH3BIHBu4DBIDSqiGQ== + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-0.8.2.tgz#41586548e1c5d9b3f81df7325034baacab6f58ab" + integrity sha512-OjSNzonD7dlUxuhnej2FwyBs7lU6FF1y6aKXmv/gItR0WwPeVorcnlcsxqFcfJ/9jCmmm0Ly3V9VzKkLdKL1vA== + dependencies: + ansi-regex "^1.1.1" + chalk "^1.0.0" + cli-width "^1.0.1" + figures "^1.3.5" + lodash "^3.3.1" + readline2 "^0.1.1" + rx "^2.4.3" + through "^2.3.6" + +inquirer@3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +inquirer@6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" + integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +inquirer@8.2.5: + version "8.2.5" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + +inquirer@^6.2.0: + version "6.5.2" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +interpret@^1.0.0, interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ== + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== + +ip@1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== + dependencies: + hasown "^2.0.0" + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== + dependencies: + binary-extensions "^1.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.13.0, is-core-module@^2.5.0: + version "2.13.1" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.7" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw== + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + integrity sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0, is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz#889b41e55c8588b1eb2a96a61d05740a674521c7" + integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA== + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g== + dependencies: + path-is-inside "^1.0.1" + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-path-inside@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" + integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-promise@^2.1.0, is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw== + +is-reference@1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-ssh@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + dependencies: + text-extensions "^1.0.0" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-instrument@^6.0.0: + version "6.0.2" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" + integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.7" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +istextorbinary@^3.0.0: + version "3.3.0" + resolved "https://registry.npmjs.org/istextorbinary/-/istextorbinary-3.3.0.tgz#06b1c57d948da11461bd237c00ce09e9902964f2" + integrity sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ== + dependencies: + binaryextensions "^2.2.0" + textextensions "^3.2.0" + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.6.2: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-silent-reporter@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jest-silent-reporter/-/jest-silent-reporter-0.5.0.tgz#5fd8ccd61665227e3bf19d908b7350719d06ff38" + integrity sha512-epdLt8Oj0a1AyRiR6F8zx/1SVT1Mi7VU3y4wB2uOBHs/ohIquC7v2eeja7UN54uRPyHInIKWdL+RdG228n5pJQ== + dependencies: + chalk "^4.0.0" + jest-util "^26.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + +jest-util@^26.0.0: + version "26.6.2" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-util@^29.0.0, jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@29.6.2: + version "29.6.2" + resolved "https://registry.npmjs.org/jest/-/jest-29.6.2.tgz#3bd55b9fd46a161b2edbdf5f1d1bd0d1eab76c42" + integrity sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg== + dependencies: + "@jest/core" "^29.6.2" + "@jest/types" "^29.6.1" + import-local "^3.0.2" + jest-cli "^29.6.2" + +jiti@^1.19.1: + version "1.21.0" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@^3.2.0: + version "3.2.1" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" + integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +just-debounce@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf" + integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +largest-semantic-change@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/largest-semantic-change/-/largest-semantic-change-1.1.0.tgz#47f5be0006aa344347d3e776951a03d5c692d2fd" + integrity sha512-08+Ua/er8wnwkEVW5a7w1Q6loULCD+e/xmxvTo1JnJrD/2T+xqivq53Io/OEL78E94lblYIM7GaLo+1/MWwPWg== + dependencies: + check-more-types "2.23.0" + lazy-ass "1.5.0" + +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + integrity sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ== + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w== + dependencies: + package-json "^4.0.0" + +lazy-ass@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.3.0.tgz#7d0d14eef3ec9702c6f30c60ea81f1a8d3f900fb" + integrity sha512-wE62eBXnvW8H+d39N/jE8VQL6uOZCX9GyTNMzHZmSZMpUlMSas4fK+irRbvypnkwhBDYh3CfdUDWbieXbDv+nQ== + +lazy-ass@1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.5.0.tgz#ca15be243c7c475b8565cdbfa0f9c2f374f2a01d" + integrity sha512-5l6J7+KWp/OiisiR/KkwuPgeaIyb8d5jlLZsncDpffa5aBtOCcEcyoXoMGxOw50fr7RrCxEGqXkIHGRl1PL7ig== + +lazy-ass@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== + +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== + dependencies: + invert-kv "^1.0.0" + +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + integrity sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow== + dependencies: + flush-write-stream "^1.0.2" + +lerna@3.20.2: + version "3.20.2" + resolved "https://registry.npmjs.org/lerna/-/lerna-3.20.2.tgz#abf84e73055fe84ee21b46e64baf37b496c24864" + integrity sha512-bjdL7hPLpU3Y8CBnw/1ys3ynQMUjiK6l9iDWnEGwFtDy48Xh5JboR9ZJwmKGCz9A/sarVVIGwf1tlRNKUG9etA== + dependencies: + "@lerna/add" "3.20.0" + "@lerna/bootstrap" "3.20.0" + "@lerna/changed" "3.20.0" + "@lerna/clean" "3.20.0" + "@lerna/cli" "3.18.5" + "@lerna/create" "3.18.5" + "@lerna/diff" "3.18.5" + "@lerna/exec" "3.20.0" + "@lerna/import" "3.18.5" + "@lerna/info" "3.20.0" + "@lerna/init" "3.18.5" + "@lerna/link" "3.18.5" + "@lerna/list" "3.20.0" + "@lerna/publish" "3.20.2" + "@lerna/run" "3.20.0" + "@lerna/version" "3.20.2" + import-local "^2.0.0" + npmlog "^4.1.2" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +liftoff@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== + dependencies: + extend "^3.0.0" + findup-sync "^3.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lint-staged@10.0.7: + version "10.0.7" + resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-10.0.7.tgz#d205f92d9359419a23bc6aa3b6f8546b1998da64" + integrity sha512-Byj0F4l7GYUpYYHEqyFH69NiI6ICTg0CeCKbhRorL+ickbzILKUlZLiyCkljZV02wnoh7yH7PmFyYm9PRNwk9g== + dependencies: + chalk "^3.0.0" + commander "^4.0.1" + cosmiconfig "^6.0.0" + debug "^4.1.1" + dedent "^0.7.0" + execa "^3.4.0" + listr "^0.14.3" + log-symbols "^3.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-json-file@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.clone@^4.3.2: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + integrity sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg== + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.map@^4.5.1: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== + +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.0.2, lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg== + +lodash.some@^4.2.2: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash.template@^4.0.2, lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@4.17.15: + version "4.17.15" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lodash@4.17.21, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lodash@4.17.4: + version "4.17.4" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + integrity sha512-6X37Sq9KCpLSXEh8uM12AKYlviHPNNk4RxiGBn4cmKGJinbXBneWIV7iE/nXkM928O7ytHcHb6+X6Svl0f4hXg== + +lodash@^3.3.1: + version "3.10.1" + resolved "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + integrity sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ== + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== + dependencies: + chalk "^1.0.0" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg== + +longest@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" + integrity sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q== + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ== + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A== + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +macos-release@^2.2.0: + version "2.5.1" + resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz#bccac4a8f7b93163a8d163b8ebf385b3c5f55bf9" + integrity sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A== + +magic-string@^0.30.3: + version "0.30.10" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" + integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" + integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== + dependencies: + agentkeepalive "^3.4.1" + cacache "^12.0.0" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ== + +map-obj@^4.0.0, map-obj@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +marked@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== + +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + integrity sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA== + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" + +memoizee@0.4.X: + version "0.4.15" + resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +meow@^10.1.3: + version "10.1.5" + resolved "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" + integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== + dependencies: + "@types/minimist" "^1.2.2" + camelcase-keys "^7.0.0" + decamelize "^5.0.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.2" + read-pkg-up "^8.0.0" + redent "^4.0.0" + trim-newlines "^4.0.2" + type-fest "^1.2.2" + yargs-parser "^20.2.9" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA== + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + +meow@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + yargs-parser "^10.0.0" + +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +merge@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +merge@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" + integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-indent@^1.0.0, min-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== + +minimist@1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +minimist@1.x, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw== + +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.1.1" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz#f7f85aff59aa22f110b20e27692465cf3bf89481" + integrity sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA== + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + +mkdirp@^0.5.1, mkdirp@^0.5.5: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + +moment-timezone@0.5.14: + version "0.5.14" + resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.14.tgz#4eb38ff9538b80108ba467a458f3ed4268ccfcb1" + integrity sha512-4RkNPVuQ/ClAXqd3T+tkBy85tEUxnNNIaG4hbviFp7vZ2hRY0mjHGRIWG/NdkUzSaH36nchdBXyvPwrODjPzUA== + dependencies: + moment ">= 2.9.0" + +moment@2.19.3: + version "2.19.3" + resolved "https://registry.npmjs.org/moment/-/moment-2.19.3.tgz#bdb99d270d6d7fda78cc0fbace855e27fe7da69f" + integrity sha512-SiZ1HUDMfBpfCzL1Hm1vxUFkYDbHx8/RiWBLF+5qoVWTlBGtR15+wVQB7eSD/0w3ueDxzojlX9LQtiKVpLMsFQ== + +"moment@>= 2.9.0": + version "2.30.1" + resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== + +mute-stream@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz#a9219960a6d5d5d046597aee51252c6655f7177e" + integrity sha512-amvrY4m/7oZamehMoFi1tbwU/kXbVvRTGM2S7F+PZi3n51Jx+9AcSQ3EQsag3tR+hS2higfgOP/Kl8kri/X52A== + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + integrity sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== + +mute-stream@0.0.8, mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.5.0: + version "2.7.0" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.12.1: + version "2.19.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" + integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch-npm@^2.0.2: + version "2.0.4" + resolved "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + +node-fetch@^2.5.0, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-gyp@^5.0.2: + version "5.1.1" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" + integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.1.2" + request "^2.88.0" + rimraf "^2.6.3" + semver "^5.7.1" + tar "^4.4.12" + which "^1.3.1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +normalize-url@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +now-and-later@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" + integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== + dependencies: + once "^1.3.2" + +npm-bundled@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-lifecycle@^3.1.2: + version "3.1.5" + resolved "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" + integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.15" + node-gyp "^5.0.2" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.1" + +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.1" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.4.4: + version "1.4.8" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" + integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-run-all@4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@4.X, object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.defaults@^1.0.0, object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.8" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" + integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + gopd "^1.0.1" + safe-array-concat "^1.1.2" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w== + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + integrity sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw== + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +octokit-pagination-methods@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A== + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +optimist@0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g== + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + integrity sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw== + dependencies: + readable-stream "^2.0.1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== + dependencies: + lcid "^1.0.0" + +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +osenv@^0.1.4, osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + integrity sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg== + dependencies: + p-reduce "^1.0.0" + +p-map@^2.0.0, p-map@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" + integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== + dependencies: + aggregate-error "^4.0.0" + +p-pipe@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" + integrity sha512-IA8SqjIGA8l9qOksXJvsvkeQ+VGb0TAzNCzvKvz9wt5wWLqfWbV6fXy43gpR2L4Te8sOq3S+Ql9biAaMKPdbtw== + +p-queue@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz#ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346" + integrity sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg== + dependencies: + eventemitter3 "^3.1.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ== + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +p-waterfall@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-waterfall/-/p-waterfall-1.0.0.tgz#7ed94b3ceb3332782353af6aae11aa9fc235bb00" + integrity sha512-KeXddIp6jBT8qzyxfQGOGzNYc/7ftxKtRc5Uggre02yvbZrSBHE2M2C842/WizMBFD4s0Ngwz3QFOit2A+Ezrg== + dependencies: + p-reduce "^1.0.0" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha512-q/R5GrMek0vzgoomq6rm9OX+3PQve8sLwTirmK30YB3Cu0Bbt9OX9M/SIUnroN5BGJkzwGsFwDaRGD9EwBOlCA== + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-github-repo-url@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + integrity sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== + +parse-path@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" + integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + qs "^6.9.4" + query-string "^6.13.8" + +parse-url@^6.0.0: + version "6.0.5" + resolved "https://registry.npmjs.org/parse-url/-/parse-url-6.0.5.tgz#4acab8982cef1846a0f8675fa686cef24b2f6f9b" + integrity sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA== + dependencies: + is-ssh "^1.3.0" + normalize-url "^6.1.0" + parse-path "^4.0.0" + protocols "^1.4.0" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +patch-package@6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.2.0.tgz#677de858e352b6ca4e6cb48a6efde2cec9fde566" + integrity sha512-HWlQflaBBMjLBfOWomfolF8aqsFDeNbSNro1JDUgYqnVvPM5OILJ9DQdwIRiKmGaOsmHvhkl1FYkvv1I9r2ZJw== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^2.4.2" + cross-spawn "^6.0.5" + find-yarn-workspace-root "^1.2.1" + fs-extra "^7.0.1" + is-ci "^2.0.0" + klaw-sync "^6.0.0" + minimist "^1.2.0" + rimraf "^2.6.3" + semver "^5.6.0" + slash "^2.0.0" + tmp "^0.0.33" + update-notifier "^2.5.0" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + +path-scurry@^1.10.1: + version "1.11.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + +plugin-error@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.1.tgz#f2ac92bac8c85e3e23492d76d0c3ca12f30eb00b" + integrity sha512-zMakqvIDyY40xHOvzXka0kUvf40nYIuwRE8dWhti2WtjQZ31xAgBZBhxsK7vK3QbRXS1Xms/LO7B5cuAsfB2Gg== + dependencies: + ansi-colors "^1.0.1" + +pluralize@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +pop-iterate@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/pop-iterate/-/pop-iterate-1.0.1.tgz#ceacfdab4abf353d7a0f2aaa2c1fc7b3f9413ba3" + integrity sha512-HRCx4+KJE30JhX84wBN4+vja9bNfysxg1y28l0DuJmkoaICiv2ZSilKddbS48pq50P8d2erAhqDLbp47yv3MbQ== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss@^7.0.16: + version "7.0.39" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postinstall-postinstall@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postinstall-postinstall/-/postinstall-postinstall-2.0.0.tgz#7ba6711b4420575c4f561638836a81faad47f43f" + integrity sha512-3f6qWexsHiT4WKtZc5DRb0FPLilHtARi5KpY4fqban/DJNn8/YhZH8U7dVKVz51WbOxEnR31gV+qYQhvEdHtdQ== + +pre-git@3.17.1: + version "3.17.1" + resolved "https://registry.npmjs.org/pre-git/-/pre-git-3.17.1.tgz#1950d40151e067f7bc11f65a554d259f1c0df261" + integrity sha512-/UH/OXKadgcm+7AvK7yNw5jxhN14/NSZ7rq8RgtJvX/KUjGtYQYx7UEAKIZtMjYZDO53nFpDVDr7SQzpVV55lA== + dependencies: + bluebird "3.5.1" + chalk "2.3.2" + check-more-types "2.24.0" + conventional-commit-message "1.1.0" + cz-conventional-changelog "2.1.0" + debug "3.1.0" + ggit "2.4.2" + inquirer "3.3.0" + lazy-ass "1.6.0" + require-relative "0.8.7" + shelljs "0.8.1" + simple-commit-message "4.0.3" + validate-commit-msg "2.14.0" + word-wrap "1.2.3" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + +prettier@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.0.1.tgz#3f00ac71263be34684b2b2c8d7e7f63737592dac" + integrity sha512-piXGBcY1zoFOG0MvHpNE5reAGseLmaCRifQ/fmfF49BcYkInEs/naD/unxGNAeOKFA5+JxVrPyMvMlpzcd20UA== + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha512-StEy2osPr28o17bIW776GtwO6+Q+M9zPiZkYfosciUUMYqjhU/ffwRAH0zN2+uvGyUsn8/YICIHRzLbPacpZGw== + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +promise@^8.0.1: + version "8.3.0" + resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== + dependencies: + read "1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +protocols@^1.4.0: + version "1.4.8" + resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" + integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== + +protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +protoduck@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== + dependencies: + genfun "^5.0.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3, pumpify@^1.3.5: + version "1.5.1" + resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-rand@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" + integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== + +q@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/q/-/q-2.0.3.tgz#75b8db0255a1a5af82f58c3f3aaa1efec7d0d134" + integrity sha512-gv6vLGcmAOg96/fgo3d9tvA4dJNZL3fMyBqVRrGxQ+Q/o4k9QzbJ3NQF9cOO/71wRodoXhaPgphvMFU68qVAJQ== + dependencies: + asap "^2.0.0" + pop-iterate "^1.0.1" + weak-map "^1.0.5" + +q@^1.4.1, q@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qs@^6.9.4: + version "6.12.1" + resolved "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== + dependencies: + side-channel "^1.0.6" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +query-string@^6.13.8: + version "6.14.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" + integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== + dependencies: + decode-uri-component "^0.2.0" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +quote@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/quote/-/quote-0.4.0.tgz#10839217f6c1362b89194044d29b233fd7f32f01" + integrity sha512-KHp3y3xDjuBhRx+tYKOgzPnVHMRlgpn2rU450GcU4PL24r1H6ls/hfPrxDwX2pvYMlwODHI2l8WwgoV69x5rUQ== + +ramda@0.25.0: + version "0.25.0" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +rc@^1.0.1, rc@^1.1.6: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +read-cmd-shim@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" + integrity sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA== + dependencies: + graceful-fs "^4.1.2" + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: + version "2.1.2" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" + integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== + dependencies: + glob "^7.1.1" + json-parse-even-better-errors "^2.3.0" + normalize-package-data "^2.0.0" + npm-normalize-package-bin "^1.0.0" + +read-package-tree@^5.1.6: + version "5.3.1" + resolved "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" + integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== + dependencies: + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + util-promisify "^2.1.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg-up@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" + integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== + dependencies: + find-up "^5.0.0" + read-pkg "^6.0.0" + type-fest "^1.0.1" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read-pkg@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" + integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^3.0.2" + parse-json "^5.2.0" + type-fest "^1.0.1" + +read@1, read@~1.0.1: + version "1.0.7" + resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-scoped-modules@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readline2@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz#99443ba6e83b830ef3051bfd7dc241a82728d568" + integrity sha512-qs8GGG+hLGMaDOGjd+mDglDoYcHDkjIY7z5RU0/ApsGT0qypyrWskNeemUqD+UxIXiZoMYT5aLwGp4ehoyZhIg== + dependencies: + mute-stream "0.0.4" + strip-ansi "^2.0.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + integrity sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g== + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw== + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redent@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" + integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== + dependencies: + indent-string "^5.0.0" + strip-indent "^4.0.0" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-tree@^0.1.27: + version "0.1.27" + resolved "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" + integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +registry-auth-token@^3.0.1: + version "3.4.0" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA== + dependencies: + rc "^1.0.1" + +regjsparser@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz#b1ed26051736b436f22fdec1c8f72635f9f44892" + integrity sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA== + dependencies: + jsesc "~0.5.0" + +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + integrity sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA== + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== + dependencies: + is-finite "^1.0.0" + +replace-ext@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== + +replace-ext@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz#9471c213d22e1bcc26717cd6e50881d88f812b06" + integrity sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug== + +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + integrity sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg== + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" + +replacestream@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz#3ee5798092be364b1cdb1484308492cb3dff2f36" + integrity sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA== + dependencies: + escape-string-regexp "^1.0.3" + object-assign "^4.0.1" + readable-stream "^2.0.2" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-relative@0.8.7: + version "0.8.7" + resolved "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + integrity sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A== + dependencies: + value-or-function "^3.0.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.4.0: + version "1.22.8" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw== + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +right-pad@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" + integrity sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw== + +rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup@4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.3.0.tgz#198e6ae4355899db630d75bc0e17b53f5d0fc20e" + integrity sha512-scIi1NrKLDIYSPK66jjECtII7vIgdAMFmFo8h6qm++I6nN9qDSV35Ku6erzGVqYjx+lj+j5wkusRMr++8SyDZg== + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.3.0" + "@rollup/rollup-android-arm64" "4.3.0" + "@rollup/rollup-darwin-arm64" "4.3.0" + "@rollup/rollup-darwin-x64" "4.3.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.3.0" + "@rollup/rollup-linux-arm64-gnu" "4.3.0" + "@rollup/rollup-linux-arm64-musl" "4.3.0" + "@rollup/rollup-linux-x64-gnu" "4.3.0" + "@rollup/rollup-linux-x64-musl" "4.3.0" + "@rollup/rollup-win32-arm64-msvc" "4.3.0" + "@rollup/rollup-win32-ia32-msvc" "4.3.0" + "@rollup/rollup-win32-x64-msvc" "4.3.0" + fsevents "~2.3.2" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + integrity sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw== + dependencies: + once "^1.3.0" + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== + dependencies: + aproba "^1.1.1" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg== + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA== + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + integrity sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ== + +rx@^2.4.3: + version "2.5.3" + resolved "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz#21adc7d80f02002af50dae97fd9dbf248755f566" + integrity sha512-u5qvfulb7NXoY/+OE28920WEgFi6aiDjf5iF9rA2f9tBXejLgTLd0WxkclvIQWjFFHfNJlb7pSTsrjgiDh+Uug== + +rxjs@6.5.4: + version "6.5.4" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + dependencies: + tslib "^1.9.0" + +rxjs@^6.3.3, rxjs@^6.4.0: + version "6.6.7" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.5.5: + version "7.8.1" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +schema-utils@^3.1.1, schema-utils@^3.1.2: + version "3.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw== + dependencies: + semver "^5.0.3" + +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + integrity sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ== + dependencies: + sver-compat "^1.5.0" + +semver-regex@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" + integrity sha512-1vZcoRC+LPtHFkLUPyrabsATDSHerxW+hJBN8h04HZOZBuewbXaNROtUVdEPrTdZsWNq6sfsXDhd48GB2xTG4g== + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@5.4.1: + version "5.4.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== + +semver@5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.4, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.6.1: + version "1.8.1" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shelljs@0.7.6: + version "0.7.6" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" + integrity sha512-sK/rjl+frweS4RL1ifxTb7eIXQaliSCDN5meqwwfDIHSWU7zH2KPTa/2hS6EAgGw7wHzJ3rQHfhnLzktfagSZA== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shelljs@0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz#729e038c413a2254c4078b95ed46e0397154a9f1" + integrity sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shiki@^0.14.1: + version "0.14.7" + resolved "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz#c3c9e1853e9737845f1d2ef81b31bcfb07056d4e" + integrity sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg== + dependencies: + ansi-sequence-parser "^1.1.0" + jsonc-parser "^3.2.0" + vscode-oniguruma "^1.7.0" + vscode-textmate "^8.0.0" + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +simple-commit-message@4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/simple-commit-message/-/simple-commit-message-4.0.3.tgz#947a37834ef11611d4faea48158afe67eec981a6" + integrity sha512-eC4PcOUQJLIQTSxFM2qzTetbK9excIlRVu4DMQ1HaVjdfLJ7U1QEyyiLgIAhlcf7cnLol9qev1PSTlcZmj9dxg== + dependencies: + am-i-a-dependency "1.1.2" + check-more-types "2.24.0" + debug "3.1.0" + ggit "2.4.2" + hr "0.1.3" + inquirer "0.12.0" + inquirer-confirm "0.2.2" + largest-semantic-change "1.1.0" + lazy-ass "1.6.0" + semver "5.5.0" + word-wrap "1.2.3" + +sirv@^2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== + +slide@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== + +smart-buffer@^4.1.0: + version "4.2.0" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" + integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + dependencies: + is-plain-obj "^1.0.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.1, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.17" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" + integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + dependencies: + through2 "^2.0.2" + +split2@^3.0.0: + version "3.2.2" + resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.18.0" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.0, ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-exhaust@^1.0.1, stream-exhaust@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + +stream-shift@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== + +streamx@^2.12.5: + version "2.16.1" + resolved "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz#2b311bd34832f08aa6bb4d6a80297c9caef89614" + integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + optionalDependencies: + bare-events "^2.2.0" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== + +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.padend@^3.0.0: + version "3.1.6" + resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz#ba79cf8992609a91c872daa47c6bb144ee7f62a5" + integrity sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e" + integrity sha512-2h8q2CP3EeOhDJ+jd932PRMpa3/pOJFGoF22J1U/DNbEK2gSW2DqeF46VjCXsSQXhC+k/l8/gaaRBQKL6hUPfQ== + dependencies: + ansi-regex "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-bom@4.0.0, strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA== + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" + integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== + dependencies: + min-indent "^1.0.1" + +strip-json-comments@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@3.1.1, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strong-log-transformer@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + integrity sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg== + dependencies: + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: + version "4.4.19" + resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + +teex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz#b8fa7245ef8e8effa8078281946c85ab780a0b12" + integrity sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg== + dependencies: + streamx "^2.12.5" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +temp-write@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" + integrity sha512-P8NK5aNqcGQBC37i/8pL/K9tFgx14CF2vdwluD/BA/dGWGD4T4E59TE7dAxPyb2wusts2FhMp36EiopBBsGJ2Q== + dependencies: + graceful-fs "^4.1.2" + is-stream "^1.1.0" + make-dir "^1.0.0" + pify "^3.0.0" + temp-dir "^1.0.0" + uuid "^3.0.1" + +tempfile@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/tempfile/-/tempfile-3.0.0.tgz#5376a3492de7c54150d0cc0612c3f00e2cdaf76c" + integrity sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw== + dependencies: + temp-dir "^2.0.0" + uuid "^3.3.2" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ== + dependencies: + execa "^0.7.0" + +terser-webpack-plugin@^5.3.7: + version "5.3.10" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.26.0, terser@^5.9.0: + version "5.31.0" + resolved "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz#06eef86f17007dbad4593f11a574c7f5eb02c6a1" + integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +textextensions@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/textextensions/-/textextensions-3.3.0.tgz#03530d5287b86773c08b77458589148870cc71d3" + integrity sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +through2-filter@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/through2-filter/-/through2-filter-3.1.0.tgz#4a1b45d2b76b3ac93ec137951e372c268efc1a4e" + integrity sha512-VhZsTsfrIJjyUi6GeecnwcOJlmoqgIdGFDjqnV5ape+F1DN8GejfPO66XyIhoinxmxGImiUTrq9RwpTN5yszGA== + dependencies: + through2 "^4.0.2" + +through2@^2.0.0, through2@^2.0.2, through2@^2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@^3.0.0, through2@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + +through2@^4.0.0, through2@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw== + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== + +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + integrity sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA== + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + integrity sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q== + dependencies: + through2 "^2.0.3" + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw== + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +trim-newlines@^4.0.2: + version "4.1.1" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" + integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== + +ts-jest@29.1.1: + version "29.1.1" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz#f58fe62c63caf7bfcc5cc6472082f79180f0815b" + integrity sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^29.0.0" + json5 "^2.2.3" + lodash.memoize "4.x" + make-error "1.x" + semver "^7.5.3" + yargs-parser "^21.0.1" + +ts-node@10.9.1: + version "10.9.1" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: + version "1.4.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typedoc@0.24.8: + version "0.24.8" + resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz#cce9f47ba6a8d52389f5e583716a2b3b4335b63e" + integrity sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w== + dependencies: + lunr "^2.3.9" + marked "^4.3.0" + minimatch "^9.0.0" + shiki "^0.14.1" + +typescript@5.1.6: + version "5.1.6" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== + +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +uid-number@0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + integrity sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w== + +umask@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + integrity sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + integrity sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw== + +undertaker@^1.2.1: + version "1.3.0" + resolved "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz#363a6e541f27954d5791d6fa3c1d321666f86d18" + integrity sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg== + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + fast-levenshtein "^1.0.0" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-stream@^2.0.2: + version "2.3.1" + resolved "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== + dependencies: + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg== + dependencies: + crypto-random-string "^1.0.0" + +universal-user-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" + integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== + dependencies: + os-name "^3.1.0" + +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw== + +upath@^1.1.1, upath@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.0.13: + version "1.0.16" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +uri-js@^4.2.2, uri-js@^4.4.1: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util-promisify@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" + integrity sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA== + dependencies: + object.getownpropertydescriptors "^2.0.3" + +uuid@^3.0.1, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +v8flags@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== + dependencies: + homedir-polyfill "^1.0.1" + +validate-commit-msg@2.14.0: + version "2.14.0" + resolved "https://registry.npmjs.org/validate-commit-msg/-/validate-commit-msg-2.14.0.tgz#e5383691012cbb270dcc0bc2a4effebe14890eac" + integrity sha512-sETG7UmikRVseMyeayyF6L1svmNXoZiyG4TVyLYSVSYjcSuZT602T+irJKjIyE+FutGyngSLxHGLTeyFy+oyag== + dependencies: + conventional-commit-types "^2.0.0" + find-parent-dir "^0.3.0" + findup "0.1.5" + semver-regex "1.0.0" + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: + version "3.0.4" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== + dependencies: + builtins "^1.0.3" + +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + integrity sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-buffer@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz#96c1a3479b8c5392542c612029013b5b27f88bbf" + integrity sha512-LRBE2/g3C1hSHL2k/FynSZcVTRhEw8sb08oKGt/0hukZXwrh2m8nfy+r5yLhGEk7eFFuclhyIuPct/Bxlxk6rg== + dependencies: + bl "^1.2.1" + through2 "^2.0.3" + +vinyl-fs@^3.0.0, vinyl-fs@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== + dependencies: + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" + +vinyl-named@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/vinyl-named/-/vinyl-named-1.1.0.tgz#94e4fe741e38db0ec303e5b3d868b297a2deab66" + integrity sha512-ElYBnsSw8Y1Hz11WPw0DFmi+TBNTEBhZ9zXaHluDSIZZnkFIGCjGRBpsW5QmbMMLwv+lRpUD3VbKdJCbNpct7Q== + dependencies: + through "^2.3.6" + +vinyl-source-stream@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz#f38a5afb9dd1e93b65d550469ac6182ac4f54b8e" + integrity sha512-Y5f1wRGajOfYukhv8biIGA7iZiY8UOIc3zJ6zcUNIbRG1BVuXzBsfSfe7MUJTttVkuy64k/pGQtJdd/aIt+hbw== + dependencies: + through2 "^2.0.3" + vinyl "^2.1.0" + +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + integrity sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA== + dependencies: + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" + +vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + integrity sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw== + dependencies: + source-map "^0.5.1" + +vinyl@2.x, vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +vinyl@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz#11e14732bf56e2faa98ffde5157fe6c13259ff30" + integrity sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g== + dependencies: + clone "^2.1.2" + clone-stats "^1.0.0" + remove-trailing-separator "^1.1.0" + replace-ext "^2.0.0" + teex "^1.0.1" + +vscode-oniguruma@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" + integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== + +vscode-textmate@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" + integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +watchpack@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +weak-map@^1.0.5: + version "1.0.8" + resolved "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz#394c18a9e8262e790544ed8b55c6a4ddad1cb1a3" + integrity sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw== + +web-streams-polyfill@3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-bundle-analyzer@4.10.1: + version "4.10.1" + resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz#84b7473b630a7b8c21c741f81d8fe4593208b454" + integrity sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + commander "^7.2.0" + debounce "^1.2.1" + escape-string-regexp "^4.0.0" + gzip-size "^6.0.0" + html-escaper "^2.0.2" + is-plain-object "^5.0.0" + opener "^1.5.2" + picocolors "^1.0.0" + sirv "^2.0.3" + ws "^7.3.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-stream@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/webpack-stream/-/webpack-stream-7.0.0.tgz#e6a1edb9568198499af872678e95031752d72f00" + integrity sha512-XoAQTHyCaYMo6TS7Atv1HYhtmBgKiVLONJbzLBl2V3eibXQ2IT/MCRM841RW/r3vToKD5ivrTJFWgd/ghoxoRg== + dependencies: + fancy-log "^1.3.3" + lodash.clone "^4.3.2" + lodash.some "^4.2.2" + memory-fs "^0.5.0" + plugin-error "^1.0.1" + supports-color "^8.1.1" + through "^2.3.8" + vinyl "^2.2.1" + +webpack@5.86.0: + version "5.86.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.86.0.tgz#b0eb81794b62aee0b7e7eb8c5073495217d9fc6d" + integrity sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.14.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +windows-release@^3.1.0: + version "3.3.3" + resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999" + integrity sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg== + dependencies: + execa "^1.0.0" + +word-wrap@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.1.0.tgz#356153d61d10610d600785c5d701288e0ae764a6" + integrity sha512-6E0pg9o7nVagpx7xVMlK/gZriE9TLIyDGqPiooYdLCOiYFazQe09vIHRWXHYMupVHBgViR88vgx5OVGeo/HW7Q== + +word-wrap@1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +word-wrap@^1.0.3, word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: + version "2.4.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +write-json-file@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha512-84+F0igFp2dPD6UpAQjOUX3CdKUOqUzn6oE9sDBNzUXINR5VceJ1rauZltqQB/bcYsx3EpKys4C7/PivKUAiWQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +write-json-file@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.15" + make-dir "^2.1.0" + pify "^4.0.1" + sort-keys "^2.0.0" + write-file-atomic "^2.4.2" + +write-pkg@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" + integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw== + dependencies: + sort-keys "^2.0.0" + write-json-file "^2.2.0" + +ws@^7.3.1: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ== + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.1: + version "3.2.2" + resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@>=5.0.0-security.0, yargs-parser@^21.0.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + +yargs-parser@^15.0.1: + version "15.0.3" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" + integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" + integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== + dependencies: + camelcase "^3.0.0" + object.assign "^4.1.0" + +yargs@^14.2.2: + version "14.2.3" + resolved "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^15.0.1" + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yargs@^7.1.0: + version "7.1.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db" + integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA== + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 5beb9ee32f39d55fbcd9b83e5ee4699f83e98734 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 21:52:05 -0700 Subject: [PATCH 18/44] automatically generate files to test bundler tree-shaking for every Ix factory and operator --- .github/workflows/main.pr.yml | 1 + .gitignore | 2 +- gulp/bundle-task.js | 2 ++ test/bundle/asynciterable-of.js | 3 --- test/bundle/iterable-of.js | 3 --- test/bundle/make-files-to-bundle.sh | 17 +++++++++++++++++ 6 files changed, 21 insertions(+), 7 deletions(-) delete mode 100644 test/bundle/asynciterable-of.js delete mode 100644 test/bundle/iterable-of.js create mode 100755 test/bundle/make-files-to-bundle.sh diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index c6339f52..e983c76c 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -169,4 +169,5 @@ jobs: run: | yarn --ignore-engines --non-interactive yarn build -t ix + test/bundle/make-files-to-bundle.sh yarn test:bundle diff --git a/.gitignore b/.gitignore index 9000f7f6..9d66d9bc 100644 --- a/.gitignore +++ b/.gitignore @@ -55,4 +55,4 @@ targets/esnext .jest-cache # test bundles -test/bundle/**/*-bundle.js* +test/bundle/**/*.js diff --git a/gulp/bundle-task.js b/gulp/bundle-task.js index 45d00c5b..06ae568c 100644 --- a/gulp/bundle-task.js +++ b/gulp/bundle-task.js @@ -46,6 +46,8 @@ export const esbuildTask = (minify = true) => () => observableFromStreams( 'ix': resolve(__dirname, `../targets/${npmPkgName}/Ix.dom.mjs`), 'ix/Ix.iterable.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.iterable.mjs`), 'ix/Ix.asynciterable.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.asynciterable.mjs`), + 'ix/Ix.iterable.operators.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.iterable.operators.mjs`), + 'ix/Ix.asynciterable.operators.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.asynciterable.operators.mjs`), }), ], }), diff --git a/test/bundle/asynciterable-of.js b/test/bundle/asynciterable-of.js deleted file mode 100644 index 7ab1107b..00000000 --- a/test/bundle/asynciterable-of.js +++ /dev/null @@ -1,3 +0,0 @@ -import { of as _of } from 'ix/Ix.asynciterable.mjs'; - -console.log(_of); diff --git a/test/bundle/iterable-of.js b/test/bundle/iterable-of.js deleted file mode 100644 index 482586fd..00000000 --- a/test/bundle/iterable-of.js +++ /dev/null @@ -1,3 +0,0 @@ -import { of as _of } from 'ix/Ix.iterable.mjs'; - -console.log(_of); diff --git a/test/bundle/make-files-to-bundle.sh b/test/bundle/make-files-to-bundle.sh new file mode 100755 index 00000000..01b5ec41 --- /dev/null +++ b/test/bundle/make-files-to-bundle.sh @@ -0,0 +1,17 @@ +#! /usr/bin/env bash + +# shellcheck disable=SC2164 +# Ensure we're in the repo root +cd "$( cd "$( dirname "$(realpath -m "${BASH_SOURCE[0]}")" )" && pwd )/../.."; + +for typ in iterable iterable.operators asynciterable asynciterable.operators; do + declare -a ary="($( + node -p "Object.keys(require('./targets/ix/Ix.${typ}')).filter(k => k.charAt(0) === k.charAt(0).toLowerCase()).join('\n')" + ))" + for fun in "${ary[@]}"; do + cat << EOF > "test/bundle/${typ}.${fun}.js" +import * as ix from 'ix/Ix.${typ}.mjs'; +console.log(ix.${fun}); +EOF + done +done From 0f18ff1e2bcf1371478fd3439d9f901c6a0cb83e Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 22:00:32 -0700 Subject: [PATCH 19/44] import the function directly --- test/bundle/make-files-to-bundle.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/bundle/make-files-to-bundle.sh b/test/bundle/make-files-to-bundle.sh index 01b5ec41..bf60b4c2 100755 --- a/test/bundle/make-files-to-bundle.sh +++ b/test/bundle/make-files-to-bundle.sh @@ -10,8 +10,8 @@ for typ in iterable iterable.operators asynciterable asynciterable.operators; do ))" for fun in "${ary[@]}"; do cat << EOF > "test/bundle/${typ}.${fun}.js" -import * as ix from 'ix/Ix.${typ}.mjs'; -console.log(ix.${fun}); +import { ${fun} } from 'ix/Ix.${typ}.mjs'; +console.log(${fun}); EOF done done From 6ce05c680350f0b50a3fc5bb477e8c4d49f0bd2f Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 17 May 2024 22:02:18 -0700 Subject: [PATCH 20/44] consider source files in the cache key --- .github/workflows/main.pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index e983c76c..5741300b 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -75,7 +75,7 @@ jobs: - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock') }} + key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} path: targets - name: Cache node_modules @@ -144,7 +144,7 @@ jobs: - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-${{ matrix.node }}-ix-${{ hashFiles('package.json', 'yarn.lock') }} + key: ${{ runner.os }}-targets-${{ matrix.node }}-ix-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} path: targets - name: Cache node_modules From be2fe592385c35bf01cd75bd3f73969066a151be Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 10:21:02 -0700 Subject: [PATCH 21/44] update docs --- docs/asynciterable/converting.md | 18 ++++----- docs/asynciterable/creating.md | 44 +++++++++++----------- docs/readme.md | 18 ++++----- readme.md | 64 ++++++++++++-------------------- 4 files changed, 63 insertions(+), 81 deletions(-) diff --git a/docs/asynciterable/converting.md b/docs/asynciterable/converting.md index 728b3fd8..3baea86e 100644 --- a/docs/asynciterable/converting.md +++ b/docs/asynciterable/converting.md @@ -17,7 +17,7 @@ Very often we have an existing data structure that we wish to convert to an asyn The `as` method converts directly to an async-iterable, whereas with `from` method allows us to modify the collection as it is created, mimicking the the [`Array.from`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from) method. ```typescript -import { as, from } from 'ix/asynciterable'; +import { as, from } from 'ix/Ix.asynciterable'; // As with Array and Set const result1 = as([1, 2, 3]); // From array @@ -52,7 +52,7 @@ IxJS also gives seamless support for Observables, for those that implement the ` ```typescript import { observableOf } from 'rxjs'; -import { as } from 'ix/asynciterable'; +import { as } from 'ix/Ix.asynciterable'; const source = observableOf(1, 2, 3); const results = as(source); @@ -67,7 +67,7 @@ for await (const item of results) { Streams and AsyncIterables go hand in hand as a pull to push model. DOM Streams are a newer concept, bringing streaming capabilities into the browser, and with IxJS, we can then convert those DOM streams into AsyncIterables using the `fromDOMStream` method. ```typescript -import { fromDOMStream } from 'ix/asynciterable'; +import { fromDOMStream } from 'ix/Ix.asynciterable'; const response = await fetch('someurl'); @@ -97,7 +97,7 @@ We can then introduce IxJS by using the `fromNodeStream` which allows us then to ```typescript import * as fs from 'fs'; -import { fromNodeStream } from 'ix/asynciterable/fromnodestream'; +import { fromNodeStream } from 'ix/Ix.node'; const readable = fs.createReadStream('tmp.txt', {encoding: 'utf8'}); const source = fromNodeStream(readable); @@ -111,9 +111,9 @@ Or we can use `asAsyncIterable()` to take advantage of Node Streams' fluent `pip ```typescript import * as fs from 'fs'; -import { map } from 'ix/asynciterable/operators/map'; -import { flatMap } from 'ix/asynciterable/operators/flatmap'; -import { asAsyncIterable } from 'ix/asynciterable/asasynciterable'; +import { map } from 'ix/Ix.asynciterable.operators'; +import { flatMap } from 'ix/Ix.asynciterable.operators'; +import { asAsyncIterable } from 'ix/Ix.node'; const source = fs .createReadStream('tmp.txt', {encoding: 'utf8'}) @@ -134,7 +134,7 @@ Although we traditionally think of events being push only such as Subject/Observ ```typescript import { EventEmitter } from 'events'; -import { fromEvent } from 'ix/asynciterable'; +import { fromEvent } from 'ix/Ix.asynciterable'; function getEvents() { const emitter = new EventEmitter(); @@ -160,7 +160,7 @@ The other type of binding is `fromEventPattern` which allows you to have an add ```typescript import { EventEmitter } from 'events'; -import { fromEventPattern } from 'ix/asynciterable'; +import { fromEventPattern } from 'ix/Ix.asynciterable'; function getEvents() { const emitter = new EventEmitter(); diff --git a/docs/asynciterable/creating.md b/docs/asynciterable/creating.md index 94fb938b..60450f1a 100644 --- a/docs/asynciterable/creating.md +++ b/docs/asynciterable/creating.md @@ -34,13 +34,13 @@ const source = { const it = source[Symbol.asyncIterator](); let value, done; -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: false, value: 1 } -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: false, value: 2 } -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: false, value: 3 } -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: true } ``` @@ -49,7 +49,7 @@ let value, done; Very rarely will we ever need to create these async-iterables by hand, however, if you need a collection that you can add to as well as iterate, we have the `AsyncSink` class. This class serves as a basis for some of our operators such as binding to events and DOM and Node.js streams. ```typescript -import { AsyncSink } from 'ix/asynciterable'; +import { AsyncSink } from 'ix/Ix.asynciterable'; const sink = new AsyncSink(); sink.write(1); @@ -60,13 +60,13 @@ sink.end(); const it = sink[Symbol.asyncIterator](); let value, done; -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: false, value: 1 } -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: false, value: 2 } -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: false, value: 3 } -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: true } ``` @@ -75,7 +75,7 @@ let value, done; Now that we know the basics, we can take the async-iterable from above and create an AsyncIterable from the source using the `create` method. This takes in a function which takes in an optional `AbortSignal` for cancellation, and you return the the `[Symbol.asyncIterator]` method implementation. It's up to you whether to cancel based upon the incoming `AbortSignal`, whether to throw an `AbortError` or not. ```typescript -import { create } from 'ix/asynciterable'; +import { create } from 'ix/Ix.asynciterable'; const source = { data: [1, 2, 3], @@ -104,7 +104,7 @@ for await (const item of results) { Understanding the basics gets us so far, but we want to be able to easily create async-iterable sequences, for example, from known values. To do this, we have the `of` factory function which takes any number of arguments and converts those arguments into an async-iterable sequence. This implementation mimicks that of [`Array.of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of) ```typescript -import { of } from 'ix/asynciterable'; +import { of } from 'ix/Ix.asynciterable'; const source = of(1, 2, 3, 4, 5); @@ -118,7 +118,7 @@ for await (const item of source) { There may be cases when you want to return an empty sequence, when iterated will always say it is complete. For that, we have the `empty` method. ```typescript -import { empty } from 'ix/asynciterable'; +import { empty } from 'ix/Ix.asynciterable'; const source = empty(); @@ -130,16 +130,16 @@ const { value, done } = it.next(); There may also be cases where you never want the sequence to return. In the case of `never`, it can be used in places like `race` where the other sequence will always win. ```typescript -import { never, of, race } from 'ix/asynciterable'; +import { never, of, race } from 'ix/Ix.asynciterable'; const source = race(of(1), never()); const it = source[Symbol.asyncIterator](); let value, done; -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: false, value: 1 } -{ value, done } = await it.next(); +{ value, done } = await it.next(); // { done: true } ``` @@ -148,7 +148,7 @@ let value, done; Another way we can create async-iterable sequences is with a range. For example, if we want 10 numbers starting at 1, we can use the `range` factory method to call `range(1, 10)`. ```typescript -import { range } from 'ix/asynciterable'; +import { range } from 'ix/Ix.asynciterable'; const source = range(1, 10); @@ -165,7 +165,7 @@ We can also create a sequence as if it were inside a for-loop using `generate` a for ( let i = 0, // Initial State i < 10, // condition - i++ // increment + i++ // increment ) { // Result selector } @@ -174,13 +174,13 @@ for ( The `generate` method has the same parameters as this for loop, as in our example here. ```typescript -import { generate } from 'ix/asynciterable'; +import { generate } from 'ix/Ix.asynciterable'; const source = generate( 0, // Initial State i => i < 10, // Condition i => i + 1, // Iterate - i => i // Result selector + i => i // Result selector ); for await (const item of source) { @@ -191,13 +191,13 @@ for await (const item of source) { In addition to the `generate` method, we have the `generateTime` which adds a time element to the sequence to delay in milliseconds between results. ```typescript -import { generate } from 'ix/asynciterable'; +import { generate } from 'ix/Ix.asynciterable'; const source = generate( 0, // Initial State i => i < 10, // Condition i => i + 1, // Iterate - i => i // Result selector + i => i // Result selector i => i * 1000 // Time selector in ms ); @@ -211,7 +211,7 @@ for await (const item of source) { There are many factory functions that carry over from RxJS over to IxJS including `interval` where we can yield a value at a specified interval. For example, we can loop through a sequence, yielding a value every 1 second. ```typescript -import { interval } from 'ix/asynciterable'; +import { interval } from 'ix/Ix.asynciterable'; const source = interval(1000 /* ms */); diff --git a/docs/readme.md b/docs/readme.md index b05684e8..18a80981 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -7,8 +7,8 @@ The Interactive Extensions for JavaScript (IxJS) is a set of methods on top of ` Starting in ES6, the [`Symbol.iterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator) method was introduced to allow for iteration over collections such as `Array`, `Map`, `Set` and even ``Generator`. IxJS introduces a number of creation factories and operators that operate on these `Iterable` collections lazily. Each factory can be imported from `'ix/iterable'` and operators from `'ix/iterable/operators'` such as the following creating an iterable via `of` and then transforming each item using the `map` operator. You can then iterate over the resulting collection using [`for ... of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) syntax, or the use of the `forEach` method. ```typescript -import { of } from 'ix/iterable'; -import { map } from 'ix/iterable/operators'; +import { of } from 'ix/Ix.iterable'; +import { map } from 'ix/Ix.iterable.operators'; const source = of(1, 2, 3, 4, 5); const result = source.pipe( @@ -23,7 +23,7 @@ for (const item of result) { Alternatively, you can program using dot-notation where we add methods to the `IterableX` object so we can program in a fluent style. We can bring in only the factories operators we need, therefore not needing to bring in the entire library with all its operators. The factories can be brought in via `'ix/add/iterable/'` and operators via `'ix/add/iterable-operators/'`, where `name` is replaced with the factory or operator of your choice. ```typescript -import { IterableX as Iterable } from 'ix/iterable'; +import { IterableX as Iterable } from 'ix/Ix.iterable'; // Add factory and operators import 'ix/add/iterable/of'; @@ -66,11 +66,11 @@ That's only the beginning with IxJS and each section below covers more in detail ## AsyncIterable -In ES2018, the concept of asynchronous iteration was introduced, which allowed the same kind of iteration we had in ES6, but for asynchronous sequences using the [`Symbol.asyncIterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator) method for things such as asynchronous generators. IxJS here introduces a whole set of factories and operators on async iterables to serve as a standard class library, covering the same operators as `Iterable`, but also adding in asynchronous operations such as `race`, but also time based operations as well. Each factory such as `from`, an `of` can be imported via `'ix/asynciterable'` as well as operators such as `map` and `filter` can be imported via `'ix/asynciterable/operators'`. Once created, uou can then iterate over the resulting collection using [`for await ... of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) syntax, or the use of the `forEach` method. +In ES2018, the concept of asynchronous iteration was introduced, which allowed the same kind of iteration we had in ES6, but for asynchronous sequences using the [`Symbol.asyncIterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator) method for things such as asynchronous generators. IxJS here introduces a whole set of factories and operators on async iterables to serve as a standard class library, covering the same operators as `Iterable`, but also adding in asynchronous operations such as `race`, but also time based operations as well. Each factory such as `from`, an `of` can be imported via `'ix/Ix.asynciterable'` as well as operators such as `map` and `filter` can be imported via `'ix/Ix.asynciterable.operators'`. Once created, uou can then iterate over the resulting collection using [`for await ... of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) syntax, or the use of the `forEach` method. ```typescript -import { as } from 'ix/asynciterable'; -import { map } from 'ix/asynciterable/operators'; +import { as } from 'ix/Ix.asynciterable'; +import { map } from 'ix/Ix.asynciterable.operators'; const soureFactory = async function*() { yield 1; @@ -92,8 +92,8 @@ for await (const item of results) { The [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) for the web brought in a new way to think about getting data using Promises instead of the legacy `XMLHttpRequest` API. With this also brought in the idea of cancellation via the [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) and [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal), also known as the Abort API. IxJS also supports this with a number of async aggregate operations such as `first`, `last` accepting an `AbortSignal` but also introducing `AbortSignal` support to pass through the entire chain. This section gives a very brief introduction for support but is documented later on below. ```typescript -import { as, last } from 'ix/asynciterable'; -import { map, withAbort } from 'ix/asynciterable/operators'; +import { as, last } from 'ix/Ix.asynciterable'; +import { map, withAbort } from 'ix/Ix.asynciterable.operators'; const sourceFactory = async function*() { yield 1; @@ -123,7 +123,7 @@ for await (const item of result) { If you prefer the fluent style of method chaining, IxJS also supports this for async-iterables via the `AsyncIterableX` object. Then you can add the factories or operators of your choosing without bringing in the entire library. The factories can be brought in via `'ix/add/asynciterable/'` and operators via `'ix/add/asynciterable-operators/'`, where `name` is replaced with the factory or operator of your choice. ```typescript -import { AsyncIterableX as AsyncIterable } from 'ix/asynciterable'; +import { AsyncIterableX as AsyncIterable } from 'ix/Ix.asynciterable'; import 'ix/add/asynciterable/as'; import 'ix/add/asynciterable/last'; import 'ix/add/asynciterable-operators/map'; diff --git a/readme.md b/readme.md index a9264d7c..a921ee63 100644 --- a/readme.md +++ b/readme.md @@ -7,7 +7,7 @@ *IxJS is a set of libraries to compose synchronous and asynchronous collections and [Array#extras](https://docs.microsoft.com/en-us/archive/blogs/ie/ecmascript-5-part-2-array-extras) style composition in JavaScript* -The Interactive Extensions for JavaScript (IxJS) brings the Array#extras combinators to iterables, generators, async iterables and async generators. With the introduction of the `Symbol.iterator` and generators in ES2015, and subsequent introduction of `Symbol.asyncIterator` and async generators, it became obvious we need an abstraction over these data structures for composition, querying and more. +The Interactive Extensions for JavaScript (IxJS) brings the Array#extras combinators to iterables, generators, async iterables and async generators. With the introduction of the `Symbol.iterator` and generators in ES2015, and subsequent introduction of `Symbol.asyncIterator` and async generators, it became obvious we need an abstraction over these data structures for composition, querying and more. IxJS unifies both synchronous and asynchronous pull-based collections, just as RxJS unified the world of push-based collections. RxJS is great for event-based workflows where the data can be pushed at the rate of the producer, however, IxJS is great at I/O operations where you as the consumer can pull the data when you are ready. @@ -25,12 +25,12 @@ The `Iterable` class a way to create and compose synchronous collections much li ```js // ES -import { from } from 'ix/iterable'; -import { filter, map } from 'ix/iterable/operators'; +import { from } from 'ix/Ix.iterable'; +import { filter, map } from 'ix/Ix.iterable.operators'; // CommonJS -const from = require('ix/iterable').from; -const { filter, map } = require('ix/iterable/operators'); +const from = require('ix/Ix.iterable').from; +const { filter, map } = require('ix/Ix.iterable.operators'); const source = function* () { yield 1; @@ -56,12 +56,12 @@ In addition, we also supply a `forEach` so it's your choice for which to use. ```js // ES -import { from } from 'ix/iterable'; -import { filter, map } from 'ix/iterable/operators'; +import { from } from 'ix/Ix.asynciterable'; +import { filter, map } from 'ix/Ix.asynciterable.operators'; // CommonJS -const from = require('ix/asynciterable').from; -const { filter, map } = require('ix/asynciterable/operators'); +const from = require('ix/Ix.asynciterable').from; +const { filter, map } = require('ix/Ix.asynciterable.operators'); const source = function* () { yield 1; @@ -87,12 +87,12 @@ Instead of bringing in the entire library for `Iterable`, we can pick and choose ```js // ES -import { IterableX as Iterable } from 'ix/iterable'; +import { IterableX as Iterable } from 'ix/Ix.iterable'; import 'ix/add/iterable/of'; import 'ix/add/iterable-operators/map'; // CommonJS -const Iterable = require('ix/iterable').IterableX; +const { IterableX: Iterable } = require('ix/Ix.iterable'); require('ix/add/iterable/of'); require('ix/add/iterable-operators/map'); @@ -125,12 +125,12 @@ The `AsyncIterable` object is based off the ECMAScript Proposal for [Asynchronou ```js // ES -import { from } from 'ix/asynciterable'; -import { filter, map } from 'ix/asynciterable/operators'; +import { from } from 'ix/Ix.asynciterable'; +import { filter, map } from 'ix/Ix.asynciterable.operators'; // CommonJS -const from = require('ix/asynciterable').from; -const { filter, map } = require('ix/asynciterable/operators'); +const from = require('ix/Ix.asynciterable').from; +const { filter, map } = require('ix/Ix.asynciterable.operators'); const source = async function* () { yield 1; @@ -156,12 +156,12 @@ Alternatively, we can use the built-in `forEach` and `catch` should there be any ```js // ES -import { from } from 'ix/asynciterable'; -import { filter, map } from 'ix/asynciterable/operators'; +import { from } from 'ix/Ix.asynciterable'; +import { filter, map } from 'ix/Ix.asynciterable.operators'; // CommonJS -const from = require('ix/asynciterable').from; -const { filter, map } = require('ix/asynciterable/operators'); +const from = require('ix/Ix.asynciterable').from; +const { filter, map } = require('ix/Ix.asynciterable.operators'); const source = async function* () { yield 1; @@ -195,12 +195,12 @@ Instead of bringing in the entire library for `AsyncIterable`, we can pick and c ```js // ES -import { AsyncIterableX as AsyncIterable } from 'ix/asynciterable'; +import { AsyncIterableX as AsyncIterable } from 'ix/Ix.asynciterable'; import 'ix/add/async-iterable/of'; import 'ix/add/asynciterable-operators/map'; // CommonJS -const AsyncIterable = require('ix/asynciterable').AsyncIterableX; +const { AsyncIterableX: AsyncIterable } = require('ix/Ix.asynciterable'); require('ix/add/asynciterable-operators/map'); const results = AsyncIterable.of(1,2,3) @@ -232,8 +232,8 @@ interface IteratorResult { Using IxJS, you can easily go from an `Iterable` to an `AsyncIterable` using a number of methods. First, we can use the `from` function, either as a standalone or on the `Ix.AsyncIterable` object. The `from` method accepts a standard `Iterable`, `Generator`, and `Iterator` of Promises, or even another `AsyncIterable`. ```js -import { from } from 'ix/asynciterable/from'; -import { map } from 'ix/asynciterable/operators'; +import { from } from 'ix/Ix.asynciterable'; +import { map } from 'ix/Ix.asynciterable.operators'; const xs = [1, 2, 3, 4]; const mapped = from(xs).pipe( @@ -250,24 +250,6 @@ for await (let item of mapped) { // Next 12 ``` -In addition, you can use the specialized async methods that are suffixed with `Async`, such as `mapAsync`, `filterAsync`, `flatMapAsync` amongst others. These functions accept async functions which allow you to return a `Promise` as the result. - -```js -import { mapAsync } from 'ix/iterable/mapasync'; - -const xs = [1, 2, 3, 4]; -const mapped = mapAsync(xs, async (item, index) => item * index); - -for await (let item of mapped) { - console.log(`Next: ${item}`); -} - -// Next 0 -// Next 2 -// Next 6 -// Next 12 -``` - ## Contributing We are grateful for contributions to the IxJS project. The IxJS project evolves because of community involvement from people such as yourselves. Please read below on how to get involved. From a7a87d7630374f579dc0c646ed8a50b0b809bfb7 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 13:42:02 -0700 Subject: [PATCH 22/44] run bundle integration tests on each package --- .eslintignore | 2 +- .github/workflows/main.pr.yml | 21 +- .gitignore | 6 +- .vscode/launch.json | 2 +- gulp/bundle-task.js | 224 ++++++++++-------- gulpfile.js | 41 +++- .../make-files-to-bundle.sh | 7 +- integration/src/asynciterable.js | 2 + integration/src/iterable.js | 2 + test/bundle/asynciterable.js | 3 - test/bundle/iterable.js | 3 - 11 files changed, 186 insertions(+), 127 deletions(-) rename {test/bundle => integration}/make-files-to-bundle.sh (74%) create mode 100644 integration/src/asynciterable.js create mode 100644 integration/src/iterable.js delete mode 100644 test/bundle/asynciterable.js delete mode 100644 test/bundle/iterable.js diff --git a/.eslintignore b/.eslintignore index 8f1992e6..ea3b550a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,4 +3,4 @@ gulp jest.config.js jestconfigs targets -test/bundle/ +integration diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 5741300b..a0fe25c4 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -32,8 +32,7 @@ jobs: uses: actions/cache@v4 with: key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json', 'yarn.lock') }} - path: | - node_modules + path: node_modules - name: Check if source or test files changed id: files_changed @@ -100,6 +99,7 @@ jobs: yarn.lock package.json src/**/* + integration/**/* - name: Install dependencies if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} @@ -125,12 +125,15 @@ jobs: test-tree-shaking-pull-request: needs: - build-and-test-pull-request - name: Test tree shaking + name: Integration runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: node: [20.x] + module: [cjs, esm, umd] + target: [es5, es2015, esnext] + pkgr: [esbuild, rollup, webpack] steps: - name: Setup node v${{ matrix.node }} uses: actions/setup-node@v4 @@ -144,7 +147,7 @@ jobs: - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-${{ matrix.node }}-ix-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} + key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} path: targets - name: Cache node_modules @@ -162,12 +165,10 @@ jobs: yarn.lock package.json src/**/* - test/bundle/**/* + integration/**/* - - name: Test bundler tree-shaking + - name: Test ${{ matrix.bundler }} tree-shaking if: ${{ steps.source_files_changed.outputs.any_modified == 'true' }} run: | - yarn --ignore-engines --non-interactive - yarn build -t ix - test/bundle/make-files-to-bundle.sh - yarn test:bundle + integration/make-files-to-bundle.sh + yarn gulp bundle:${{ matrix.target }}:${{ matrix.module }}:${{ matrix.bundler }} diff --git a/.gitignore b/.gitignore index 9d66d9bc..ce267455 100644 --- a/.gitignore +++ b/.gitignore @@ -55,4 +55,8 @@ targets/esnext .jest-cache # test bundles -test/bundle/**/*.js +integration/src/*/ +integration/esbuild/ +integration/rollup/ +integration/webpack/ +integration/generated/ diff --git a/.vscode/launch.json b/.vscode/launch.json index 7cb84327..54c24b6c 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -31,7 +31,7 @@ "args": { "cwd": "${workspaceFolder}", "description": "Select a file to debug", - "command": "ls test/bundle/**/*-bundle.js", + "command": "ls integration/{esbuild,rollup,webpack}/**/*.js", } }, { diff --git a/gulp/bundle-task.js b/gulp/bundle-task.js index 06ae568c..c6658948 100644 --- a/gulp/bundle-task.js +++ b/gulp/bundle-task.js @@ -1,13 +1,13 @@ import gulp from 'gulp'; import size from 'gulp-vinyl-size'; -import gulpRename from 'gulp-rename'; import terser from 'gulp-terser'; -import source from 'vinyl-source-stream'; -import buffer from 'vinyl-buffer'; -import { npmPkgName, observableFromStreams } from './util.js'; +import vinylSourceStream from 'vinyl-source-stream'; +import vinylBufferStream from 'vinyl-buffer'; +import { observableFromStreams, targetDir } from './util.js'; +import { memoizeTask } from './memoize-task.js'; import { forkJoin as ObservableForkJoin } from 'rxjs'; -import { resolve, join } from 'node:path'; -import { readdirSync } from 'node:fs'; +import { toArray as observableToArray } from 'rxjs/operators/index.js'; +import * as Path from 'node:path'; import { execSync } from 'node:child_process'; import gulpEsbuild from 'gulp-esbuild'; @@ -20,106 +20,140 @@ import rollupPluginAlias from '@rollup/plugin-alias'; import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; import webpack from 'webpack-stream'; -import named from 'vinyl-named'; +import vinylNamed from 'vinyl-named'; import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); +const __dirname = Path.dirname(__filename); -const bundleDir = resolve(__dirname, '../test/bundle'); +const bundleDir = Path.resolve(__dirname, '../integration'); +const srcDir = Path.join(bundleDir, 'src'); +const srcGlob = Path.join(srcDir, '**/*.js'); -const fileNames = readdirSync(bundleDir) - .filter(fileName => fileName.endsWith('.js')) - .map(fileName => fileName.replace(/\.js$/, '')); - -const bundlesGlob = join(bundleDir, '**.js'); -const esbuildDir = join(bundleDir, 'esbuild'); -export const esbuildTask = (minify = true) => () => observableFromStreams( - gulp.src(bundlesGlob), - gulpEsbuild({ - bundle: true, - minify, - treeShaking: true, - plugins: [ - esbuildAlias({ - 'ix': resolve(__dirname, `../targets/${npmPkgName}/Ix.dom.mjs`), - 'ix/Ix.iterable.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.iterable.mjs`), - 'ix/Ix.asynciterable.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.asynciterable.mjs`), - 'ix/Ix.iterable.operators.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.iterable.operators.mjs`), - 'ix/Ix.asynciterable.operators.mjs': resolve(__dirname, `../targets/${npmPkgName}/Ix.asynciterable.operators.mjs`), - }), - ], - }), - gulpRename((p) => { p.basename += '-bundle'; }), - gulp.dest(esbuildDir), - size({ gzip: true }) -); +export function bundleTask(bundler, ...rest) { + switch (bundler) { + case 'esbuild': return esbuildTask(...rest); + case 'rollup': return rollupTask(...rest); + case 'webpack': return webpackTask(...rest); + } +} -const rollupDir = join(bundleDir, 'rollup'); -export const rollupTask = (minify = true) => () => ObservableForkJoin( - fileNames.map(fileName => observableFromStreams( - rollupStream({ - input: join(bundleDir, `${fileName}.js`), - output: { format: 'cjs' }, - treeshake: true, +export const esbuildTask = ((cache) => memoizeTask(cache, function pkgEsbuild(target, format, opts = { minify: true }) { + const pkgDir = Path.resolve(__dirname, '../', targetDir(target, format)); + const outDir = Path.join(bundleDir, 'esbuild', target, format); + const aliases = [ + 'js', + 'cjs', + 'mjs', + 'ts' + ].reduce((aliases, ext) => { + return [ + 'Ix', + 'Ix.dom', + 'Ix.node', + 'Ix.iterable', + 'Ix.asynciterable', + 'Ix.iterable.operators', + 'Ix.asynciterable.operators' + ].reduce((aliases, entrypoint) => ({ + ...aliases, + [`ix/${entrypoint}.${ext}`]: Path.join(pkgDir, `${entrypoint}.${ext}`) + }), aliases); + }, {}); + return observableFromStreams( + gulp.src(srcGlob), + gulpEsbuild({ + bundle: true, + minify: opts.minify, + treeShaking: true, plugins: [ - rollupPluginAlias({ - entries: { 'ix': resolve(__dirname, `../targets/${npmPkgName}/`) } - }), - rollupPluginNodeResolve() + esbuildAlias(aliases), ], - onwarn: (message) => { - if (message.code === 'CIRCULAR_DEPENDENCY') return - console.error(message); - } }), - source(`${fileName}-bundle.js`), - buffer(), - ...(minify ? [terser()] : []), - gulp.dest(rollupDir), + gulp.dest(outDir), size({ gzip: true }) - )) -) + ); +}))({}); -const webpackDir = join(bundleDir, 'webpack'); -export const webpackTask = (opts = { minify: true, analyze: false }) => () => observableFromStreams( - gulp.src(bundlesGlob), - named(), - webpack({ - mode: opts?.minify == false ? 'development' : 'production', - optimization: { - usedExports: true - }, - output: { - filename: '[name]-bundle.js' - }, - module: { - rules: [ - { - resolve: { - fullySpecified: false, - } +export const rollupTask = ((cache) => memoizeTask(cache, async function pkgRollup(target, format, opts = { minify: true }) { + const pkgDir = Path.resolve(__dirname, '../', targetDir(target, format)); + const outDir = Path.join(bundleDir, 'rollup', target, format); + const filePaths = ( + await observableToArray()( + observableFromStreams(gulp.src(srcGlob)) + ).toPromise()) + .filter(({ path }) => path.endsWith('.js')) + .map(({ path }) => path.replace(/\.js$/, '')); + return await ObservableForkJoin( + filePaths.map((filePath) => observableFromStreams( + rollupStream({ + input: `${filePath}.js`, + output: { format: 'cjs' }, + treeshake: true, + plugins: [ + rollupPluginAlias({ + entries: { 'ix': pkgDir } + }), + rollupPluginNodeResolve(), + rollupPluginCommonJS() + ], + onwarn: (message) => { + if (message.code === 'CIRCULAR_DEPENDENCY') return + console.error(message); } - ] - }, - resolve: { - extensions: ['.mjs', '.js'], - alias: { 'ix': resolve(__dirname, `../targets/${npmPkgName}/`) } - }, - stats: 'errors-only', - plugins: opts?.analyze ? [new BundleAnalyzerPlugin()] : [] - }), - gulp.dest(webpackDir), - size({ gzip: true }) -); + }), + vinylSourceStream(Path.relative(srcDir, `${filePath}.js`)), + vinylBufferStream(), + ...(opts.minify ? [terser()] : []), + gulp.dest(outDir), + size({ gzip: true }) + )) + ).toPromise(); +}))({}); -export const execBundleTask = () => () => observableFromStreams( - gulp.src(join(bundleDir, '**/**-bundle.js')), - async (generator) => { - for await (const file of generator) { - console.log(`executing ${file.path}`); - execSync(`${process.argv[0]} ${file.path}`, { stdio: 'inherit' }); +export const webpackTask = ((cache) => memoizeTask(cache, function pkgWebpack(target, format, opts = { minify: true, analyze: false }) { + const pkgDir = Path.resolve(__dirname, '../', targetDir(target, format)); + const outDir = Path.join(bundleDir, 'webpack', target, format); + return observableFromStreams( + gulp.src(srcGlob), + vinylNamed((file) => file.path), + webpack({ + mode: opts?.minify == false ? 'development' : 'production', + optimization: { + usedExports: true + }, + output: { + filename: ({ runtime: name }) => Path.relative(srcDir, name) + }, + module: { + rules: [ + { + resolve: { + fullySpecified: false, + } + } + ] + }, + resolve: { + extensions: ['.mjs', '.cjs', '.js'], + alias: { 'ix': pkgDir } + }, + stats: 'errors-only', + plugins: opts?.analyze ? [new BundleAnalyzerPlugin()] : [] + }), + gulp.dest(outDir), + size({ gzip: true }) + ); +}))({}); + +export const execBundleTask = ((cache) => memoizeTask(cache, function execBundle(bundler, target, format) { + return observableFromStreams( + gulp.src(Path.join(bundleDir, bundler, target, format, '**', '*.js')), + async (generator) => { + for await (const file of generator) { + console.log(`executing ${file.path}`); + execSync(`${process.argv[0]} ${file.path}`, { stdio: 'inherit' }); + } } - } -); + ); +}))({}); diff --git a/gulpfile.js b/gulpfile.js index ef97ec95..1fc9a91a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -8,7 +8,8 @@ import cleanTask from './gulp/clean-task.js'; import compileTask from './gulp/compile-task.js'; import packageTask from './gulp/package-task.js'; import { testTask } from './gulp/test-task.js'; -import { esbuildTask, rollupTask, webpackTask, execBundleTask } from './gulp/bundle-task.js'; +import * as Path from 'node:path'; +import { bundleTask, execBundleTask } from './gulp/bundle-task.js'; import { taskName, combinations, targetDir, knownTargets, npmPkgName, tasksToSkipPerTargetOrFormat, targetAndModuleCombinations } from './gulp/util.js'; for (const [target, format] of combinations([`all`], [`all`])) { @@ -20,6 +21,34 @@ for (const [target, format] of combinations([`all`], [`all`])) { gulp.task(`build:${task}`, gulp.series( `clean:${task}`, `compile:${task}`, `package:${task}` )); + gulp.task(`package:${task}`, packageTask(target, format)); + + for (const bundler of ['esbuild', 'rollup', 'webpack']) { + gulp.task(`bundle:${task}:${bundler}:clean`, () => del(Path.join(`integration`, bundler, target, format, '**', `*.js`))); + gulp.task(`bundle:${task}:${bundler}:test`, bundleTask(bundler, target, format)); + gulp.task(`bundle:${task}:${bundler}:exec`, execBundleTask(bundler, target, format)); + gulp.task(`bundle:${task}:${bundler}`, gulp.series( + `bundle:${task}:${bundler}:clean`, + `bundle:${task}:${bundler}:test`, + `bundle:${task}:${bundler}:exec`, + )); + } + gulp.task(`bundle:${task}:webpack:analyze`, bundleTask('webpack', target, format, { analyze: true })); + gulp.task(`bundle:${task}:clean`, gulp.parallel( + `bundle:${task}:esbuild:clean`, + `bundle:${task}:rollup:clean`, + `bundle:${task}:webpack:clean`, + )); + gulp.task(`bundle:${task}:exec`, gulp.series( + `bundle:${task}:esbuild:exec`, + `bundle:${task}:rollup:exec`, + `bundle:${task}:webpack:exec`, + )); + gulp.task(`bundle:${task}`, gulp.parallel( + `bundle:${task}:esbuild`, + `bundle:${task}:rollup`, + `bundle:${task}:webpack`, + )); } // The UMD bundles build temporary es5/6/next targets via TS, @@ -64,17 +93,9 @@ gulp.task(`clean`, gulp.parallel(getTasks(`clean`))); gulp.task(`build`, gulpConcurrent(getTasks(`build`))); gulp.task(`compile`, gulpConcurrent(getTasks(`compile`))); gulp.task(`package`, gulpConcurrent(getTasks(`package`))); +gulp.task(`bundle`, gulp.parallel(getTasks(`bundle`))); gulp.task(`default`, gulp.series(`clean`, `build`, `test`)); -gulp.task(`bundle:esbuild`, esbuildTask()); -gulp.task(`bundle:rollup`, rollupTask()); -gulp.task(`bundle:webpack`, webpackTask()); -gulp.task(`bundle:webpack:analyze`, webpackTask({ analyze: true })); -gulp.task(`bundle:clean`, () => del(`test/bundle/**/*-bundle.js`)); -gulp.task(`bundle:exec`, execBundleTask()); - -gulp.task(`bundle`, gulp.series(`bundle:clean`, `bundle:esbuild`, `bundle:rollup`, `bundle:webpack`, `bundle:exec`)); - function gulpConcurrent(tasks, numCPUs = Math.max(1, os.cpus().length * 0.5) | 0) { return () => ObservableFrom(tasks.map((task) => gulp.series(task))) .pipe(mergeMap((task) => ObservableBindNodeCallback(task)(), numCPUs || 1)); diff --git a/test/bundle/make-files-to-bundle.sh b/integration/make-files-to-bundle.sh similarity index 74% rename from test/bundle/make-files-to-bundle.sh rename to integration/make-files-to-bundle.sh index bf60b4c2..9fc3f0cd 100755 --- a/test/bundle/make-files-to-bundle.sh +++ b/integration/make-files-to-bundle.sh @@ -2,15 +2,16 @@ # shellcheck disable=SC2164 # Ensure we're in the repo root -cd "$( cd "$( dirname "$(realpath -m "${BASH_SOURCE[0]}")" )" && pwd )/../.."; +cd "$( cd "$( dirname "$(realpath -m "${BASH_SOURCE[0]}")" )" && pwd )/.."; for typ in iterable iterable.operators asynciterable asynciterable.operators; do + mkdir -p "integration/src/${typ//./\/}"; declare -a ary="($( node -p "Object.keys(require('./targets/ix/Ix.${typ}')).filter(k => k.charAt(0) === k.charAt(0).toLowerCase()).join('\n')" ))" for fun in "${ary[@]}"; do - cat << EOF > "test/bundle/${typ}.${fun}.js" -import { ${fun} } from 'ix/Ix.${typ}.mjs'; + cat << EOF > "integration/src/${typ//./\/}/${fun}.js" +import { ${fun} } from 'ix/Ix.${typ}'; console.log(${fun}); EOF done diff --git a/integration/src/asynciterable.js b/integration/src/asynciterable.js new file mode 100644 index 00000000..eae9e394 --- /dev/null +++ b/integration/src/asynciterable.js @@ -0,0 +1,2 @@ +import { AsyncIterableX } from 'ix/Ix.asynciterable'; +console.log(AsyncIterableX); diff --git a/integration/src/iterable.js b/integration/src/iterable.js new file mode 100644 index 00000000..1ec3b799 --- /dev/null +++ b/integration/src/iterable.js @@ -0,0 +1,2 @@ +import { IterableX } from 'ix/Ix.iterable'; +console.log(IterableX); diff --git a/test/bundle/asynciterable.js b/test/bundle/asynciterable.js deleted file mode 100644 index fc2c53c2..00000000 --- a/test/bundle/asynciterable.js +++ /dev/null @@ -1,3 +0,0 @@ -import { AsyncIterable } from 'ix'; - -console.log(AsyncIterable); diff --git a/test/bundle/iterable.js b/test/bundle/iterable.js deleted file mode 100644 index e5f92c86..00000000 --- a/test/bundle/iterable.js +++ /dev/null @@ -1,3 +0,0 @@ -import { Iterable } from 'ix'; - -console.log(Iterable); From 10801c778642e75ced3fd9805bf8d35d7cc3b20e Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 14:16:28 -0700 Subject: [PATCH 23/44] run bundle integration tests in parallel --- .github/workflows/main.pr.yml | 1 + gulp/bundle-task.js | 8 ++++---- gulp/util.js | 16 ++++++++-------- gulpfile.js | 19 ++++++++++++------- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index a0fe25c4..5572b240 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -170,5 +170,6 @@ jobs: - name: Test ${{ matrix.bundler }} tree-shaking if: ${{ steps.source_files_changed.outputs.any_modified == 'true' }} run: | + yarn build -t ix integration/make-files-to-bundle.sh yarn gulp bundle:${{ matrix.target }}:${{ matrix.module }}:${{ matrix.bundler }} diff --git a/gulp/bundle-task.js b/gulp/bundle-task.js index c6658948..4cf133a8 100644 --- a/gulp/bundle-task.js +++ b/gulp/bundle-task.js @@ -30,11 +30,11 @@ const bundleDir = Path.resolve(__dirname, '../integration'); const srcDir = Path.join(bundleDir, 'src'); const srcGlob = Path.join(srcDir, '**/*.js'); -export function bundleTask(bundler, ...rest) { +export function bundleTask(bundler, target, format, ...rest) { switch (bundler) { - case 'esbuild': return esbuildTask(...rest); - case 'rollup': return rollupTask(...rest); - case 'webpack': return webpackTask(...rest); + case 'esbuild': return esbuildTask(target, format, ...rest); + case 'rollup': return rollupTask(target, format, ...rest); + case 'webpack': return webpackTask(target, format, ...rest); } } diff --git a/gulp/util.js b/gulp/util.js index 508bed01..4da211ad 100644 --- a/gulp/util.js +++ b/gulp/util.js @@ -22,8 +22,9 @@ const releasesRootDir = `targets`; const knownTargets = [`es5`, `es2015`, `esnext`]; const knownModules = [`cjs`, `esm`, `cls`, `umd`]; const tasksToSkipPerTargetOrFormat = { - src: { clean: true, build: true }, - cls: { test: true, package: true } + ts: { bundle: true }, + src: { clean: true, build: true, bundle: true }, + cls: { test: true, package: true, bundle: true } }; const packageJSONFields = [ `version`, `license`, `description`, @@ -82,21 +83,20 @@ function shouldRunInChildProcess(target, format) { return false; } -const gulp = path.join(path.parse(require.resolve(`gulp`)).dir, `bin/gulp.js`); +const gulpBin = path.join(path.parse(require.resolve(`gulp`)).dir, `bin/gulp.js`); function spawnGulpCommandInChildProcess(command, target, format) { - const err = []; + const err = [`Error in "${command}:${taskName(target, format)}" task:`]; return asyncDone(() => { const child = child_process.spawn( `node`, - [gulp, command, '-t', target, '-m', format, `-L`], + [gulpBin, command, '-t', target, '-m', format, `-S`], { - stdio: [`ignore`, `ignore`, `pipe`], + stdio: [`ignore`, `inherit`, `pipe`], env: { ...process.env, NODE_NO_WARNINGS: `1` } }); child.stderr.on('data', (line) => err.push(line)); return child; - }).catch(() => Promise.reject(err.length > 0 ? err.join('\n') - : `Error in "${command}:${taskName(target, format)}" task.`)); + }).catch(() => Promise.reject(err.join('\n'))); } const logAndDie = (e) => { if (e) { console.error(e); process.exit(1); } }; diff --git a/gulpfile.js b/gulpfile.js index 1fc9a91a..565e44db 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -10,7 +10,7 @@ import packageTask from './gulp/package-task.js'; import { testTask } from './gulp/test-task.js'; import * as Path from 'node:path'; import { bundleTask, execBundleTask } from './gulp/bundle-task.js'; -import { taskName, combinations, targetDir, knownTargets, npmPkgName, tasksToSkipPerTargetOrFormat, targetAndModuleCombinations } from './gulp/util.js'; +import { taskName, combinations, targetDir, knownTargets, npmPkgName, tasksToSkipPerTargetOrFormat, targetAndModuleCombinations, shouldRunInChildProcess, spawnGulpCommandInChildProcess } from './gulp/util.js'; for (const [target, format] of combinations([`all`], [`all`])) { const task = taskName(target, format); @@ -44,11 +44,16 @@ for (const [target, format] of combinations([`all`], [`all`])) { `bundle:${task}:rollup:exec`, `bundle:${task}:webpack:exec`, )); - gulp.task(`bundle:${task}`, gulp.parallel( - `bundle:${task}:esbuild`, - `bundle:${task}:rollup`, - `bundle:${task}:webpack`, - )); + gulp.task(`bundle:${task}`, (...args) => { + if (shouldRunInChildProcess(target, format)) { + return spawnGulpCommandInChildProcess(`bundle`, target, format); + } + return gulp.parallel( + `bundle:${task}:esbuild`, + `bundle:${task}:rollup`, + `bundle:${task}:webpack`, + )(...args); + }); } // The UMD bundles build temporary es5/6/next targets via TS, @@ -93,7 +98,7 @@ gulp.task(`clean`, gulp.parallel(getTasks(`clean`))); gulp.task(`build`, gulpConcurrent(getTasks(`build`))); gulp.task(`compile`, gulpConcurrent(getTasks(`compile`))); gulp.task(`package`, gulpConcurrent(getTasks(`package`))); -gulp.task(`bundle`, gulp.parallel(getTasks(`bundle`))); +gulp.task(`bundle`, gulpConcurrent(getTasks(`bundle`))); gulp.task(`default`, gulp.series(`clean`, `build`, `test`)); function gulpConcurrent(tasks, numCPUs = Math.max(1, os.cpus().length * 0.5) | 0) { From bc216edb9b67a67230463988f79c58eadbe276a4 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 14:24:12 -0700 Subject: [PATCH 24/44] remove node from integration matrix --- .github/workflows/main.pr.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 5572b240..1bcbd7b6 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -60,6 +60,7 @@ jobs: module: [cjs, esm, umd] target: [es5, es2015, esnext] include: + - {target: ix} - {node: 20.x, target: src, args: --coverage} steps: - name: Setup node v${{ matrix.node }} @@ -130,15 +131,16 @@ jobs: strategy: fail-fast: false matrix: - node: [20.x] module: [cjs, esm, umd] target: [es5, es2015, esnext] - pkgr: [esbuild, rollup, webpack] + bundler: [esbuild, rollup, webpack] + include: + - {target: ix} steps: - - name: Setup node v${{ matrix.node }} + - name: Setup node v20.x uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node }} + node-version: 20.x - name: Checkout uses: actions/checkout@v4 with: @@ -147,13 +149,13 @@ jobs: - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} + key: ${{ runner.os }}-targets-20.x-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} path: targets - name: Cache node_modules uses: actions/cache@v4 with: - key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json', 'yarn.lock') }} + key: ${{ runner.os }}-node_modules-20.x-${{ hashFiles('package.json', 'yarn.lock') }} path: node_modules - name: Check if source files changed From bdd483772349f388ab988773ce470755d385b409 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 14:31:23 -0700 Subject: [PATCH 25/44] fix ix matrix entries --- .github/workflows/main.pr.yml | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 1bcbd7b6..027cb359 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -60,7 +60,9 @@ jobs: module: [cjs, esm, umd] target: [es5, es2015, esnext] include: - - {target: ix} + - {node: 16.x, target: ix} + - {node: 18.x, target: ix} + - {node: 20.x, target: ix} - {node: 20.x, target: src, args: --coverage} steps: - name: Setup node v${{ matrix.node }} @@ -110,18 +112,18 @@ jobs: - name: Build package if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} env: - ecmascriptver: "${{ matrix.target }}" - module_format: "${{ matrix.module }}" + t: "${{ matrix.target }}" + m: "${{ matrix.module }}" run: | - yarn build ${ecmascriptver:+-t ${ecmascriptver}} ${module_format:+-m ${module_format}} + yarn build ${t:+-t ${t}} ${m:+-m ${m}} - name: Test package if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} env: - ecmascriptver: "${{ matrix.target }}" - module_format: "${{ matrix.module }}" + t: "${{ matrix.target }}" + m: "${{ matrix.module }}" run: | - yarn test ${ecmascriptver:+-t ${ecmascriptver}} ${module_format:+-m ${module_format}} ${{ matrix.args }} + yarn test ${t:+-t ${t}} ${m:+-m ${m}} ${{ matrix.args }} test-tree-shaking-pull-request: needs: @@ -135,7 +137,9 @@ jobs: target: [es5, es2015, esnext] bundler: [esbuild, rollup, webpack] include: - - {target: ix} + - {target: ix, bundler: esbuild} + - {target: ix, bundler: rollup} + - {target: ix, bundler: webpack} steps: - name: Setup node v20.x uses: actions/setup-node@v4 @@ -149,7 +153,7 @@ jobs: - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-20.x-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} + key: ${{ runner.os }}-targets-20.x-ix-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} path: targets - name: Cache node_modules @@ -171,7 +175,12 @@ jobs: - name: Test ${{ matrix.bundler }} tree-shaking if: ${{ steps.source_files_changed.outputs.any_modified == 'true' }} + env: + t: "${{ matrix.target }}" + m: "${{ matrix.module }}" run: | - yarn build -t ix integration/make-files-to-bundle.sh - yarn gulp bundle:${{ matrix.target }}:${{ matrix.module }}:${{ matrix.bundler }} + if test "${t}" != ix; then + yarn build ${t:+-t ${t}} ${m:+-m ${m}} + fi + yarn gulp bundle:${t:+:${t}}${m:+:${m}}:${{ matrix.bundler }} From a0e5371b0453a332d65ed643c8538dd15a5821d5 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 14:37:58 -0700 Subject: [PATCH 26/44] fix cache key --- .github/workflows/main.pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 027cb359..c486ebd4 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -153,7 +153,7 @@ jobs: - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-20.x-ix-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} + key: ${{ runner.os }}-targets-20.x-ix--${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} path: targets - name: Cache node_modules From 9e23152eb7addcd016ba979c40431129f7ce8a4b Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 14:43:52 -0700 Subject: [PATCH 27/44] fix typo --- .github/workflows/main.pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index c486ebd4..49900049 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -183,4 +183,4 @@ jobs: if test "${t}" != ix; then yarn build ${t:+-t ${t}} ${m:+-m ${m}} fi - yarn gulp bundle:${t:+:${t}}${m:+:${m}}:${{ matrix.bundler }} + yarn gulp bundle${t:+:${t}}${m:+:${m}}:${{ matrix.bundler }} From 6f7efdef177b49002d03941aec913611d5ec5572 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 15:52:36 -0700 Subject: [PATCH 28/44] fix imports missing .js extensions --- src/Ix.node.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Ix.node.ts b/src/Ix.node.ts index 09cf2d35..6c95f4a6 100644 --- a/src/Ix.node.ts +++ b/src/Ix.node.ts @@ -38,8 +38,8 @@ import './add/asynciterable-operators/flat.js'; import './add/asynciterable-operators/forkjoin.js'; import './add/asynciterable-operators/groupby.js'; import './add/asynciterable-operators/groupjoin.js'; -import './add/asynciterable-operators/ignoreelements'; -import './add/asynciterable-operators/includes'; +import './add/asynciterable-operators/ignoreelements.js'; +import './add/asynciterable-operators/includes.js'; import './add/asynciterable-operators/innerjoin.js'; import './add/asynciterable-operators/intersect.js'; import './add/asynciterable-operators/isempty.js'; @@ -131,8 +131,8 @@ import './add/iterable-operators/flatmap.js'; import './add/iterable-operators/flat.js'; import './add/iterable-operators/groupby.js'; import './add/iterable-operators/groupjoin.js'; -import './add/iterable-operators/ignoreelements'; -import './add/iterable-operators/includes'; +import './add/iterable-operators/ignoreelements.js'; +import './add/iterable-operators/includes.js'; import './add/iterable-operators/innerjoin.js'; import './add/iterable-operators/intersect.js'; import './add/iterable-operators/isempty.js'; From 302e66695aa733baf4107a323e2f22e32dc99e72 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 15:52:58 -0700 Subject: [PATCH 29/44] fix UMD bundle main keys in package.json --- gulp/package-task.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gulp/package-task.js b/gulp/package-task.js index 83847145..8f868e24 100644 --- a/gulp/package-task.js +++ b/gulp/package-task.js @@ -96,12 +96,12 @@ const createScopedPackageJSON = (target, format) => (({ name, ...orig }) => // set the scoped package name (e.g. "@reactivex/ix-esnext-esm") name: `${npmOrgName}/${packageName(target, format)}`, // set "unpkg"/"jsdeliver" if building scoped UMD target - unpkg: format === 'umd' ? `${mainExport}.js` : undefined, - jsdelivr: format === 'umd' ? `${mainExport}.js` : undefined, + unpkg: format === 'umd' ? `${mainExport}.dom.js` : undefined, + jsdelivr: format === 'umd' ? `${mainExport}.dom.js` : undefined, // set "browser" if building scoped UMD target, otherwise "Ix.dom" - browser: format === 'umd' ? `${mainExport}.js` : `${mainExport}.dom.js`, + browser: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.dom.js`, // set "main" to "Ix" if building scoped UMD target, otherwise "Ix.node" - main: format === 'umd' ? `${mainExport}.js` : `${mainExport}.node.js`, + main: format === 'umd' ? `${mainExport}.dom.js` : `${mainExport}.node.js`, // set "type" to `module` or `commonjs` (https://nodejs.org/api/packages.html#packages_type) type: format === 'esm' ? `module` : `commonjs`, // set "module" if building scoped ESM target From e8ea4322473621c6340f16be8bb650d2f6f2bcbd Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 15:59:18 -0700 Subject: [PATCH 30/44] add step to test importing the package as cjs and esm --- .github/workflows/main.pr.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 49900049..ab56a252 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -125,6 +125,23 @@ jobs: run: | yarn test ${t:+-t ${t}} ${m:+-m ${m}} ${{ matrix.args }} + - name: Test importing + continue-on-error: true + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} + env: + t: "${{ matrix.target }}" + m: "${{ matrix.module }}" + run: | + set -x; + targetdir="./targets${t:+/${t}}${m:+/${m}}"; + pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; + npm link -g "${targetdir}"; + cd /; + # Attempt to import as CommonJS + node -e "require('${pkg_name}')" || true; + # Attempt to import as ESModule + node --input-type=module -e "import '${pkg_name}'" || true; + test-tree-shaking-pull-request: needs: - build-and-test-pull-request From ea7fa298e8491b688ac9875385cf0d942db5860b Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:03:11 -0700 Subject: [PATCH 31/44] don't use npm link -g --- .github/workflows/main.pr.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index ab56a252..7fb252b1 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -135,8 +135,7 @@ jobs: set -x; targetdir="./targets${t:+/${t}}${m:+/${m}}"; pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; - npm link -g "${targetdir}"; - cd /; + npm link "${targetdir}"; # Attempt to import as CommonJS node -e "require('${pkg_name}')" || true; # Attempt to import as ESModule From 3d0e7db98a2e1a8c68d592d94b9f76ead7dfa259 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:07:05 -0700 Subject: [PATCH 32/44] install globally --- .github/workflows/main.pr.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 7fb252b1..bc4ecc3c 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -135,7 +135,8 @@ jobs: set -x; targetdir="./targets${t:+/${t}}${m:+/${m}}"; pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; - npm link "${targetdir}"; + npm install --location=global --unsafe-perm "${targetdir}"; + cd /; # Attempt to import as CommonJS node -e "require('${pkg_name}')" || true; # Attempt to import as ESModule From f208616561a09846a859a2c45a32005015d1b383 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:14:15 -0700 Subject: [PATCH 33/44] fix package names --- .github/workflows/main.pr.yml | 2 +- gulp/package-task.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index bc4ecc3c..4d1e78a4 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -135,7 +135,7 @@ jobs: set -x; targetdir="./targets${t:+/${t}}${m:+/${m}}"; pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; - npm install --location=global --unsafe-perm "${targetdir}"; + npm install --loglevel verbose --global --unsafe-perm "${targetdir}"; cd /; # Attempt to import as CommonJS node -e "require('${pkg_name}')" || true; diff --git a/gulp/package-task.js b/gulp/package-task.js index 8f868e24..bb344279 100644 --- a/gulp/package-task.js +++ b/gulp/package-task.js @@ -94,7 +94,7 @@ const createScopedPackageJSON = (target, format) => (({ name, ...orig }) => // un-set version, since it's automatically applied during the release process version: undefined, // set the scoped package name (e.g. "@reactivex/ix-esnext-esm") - name: `${npmOrgName}/${packageName(target, format)}`, + name: `${npmOrgName}/${npmPkgName}-${packageName(target, format)}`, // set "unpkg"/"jsdeliver" if building scoped UMD target unpkg: format === 'umd' ? `${mainExport}.dom.js` : undefined, jsdelivr: format === 'umd' ? `${mainExport}.dom.js` : undefined, From 2ee23bde9fe6509cf88745bc00a7f5bcf102d221 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:32:12 -0700 Subject: [PATCH 34/44] install into tmpdir --- .github/workflows/main.pr.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 4d1e78a4..0918d8d6 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -135,12 +135,19 @@ jobs: set -x; targetdir="./targets${t:+/${t}}${m:+/${m}}"; pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; - npm install --loglevel verbose --global --unsafe-perm "${targetdir}"; - cd /; + # Install the package into a temp dir + _tmp="$(mktemp -d)"; + mkdir -p "${_tmp}/node_modules"; + cp -ar "${targetdir}" "${_tmp}/node_modules/"; + cd "${_tmp}/${pkg_name}"; + npm i; + cd "${_tmp}/"; # Attempt to import as CommonJS node -e "require('${pkg_name}')" || true; # Attempt to import as ESModule node --input-type=module -e "import '${pkg_name}'" || true; + cd /; + rm -rf "${_tmp}"; test-tree-shaking-pull-request: needs: From 5407ade09805b51edfbb74d0189abb94557d334d Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:48:11 -0700 Subject: [PATCH 35/44] fix typo --- .github/workflows/main.pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 0918d8d6..2d7861b3 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -139,7 +139,7 @@ jobs: _tmp="$(mktemp -d)"; mkdir -p "${_tmp}/node_modules"; cp -ar "${targetdir}" "${_tmp}/node_modules/"; - cd "${_tmp}/${pkg_name}"; + cd "${_tmp}/node_modules/${pkg_name}"; npm i; cd "${_tmp}/"; # Attempt to import as CommonJS From 48f8bf49fb0210c4f5afa2738cf2293e04326331 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:50:49 -0700 Subject: [PATCH 36/44] fix copy destination --- .github/workflows/main.pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 2d7861b3..7240c976 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -138,7 +138,7 @@ jobs: # Install the package into a temp dir _tmp="$(mktemp -d)"; mkdir -p "${_tmp}/node_modules"; - cp -ar "${targetdir}" "${_tmp}/node_modules/"; + cp -ar "${targetdir}" "${_tmp}/node_modules/${pkg_name}"; cd "${_tmp}/node_modules/${pkg_name}"; npm i; cd "${_tmp}/"; From fa4088e341d6262bc6c374315fb46b081ad20ffa Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:51:40 -0700 Subject: [PATCH 37/44] mkdir before copy --- .github/workflows/main.pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 7240c976..56be6b10 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -137,8 +137,8 @@ jobs: pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; # Install the package into a temp dir _tmp="$(mktemp -d)"; - mkdir -p "${_tmp}/node_modules"; - cp -ar "${targetdir}" "${_tmp}/node_modules/${pkg_name}"; + mkdir -p "${_tmp}/node_modules/${pkg_name}"; + cp -ar "${targetdir}"/{*,.*} "${_tmp}/node_modules/${pkg_name}/"; cd "${_tmp}/node_modules/${pkg_name}"; npm i; cd "${_tmp}/"; From 4a3de8b2f42ac9b9d7c2b3f4cbe0a0e682bb3a72 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:56:09 -0700 Subject: [PATCH 38/44] use globstar --- .github/workflows/main.pr.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 56be6b10..3bde2bb2 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -138,7 +138,9 @@ jobs: # Install the package into a temp dir _tmp="$(mktemp -d)"; mkdir -p "${_tmp}/node_modules/${pkg_name}"; - cp -ar "${targetdir}"/{*,.*} "${_tmp}/node_modules/${pkg_name}/"; + shopt -s globstar; + cp -ar "${targetdir}"/**/* "${_tmp}/node_modules/${pkg_name}/"; + shopt -u globstar; cd "${_tmp}/node_modules/${pkg_name}"; npm i; cd "${_tmp}/"; From fe0bf0f19e128a24c91e9e37d3b69e5b00298214 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:56:35 -0700 Subject: [PATCH 39/44] don't globstar --- .github/workflows/main.pr.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 3bde2bb2..2abcea73 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -138,9 +138,7 @@ jobs: # Install the package into a temp dir _tmp="$(mktemp -d)"; mkdir -p "${_tmp}/node_modules/${pkg_name}"; - shopt -s globstar; - cp -ar "${targetdir}"/**/* "${_tmp}/node_modules/${pkg_name}/"; - shopt -u globstar; + cp -ar "${targetdir}"/* "${_tmp}/node_modules/${pkg_name}/"; cd "${_tmp}/node_modules/${pkg_name}"; npm i; cd "${_tmp}/"; From 1e1f5e5ee875dbaee0ca0685db24eb245ba03371 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 16:59:42 -0700 Subject: [PATCH 40/44] use dirname --- .github/workflows/main.pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 2abcea73..7bb0112b 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -137,8 +137,8 @@ jobs: pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; # Install the package into a temp dir _tmp="$(mktemp -d)"; - mkdir -p "${_tmp}/node_modules/${pkg_name}"; - cp -ar "${targetdir}"/* "${_tmp}/node_modules/${pkg_name}/"; + mkdir -p "$(dirname "${_tmp}/node_modules/${pkg_name}")"; + cp -ar "${targetdir}" "${_tmp}/node_modules/${pkg_name}"; cd "${_tmp}/node_modules/${pkg_name}"; npm i; cd "${_tmp}/"; From 05f78c755f851c238ad693bf8bd76d84453f0f00 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 17:06:36 -0700 Subject: [PATCH 41/44] make import step non-optional --- .github/workflows/main.pr.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 7bb0112b..3aed35f9 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -126,15 +126,14 @@ jobs: yarn test ${t:+-t ${t}} ${m:+-m ${m}} ${{ matrix.args }} - name: Test importing - continue-on-error: true if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} env: t: "${{ matrix.target }}" m: "${{ matrix.module }}" run: | - set -x; targetdir="./targets${t:+/${t}}${m:+/${m}}"; pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; + pkg_type="$(jq -r '.type' "${targetdir}/package.json")"; # Install the package into a temp dir _tmp="$(mktemp -d)"; mkdir -p "$(dirname "${_tmp}/node_modules/${pkg_name}")"; @@ -142,10 +141,17 @@ jobs: cd "${_tmp}/node_modules/${pkg_name}"; npm i; cd "${_tmp}/"; - # Attempt to import as CommonJS - node -e "require('${pkg_name}')" || true; - # Attempt to import as ESModule - node --input-type=module -e "import '${pkg_name}'" || true; + set -x; + if test "${pkg_type}" = "module"; then + # Test importing as ESModule + node --input-type=module -e "import '${pkg_name}'"; + else + # Test importing as CommonJS + node --input-type=commonjs -e "require('${pkg_name}')"; + # Test importing CommonJS module but allow it to fail + node --input-type=module -e "import '${pkg_name}'" || true; + fi + set +x; cd /; rm -rf "${_tmp}"; From 75c1abb388ef5ce8bca95e3502ddd28169ccf0da Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 19:39:48 -0700 Subject: [PATCH 42/44] Better names for CI jobs --- .github/workflows/main.pr.yml | 68 +++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 3aed35f9..2bb8e62b 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -13,25 +13,25 @@ jobs: lint-pull-request: name: Lint runs-on: ubuntu-22.04 - strategy: - fail-fast: true - matrix: - node: [20.x] steps: - - name: Setup node v${{ matrix.node }} + - name: Setup node v20.x uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node }} + node-version: 20.x - name: Checkout uses: actions/checkout@v4 with: persist-credentials: false + - name: Construct cache keys + run: | + echo node_modules_key='["${{ runner.os }}", "node_modules", "20.x", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; + - name: Cache node_modules uses: actions/cache@v4 with: - key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json', 'yarn.lock') }} + key: ${{ join(fromJSON(env.node_modules_key), '-') }} path: node_modules - name: Check if source or test files changed @@ -51,14 +51,14 @@ jobs: build-and-test-pull-request: needs: - lint-pull-request - name: Test + name: Test ${{ matrix.node }} ${{ matrix.target }} ${{ matrix.module }} runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: node: [16.x, 18.x, 20.x] - module: [cjs, esm, umd] target: [es5, es2015, esnext] + module: [cjs, esm, umd] include: - {node: 16.x, target: ix} - {node: 18.x, target: ix} @@ -69,21 +69,27 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} + - name: Checkout uses: actions/checkout@v4 with: persist-credentials: false + - name: Construct cache keys + run: | + echo node_modules_key='["${{ runner.os }}", "node_modules", "${{ matrix.node }}", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; + echo targets_key='["${{ runner.os }}", "targets", "${{ matrix.node }}", "${{ matrix.target }}", "${{ matrix.module }}", "${{ hashFiles('package.json', 'yarn.lock', 'tsconfig.json', 'src/**/*', 'tsconfigs/**/*') }}"]' >> $GITHUB_ENV; + - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-${{ matrix.node }}-${{ matrix.target }}-${{ matrix.module }}-${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} + key: ${{ join(fromJSON(env.targets_key), '-') }} path: targets - name: Cache node_modules uses: actions/cache@v4 with: - key: ${{ runner.os }}-node_modules-${{ matrix.node }}-${{ hashFiles('package.json', 'yarn.lock') }} + key: ${{ join(fromJSON(env.node_modules_key), '-') }} path: node_modules - name: Check if test files changed @@ -92,6 +98,10 @@ jobs: with: files: | spec/**/* + tsconfig.json + tsconfigs/**/* + jest.config.js + jestconfigs/**/* - name: Check if source files changed id: source_files_changed @@ -101,7 +111,10 @@ jobs: .npmrc yarn.lock package.json + tsconfig.json src/**/* + gulp/**/* + tsconfigs/**/* integration/**/* - name: Install dependencies @@ -158,18 +171,18 @@ jobs: test-tree-shaking-pull-request: needs: - build-and-test-pull-request - name: Integration + name: Bundle ${{ matrix.bundler }} ${{ matrix.target }} ${{ matrix.module }} runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: - module: [cjs, esm, umd] - target: [es5, es2015, esnext] bundler: [esbuild, rollup, webpack] + target: [es5, es2015, esnext] + module: [cjs, esm, umd] include: - - {target: ix, bundler: esbuild} - - {target: ix, bundler: rollup} - - {target: ix, bundler: webpack} + - {bundler: esbuild, target: ix} + - {bundler: rollup, target: ix} + - {bundler: webpack, target: ix} steps: - name: Setup node v20.x uses: actions/setup-node@v4 @@ -180,31 +193,24 @@ jobs: with: persist-credentials: false + - name: Construct cache keys + run: | + echo node_modules_key='["${{ runner.os }}", "node_modules", "20.x", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; + echo targets_key='["${{ runner.os }}", "targets", "20.x", "${{ matrix.target }}", "${{ matrix.module }}", "${{ hashFiles('package.json', 'yarn.lock', 'tsconfig.json', 'src/**/*', 'tsconfigs/**/*') }}"]' >> $GITHUB_ENV; + - name: Cache targets uses: actions/cache@v4 with: - key: ${{ runner.os }}-targets-20.x-ix--${{ hashFiles('package.json', 'yarn.lock', 'src/**/*') }} + key: ${{ join(fromJSON(env.targets_key), '-') }} path: targets - name: Cache node_modules uses: actions/cache@v4 with: - key: ${{ runner.os }}-node_modules-20.x-${{ hashFiles('package.json', 'yarn.lock') }} + key: ${{ join(fromJSON(env.node_modules_key), '-') }} path: node_modules - - name: Check if source files changed - id: source_files_changed - uses: tj-actions/changed-files@v44 - with: - files: | - .npmrc - yarn.lock - package.json - src/**/* - integration/**/* - - name: Test ${{ matrix.bundler }} tree-shaking - if: ${{ steps.source_files_changed.outputs.any_modified == 'true' }} env: t: "${{ matrix.target }}" m: "${{ matrix.module }}" From 3473e0dba346419e1df8603a405a0420627ce550 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 20:09:48 -0700 Subject: [PATCH 43/44] refactor into reusable workflows --- .github/workflows/bundle.yml | 56 +++++++++ .github/workflows/lint.yml | 43 +++++++ .github/workflows/main.pr.yml | 211 ++-------------------------------- .github/workflows/test.yml | 123 ++++++++++++++++++++ 4 files changed, 229 insertions(+), 204 deletions(-) create mode 100644 .github/workflows/bundle.yml create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/bundle.yml b/.github/workflows/bundle.yml new file mode 100644 index 00000000..d4785929 --- /dev/null +++ b/.github/workflows/bundle.yml @@ -0,0 +1,56 @@ +name: Bundle + +on: + workflow_call: + +jobs: + test-tree-shaking-pull-request: + name: ${{ matrix.bundler }} ${{ matrix.target }} ${{ matrix.module }} + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + bundler: [esbuild, rollup, webpack] + target: [es5, es2015, esnext] + module: [cjs, esm, umd] + include: + - {bundler: esbuild, target: ix} + - {bundler: rollup, target: ix} + - {bundler: webpack, target: ix} + steps: + - name: Setup node v20.x + uses: actions/setup-node@v4 + with: + node-version: 20.x + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Construct cache keys + run: | + echo node_modules_key='["${{ runner.os }}", "node_modules", "20.x", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; + echo targets_key='["${{ runner.os }}", "targets", "20.x", "${{ matrix.target }}", "${{ matrix.module }}", "${{ hashFiles('package.json', 'yarn.lock', 'tsconfig.json', 'src/**/*', 'tsconfigs/**/*') }}"]' >> $GITHUB_ENV; + + - name: Cache targets + uses: actions/cache@v4 + with: + key: ${{ join(fromJSON(env.targets_key), '-') }} + path: targets + + - name: Cache node_modules + uses: actions/cache@v4 + with: + key: ${{ join(fromJSON(env.node_modules_key), '-') }} + path: node_modules + + - name: Test ${{ matrix.bundler }} tree-shaking + env: + t: "${{ matrix.target }}" + m: "${{ matrix.module }}" + run: | + integration/make-files-to-bundle.sh + if test "${t}" != ix; then + yarn build ${t:+-t ${t}} ${m:+-m ${m}} + fi + yarn gulp bundle${t:+:${t}}${m:+:${m}}:${{ matrix.bundler }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 00000000..80c083aa --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,43 @@ +name: Lint + +on: + workflow_call: + +jobs: + lint-pull-request: + name: Lint + runs-on: ubuntu-22.04 + steps: + - name: Setup node v20.x + uses: actions/setup-node@v4 + with: + node-version: 20.x + + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Construct cache keys + run: | + echo node_modules_key='["${{ runner.os }}", "node_modules", "20.x", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; + + - name: Cache node_modules + uses: actions/cache@v4 + with: + key: ${{ join(fromJSON(env.node_modules_key), '-') }} + path: node_modules + + - name: Check if source or test files changed + id: files_changed + uses: tj-actions/changed-files@v44 + with: + files: | + src/**/* + spec/**/* + + - name: Lint files + if: ${{ steps.files_changed.outputs.any_modified == 'true' }} + run: | + yarn --ignore-engines --non-interactive + yarn lint:ci diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 2bb8e62b..0a0f3ea4 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -12,211 +12,14 @@ on: jobs: lint-pull-request: name: Lint - runs-on: ubuntu-22.04 - steps: - - name: Setup node v20.x - uses: actions/setup-node@v4 - with: - node-version: 20.x - - - name: Checkout - uses: actions/checkout@v4 - with: - persist-credentials: false - - - name: Construct cache keys - run: | - echo node_modules_key='["${{ runner.os }}", "node_modules", "20.x", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; - - - name: Cache node_modules - uses: actions/cache@v4 - with: - key: ${{ join(fromJSON(env.node_modules_key), '-') }} - path: node_modules - - - name: Check if source or test files changed - id: files_changed - uses: tj-actions/changed-files@v44 - with: - files: | - src/**/* - spec/**/* - - - name: Lint files - if: ${{ steps.files_changed.outputs.any_modified == 'true' }} - run: | - yarn --ignore-engines --non-interactive - yarn lint:ci + uses: ./.github/workflows/lint.yml build-and-test-pull-request: - needs: - - lint-pull-request - name: Test ${{ matrix.node }} ${{ matrix.target }} ${{ matrix.module }} - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - node: [16.x, 18.x, 20.x] - target: [es5, es2015, esnext] - module: [cjs, esm, umd] - include: - - {node: 16.x, target: ix} - - {node: 18.x, target: ix} - - {node: 20.x, target: ix} - - {node: 20.x, target: src, args: --coverage} - steps: - - name: Setup node v${{ matrix.node }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node }} - - - name: Checkout - uses: actions/checkout@v4 - with: - persist-credentials: false - - - name: Construct cache keys - run: | - echo node_modules_key='["${{ runner.os }}", "node_modules", "${{ matrix.node }}", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; - echo targets_key='["${{ runner.os }}", "targets", "${{ matrix.node }}", "${{ matrix.target }}", "${{ matrix.module }}", "${{ hashFiles('package.json', 'yarn.lock', 'tsconfig.json', 'src/**/*', 'tsconfigs/**/*') }}"]' >> $GITHUB_ENV; - - - name: Cache targets - uses: actions/cache@v4 - with: - key: ${{ join(fromJSON(env.targets_key), '-') }} - path: targets - - - name: Cache node_modules - uses: actions/cache@v4 - with: - key: ${{ join(fromJSON(env.node_modules_key), '-') }} - path: node_modules - - - name: Check if test files changed - id: test_files_changed - uses: tj-actions/changed-files@v44 - with: - files: | - spec/**/* - tsconfig.json - tsconfigs/**/* - jest.config.js - jestconfigs/**/* - - - name: Check if source files changed - id: source_files_changed - uses: tj-actions/changed-files@v44 - with: - files: | - .npmrc - yarn.lock - package.json - tsconfig.json - src/**/* - gulp/**/* - tsconfigs/**/* - integration/**/* - - - name: Install dependencies - if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} - run: | - yarn --ignore-engines --non-interactive - - - name: Build package - if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} - env: - t: "${{ matrix.target }}" - m: "${{ matrix.module }}" - run: | - yarn build ${t:+-t ${t}} ${m:+-m ${m}} - - - name: Test package - if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} - env: - t: "${{ matrix.target }}" - m: "${{ matrix.module }}" - run: | - yarn test ${t:+-t ${t}} ${m:+-m ${m}} ${{ matrix.args }} - - - name: Test importing - if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} - env: - t: "${{ matrix.target }}" - m: "${{ matrix.module }}" - run: | - targetdir="./targets${t:+/${t}}${m:+/${m}}"; - pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; - pkg_type="$(jq -r '.type' "${targetdir}/package.json")"; - # Install the package into a temp dir - _tmp="$(mktemp -d)"; - mkdir -p "$(dirname "${_tmp}/node_modules/${pkg_name}")"; - cp -ar "${targetdir}" "${_tmp}/node_modules/${pkg_name}"; - cd "${_tmp}/node_modules/${pkg_name}"; - npm i; - cd "${_tmp}/"; - set -x; - if test "${pkg_type}" = "module"; then - # Test importing as ESModule - node --input-type=module -e "import '${pkg_name}'"; - else - # Test importing as CommonJS - node --input-type=commonjs -e "require('${pkg_name}')"; - # Test importing CommonJS module but allow it to fail - node --input-type=module -e "import '${pkg_name}'" || true; - fi - set +x; - cd /; - rm -rf "${_tmp}"; + name: Test + needs: lint-pull-request + uses: ./.github/workflows/test.yml test-tree-shaking-pull-request: - needs: - - build-and-test-pull-request - name: Bundle ${{ matrix.bundler }} ${{ matrix.target }} ${{ matrix.module }} - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - bundler: [esbuild, rollup, webpack] - target: [es5, es2015, esnext] - module: [cjs, esm, umd] - include: - - {bundler: esbuild, target: ix} - - {bundler: rollup, target: ix} - - {bundler: webpack, target: ix} - steps: - - name: Setup node v20.x - uses: actions/setup-node@v4 - with: - node-version: 20.x - - name: Checkout - uses: actions/checkout@v4 - with: - persist-credentials: false - - - name: Construct cache keys - run: | - echo node_modules_key='["${{ runner.os }}", "node_modules", "20.x", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; - echo targets_key='["${{ runner.os }}", "targets", "20.x", "${{ matrix.target }}", "${{ matrix.module }}", "${{ hashFiles('package.json', 'yarn.lock', 'tsconfig.json', 'src/**/*', 'tsconfigs/**/*') }}"]' >> $GITHUB_ENV; - - - name: Cache targets - uses: actions/cache@v4 - with: - key: ${{ join(fromJSON(env.targets_key), '-') }} - path: targets - - - name: Cache node_modules - uses: actions/cache@v4 - with: - key: ${{ join(fromJSON(env.node_modules_key), '-') }} - path: node_modules - - - name: Test ${{ matrix.bundler }} tree-shaking - env: - t: "${{ matrix.target }}" - m: "${{ matrix.module }}" - run: | - integration/make-files-to-bundle.sh - if test "${t}" != ix; then - yarn build ${t:+-t ${t}} ${m:+-m ${m}} - fi - yarn gulp bundle${t:+:${t}}${m:+:${m}}:${{ matrix.bundler }} + needs: build-and-test-pull-request + name: Bundle + uses: ./.github/workflows/bundle.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..1fbb52d8 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,123 @@ +name: Test + +on: + workflow_call: + +jobs: + build-and-test-pull-request: + name: ${{ matrix.node }} ${{ matrix.target }} ${{ matrix.module }} + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + node: [16.x, 18.x, 20.x] + target: [es5, es2015, esnext] + module: [cjs, esm, umd] + include: + - {node: 16.x, target: ix} + - {node: 18.x, target: ix} + - {node: 20.x, target: ix} + - {node: 20.x, target: src, args: --coverage} + steps: + - name: Setup node v${{ matrix.node }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Construct cache keys + run: | + echo node_modules_key='["${{ runner.os }}", "node_modules", "${{ matrix.node }}", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; + echo targets_key='["${{ runner.os }}", "targets", "${{ matrix.node }}", "${{ matrix.target }}", "${{ matrix.module }}", "${{ hashFiles('package.json', 'yarn.lock', 'tsconfig.json', 'src/**/*', 'tsconfigs/**/*') }}"]' >> $GITHUB_ENV; + + - name: Cache targets + uses: actions/cache@v4 + with: + key: ${{ join(fromJSON(env.targets_key), '-') }} + path: targets + + - name: Cache node_modules + uses: actions/cache@v4 + with: + key: ${{ join(fromJSON(env.node_modules_key), '-') }} + path: node_modules + + - name: Check if test files changed + id: test_files_changed + uses: tj-actions/changed-files@v44 + with: + files: | + spec/**/* + tsconfig.json + tsconfigs/**/* + jest.config.js + jestconfigs/**/* + + - name: Check if source files changed + id: source_files_changed + uses: tj-actions/changed-files@v44 + with: + files: | + .npmrc + yarn.lock + package.json + tsconfig.json + src/**/* + gulp/**/* + tsconfigs/**/* + integration/**/* + + - name: Install dependencies + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} + run: | + yarn --ignore-engines --non-interactive + + - name: Build package + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} + env: + t: "${{ matrix.target }}" + m: "${{ matrix.module }}" + run: | + yarn build ${t:+-t ${t}} ${m:+-m ${m}} + + - name: Test package + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' || steps.test_files_changed.outputs.any_modified == 'true' }} + env: + t: "${{ matrix.target }}" + m: "${{ matrix.module }}" + run: | + yarn test ${t:+-t ${t}} ${m:+-m ${m}} ${{ matrix.args }} + + - name: Test importing + if: ${{ steps.source_files_changed.outputs.any_modified == 'true' && matrix.target != 'src' }} + env: + t: "${{ matrix.target }}" + m: "${{ matrix.module }}" + run: | + targetdir="./targets${t:+/${t}}${m:+/${m}}"; + pkg_name="$(jq -r '.name' "${targetdir}/package.json")"; + pkg_type="$(jq -r '.type' "${targetdir}/package.json")"; + # Install the package into a temp dir + _tmp="$(mktemp -d)"; + mkdir -p "$(dirname "${_tmp}/node_modules/${pkg_name}")"; + cp -ar "${targetdir}" "${_tmp}/node_modules/${pkg_name}"; + cd "${_tmp}/node_modules/${pkg_name}"; + npm i; + cd "${_tmp}/"; + set -x; + if test "${pkg_type}" = "module"; then + # Test importing as ESModule + node --input-type=module -e "import '${pkg_name}'"; + else + # Test importing as CommonJS + node --input-type=commonjs -e "require('${pkg_name}')"; + # Test importing CommonJS module but allow it to fail + node --input-type=module -e "import '${pkg_name}'" || true; + fi + set +x; + cd /; + rm -rf "${_tmp}"; From de1707ea97d025833fa340b0b712e8164b37e73b Mon Sep 17 00:00:00 2001 From: ptaylor Date: Mon, 20 May 2024 20:29:43 -0700 Subject: [PATCH 44/44] change PR workflow name, fix bundle cache key + script --- .github/workflows/bundle.yml | 2 +- .github/workflows/main.pr.yml | 2 +- integration/make-files-to-bundle.sh | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/bundle.yml b/.github/workflows/bundle.yml index d4785929..8172982c 100644 --- a/.github/workflows/bundle.yml +++ b/.github/workflows/bundle.yml @@ -30,7 +30,7 @@ jobs: - name: Construct cache keys run: | echo node_modules_key='["${{ runner.os }}", "node_modules", "20.x", "${{ hashFiles('package.json', 'yarn.lock') }}"]' >> $GITHUB_ENV; - echo targets_key='["${{ runner.os }}", "targets", "20.x", "${{ matrix.target }}", "${{ matrix.module }}", "${{ hashFiles('package.json', 'yarn.lock', 'tsconfig.json', 'src/**/*', 'tsconfigs/**/*') }}"]' >> $GITHUB_ENV; + echo targets_key='["${{ runner.os }}", "targets", "20.x", "ix", "", "${{ hashFiles('package.json', 'yarn.lock', 'tsconfig.json', 'src/**/*', 'tsconfigs/**/*') }}"]' >> $GITHUB_ENV; - name: Cache targets uses: actions/cache@v4 diff --git a/.github/workflows/main.pr.yml b/.github/workflows/main.pr.yml index 0a0f3ea4..4a498202 100644 --- a/.github/workflows/main.pr.yml +++ b/.github/workflows/main.pr.yml @@ -1,4 +1,4 @@ -name: Build pull request +name: PR concurrency: group: pr-on-${{ github.event_name }}-from-${{ github.ref_name }} diff --git a/integration/make-files-to-bundle.sh b/integration/make-files-to-bundle.sh index 9fc3f0cd..818d996f 100755 --- a/integration/make-files-to-bundle.sh +++ b/integration/make-files-to-bundle.sh @@ -6,9 +6,7 @@ cd "$( cd "$( dirname "$(realpath -m "${BASH_SOURCE[0]}")" )" && pwd )/.."; for typ in iterable iterable.operators asynciterable asynciterable.operators; do mkdir -p "integration/src/${typ//./\/}"; - declare -a ary="($( - node -p "Object.keys(require('./targets/ix/Ix.${typ}')).filter(k => k.charAt(0) === k.charAt(0).toLowerCase()).join('\n')" - ))" + mapfile -t ary < <(node -p "Object.keys(require('./targets/ix/Ix.${typ}')).filter(k => k.charAt(0) === k.charAt(0).toLowerCase()).join('\n')"); for fun in "${ary[@]}"; do cat << EOF > "integration/src/${typ//./\/}/${fun}.js" import { ${fun} } from 'ix/Ix.${typ}';