├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── build-packages.yaml │ ├── codeql-analysis.yml │ ├── documentation.yaml │ ├── publish-canary-release.yaml │ ├── publish-graduate-release.yaml │ └── publish-release.yaml ├── .gitignore ├── .husky ├── .gitignore └── pre-commit ├── .npmrc ├── .prettierrc.cjs ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SUPPORT.md ├── assets ├── rimbu_logo.svg └── trees.jpeg ├── codecov.yml ├── config ├── .prettierrc.cjs ├── api-extractor.json ├── api-extractor.ts ├── bunnify.mjs ├── codeql-config.yml ├── denoify-rimbu-replacer.js ├── eslint.config.mjs ├── mod_root_ts_template ├── prepare-denoify.mjs ├── tsconfig.base.json ├── tsconfig.cjs.base.json ├── tsconfig.common.json ├── tsconfig.esm.base.json ├── tsconfig.extractor.base.json └── vitest.config.common.ts ├── deno_dist ├── LICENSE ├── README.md ├── actor │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── immer │ │ ├── index.ts │ │ └── slice-immer.ts │ ├── main │ │ ├── action-base.ts │ │ ├── action.ts │ │ ├── actor.ts │ │ ├── generate-uuid.ts │ │ ├── index.ts │ │ ├── internal.ts │ │ ├── lookup.ts │ │ ├── slice-config.ts │ │ ├── slice.ts │ │ └── utils.ts │ ├── mod.ts │ └── patch │ │ ├── index.ts │ │ └── slice-patch.ts ├── base │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── arr.ts │ ├── entry.ts │ ├── index.ts │ ├── internal.ts │ ├── mod.ts │ ├── plain-object.ts │ ├── rimbu-error.ts │ └── token.ts ├── bimap │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── custom │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ └── immutable.ts │ │ ├── index.ts │ │ └── interface.ts │ ├── main │ │ ├── index.ts │ │ └── interface.ts │ └── mod.ts ├── bimultimap │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── custom │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ └── immutable.ts │ │ ├── index.ts │ │ └── interface │ │ │ ├── base.ts │ │ │ ├── generic.ts │ │ │ ├── hashed.ts │ │ │ └── sorted.ts │ ├── main │ │ ├── index.ts │ │ └── interface │ │ │ ├── generic │ │ │ └── index.ts │ │ │ ├── hashed │ │ │ └── index.ts │ │ │ └── sorted │ │ │ └── index.ts │ └── mod.ts ├── channel │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── custom │ │ ├── channel │ │ │ ├── channel-error.ts │ │ │ ├── channel-impl.ts │ │ │ └── channel.ts │ │ ├── cross-channel │ │ │ └── cross-channel.ts │ │ ├── index.ts │ │ ├── remote-channel-client │ │ │ ├── remote-channel-client-impl.ts │ │ │ └── remote-channel-client.ts │ │ ├── remote-channel-server │ │ │ ├── remote-channel-server-impl.ts │ │ │ └── remote-channel-server.ts │ │ ├── remote-channel │ │ │ ├── remote-channel-impl.ts │ │ │ └── remote-channel.ts │ │ ├── remote-object │ │ │ ├── remote-object-error.ts │ │ │ ├── remote-object-impl.ts │ │ │ └── remote-object.ts │ │ ├── rpc-proxy │ │ │ ├── rpc-proxy-error.ts │ │ │ ├── rpc-proxy-impl.ts │ │ │ └── rpc-proxy.ts │ │ ├── sync │ │ │ ├── mutex.ts │ │ │ ├── semaphore-error.ts │ │ │ ├── semaphore-impl.ts │ │ │ ├── semaphore.ts │ │ │ ├── wait-group-impl.ts │ │ │ └── wait-group.ts │ │ └── utils │ │ │ └── utils.ts │ ├── main │ │ └── index.ts │ └── mod.ts ├── collection-types │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── common │ │ ├── base.ts │ │ ├── index.ts │ │ └── types.ts │ ├── main │ │ └── index.ts │ ├── map-custom │ │ ├── index.ts │ │ └── interface │ │ │ └── index.ts │ ├── map │ │ ├── index.ts │ │ └── interface │ │ │ ├── generic.ts │ │ │ └── variant.ts │ ├── mod.ts │ ├── set-custom │ │ ├── index.ts │ │ └── interface │ │ │ └── base.ts │ └── set │ │ ├── index.ts │ │ └── interface │ │ ├── generic.ts │ │ └── variant.ts ├── common │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── async-optlazy.ts │ ├── collect.ts │ ├── comp.ts │ ├── eq.ts │ ├── err.ts │ ├── index-range.ts │ ├── index.ts │ ├── internal.ts │ ├── mod.ts │ ├── optlazy.ts │ ├── range.ts │ ├── traverse-state.ts │ ├── types.ts │ └── update.ts ├── core │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── main │ │ ├── exports.ts │ │ └── index.ts │ ├── menu │ │ ├── bimultimap.ts │ │ ├── graph │ │ │ ├── index.ts │ │ │ ├── non-valued │ │ │ │ ├── arrow.ts │ │ │ │ ├── edge.ts │ │ │ │ └── index.ts │ │ │ └── valued │ │ │ │ ├── arrow.ts │ │ │ │ ├── edge.ts │ │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── map │ │ │ ├── index.ts │ │ │ └── ordered.ts │ │ ├── menu.ts │ │ ├── multimap │ │ │ ├── hash-key.ts │ │ │ ├── index.ts │ │ │ └── sorted-key.ts │ │ ├── multiset.ts │ │ ├── set │ │ │ ├── index.ts │ │ │ └── ordered.ts │ │ └── table │ │ │ ├── hash-row.ts │ │ │ ├── index.ts │ │ │ └── sorted-row.ts │ └── mod.ts ├── deep │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── deep.ts │ ├── index.ts │ ├── internal.ts │ ├── match.ts │ ├── mod.ts │ ├── patch.ts │ ├── path.ts │ ├── protected.ts │ ├── selector.ts │ └── tuple.ts ├── graph │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── custom │ │ ├── common │ │ │ ├── implementation │ │ │ │ └── base.ts │ │ │ ├── index.ts │ │ │ ├── interface │ │ │ │ ├── graph-base.ts │ │ │ │ └── variant-graph-base.ts │ │ │ ├── link.ts │ │ │ └── valued-link.ts │ │ ├── index.ts │ │ ├── non-valued │ │ │ ├── implementation │ │ │ │ ├── builder.ts │ │ │ │ ├── context.ts │ │ │ │ ├── empty.ts │ │ │ │ └── non-empty.ts │ │ │ └── interface │ │ │ │ ├── arrow-graph-base.ts │ │ │ │ ├── arrow-graph-creators.ts │ │ │ │ ├── edge-graph-base.ts │ │ │ │ └── edge-graph-creators.ts │ │ └── valued │ │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ ├── empty.ts │ │ │ └── non-empty.ts │ │ │ └── interface │ │ │ ├── arrow │ │ │ ├── arrow-valued-graph-base.ts │ │ │ └── arrow-valued-graph-creators.ts │ │ │ ├── edge │ │ │ ├── edge-valued-graph-base.ts │ │ │ └── edge-valued-graph-creators.ts │ │ │ └── generic │ │ │ ├── valued-graph-base.ts │ │ │ └── variant-valued-graph-base.ts │ ├── main │ │ ├── common │ │ │ └── interface │ │ │ │ ├── graph.ts │ │ │ │ └── variant-graph.ts │ │ ├── index.ts │ │ ├── non-valued │ │ │ └── interface │ │ │ │ ├── arrow │ │ │ │ ├── arrow-graph-hashed.ts │ │ │ │ ├── arrow-graph-sorted.ts │ │ │ │ └── arrow-graph.ts │ │ │ │ └── edge │ │ │ │ ├── edge-graph-hashed.ts │ │ │ │ ├── edge-graph-sorted.ts │ │ │ │ └── edge-graph.ts │ │ ├── traverse │ │ │ ├── index.ts │ │ │ ├── traverse-base.ts │ │ │ ├── traverse-breadth-first.ts │ │ │ └── traverse-depth-first.ts │ │ └── valued │ │ │ └── interface │ │ │ ├── arrow │ │ │ ├── arrow-valued-graph-hashed.ts │ │ │ ├── arrow-valued-graph-sorted.ts │ │ │ └── arrow-valued-graph.ts │ │ │ ├── edge │ │ │ ├── edge-valued-graph-hashed.ts │ │ │ ├── edge-valued-graph-sorted.ts │ │ │ └── edge-valued-graph.ts │ │ │ └── generic │ │ │ ├── valued-graph.ts │ │ │ └── variant-valued-graph.ts │ └── mod.ts ├── hashed │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── common │ │ ├── hashed-custom.ts │ │ ├── hasher.ts │ │ └── index.ts │ ├── main │ │ └── index.ts │ ├── map-custom │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ └── immutable.ts │ │ ├── index.ts │ │ └── interface.ts │ ├── map │ │ ├── index.ts │ │ └── interface │ │ │ └── index.ts │ ├── mod.ts │ ├── set-custom │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ └── immutable.ts │ │ ├── index.ts │ │ └── interface.ts │ └── set │ │ ├── index.ts │ │ └── interface │ │ └── index.ts ├── list │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── custom │ │ ├── builder │ │ │ ├── block-builder.ts │ │ │ ├── builder-base.ts │ │ │ ├── gen-builder.ts │ │ │ ├── leaf │ │ │ │ ├── block-builder.ts │ │ │ │ ├── leaf-builder.ts │ │ │ │ └── tree-builder.ts │ │ │ ├── nonleaf │ │ │ │ ├── block-builder.ts │ │ │ │ ├── nonleaf-builder.ts │ │ │ │ └── tree-builder.ts │ │ │ └── tree │ │ │ │ └── tree-builder.ts │ │ ├── context.ts │ │ ├── implementation │ │ │ ├── block.ts │ │ │ ├── cache-map.ts │ │ │ ├── empty.ts │ │ │ ├── leaf │ │ │ │ ├── leaf-block.ts │ │ │ │ ├── leaf-tree.ts │ │ │ │ └── non-empty.ts │ │ │ ├── nonleaf │ │ │ │ ├── interface.ts │ │ │ │ ├── nonleaf-block.ts │ │ │ │ └── nonleaf-tree.ts │ │ │ └── tree │ │ │ │ ├── interface.ts │ │ │ │ └── operations.ts │ │ ├── index.ts │ │ └── interface.ts │ ├── main │ │ ├── index.ts │ │ └── interface.ts │ └── mod.ts ├── mod.ts ├── multimap │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── custom │ │ ├── implementation │ │ │ └── base.ts │ │ ├── index.ts │ │ └── interface │ │ │ ├── base.ts │ │ │ └── creators.ts │ ├── main │ │ ├── index.ts │ │ └── interface │ │ │ ├── generic │ │ │ ├── generic.ts │ │ │ └── variant.ts │ │ │ ├── hash-key │ │ │ ├── hash-value │ │ │ │ └── interface.ts │ │ │ └── sorted-value │ │ │ │ └── interface.ts │ │ │ └── sorted-key │ │ │ ├── hash-value │ │ │ └── interface.ts │ │ │ └── sorted-value │ │ │ └── interface.ts │ └── mod.ts ├── multiset │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── custom │ │ ├── implementation │ │ │ └── base.ts │ │ ├── index.ts │ │ └── interface │ │ │ ├── base.ts │ │ │ └── creators.ts │ ├── main │ │ ├── index.ts │ │ └── interface │ │ │ ├── generic │ │ │ ├── generic.ts │ │ │ └── variant.ts │ │ │ ├── hashed │ │ │ └── interface.ts │ │ │ └── sorted │ │ │ └── interface.ts │ └── mod.ts ├── ordered │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── main │ │ └── index.ts │ ├── map-custom │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ ├── empty.ts │ │ │ └── non-empty.ts │ │ ├── index.ts │ │ └── interface │ │ │ ├── base.ts │ │ │ └── creators.ts │ ├── map │ │ ├── index.ts │ │ └── interface │ │ │ ├── ordered-hash-map.ts │ │ │ ├── ordered-map.ts │ │ │ └── ordered-sorted-map.ts │ ├── mod.ts │ ├── set-custom │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ ├── empty.ts │ │ │ └── non-empty.ts │ │ ├── index.ts │ │ └── interface │ │ │ ├── base.ts │ │ │ └── creators.ts │ └── set │ │ ├── index.ts │ │ └── interface │ │ ├── ordered-hash-set.ts │ │ ├── ordered-set.ts │ │ └── ordered-sorted-set.ts ├── proximity │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── common │ │ ├── distanceFunction.ts │ │ ├── index.ts │ │ └── keyMatching.ts │ ├── main │ │ └── index.ts │ ├── map-custom │ │ ├── builder.ts │ │ ├── context.ts │ │ ├── implementation │ │ │ ├── Empty.ts │ │ │ ├── NonEmpty.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ └── wrapping.ts │ ├── map │ │ └── index.ts │ └── mod.ts ├── reactor │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.ts │ ├── internal.ts │ ├── mod.ts │ ├── reactor.ts │ ├── register-selector.ts │ ├── types.ts │ ├── unregister-selector.ts │ ├── update-selector-value.ts │ └── use-force-rerender.ts ├── sorted │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── common │ │ ├── base.ts │ │ ├── index.ts │ │ └── sorted-index.ts │ ├── main │ │ └── index.ts │ ├── map-custom │ │ ├── creators.ts │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ └── immutable.ts │ │ └── index.ts │ ├── map │ │ ├── index.ts │ │ └── interface │ │ │ └── index.ts │ ├── mod.ts │ ├── set-custom │ │ ├── creators.ts │ │ ├── implementation │ │ │ ├── builder.ts │ │ │ ├── context.ts │ │ │ └── immutable.ts │ │ └── index.ts │ └── set │ │ ├── index.ts │ │ └── interface │ │ └── index.ts ├── spy │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.ts │ ├── mod.ts │ └── spy.ts ├── stream │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── async-custom │ │ ├── async-fast-iterator-base.ts │ │ ├── async-stream-custom.ts │ │ ├── constructors.ts │ │ ├── index.ts │ │ └── utils.ts │ ├── async │ │ ├── async-fast-iterable.ts │ │ ├── async-fast-iterator.ts │ │ ├── async-reducer.ts │ │ ├── async-stream-source.ts │ │ ├── async-stream.ts │ │ ├── async-streamable.ts │ │ ├── async-transformer.ts │ │ └── index.ts │ ├── custom │ │ ├── constructors.ts │ │ ├── fast-iterator-custom.ts │ │ ├── index.ts │ │ └── stream-custom.ts │ ├── main │ │ ├── fast-iterable.ts │ │ ├── fast-iterator.ts │ │ ├── index.ts │ │ ├── reducer.ts │ │ ├── stream-source.ts │ │ ├── stream.ts │ │ ├── streamable.ts │ │ └── transformer.ts │ └── mod.ts ├── table │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── custom │ │ ├── implementation │ │ │ └── base.ts │ │ ├── index.ts │ │ └── interface │ │ │ ├── base.ts │ │ │ └── creators.ts │ ├── hash-row │ │ ├── hash-column │ │ │ └── interface.ts │ │ ├── index.ts │ │ └── sorted-column │ │ │ └── interface.ts │ ├── main │ │ ├── index.ts │ │ └── interface │ │ │ ├── generic.ts │ │ │ └── variant.ts │ ├── mod.ts │ └── sorted-row │ │ ├── hash-column │ │ └── interface.ts │ │ ├── index.ts │ │ └── sorted-column │ │ └── interface.ts └── typical │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.ts │ ├── mod.ts │ ├── num.ts │ ├── str.ts │ ├── strnum.ts │ └── utils.ts ├── doc-gen ├── .gitignore ├── LICENSE ├── README.md ├── import_map.json └── src │ ├── clean-output-dir.ts │ ├── doc-model.ts │ ├── generate │ ├── class │ │ └── index.ts │ ├── common │ │ ├── function.ts │ │ ├── method.ts │ │ ├── namespace-contents.ts │ │ ├── property.ts │ │ └── type-parameters.ts │ ├── interface │ │ └── index.ts │ ├── namespace │ │ └── index.ts │ ├── package │ │ └── index.ts │ ├── typealias │ │ └── index.ts │ └── variable │ │ └── index.ts │ ├── json-model │ ├── api.ts │ ├── base.ts │ ├── doc-comment.ts │ ├── elements.ts │ └── index.ts │ ├── load-model.ts │ ├── load-package.ts │ ├── main.ts │ ├── parse-args.ts │ ├── process │ ├── class │ │ └── index.ts │ ├── common │ │ ├── class-or-interface-member.ts │ │ ├── namespace-like.ts │ │ ├── parse-doc-comment.ts │ │ └── variable.ts │ ├── interface │ │ └── index.ts │ ├── loaded-package.ts │ └── package │ │ └── index.ts │ ├── utils.ts │ ├── version.ts │ └── write-output.ts ├── docs ├── .gitignore ├── README.md ├── api │ └── index.mdx ├── babel.config.js ├── blog │ ├── 2021-09-01-introducing-myself.md │ ├── 2021-09-02-how-it-got-started.md │ └── 2021-09-03-introducing-rimbu.md ├── docs │ ├── advanced │ │ ├── _category_.json │ │ ├── advanced-concepts.mdx │ │ └── list-advanced.mdx │ ├── basic-concepts.mdx │ ├── collections │ │ ├── _category_.json │ │ ├── bimap.mdx │ │ ├── bimultimap.mdx │ │ ├── bimultimap.ts │ │ ├── collections.mdx │ │ ├── graph │ │ │ ├── _category_.json │ │ │ ├── arrow-graph.mdx │ │ │ ├── arrow-valued-graph.mdx │ │ │ ├── edge-graph.mdx │ │ │ ├── edge-valued-graph.mdx │ │ │ ├── graph.mdx │ │ │ └── graph.ts │ │ ├── list.mdx │ │ ├── map.mdx │ │ ├── map.ts │ │ ├── multimap.mdx │ │ ├── multimap.ts │ │ ├── multiset.mdx │ │ ├── multiset.ts │ │ ├── set.mdx │ │ ├── set.ts │ │ ├── stream.mdx │ │ ├── table.mdx │ │ └── table.ts │ ├── deep │ │ ├── _category_.json │ │ ├── immutable │ │ │ ├── _category_.json │ │ │ └── index.mdx │ │ ├── match.mdx │ │ ├── overview.mdx │ │ ├── patch.mdx │ │ ├── path.mdx │ │ ├── protected.mdx │ │ └── tuple.mdx │ ├── getting-started.mdx │ └── index.mdx ├── docusaurus.config.js ├── package.json ├── sidebars.js ├── src │ ├── components │ │ ├── HomepageFeatures.js │ │ └── HomepageFeatures.module.css │ ├── css │ │ └── custom.css │ └── pages │ │ ├── index.js │ │ └── index.module.css ├── static │ ├── .nojekyll │ ├── CNAME │ ├── img │ │ ├── docusaurus.png │ │ ├── favicon.ico │ │ ├── logo.svg │ │ ├── rimbu_logo.svg │ │ ├── tutorial │ │ │ ├── docsVersionDropdown.png │ │ │ └── localeDropdown.png │ │ ├── undraw_building_blocks.svg │ │ ├── undraw_collor.txt │ │ ├── undraw_docusaurus_mountain.svg │ │ ├── undraw_docusaurus_react.svg │ │ ├── undraw_docusaurus_tree.svg │ │ ├── undraw_outer_space.svg │ │ └── undraw_powerful.svg │ └── js │ │ ├── graphs.tsx │ │ └── sandbox.tsx └── yarn.lock ├── lerna.json ├── package.json ├── packages ├── actor │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── eslint.config.mjs │ ├── immer │ │ └── package.json │ ├── package.json │ ├── patch │ │ └── package.json │ ├── src │ │ ├── immer │ │ │ ├── index.mts │ │ │ └── slice-immer.mts │ │ ├── main │ │ │ ├── action-base.mts │ │ │ ├── action.mts │ │ │ ├── actor.mts │ │ │ ├── generate-uuid.mts │ │ │ ├── index.mts │ │ │ ├── internal.mts │ │ │ ├── lookup.mts │ │ │ ├── slice-config.mts │ │ │ ├── slice.mts │ │ │ └── utils.mts │ │ └── patch │ │ │ ├── index.mts │ │ │ └── slice-patch.mts │ ├── test │ │ ├── action.test.mts │ │ ├── actor.test.mts │ │ ├── generate-uuid.test.mts │ │ ├── lookup.test.mts │ │ ├── slice-classic.test.mts │ │ ├── slice-immer.test.mts │ │ └── slice-patch.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.json │ └── vitest.config.ts ├── base │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── arr.mts │ │ ├── entry.mts │ │ ├── index.mts │ │ ├── internal.mts │ │ ├── plain-object.mts │ │ ├── rimbu-error.mts │ │ └── token.mts │ ├── test-d │ │ └── plain-obj.test-d.mts │ ├── test │ │ ├── arr.test.mts │ │ ├── entry.test.mts │ │ ├── plain-object.test.mts │ │ └── rimbu-error.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.json │ └── vitest.config.ts ├── bimap │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.custom.json │ │ └── api-extractor.main.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── custom │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ └── immutable.mts │ │ │ ├── index.mts │ │ │ └── interface.mts │ │ └── main │ │ │ ├── index.mts │ │ │ └── interface.mts │ ├── test-d │ │ └── bimap.test-d.mts │ ├── test │ │ └── bimap.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── bimultimap │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.custom.json │ │ └── api-extractor.main.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── custom │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ └── immutable.mts │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── base.mts │ │ │ │ ├── generic.mts │ │ │ │ ├── hashed.mts │ │ │ │ └── sorted.mts │ │ └── main │ │ │ ├── index.mts │ │ │ └── interface │ │ │ ├── generic │ │ │ └── index.mts │ │ │ ├── hashed │ │ │ └── index.mts │ │ │ └── sorted │ │ │ └── index.mts │ ├── test │ │ └── bimultimap.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── channel │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ └── api-extractor.main.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── custom │ │ │ ├── channel │ │ │ │ ├── channel-error.mts │ │ │ │ ├── channel-impl.mts │ │ │ │ └── channel.mts │ │ │ ├── cross-channel │ │ │ │ └── cross-channel.mts │ │ │ ├── index.mts │ │ │ ├── remote-channel-client │ │ │ │ ├── remote-channel-client-impl.mts │ │ │ │ └── remote-channel-client.mts │ │ │ ├── remote-channel-server │ │ │ │ ├── remote-channel-server-impl.mts │ │ │ │ └── remote-channel-server.mts │ │ │ ├── remote-channel │ │ │ │ ├── remote-channel-impl.mts │ │ │ │ └── remote-channel.mts │ │ │ ├── remote-object │ │ │ │ ├── remote-object-error.mts │ │ │ │ ├── remote-object-impl.mts │ │ │ │ └── remote-object.mts │ │ │ ├── rpc-proxy │ │ │ │ ├── rpc-proxy-error.mts │ │ │ │ ├── rpc-proxy-impl.mts │ │ │ │ └── rpc-proxy.mts │ │ │ ├── sync │ │ │ │ ├── mutex.mts │ │ │ │ ├── semaphore-error.mts │ │ │ │ ├── semaphore-impl.mts │ │ │ │ ├── semaphore.mts │ │ │ │ ├── wait-group-impl.mts │ │ │ │ └── wait-group.mts │ │ │ └── utils │ │ │ │ └── utils.mts │ │ └── main │ │ │ └── index.mts │ ├── test-d │ │ └── channel.test-d.mts │ ├── test │ │ ├── channel.test.mts │ │ ├── cross-channel.test.mts │ │ ├── examples.test.mts │ │ ├── remote-channel-server.test.mts │ │ ├── remote-channel.test.mts │ │ ├── remote-object.test.mts │ │ ├── rpc-proxy.test.mts │ │ ├── semaphore.test.mts │ │ ├── test-utils.mts │ │ ├── utils.test.mts │ │ └── wait-group.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── collection-types │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.main.json │ │ ├── api-extractor.map-custom.json │ │ ├── api-extractor.map.json │ │ ├── api-extractor.set-custom.json │ │ └── api-extractor.set.json │ ├── eslint.config.mjs │ ├── map-custom │ │ └── package.json │ ├── map │ │ └── package.json │ ├── package.json │ ├── set-custom │ │ └── package.json │ ├── set │ │ └── package.json │ ├── src │ │ ├── common │ │ │ ├── base.mts │ │ │ ├── index.mts │ │ │ └── types.mts │ │ ├── main │ │ │ └── index.mts │ │ ├── map-custom │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ └── index.mts │ │ ├── map │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── generic.mts │ │ │ │ └── variant.mts │ │ ├── set-custom │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ └── base.mts │ │ └── set │ │ │ ├── index.mts │ │ │ └── interface │ │ │ ├── generic.mts │ │ │ └── variant.mts │ ├── test-d │ │ ├── map.test-d.mts │ │ └── set.test-d.mts │ ├── test-utils │ │ ├── map │ │ │ ├── map-random.mts │ │ │ └── map-standard.mts │ │ └── set │ │ │ ├── set-random.mts │ │ │ └── set-standard.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ └── tsconfig.json ├── common │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ └── api-extractor.main.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── async-optlazy.mts │ │ ├── collect.mts │ │ ├── comp.mts │ │ ├── eq.mts │ │ ├── err.mts │ │ ├── index-range.mts │ │ ├── index.mts │ │ ├── internal.mts │ │ ├── optlazy.mts │ │ ├── range.mts │ │ ├── traverse-state.mts │ │ ├── types.mts │ │ └── update.mts │ ├── test-d │ │ └── async-to-sync.mts │ ├── test │ │ ├── async-optlazy.test.mts │ │ ├── comp.test.mts │ │ ├── eq.test.mts │ │ ├── err.test.mts │ │ ├── index-range.test.mts │ │ ├── optlazy.test.mts │ │ ├── range.test.mts │ │ ├── traverse-state.test.mts │ │ └── update.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── core │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ └── api-extractor.main.json │ ├── eslint.config.mjs │ ├── menu │ │ └── package.json │ ├── package.json │ ├── src │ │ ├── main │ │ │ ├── exports.mts │ │ │ └── index.mts │ │ └── menu │ │ │ ├── bimultimap.mts │ │ │ ├── graph │ │ │ ├── index.mts │ │ │ ├── non-valued │ │ │ │ ├── arrow.mts │ │ │ │ ├── edge.mts │ │ │ │ └── index.mts │ │ │ └── valued │ │ │ │ ├── arrow.mts │ │ │ │ ├── edge.mts │ │ │ │ └── index.mts │ │ │ ├── index.mts │ │ │ ├── map │ │ │ ├── index.mts │ │ │ └── ordered.mts │ │ │ ├── menu.mts │ │ │ ├── multimap │ │ │ ├── hash-key.mts │ │ │ ├── index.mts │ │ │ └── sorted-key.mts │ │ │ ├── multiset.mts │ │ │ ├── set │ │ │ ├── index.mts │ │ │ └── ordered.mts │ │ │ └── table │ │ │ ├── hash-row.mts │ │ │ ├── index.mts │ │ │ └── sorted-row.mts │ ├── test │ │ └── create.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── deep │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ └── api-extractor.main.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── deep.mts │ │ ├── index.mts │ │ ├── internal.mts │ │ ├── match.mts │ │ ├── patch.mts │ │ ├── path.mts │ │ ├── protected.mts │ │ ├── selector.mts │ │ └── tuple.mts │ ├── test-d │ │ ├── deep.test-d.mts │ │ ├── match.test-d.mts │ │ ├── patch.test-d.mts │ │ ├── path.test-d.mts │ │ ├── protected.test-d.mts │ │ ├── selector.test-d.mts │ │ └── tuple.test-d.mts │ ├── test │ │ ├── deep.test.mts │ │ ├── match.test.mts │ │ ├── patch.test.mts │ │ ├── path.test.mts │ │ ├── selector.test.mts │ │ └── tuple.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── graph │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.custom.json │ │ └── api-extractor.main.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── custom │ │ │ ├── common │ │ │ │ ├── implementation │ │ │ │ │ └── base.mts │ │ │ │ ├── index.mts │ │ │ │ ├── interface │ │ │ │ │ ├── graph-base.mts │ │ │ │ │ └── variant-graph-base.mts │ │ │ │ ├── link.mts │ │ │ │ └── valued-link.mts │ │ │ ├── index.mts │ │ │ ├── non-valued │ │ │ │ ├── implementation │ │ │ │ │ ├── builder.mts │ │ │ │ │ ├── context.mts │ │ │ │ │ ├── empty.mts │ │ │ │ │ └── non-empty.mts │ │ │ │ └── interface │ │ │ │ │ ├── arrow-graph-base.mts │ │ │ │ │ ├── arrow-graph-creators.mts │ │ │ │ │ ├── edge-graph-base.mts │ │ │ │ │ └── edge-graph-creators.mts │ │ │ └── valued │ │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ ├── empty.mts │ │ │ │ └── non-empty.mts │ │ │ │ └── interface │ │ │ │ ├── arrow │ │ │ │ ├── arrow-valued-graph-base.mts │ │ │ │ └── arrow-valued-graph-creators.mts │ │ │ │ ├── edge │ │ │ │ ├── edge-valued-graph-base.mts │ │ │ │ └── edge-valued-graph-creators.mts │ │ │ │ └── generic │ │ │ │ ├── valued-graph-base.mts │ │ │ │ └── variant-valued-graph-base.mts │ │ └── main │ │ │ ├── common │ │ │ └── interface │ │ │ │ ├── graph.mts │ │ │ │ └── variant-graph.mts │ │ │ ├── index.mts │ │ │ ├── non-valued │ │ │ └── interface │ │ │ │ ├── arrow │ │ │ │ ├── arrow-graph-hashed.mts │ │ │ │ ├── arrow-graph-sorted.mts │ │ │ │ └── arrow-graph.mts │ │ │ │ └── edge │ │ │ │ ├── edge-graph-hashed.mts │ │ │ │ ├── edge-graph-sorted.mts │ │ │ │ └── edge-graph.mts │ │ │ ├── traverse │ │ │ ├── index.mts │ │ │ ├── traverse-base.mts │ │ │ ├── traverse-breadth-first.mts │ │ │ └── traverse-depth-first.mts │ │ │ └── valued │ │ │ └── interface │ │ │ ├── arrow │ │ │ ├── arrow-valued-graph-hashed.mts │ │ │ ├── arrow-valued-graph-sorted.mts │ │ │ └── arrow-valued-graph.mts │ │ │ ├── edge │ │ │ ├── edge-valued-graph-hashed.mts │ │ │ ├── edge-valued-graph-sorted.mts │ │ │ └── edge-valued-graph.mts │ │ │ └── generic │ │ │ ├── valued-graph.mts │ │ │ └── variant-valued-graph.mts │ ├── test-d │ │ └── arrowgraph.test-d.mts │ ├── test │ │ ├── arrow-graph-test-standard.mts │ │ ├── arrow-graph.test.mts │ │ ├── arrow-valued-graph-test-standard.mts │ │ ├── arrow-valued-graph.test.mts │ │ ├── edge-graph-test-standard.mts │ │ ├── edge-graph.test.mts │ │ ├── edge-valued-graph-test-standard.mts │ │ ├── edge-valued-graph.test.mts │ │ ├── traverse-breadth-first.test.mts │ │ └── traverse-depth-first.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── hashed │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── common │ │ └── package.json │ ├── config │ │ ├── api-extractor.main.json │ │ ├── api-extractor.map-custom.json │ │ ├── api-extractor.map.json │ │ ├── api-extractor.set-custom.json │ │ └── api-extractor.set.json │ ├── eslint.config.mjs │ ├── map-custom │ │ └── package.json │ ├── map │ │ └── package.json │ ├── package.json │ ├── set-custom │ │ └── package.json │ ├── set │ │ └── package.json │ ├── src │ │ ├── common │ │ │ ├── hashed-custom.mts │ │ │ ├── hasher.mts │ │ │ └── index.mts │ │ ├── main │ │ │ └── index.mts │ │ ├── map-custom │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ └── immutable.mts │ │ │ ├── index.mts │ │ │ └── interface.mts │ │ ├── map │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ └── index.mts │ │ ├── set-custom │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ └── immutable.mts │ │ │ ├── index.mts │ │ │ └── interface.mts │ │ └── set │ │ │ ├── index.mts │ │ │ └── interface │ │ │ └── index.mts │ ├── test-d │ │ ├── map.test-d.mts │ │ └── set.test-d.mts │ ├── test-random │ │ ├── hashmap.test.mts │ │ └── hashset.test.mts │ ├── test │ │ ├── hasher.test.mts │ │ ├── hashmap-issues.test.mts │ │ ├── hashmap.test.mts │ │ └── hashset.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ ├── vitest.config.ts │ └── vitest.random.config.ts ├── list │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.custom.json │ │ └── api-extractor.main.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── custom │ │ │ ├── builder │ │ │ │ ├── block-builder.mts │ │ │ │ ├── builder-base.mts │ │ │ │ ├── gen-builder.mts │ │ │ │ ├── leaf │ │ │ │ │ ├── block-builder.mts │ │ │ │ │ ├── leaf-builder.mts │ │ │ │ │ └── tree-builder.mts │ │ │ │ ├── nonleaf │ │ │ │ │ ├── block-builder.mts │ │ │ │ │ ├── nonleaf-builder.mts │ │ │ │ │ └── tree-builder.mts │ │ │ │ └── tree │ │ │ │ │ └── tree-builder.mts │ │ │ ├── context.mts │ │ │ ├── implementation │ │ │ │ ├── block.mts │ │ │ │ ├── cache-map.mts │ │ │ │ ├── empty.mts │ │ │ │ ├── leaf │ │ │ │ │ ├── leaf-block.mts │ │ │ │ │ ├── leaf-tree.mts │ │ │ │ │ └── non-empty.mts │ │ │ │ ├── nonleaf │ │ │ │ │ ├── interface.mts │ │ │ │ │ ├── nonleaf-block.mts │ │ │ │ │ └── nonleaf-tree.mts │ │ │ │ └── tree │ │ │ │ │ ├── interface.mts │ │ │ │ │ └── operations.mts │ │ │ ├── index.mts │ │ │ └── interface.mts │ │ └── main │ │ │ ├── index.mts │ │ │ └── interface.mts │ ├── test-d │ │ └── list.test-d.mts │ ├── test-random │ │ └── list.test.mts │ ├── test │ │ ├── gen-builder.test.mts │ │ ├── leaf-block-builder.test.mts │ │ ├── leaf-block.test.mts │ │ ├── leaf-tree-builder.test.mts │ │ ├── leaf-tree.test.mts │ │ ├── list.test.mts │ │ ├── nonleaf-block-builder.test.mts │ │ ├── nonleaf-block.test.mts │ │ ├── nonleaf-tree-builder.test.mts │ │ ├── nonleaf-tree.test.mts │ │ └── setupTests.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ ├── vitest.config.ts │ └── vitest.random.config.ts ├── multimap │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.custom.json │ │ └── api-extractor.main.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── custom │ │ │ ├── implementation │ │ │ │ └── base.mts │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── base.mts │ │ │ │ └── creators.mts │ │ └── main │ │ │ ├── index.mts │ │ │ └── interface │ │ │ ├── generic │ │ │ ├── generic.mts │ │ │ └── variant.mts │ │ │ ├── hash-key │ │ │ ├── hash-value │ │ │ │ └── interface.mts │ │ │ └── sorted-value │ │ │ │ └── interface.mts │ │ │ └── sorted-key │ │ │ ├── hash-value │ │ │ └── interface.mts │ │ │ └── sorted-value │ │ │ └── interface.mts │ ├── test-d │ │ ├── hash-multimap-hash-value.test-d.mts │ │ ├── hash-multimap-sorted-value.test-d.mts │ │ ├── multimap.test-d.mts │ │ ├── sorted-multimap-hash-value.test-d.mts │ │ └── sorted-multimap-sorted-value.test-d.mts │ ├── test-random │ │ ├── hashmultimaphashvalue.test.mts │ │ ├── hashmultimapsortedvalue.test.mts │ │ ├── multimap-test-random.mts │ │ ├── sortedmultimaphashvalue.test.mts │ │ └── sortedmultimapsortedvalue.test.mts │ ├── test │ │ ├── hashmultimaphashvalue.test.mts │ │ ├── hashmultimapsortedvalue.test.mts │ │ ├── multimap-test-standard.mts │ │ ├── sortedmultimaphashvalue.test.mts │ │ └── sortedmultimapsortedvalue.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ ├── vitest.config.ts │ └── vitest.random.config.ts ├── multiset │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.custom.json │ │ └── api-extractor.main.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── custom │ │ │ ├── implementation │ │ │ │ └── base.mts │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── base.mts │ │ │ │ └── creators.mts │ │ └── main │ │ │ ├── index.mts │ │ │ └── interface │ │ │ ├── generic │ │ │ ├── generic.mts │ │ │ └── variant.mts │ │ │ ├── hashed │ │ │ └── interface.mts │ │ │ └── sorted │ │ │ └── interface.mts │ ├── test-d │ │ ├── hash-multiset.test-d.mts │ │ ├── multiset.test-d.mts │ │ └── sorted-multiset.test-d.mts │ ├── test-random │ │ ├── hashmultiset.test.mts │ │ ├── multiset-test-random.mts │ │ └── sortedmultiset.test.mts │ ├── test │ │ ├── hashmultiset.test.mts │ │ ├── multiset-test-standard.mts │ │ └── sortedmultiset.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ ├── vitest.config.ts │ └── vitest.random.config.ts ├── ordered │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.main.json │ │ ├── api-extractor.map-custom.json │ │ ├── api-extractor.map.json │ │ ├── api-extractor.set-custom.json │ │ └── api-extractor.set.json │ ├── eslint.config.mjs │ ├── map-custom │ │ └── package.json │ ├── map │ │ └── package.json │ ├── package.json │ ├── set-custom │ │ └── package.json │ ├── set │ │ └── package.json │ ├── src │ │ ├── main │ │ │ └── index.mts │ │ ├── map-custom │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ ├── empty.mts │ │ │ │ └── non-empty.mts │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── base.mts │ │ │ │ └── creators.mts │ │ ├── map │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── ordered-hash-map.mts │ │ │ │ ├── ordered-map.mts │ │ │ │ └── ordered-sorted-map.mts │ │ ├── set-custom │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ ├── empty.mts │ │ │ │ └── non-empty.mts │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── base.mts │ │ │ │ └── creators.mts │ │ └── set │ │ │ ├── index.mts │ │ │ └── interface │ │ │ ├── ordered-hash-set.mts │ │ │ ├── ordered-set.mts │ │ │ └── ordered-sorted-set.mts │ ├── test-d │ │ ├── map.test-d.mts │ │ └── set.test-d.mts │ ├── test │ │ ├── orderedmap.test.mts │ │ └── orderedset.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── proximity │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── common │ │ └── package.json │ ├── config │ │ ├── api-extractor.main.json │ │ ├── api-extractor.map-custom.json │ │ └── api-extractor.map.json │ ├── eslint.config.mjs │ ├── map-custom │ │ └── package.json │ ├── map │ │ └── package.json │ ├── package.json │ ├── src │ │ ├── common │ │ │ ├── distanceFunction.mts │ │ │ ├── index.mts │ │ │ └── keyMatching.mts │ │ ├── main │ │ │ └── index.mts │ │ ├── map-custom │ │ │ ├── builder.mts │ │ │ ├── context.mts │ │ │ ├── implementation │ │ │ │ ├── Empty.mts │ │ │ │ ├── NonEmpty.mts │ │ │ │ └── index.mts │ │ │ ├── index.mts │ │ │ └── wrapping.mts │ │ └── map │ │ │ └── index.mts │ ├── test-d │ │ └── ProximityMap.test-d.mts │ ├── test-random │ │ └── ProximityMap.test.mts │ ├── test │ │ ├── ProximityMap.test.mts │ │ ├── distanceFunction.test.mts │ │ └── keyMatching.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ ├── vitest.config.ts │ └── vitest.random.config.ts ├── reactor │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── index.mts │ │ ├── internal.mts │ │ ├── reactor.mts │ │ ├── register-selector.mts │ │ ├── types.mts │ │ ├── unregister-selector.mts │ │ ├── update-selector-value.mts │ │ └── use-force-rerender.mts │ ├── test │ │ ├── reactor.test.mts │ │ ├── register-selector.test.mts │ │ ├── unregister-selector.test.mts │ │ ├── update-selector-value.test.mts │ │ └── use-force-rerender.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.json │ └── vitest.config.ts ├── sorted │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── common │ │ └── package.json │ ├── config │ │ ├── api-extractor.common.json │ │ ├── api-extractor.main.json │ │ ├── api-extractor.map-custom.json │ │ ├── api-extractor.map.json │ │ ├── api-extractor.set-custom.json │ │ └── api-extractor.set.json │ ├── eslint.config.mjs │ ├── map-custom │ │ └── package.json │ ├── map │ │ └── package.json │ ├── package.json │ ├── set-custom │ │ └── package.json │ ├── set │ │ └── package.json │ ├── src │ │ ├── common │ │ │ ├── base.mts │ │ │ ├── index.mts │ │ │ └── sorted-index.mts │ │ ├── main │ │ │ └── index.mts │ │ ├── map-custom │ │ │ ├── creators.mts │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ └── immutable.mts │ │ │ └── index.mts │ │ ├── map │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ └── index.mts │ │ ├── set-custom │ │ │ ├── creators.mts │ │ │ ├── implementation │ │ │ │ ├── builder.mts │ │ │ │ ├── context.mts │ │ │ │ └── immutable.mts │ │ │ └── index.mts │ │ └── set │ │ │ ├── index.mts │ │ │ └── interface │ │ │ └── index.mts │ ├── test-d │ │ ├── map.test-d.mts │ │ └── set.test-d.mts │ ├── test-random │ │ ├── sortedmap-random-tests.test.mts │ │ └── sortedset-random-tests.test.mts │ ├── test │ │ ├── base.test.mts │ │ ├── sorted-index.test.mts │ │ ├── sortedmap-issues.test.mts │ │ ├── sortedmap-specific.test.mts │ │ ├── sortedmap.test.mts │ │ ├── sortedset-builder.test.mts │ │ ├── sortedset-inner.test.mts │ │ ├── sortedset-issues.test.mts │ │ ├── sortedset-leaf.test.mts │ │ ├── sortedset-specific.test.mts │ │ └── sortedset.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ ├── vitest.config.ts │ └── vitest.random.config.ts ├── spy │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ └── api-extractor.main.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── index.mts │ │ └── spy.mts │ ├── test │ │ └── index.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.json │ └── vitest.config.ts ├── stream │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── async-custom │ │ └── package.json │ ├── async │ │ └── package.json │ ├── config │ │ ├── api-extractor.async-custom.json │ │ ├── api-extractor.async.json │ │ ├── api-extractor.custom.json │ │ └── api-extractor.main.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ │ ├── async-custom │ │ │ ├── async-fast-iterator-base.mts │ │ │ ├── async-stream-custom.mts │ │ │ ├── constructors.mts │ │ │ ├── index.mts │ │ │ └── utils.mts │ │ ├── async │ │ │ ├── async-fast-iterable.mts │ │ │ ├── async-fast-iterator.mts │ │ │ ├── async-reducer.mts │ │ │ ├── async-stream-source.mts │ │ │ ├── async-stream.mts │ │ │ ├── async-streamable.mts │ │ │ ├── async-transformer.mts │ │ │ └── index.mts │ │ ├── custom │ │ │ ├── constructors.mts │ │ │ ├── fast-iterator-custom.mts │ │ │ ├── index.mts │ │ │ └── stream-custom.mts │ │ └── main │ │ │ ├── fast-iterable.mts │ │ │ ├── fast-iterator.mts │ │ │ ├── index.mts │ │ │ ├── reducer.mts │ │ │ ├── stream-source.mts │ │ │ ├── stream.mts │ │ │ ├── streamable.mts │ │ │ └── transformer.mts │ ├── test-d │ │ ├── async-reducer.test-d.mts │ │ ├── async-stream.test-d.mts │ │ ├── reducer.test-d.mts │ │ └── stream.test-d.mts │ ├── test │ │ ├── async-reducer.test.mts │ │ ├── async-stream.test.mts │ │ ├── async-transformer.test.mts │ │ ├── fast-iterable.test.mts │ │ ├── reducer.test.mts │ │ ├── stream-source.test.mts │ │ ├── stream.test.mts │ │ └── transformer.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ └── vitest.config.ts ├── table │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── config │ │ ├── api-extractor.custom.json │ │ ├── api-extractor.hash-row.json │ │ ├── api-extractor.main.json │ │ └── api-extractor.sorted-row.json │ ├── custom │ │ └── package.json │ ├── eslint.config.mjs │ ├── hash-row │ │ └── package.json │ ├── package.json │ ├── sorted-row │ │ └── package.json │ ├── src │ │ ├── custom │ │ │ ├── implementation │ │ │ │ └── base.mts │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── base.mts │ │ │ │ └── creators.mts │ │ ├── hash-row │ │ │ ├── hash-column │ │ │ │ └── interface.mts │ │ │ ├── index.mts │ │ │ └── sorted-column │ │ │ │ └── interface.mts │ │ ├── main │ │ │ ├── index.mts │ │ │ └── interface │ │ │ │ ├── generic.mts │ │ │ │ └── variant.mts │ │ └── sorted-row │ │ │ ├── hash-column │ │ │ └── interface.mts │ │ │ ├── index.mts │ │ │ └── sorted-column │ │ │ └── interface.mts │ ├── test-d │ │ ├── hash-table-hash-column.test-d.mts │ │ ├── hash-table-sorted-column.test-d.mts │ │ ├── sorted-table-hash-column.test-d.mts │ │ ├── sorted-table-sorted-column.test-d.mts │ │ └── table.test-d.mts │ ├── test-random │ │ ├── hashtablehashcolumn.test.mts │ │ ├── hashtablesortedcolumn.test.mts │ │ ├── sortedtablehashcolumn.test.mts │ │ ├── sortedtablesortedcolumn.test.mts │ │ └── table-test-random.mts │ ├── test-utils │ │ └── table-standard-test.mts │ ├── test │ │ ├── hashtablehashcolumn.test.mts │ │ ├── hashtablesortedcolumn.test.mts │ │ ├── sortedtablehashcolumn.test.mts │ │ └── sortedtablesortedcolumn.test.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.extractor.json │ ├── tsconfig.json │ ├── vitest.config.ts │ └── vitest.random.config.ts └── typical │ ├── .denoifyrc.json │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.cjs │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── eslint.config.mjs │ ├── package.json │ ├── src │ ├── index.mts │ ├── num.mts │ ├── str.mts │ ├── strnum.mts │ └── utils.mts │ ├── test-d │ ├── type-num.test-d.mts │ ├── type-str.test-d.mts │ ├── type-strnum.test-d.mts │ └── type-utils.test-d.mts │ ├── tsconfig.cjs.json │ ├── tsconfig.common.json │ ├── tsconfig.esm.json │ ├── tsconfig.json │ └── vitest.config.ts ├── performance ├── .eslintrc.json ├── .gitignore ├── .prettierignore ├── .prettierrc.cjs ├── CHANGELOG.md ├── LICENSE ├── README.md ├── package.json ├── src │ ├── arr.mts │ ├── benchmark.mts │ └── list.mts └── tsconfig.json └── yarn.lock /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: vitoke 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /lib 3 | /temp 4 | 5 | .vscode 6 | coverage 7 | 8 | benchmark 9 | 10 | yarn-error.log 11 | 12 | .eslintcache 13 | lerna-debug.log 14 | 15 | **/.DS_Store 16 | 17 | .nx 18 | 19 | **/_cjs_prepare/* 20 | -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | npx lint-staged 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict = true 2 | -------------------------------------------------------------------------------- /.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('./config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /assets/trees.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rimbu-org/rimbu/87cf01279b4eaadb79559211750c1f42a0a93ec4/assets/trees.jpeg -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | flag_management: 2 | default_rules: 3 | carryforward: false 4 | -------------------------------------------------------------------------------- /config/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | printWidth: 80, 3 | semi: true, 4 | singleQuote: true, 5 | trailingComma: 'es5', 6 | }; 7 | -------------------------------------------------------------------------------- /config/codeql-config.yml: -------------------------------------------------------------------------------- 1 | name: 'Rimbu CodeQL Config' 2 | 3 | queries: 4 | - uses: security-and-quality 5 | 6 | paths: 7 | - packages/**/src 8 | 9 | paths-ignore: 10 | - config 11 | - deno_dist 12 | - doc_gen 13 | - docs 14 | - node_modules 15 | - performance 16 | - packages/**/test 17 | - packages/**/test-d 18 | - packages/**/test-random 19 | -------------------------------------------------------------------------------- /config/mod_root_ts_template: -------------------------------------------------------------------------------- 1 | export * from './core/mod.ts'; 2 | -------------------------------------------------------------------------------- /config/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.common.json", 3 | "compilerOptions": { 4 | "noEmit": true, 5 | "types": ["vitest/globals"] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /config/tsconfig.cjs.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.common.json", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "verbatimModuleSyntax": false, 6 | "target": "ES5", 7 | "module": "CommonJS", 8 | "moduleResolution": "Node10" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /config/tsconfig.esm.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.common.json", 3 | "compilerOptions": { 4 | "declaration": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /config/vitest.config.common.ts: -------------------------------------------------------------------------------- 1 | import tsconfigPaths from 'vite-tsconfig-paths'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | test: { 6 | globals: true, 7 | include: ['test/**/*.test.mts'], 8 | coverage: { 9 | all: true, 10 | include: ['src'], 11 | reporter: ['text', 'html', 'clover', 'json', 'lcov'], 12 | }, 13 | }, 14 | plugins: [tsconfigPaths()], 15 | }); 16 | -------------------------------------------------------------------------------- /deno_dist/actor/immer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './slice-immer.ts'; 2 | -------------------------------------------------------------------------------- /deno_dist/actor/main/index.ts: -------------------------------------------------------------------------------- 1 | export * from './internal.ts'; 2 | -------------------------------------------------------------------------------- /deno_dist/actor/main/internal.ts: -------------------------------------------------------------------------------- 1 | // no internal dependencies 2 | export * from './action-base.ts'; 3 | export * from './action.ts'; 4 | export * from './lookup.ts'; 5 | export * from './actor.ts'; 6 | 7 | // internal dependencies 8 | export * from './slice-config.ts'; 9 | export * from './slice.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/actor/main/utils.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Utility type to retrieve the typed tail of a tuple. 3 | * @typeparam A - the input tuple type 4 | */ 5 | export type Tail = A extends [any, ...infer Rest] ? Rest : []; 6 | -------------------------------------------------------------------------------- /deno_dist/actor/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/actor/patch/index.ts: -------------------------------------------------------------------------------- 1 | export * from './slice-patch.ts'; 2 | -------------------------------------------------------------------------------- /deno_dist/base/entry.ts: -------------------------------------------------------------------------------- 1 | // Returns the first element of a 2-Tuple 2 | export function first(entry: readonly [K, V]): K { 3 | return entry[0]; 4 | } 5 | 6 | // Returns the second element of a 2-Tuple 7 | export function second(entry: readonly [K, V]): V { 8 | return entry[1]; 9 | } 10 | -------------------------------------------------------------------------------- /deno_dist/base/index.ts: -------------------------------------------------------------------------------- 1 | export * as Arr from './arr.ts'; 2 | export * as Entry from './entry.ts'; 3 | export * as RimbuError from './rimbu-error.ts'; 4 | export * from './plain-object.ts'; 5 | 6 | export * from './internal.ts'; 7 | -------------------------------------------------------------------------------- /deno_dist/base/internal.ts: -------------------------------------------------------------------------------- 1 | export * from './token.ts'; 2 | -------------------------------------------------------------------------------- /deno_dist/base/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./index.ts"; -------------------------------------------------------------------------------- /deno_dist/base/token.ts: -------------------------------------------------------------------------------- 1 | export const Token = Symbol('Token'); 2 | export type Token = typeof Token; 3 | -------------------------------------------------------------------------------- /deno_dist/bimap/custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './implementation/builder.ts'; 2 | export * from './implementation/immutable.ts'; 3 | export * from './implementation/context.ts'; 4 | export * from './interface.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/bimap/main/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/bimap` package provides BiMap implementations.
5 | *
6 | * See the [Rimbu docs BiMap page](/docs/collections/bimap) for more information. 7 | */ 8 | 9 | export * from './interface.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/bimap/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/bimultimap/custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.ts'; 2 | export * from './interface/generic.ts'; 3 | export * from './interface/hashed.ts'; 4 | export * from './interface/sorted.ts'; 5 | export * from './implementation/immutable.ts'; 6 | export * from './implementation/builder.ts'; 7 | export * from './implementation/context.ts'; 8 | -------------------------------------------------------------------------------- /deno_dist/bimultimap/main/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/bimultimap` package provides BiMultiMap implementations.
5 | *
6 | * See the [Rimbu docs BiMultiMap page](https://rimbu.org/docs/collections/bimultimap) for more information. 7 | */ 8 | 9 | export * from './interface/generic/index.ts'; 10 | export * from './interface/hashed/index.ts'; 11 | export * from './interface/sorted/index.ts'; 12 | -------------------------------------------------------------------------------- /deno_dist/bimultimap/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/channel/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/collection-types/common/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types.ts'; 2 | export * from './base.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/collection-types/map-custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from '../common/index.ts'; 2 | export * from './interface/index.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/collection-types/map/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/collection-types/map` package provides interfaces for the variant `VariantMap` and generic `RMap` types.
5 | * See the [Rimbu docs Map page](/docs/collections/map) 6 | */ 7 | 8 | export * from './interface/variant.ts'; 9 | export * from './interface/generic.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/collection-types/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/collection-types/set-custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from '../common/index.ts'; 2 | export * from './interface/base.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/collection-types/set/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/collection-types/set` package provides interfaces for the variant `VariantSet` and generic `RSet` types.
5 | * See [Rimbu docs Set page](/docs/collections/set) for more information. 6 | */ 7 | 8 | export * from './interface/variant.ts'; 9 | export * from './interface/generic.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/common/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/common` package provides many commonly used types and utilities that can also be of use to Rimbu users.
5 | */ 6 | 7 | export * from './internal.ts'; 8 | -------------------------------------------------------------------------------- /deno_dist/common/internal.ts: -------------------------------------------------------------------------------- 1 | export * from './collect.ts'; 2 | export * from './comp.ts'; 3 | export * from './eq.ts'; 4 | export * from './err.ts'; 5 | export * from './index-range.ts'; 6 | export * from './optlazy.ts'; 7 | export * from './range.ts'; 8 | export * from './traverse-state.ts'; 9 | export * from './types.ts'; 10 | export * from './update.ts'; 11 | export * from './async-optlazy.ts'; 12 | -------------------------------------------------------------------------------- /deno_dist/common/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./index.ts"; -------------------------------------------------------------------------------- /deno_dist/core/menu/bimultimap.ts: -------------------------------------------------------------------------------- 1 | export { 2 | HashBiMultiMap as Hashed, 3 | SortedBiMultiMap as Sorted, 4 | } from '../../bimultimap/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/graph/index.ts: -------------------------------------------------------------------------------- 1 | export * as NonValued from './non-valued/index.ts'; 2 | export * as Valued from './valued/index.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/core/menu/graph/non-valued/arrow.ts: -------------------------------------------------------------------------------- 1 | export { 2 | ArrowGraphHashed as Hashed, 3 | ArrowGraphSorted as Sorted, 4 | } from '../../../../graph/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/graph/non-valued/edge.ts: -------------------------------------------------------------------------------- 1 | export { 2 | EdgeGraphHashed as Hashed, 3 | EdgeGraphSorted as Sorted, 4 | } from '../../../../graph/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/graph/non-valued/index.ts: -------------------------------------------------------------------------------- 1 | export * as Arrow from './arrow.ts'; 2 | export * as Edge from './edge.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/core/menu/graph/valued/arrow.ts: -------------------------------------------------------------------------------- 1 | export { 2 | ArrowValuedGraphHashed as Hashed, 3 | ArrowValuedGraphSorted as Sorted, 4 | } from '../../../../graph/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/graph/valued/edge.ts: -------------------------------------------------------------------------------- 1 | export { 2 | EdgeValuedGraphHashed as Hashed, 3 | EdgeValuedGraphSorted as Sorted, 4 | } from '../../../../graph/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/graph/valued/index.ts: -------------------------------------------------------------------------------- 1 | export * as Arrow from './arrow.ts'; 2 | export * as Edge from './edge.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/core/menu/index.ts: -------------------------------------------------------------------------------- 1 | import * as Menu from './menu.ts'; 2 | 3 | export default Menu; 4 | -------------------------------------------------------------------------------- /deno_dist/core/menu/map/index.ts: -------------------------------------------------------------------------------- 1 | export { HashMap as Hashed } from '../../../hashed/map/index.ts'; 2 | export { SortedMap as Sorted } from '../../../sorted/map/index.ts'; 3 | export { ProximityMap as Proximity } from '../../../proximity/map/index.ts'; 4 | 5 | export * as Ordered from './ordered.ts'; 6 | -------------------------------------------------------------------------------- /deno_dist/core/menu/map/ordered.ts: -------------------------------------------------------------------------------- 1 | export { 2 | OrderedHashMap as Hashed, 3 | OrderedSortedMap as Sorted, 4 | } from '../../../ordered/map/index.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/menu.ts: -------------------------------------------------------------------------------- 1 | export { List } from '../../list/mod.ts'; 2 | export { AsyncStream, Stream } from '../../stream/mod.ts'; 3 | 4 | export * as BiMultiMap from './bimultimap.ts'; 5 | export * as Graph from './graph/index.ts'; 6 | export * as Map from './map/index.ts'; 7 | export * as MultiSet from './multiset.ts'; 8 | export * as Set from './set/index.ts'; 9 | export * as Table from './table/index.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/core/menu/multimap/hash-key.ts: -------------------------------------------------------------------------------- 1 | export { 2 | HashMultiMapHashValue as HashValue, 3 | HashMultiMapSortedValue as SortedValue, 4 | } from '../../../multimap/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/multimap/index.ts: -------------------------------------------------------------------------------- 1 | export * as HashKey from './hash-key.ts'; 2 | export * as SortedKey from './sorted-key.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/core/menu/multimap/sorted-key.ts: -------------------------------------------------------------------------------- 1 | export { 2 | SortedMultiMapHashValue as HashValue, 3 | SortedMultiMapSortedValue as SortedValue, 4 | } from '../../../multimap/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/multiset.ts: -------------------------------------------------------------------------------- 1 | export { 2 | HashMultiSet as Hashed, 3 | SortedMultiSet as Sorted, 4 | } from '../../multiset/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/set/index.ts: -------------------------------------------------------------------------------- 1 | export { HashSet as Hashed } from '../../../hashed/set/index.ts'; 2 | export { SortedSet as Sorted } from '../../../sorted/set/index.ts'; 3 | 4 | export * as Ordered from './ordered.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/set/ordered.ts: -------------------------------------------------------------------------------- 1 | export { 2 | OrderedHashSet as Hashed, 3 | OrderedSortedSet as Sorted, 4 | } from '../../../ordered/set/index.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/table/hash-row.ts: -------------------------------------------------------------------------------- 1 | export { 2 | HashTableHashColumn as HashColumn, 3 | HashTableSortedColumn as SortedColumn, 4 | } from '../../../table/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/menu/table/index.ts: -------------------------------------------------------------------------------- 1 | export * as HashRow from './hash-row.ts'; 2 | export * as SortedRow from './sorted-row.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/core/menu/table/sorted-row.ts: -------------------------------------------------------------------------------- 1 | export { 2 | SortedTableHashColumn as HashColumn, 3 | SortedTableSortedColumn as SortedColumn, 4 | } from '../../../table/mod.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/core/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/deep/internal.ts: -------------------------------------------------------------------------------- 1 | export type { Protected } from './protected.ts'; 2 | export { Path } from './path.ts'; 3 | export { type Match } from './match.ts'; 4 | export type { Patch } from './patch.ts'; 5 | export type { Selector } from './selector.ts'; 6 | 7 | import * as Deep from './deep.ts'; 8 | export { Deep }; 9 | -------------------------------------------------------------------------------- /deno_dist/deep/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./index.ts"; -------------------------------------------------------------------------------- /deno_dist/graph/custom/common/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interface/variant-graph-base.ts'; 2 | export * from './interface/graph-base.ts'; 3 | 4 | export * from './link.ts'; 5 | export * from './valued-link.ts'; 6 | 7 | export * from './implementation/base.ts'; 8 | -------------------------------------------------------------------------------- /deno_dist/graph/main/traverse/index.ts: -------------------------------------------------------------------------------- 1 | export * from './traverse-base.ts'; 2 | export * from './traverse-breadth-first.ts'; 3 | export * from './traverse-depth-first.ts'; 4 | -------------------------------------------------------------------------------- /deno_dist/graph/main/traverse/traverse-base.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | Link, 3 | ValuedLink, 4 | VariantGraphBase, 5 | VariantValuedGraphBase, 6 | } from '../../../graph/custom/index.ts'; 7 | 8 | /** 9 | * Utility type to determine if a graph has valued or unvalued links 10 | * @typeparam G - a graph subtype 11 | * @typeparam N - the graph's node type 12 | */ 13 | export type LinkType, N> = 14 | G extends VariantValuedGraphBase ? ValuedLink : Link; 15 | -------------------------------------------------------------------------------- /deno_dist/graph/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/hashed/common/index.ts: -------------------------------------------------------------------------------- 1 | export * from './hasher.ts'; 2 | export * from './hashed-custom.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/hashed/map-custom/index.ts: -------------------------------------------------------------------------------- 1 | // pure interfaces 2 | export * from './interface.ts'; 3 | 4 | // pure classes and files 5 | export * from './implementation/immutable.ts'; 6 | export * from './implementation/builder.ts'; 7 | 8 | // circular dependencies 9 | export * from './implementation/context.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/hashed/map/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/hashed/map` package provides the `HashMap` implementation.
5 | *
6 | * See the [Rimbu docs Map page](/docs/collections/map) for more information. 7 | */ 8 | 9 | export * from './interface/index.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/hashed/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/hashed/set-custom/index.ts: -------------------------------------------------------------------------------- 1 | // pure interfaces 2 | export * from './interface.ts'; 3 | 4 | // pure classes and files 5 | export * from './implementation/immutable.ts'; 6 | export * from './implementation/builder.ts'; 7 | 8 | // circular dependencies 9 | export * from './implementation/context.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/hashed/set/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/hashed/set` package provides the `HashSet` implementation.
5 | *
6 | * See the [Rimbu docs Set page](/docs/collections/set) for more information. 7 | */ 8 | 9 | export * from './interface/index.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/list/custom/builder/nonleaf/nonleaf-builder.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | BlockBuilder, 3 | NonLeafBlockBuilder, 4 | NonLeafTreeBuilder, 5 | } from '../../../../list/custom/index.ts'; 6 | 7 | export type NonLeafBuilder> = 8 | | NonLeafBlockBuilder 9 | | NonLeafTreeBuilder; 10 | -------------------------------------------------------------------------------- /deno_dist/list/custom/implementation/cache-map.ts: -------------------------------------------------------------------------------- 1 | export class CacheMap { 2 | readonly #map = new Map(); 3 | 4 | get(key: any): any { 5 | return this.#map.get(key); 6 | } 7 | 8 | setAndReturn(key: any, value: T): T { 9 | this.#map.set(key, value); 10 | return value; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /deno_dist/list/main/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/list` package provides the `List` implementation.
5 | *
6 | * See the [Rimbu docs List page](/docs/collections/list) for more information. 7 | */ 8 | 9 | export * from './interface.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/list/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/mod.ts: -------------------------------------------------------------------------------- 1 | export * from './core/mod.ts'; 2 | -------------------------------------------------------------------------------- /deno_dist/multimap/custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.ts'; 2 | export * from './interface/creators.ts'; 3 | export * from './implementation/base.ts'; 4 | -------------------------------------------------------------------------------- /deno_dist/multimap/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/multiset/custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.ts'; 2 | export * from './interface/creators.ts'; 3 | export * from './implementation/base.ts'; 4 | -------------------------------------------------------------------------------- /deno_dist/multiset/main/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/multiset` package provides implementations for various MultiSets.
5 | *
6 | * See the [Rimbu docs MultiSet page](/docs/collections/multiset) for more information. 7 | */ 8 | 9 | export * from './interface/generic/variant.ts'; 10 | export * from './interface/generic/generic.ts'; 11 | 12 | export * from './interface/hashed/interface.ts'; 13 | export * from './interface/sorted/interface.ts'; 14 | -------------------------------------------------------------------------------- /deno_dist/multiset/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/ordered/map-custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.ts'; 2 | export * from './interface/creators.ts'; 3 | export * from './implementation/builder.ts'; 4 | export * from './implementation/empty.ts'; 5 | export * from './implementation/non-empty.ts'; 6 | export * from './implementation/context.ts'; 7 | -------------------------------------------------------------------------------- /deno_dist/ordered/map/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/ordered/map` package provides various `OrderedMap` implementations.
5 | *
6 | * See the [Rimbu docs Map page](/docs/collections/map) for more information.
7 | */ 8 | 9 | export * from './interface/ordered-map.ts'; 10 | export * from './interface/ordered-hash-map.ts'; 11 | export * from './interface/ordered-sorted-map.ts'; 12 | -------------------------------------------------------------------------------- /deno_dist/ordered/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/ordered/set-custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.ts'; 2 | export * from './interface/creators.ts'; 3 | export * from './implementation/builder.ts'; 4 | export * from './implementation/empty.ts'; 5 | export * from './implementation/non-empty.ts'; 6 | export * from './implementation/context.ts'; 7 | -------------------------------------------------------------------------------- /deno_dist/ordered/set/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/ordered/set` package provides various `OrderedSet` implementations.
5 | *
6 | * See the [Rimbu docs Set page](/docs/collections/set) for more information.
7 | */ 8 | 9 | export * from './interface/ordered-set.ts'; 10 | export * from './interface/ordered-hash-set.ts'; 11 | export * from './interface/ordered-sorted-set.ts'; 12 | -------------------------------------------------------------------------------- /deno_dist/proximity/common/index.ts: -------------------------------------------------------------------------------- 1 | export * from './distanceFunction.ts'; 2 | export * from './keyMatching.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/proximity/main/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/proximity` package provides implementations of `ProximityMap`.
5 | *
6 | * See the [Rimbu docs Map page](/docs/collections/map) for more information. 7 | *
8 | * This is a convenience package that exports everything from the following sub-packages:
9 | * - [`@rimbu/proximity/common`](./common)
10 | * - [`@rimbu/proximity/map`](/api/rimbu/proximity/map)
11 | */ 12 | 13 | export * from '../../proximity/common/index.ts'; 14 | export * from '../../proximity/map/index.ts'; 15 | -------------------------------------------------------------------------------- /deno_dist/proximity/map-custom/implementation/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Empty.ts'; 2 | export * from './NonEmpty.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/proximity/map-custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './implementation/index.ts'; 2 | 3 | export * from './builder.ts'; 4 | export * from './context.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/proximity/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/reactor/index.ts: -------------------------------------------------------------------------------- 1 | export { Reactor, useForceRerender } from './internal.ts'; 2 | -------------------------------------------------------------------------------- /deno_dist/reactor/internal.ts: -------------------------------------------------------------------------------- 1 | // no dependencies 2 | export * from './types.ts'; 3 | export * from './use-force-rerender.ts'; 4 | export * from './update-selector-value.ts'; 5 | export * from './register-selector.ts'; 6 | export * from './unregister-selector.ts'; 7 | 8 | // internal dependencies 9 | export * from './reactor.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/reactor/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./index.ts"; -------------------------------------------------------------------------------- /deno_dist/reactor/types.ts: -------------------------------------------------------------------------------- 1 | import type { Actor } from '../actor/mod.ts'; 2 | import type { Deep } from '../deep/mod.ts'; 3 | 4 | export type SelectorEntry = { 5 | value: unknown; 6 | listeners: Map; 7 | }; 8 | 9 | export type SelectorCache = Map, SelectorEntry>; 10 | -------------------------------------------------------------------------------- /deno_dist/reactor/use-force-rerender.ts: -------------------------------------------------------------------------------- 1 | import React from "https://dev.jspm.io/react@17.0.2";; 2 | 3 | export function useForceRerender(): () => void { 4 | const setState = React.useState(0)[1]; 5 | 6 | return (): void => setState((v) => (v + 1) | 0); 7 | } 8 | -------------------------------------------------------------------------------- /deno_dist/sorted/common/index.ts: -------------------------------------------------------------------------------- 1 | export * from './sorted-index.ts'; 2 | export * from './base.ts'; 3 | -------------------------------------------------------------------------------- /deno_dist/sorted/common/sorted-index.ts: -------------------------------------------------------------------------------- 1 | export namespace SortedIndex { 2 | export function next(index: number): number { 3 | return index >= 0 ? -index - 2 : -index - 1; 4 | } 5 | 6 | export function prev(index: number): number { 7 | return index >= 0 ? -index - 1 : -index - 2; 8 | } 9 | 10 | export const firstChild = -1; 11 | 12 | export function compare(i1: number, i2: number): number { 13 | if (Object.is(i1, i2)) return 0; 14 | 15 | const v1 = i1 >= 0 ? i1 : -i1 - 1.5; 16 | const v2 = i2 >= 0 ? i2 : -i2 - 1.5; 17 | 18 | return v1 - v2; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /deno_dist/sorted/map-custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './creators.ts'; 2 | export * from './implementation/builder.ts'; 3 | export * from './implementation/immutable.ts'; 4 | export * from './implementation/context.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/sorted/map/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/sorted/map` package provides `SortedMap` implementations.
5 | *
6 | * See the [Rimbu docs Map page](/docs/collections/map) for more information. 7 | */ 8 | 9 | export * from './interface/index.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/sorted/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/sorted/set-custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './creators.ts'; 2 | export * from './implementation/builder.ts'; 3 | export * from './implementation/immutable.ts'; 4 | export * from './implementation/context.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/sorted/set/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/sorted/set` package provides `SortedSet` implementations.
5 | *
6 | * See the [Rimbu docs Set page](/docs/collections/set) for more information. 7 | */ 8 | 9 | export * from './interface/index.ts'; 10 | -------------------------------------------------------------------------------- /deno_dist/spy/index.ts: -------------------------------------------------------------------------------- 1 | export * from './spy.ts'; 2 | -------------------------------------------------------------------------------- /deno_dist/spy/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./index.ts"; -------------------------------------------------------------------------------- /deno_dist/stream/async-custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './constructors.ts'; 2 | export * from './utils.ts'; 3 | 4 | export * from './async-fast-iterator-base.ts'; 5 | export * from './async-stream-custom.ts'; 6 | -------------------------------------------------------------------------------- /deno_dist/stream/async-custom/utils.ts: -------------------------------------------------------------------------------- 1 | export async function closeIters( 2 | ...iters: (AsyncIterator | undefined | null)[] 3 | ): Promise { 4 | await Promise.all( 5 | iters.map((i) => { 6 | i?.return?.(); 7 | }) 8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /deno_dist/stream/async/async-fast-iterable.ts: -------------------------------------------------------------------------------- 1 | import type { AsyncFastIterator } from '../../stream/async/index.ts'; 2 | 3 | export interface AsyncFastIterable extends AsyncIterable { 4 | [Symbol.asyncIterator](): AsyncFastIterator; 5 | } 6 | -------------------------------------------------------------------------------- /deno_dist/stream/async/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/stream/async` package provides the `AsyncStream` implementations.
5 | *
6 | * See the [Rimbu docs Stream page](/docs/collections/stream) for more information. 7 | */ 8 | 9 | export * from './async-stream-source.ts'; 10 | export * from './async-fast-iterator.ts'; 11 | export * from './async-fast-iterable.ts'; 12 | export * from './async-streamable.ts'; 13 | 14 | export * from './async-stream.ts'; 15 | 16 | export * from './async-reducer.ts'; 17 | export * from './async-transformer.ts'; 18 | -------------------------------------------------------------------------------- /deno_dist/stream/custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './constructors.ts'; 2 | 3 | export * from './fast-iterator-custom.ts'; 4 | export * from './stream-custom.ts'; 5 | -------------------------------------------------------------------------------- /deno_dist/stream/main/fast-iterable.ts: -------------------------------------------------------------------------------- 1 | import type { FastIterator } from './index.ts'; 2 | 3 | /** 4 | * An interface that extends the standard `Iterable` interface to return 5 | * a `FastIterator` instead of a normal `Iterator`. 6 | * @typeparam T - the element type 7 | */ 8 | export interface FastIterable extends Iterable { 9 | /** 10 | * Returns a `FastIterator` instance used to iterate over the values of this `Iterable`. 11 | */ 12 | [Symbol.iterator](): FastIterator; 13 | } 14 | -------------------------------------------------------------------------------- /deno_dist/stream/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/table/custom/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.ts'; 2 | export * from './interface/creators.ts'; 3 | export * from './implementation/base.ts'; 4 | -------------------------------------------------------------------------------- /deno_dist/table/hash-row/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/table/hash-row` package provides tables with hashed row key implementations.
5 | *
6 | * See the [Rimbu docs Table page](/docs/collections/table) for more information. 7 | */ 8 | 9 | export * from './hash-column/interface.ts'; 10 | export * from './sorted-column/interface.ts'; 11 | -------------------------------------------------------------------------------- /deno_dist/table/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./main/index.ts"; -------------------------------------------------------------------------------- /deno_dist/table/sorted-row/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/table/sorted-row` package provides tables with sorted row key implementations.
5 | *
6 | * See the [Rimbu docs Table page](/docs/collections/table) for more information. 7 | */ 8 | 9 | export * from './hash-column/interface.ts'; 10 | export * from './sorted-column/interface.ts'; 11 | -------------------------------------------------------------------------------- /deno_dist/typical/index.ts: -------------------------------------------------------------------------------- 1 | import type * as U from './utils.ts'; 2 | import type * as Str from './str.ts'; 3 | import type * as StrNum from './strnum.ts'; 4 | import type * as Num from './num.ts'; 5 | 6 | export type { U, Str, StrNum, Num }; 7 | -------------------------------------------------------------------------------- /deno_dist/typical/mod.ts: -------------------------------------------------------------------------------- 1 | export * from "./index.ts"; -------------------------------------------------------------------------------- /doc-gen/.gitignore: -------------------------------------------------------------------------------- 1 | input 2 | output 3 | -------------------------------------------------------------------------------- /doc-gen/import_map.json: -------------------------------------------------------------------------------- 1 | { 2 | "imports": { 3 | "@std/": "https://deno.land/std@0.137.0/", 4 | "@rimbu/": "https://deno.land/x/rimbu@0.10.0/", 5 | "~/": "./src/" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /doc-gen/src/clean-output-dir.ts: -------------------------------------------------------------------------------- 1 | export function cleanOutputDir(output: string) { 2 | console.log(`cleaning ${output}`); 3 | try { 4 | const outputDir = Deno.readDirSync(output); 5 | 6 | for (const item of outputDir) { 7 | if (item.isDirectory) { 8 | Deno.removeSync(`${output}/${item.name}`, { recursive: true }); 9 | } 10 | } 11 | } catch {} 12 | 13 | try { 14 | Deno.mkdirSync(output, { recursive: true }); 15 | } catch {} 16 | } 17 | -------------------------------------------------------------------------------- /doc-gen/src/generate/namespace/index.ts: -------------------------------------------------------------------------------- 1 | import { Namespace } from '~/doc-model.ts'; 2 | 3 | import { generateNamespaceContents } from '../common/namespace-contents.ts'; 4 | 5 | export function generateNamespace(source: Namespace, name = source.name) { 6 | const result = `\ 7 | --- 8 | title: '${source.name} (namespace)' 9 | slug: '${source.slug}' 10 | --- 11 | 12 | # \`namespace ${name}\` 13 | 14 | ${generateNamespaceContents(source)} 15 | `; 16 | 17 | return result; 18 | } 19 | -------------------------------------------------------------------------------- /doc-gen/src/generate/package/index.ts: -------------------------------------------------------------------------------- 1 | import { Package } from '~/doc-model.ts'; 2 | 3 | import { generateNamespaceContents } from '../common/namespace-contents.ts'; 4 | 5 | export function generatePackage(source: Package) { 6 | const result = `\ 7 | --- 8 | title: '${source.name}' 9 | slug: '${source.slug}' 10 | --- 11 | 12 | # \`package ${source.name}\` 13 | 14 | ${generateNamespaceContents(source.namespace)} 15 | `; 16 | 17 | return result; 18 | } 19 | -------------------------------------------------------------------------------- /doc-gen/src/generate/variable/index.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from '@rimbu/stream/mod.ts'; 2 | 3 | import { Variable } from '~/doc-model.ts'; 4 | 5 | export function generateVariable(source: Variable) { 6 | const result = `\ 7 | --- 8 | title: '${source.name}' 9 | slug: '${source.slug}' 10 | --- 11 | 12 | # \`type ${source.name}\` 13 | 14 | ${source.description} 15 | 16 | ${Stream.from(source.docBlocks).join({ 17 | valueToString: ([tag, text]) => `:::note ${tag} 18 | 19 | ${text} 20 | 21 | ::: 22 | `, 23 | })} 24 | ## Definition 25 | 26 | ${source.codeTokens()} 27 | `; 28 | 29 | return result; 30 | } 31 | -------------------------------------------------------------------------------- /doc-gen/src/json-model/doc-comment.ts: -------------------------------------------------------------------------------- 1 | export type DocBlock = [string, string]; 2 | 3 | export interface DocComment { 4 | brief: string; 5 | summary: string; 6 | returns?: string; 7 | params: Map; 8 | typeParams: Map; 9 | other: DocBlock[]; 10 | } 11 | -------------------------------------------------------------------------------- /doc-gen/src/json-model/index.ts: -------------------------------------------------------------------------------- 1 | export * from './api.ts'; 2 | export * from './base.ts'; 3 | export * from './elements.ts'; 4 | export * from './doc-comment.ts'; 5 | -------------------------------------------------------------------------------- /doc-gen/src/main.ts: -------------------------------------------------------------------------------- 1 | import { writeOutput } from '~/write-output.ts'; 2 | import { loadModel } from '~/load-model.ts'; 3 | import { parseArgs, showVersion } from '~/parse-args.ts'; 4 | import { cleanOutputDir } from '~/clean-output-dir.ts'; 5 | 6 | const { input, output } = parseArgs(); 7 | 8 | showVersion(); 9 | 10 | cleanOutputDir(output); 11 | 12 | const model = await loadModel(input); 13 | 14 | writeOutput(output, model); 15 | -------------------------------------------------------------------------------- /doc-gen/src/process/common/variable.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rimbu-org/rimbu/87cf01279b4eaadb79559211750c1f42a0a93ec4/doc-gen/src/process/common/variable.ts -------------------------------------------------------------------------------- /doc-gen/src/version.ts: -------------------------------------------------------------------------------- 1 | export const version = '0.1.0'; 2 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /lib 3 | /temp 4 | /build 5 | .docusaurus 6 | 7 | .vscode 8 | coverage 9 | 10 | benchmark 11 | 12 | yarn-error.log 13 | 14 | .eslintcache 15 | lerna-debug.log 16 | 17 | .DS_Store 18 | 19 | api/**/ 20 | -------------------------------------------------------------------------------- /docs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /docs/docs/advanced/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Advanced Topics" 3 | } 4 | -------------------------------------------------------------------------------- /docs/docs/collections/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Collections", 3 | "position": 4, 4 | "collapsed": false 5 | } 6 | -------------------------------------------------------------------------------- /docs/docs/collections/bimultimap.ts: -------------------------------------------------------------------------------- 1 | export const inheritance = ` 2 | interface Streamable<[K, V]>; 3 | abstract BiMultiMap; 4 | class HashBiMultiMap; 5 | class SortedBiMultiMap; 6 | 7 | Streamable <|.. BiMultiMap; 8 | BiMultiMap <|-- HashBiMultiMap; 9 | BiMultiMap <|-- SortedBiMultiMap; 10 | `; 11 | -------------------------------------------------------------------------------- /docs/docs/collections/graph/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Graph" 3 | } 4 | -------------------------------------------------------------------------------- /docs/docs/collections/map.ts: -------------------------------------------------------------------------------- 1 | export const inheritance = ` 2 | interface Streamable<[K, V]>; 3 | 4 | interface VariantMap; 5 | abstract RMap; 6 | class HashMap; 7 | class SortedMap; 8 | 9 | Streamable <|.. VariantMap; 10 | VariantMap <|-- RMap; 11 | RMap <|-- HashMap; 12 | RMap <|-- SortedMap; 13 | RMap <|-- ProximityMap; 14 | `; 15 | -------------------------------------------------------------------------------- /docs/docs/collections/multimap.ts: -------------------------------------------------------------------------------- 1 | export const inheritance = ` 2 | interface Streamable<[K, V]>; 3 | 4 | interface VariantMultiMap; 5 | abstract MultiMap; 6 | class HashMultiMapHashValue; 7 | class HashMultiMapSortedValue; 8 | class SortedMultiMapHashValue; 9 | class SortedMultiMapSortedValue; 10 | 11 | Streamable <|.. VariantMultiMap; 12 | VariantMultiMap <|-- MultiMap; 13 | MultiMap <|-- HashMultiMapHashValue; 14 | MultiMap <|-- HashMultiMapSortedValue; 15 | MultiMap <|-- SortedMultiMapHashValue; 16 | MultiMap <|-- SortedMultiMapSortedValue; 17 | `; 18 | -------------------------------------------------------------------------------- /docs/docs/collections/multiset.ts: -------------------------------------------------------------------------------- 1 | export const inheritance = ` 2 | interface Streamable; 3 | 4 | interface VariantMultiSet; 5 | abstract MultiSet; 6 | class HashMultiSet; 7 | class SortedMultiSet; 8 | 9 | Streamable <|.. VariantMultiSet; 10 | VariantMultiSet <|-- MultiSet; 11 | MultiSet <|-- HashMultiSet; 12 | MultiSet <|-- SortedMultiSet; 13 | `; 14 | -------------------------------------------------------------------------------- /docs/docs/collections/set.ts: -------------------------------------------------------------------------------- 1 | export const inheritance = ` 2 | interface Streamable; 3 | 4 | interface VariantSet; 5 | abstract RSet; 6 | class HashSet; 7 | class SortedSet; 8 | 9 | Streamable <|.. VariantSet; 10 | VariantSet <|-- RSet; 11 | RSet <|-- HashSet; 12 | RSet <|-- SortedSet; 13 | `; 14 | -------------------------------------------------------------------------------- /docs/docs/collections/table.ts: -------------------------------------------------------------------------------- 1 | export const inheritance = ` 2 | interface Streamable<[R, C, V]>; 3 | interface VariantTable; 4 | abstract Table; 5 | class HashTableHashColumn; 6 | class HashTableSortedColumn; 7 | class SortedTableHashColumn; 8 | class SortedTableSortedColumn; 9 | 10 | Streamable <|.. VariantTable; 11 | VariantTable <|-- Table; 12 | Table <|-- HashTableHashColumn; 13 | Table <|-- HashTableSortedColumn; 14 | Table <|-- SortedTableHashColumn; 15 | Table <|-- SortedTableSortedColumn; 16 | `; 17 | -------------------------------------------------------------------------------- /docs/docs/deep/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Immutable Objects", 3 | "position": 5 4 | } 5 | -------------------------------------------------------------------------------- /docs/docs/deep/immutable/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": " ", 3 | "position": 50 4 | } 5 | -------------------------------------------------------------------------------- /docs/docs/deep/immutable/index.mdx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Redirect } from '@docusaurus/router'; 3 | 4 | // This is a redirect to accomodate old references to 'Immutable', the previous name of 'Protected'. 5 | 6 | export default function Home() { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /docs/sidebars.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | sidebar: [{ type: 'autogenerated', dirName: '.' }], 3 | }; 4 | -------------------------------------------------------------------------------- /docs/src/components/HomepageFeatures.module.css: -------------------------------------------------------------------------------- 1 | /* stylelint-disable docusaurus/copyright-header */ 2 | 3 | .features { 4 | display: flex; 5 | align-items: center; 6 | padding: 2rem 0; 7 | width: 100%; 8 | } 9 | 10 | .featureSvg { 11 | height: 200px; 12 | width: 200px; 13 | } 14 | -------------------------------------------------------------------------------- /docs/static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rimbu-org/rimbu/87cf01279b4eaadb79559211750c1f42a0a93ec4/docs/static/.nojekyll -------------------------------------------------------------------------------- /docs/static/CNAME: -------------------------------------------------------------------------------- 1 | rimbu.org -------------------------------------------------------------------------------- /docs/static/img/docusaurus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rimbu-org/rimbu/87cf01279b4eaadb79559211750c1f42a0a93ec4/docs/static/img/docusaurus.png -------------------------------------------------------------------------------- /docs/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rimbu-org/rimbu/87cf01279b4eaadb79559211750c1f42a0a93ec4/docs/static/img/favicon.ico -------------------------------------------------------------------------------- /docs/static/img/tutorial/docsVersionDropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rimbu-org/rimbu/87cf01279b4eaadb79559211750c1f42a0a93ec4/docs/static/img/tutorial/docsVersionDropdown.png -------------------------------------------------------------------------------- /docs/static/img/tutorial/localeDropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rimbu-org/rimbu/87cf01279b4eaadb79559211750c1f42a0a93ec4/docs/static/img/tutorial/localeDropdown.png -------------------------------------------------------------------------------- /docs/static/img/undraw_collor.txt: -------------------------------------------------------------------------------- 1 | #38837D 2 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": ["packages/*"], 3 | "version": "independent", 4 | "npmClient": "yarn", 5 | "command": { 6 | "version": { 7 | "allowBranch": "main", 8 | "ignoreChanges": ["**/*.md"] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/actor/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/actor/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/actor/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/actor/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/actor/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/actor/immer/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "immer", 3 | "private": true, 4 | "main": "../dist/cjs/immer/index.cjs", 5 | "module": "../dist/esm/immer/index.mjs", 6 | "types": "../dist/cjs/immer/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/actor/patch/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "patch", 3 | "private": true, 4 | "main": "../dist/cjs/patch/index.cjs", 5 | "module": "../dist/esm/patch/index.mjs", 6 | "types": "../dist/cjs/patch/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/actor/src/immer/index.mts: -------------------------------------------------------------------------------- 1 | export * from './slice-immer.mjs'; 2 | -------------------------------------------------------------------------------- /packages/actor/src/main/index.mts: -------------------------------------------------------------------------------- 1 | export * from './internal.mjs'; 2 | -------------------------------------------------------------------------------- /packages/actor/src/main/internal.mts: -------------------------------------------------------------------------------- 1 | // no internal dependencies 2 | export * from './action-base.mjs'; 3 | export * from './action.mjs'; 4 | export * from './lookup.mjs'; 5 | export * from './actor.mjs'; 6 | 7 | // internal dependencies 8 | export * from './slice-config.mjs'; 9 | export * from './slice.mjs'; 10 | -------------------------------------------------------------------------------- /packages/actor/src/main/utils.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * Utility type to retrieve the typed tail of a tuple. 3 | * @typeparam A - the input tuple type 4 | */ 5 | export type Tail
= A extends [any, ...infer Rest] ? Rest : []; 6 | -------------------------------------------------------------------------------- /packages/actor/src/patch/index.mts: -------------------------------------------------------------------------------- 1 | export * from './slice-patch.mjs'; 2 | -------------------------------------------------------------------------------- /packages/actor/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/actor/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/actor": ["main/index.mjs", "main/index.cts"] 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/actor/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/actor/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/actor/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | import { mergeConfig } from 'vitest/config'; 3 | 4 | export default mergeConfig(commonConfig, { 5 | test: { 6 | environment: 'happy-dom', 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /packages/base/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/base/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/base/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/base/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/base/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/base/src/entry.mts: -------------------------------------------------------------------------------- 1 | // Returns the first element of a 2-Tuple 2 | export function first(entry: readonly [K, V]): K { 3 | return entry[0]; 4 | } 5 | 6 | // Returns the second element of a 2-Tuple 7 | export function second(entry: readonly [K, V]): V { 8 | return entry[1]; 9 | } 10 | -------------------------------------------------------------------------------- /packages/base/src/index.mts: -------------------------------------------------------------------------------- 1 | export * as Arr from './arr.mjs'; 2 | export * as Entry from './entry.mjs'; 3 | export * as RimbuError from './rimbu-error.mjs'; 4 | export * from './plain-object.mjs'; 5 | 6 | export * from './internal.mjs'; 7 | -------------------------------------------------------------------------------- /packages/base/src/internal.mts: -------------------------------------------------------------------------------- 1 | export * from './token.mjs'; 2 | -------------------------------------------------------------------------------- /packages/base/src/token.mts: -------------------------------------------------------------------------------- 1 | export const Token = Symbol('Token'); 2 | export type Token = typeof Token; 3 | -------------------------------------------------------------------------------- /packages/base/test/entry.test.mts: -------------------------------------------------------------------------------- 1 | import { Entry } from '../src/index.mjs'; 2 | 3 | describe('Entry', () => { 4 | it('first', () => { 5 | expect(Entry.first([1, 'a'])).toBe(1); 6 | }); 7 | 8 | it('second', () => { 9 | expect(Entry.second([1, 'a'])).toBe('a'); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /packages/base/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/base/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/base/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/base/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": { 5 | "rootDirs": [".", ".."] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/base/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/bimap/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/bimap/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/bimap/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/bimap/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/bimap/config/api-extractor.custom.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/custom/index.d.mts", 5 | "bundledPackages": ["@rimbu/bimap"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!custom.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/bimap/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/bimap/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/bimap/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/bimap/src/custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './implementation/builder.mjs'; 2 | export * from './implementation/immutable.mjs'; 3 | export * from './implementation/context.mjs'; 4 | export * from './interface.mjs'; 5 | -------------------------------------------------------------------------------- /packages/bimap/src/main/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/bimap` package provides BiMap implementations.
5 | *
6 | * See the [Rimbu docs BiMap page](/docs/collections/bimap) for more information. 7 | */ 8 | 9 | export * from './interface.mjs'; 10 | -------------------------------------------------------------------------------- /packages/bimap/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/bimap/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/bimap/custom": ["custom/index.mjs", "custom/index.cts"], 7 | "@rimbu/bimap": ["main/index.mjs", "main/index.cts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/bimap/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/bimap/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json"], 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/bimap/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/bimap/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/bimultimap/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/bimultimap/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/bimultimap/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/bimultimap/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/bimultimap/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/bimultimap/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/bimultimap/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/bimultimap/src/custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.mjs'; 2 | export * from './interface/generic.mjs'; 3 | export * from './interface/hashed.mjs'; 4 | export * from './interface/sorted.mjs'; 5 | export * from './implementation/immutable.mjs'; 6 | export * from './implementation/builder.mjs'; 7 | export * from './implementation/context.mjs'; 8 | -------------------------------------------------------------------------------- /packages/bimultimap/src/main/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/bimultimap` package provides BiMultiMap implementations.
5 | *
6 | * See the [Rimbu docs BiMultiMap page](https://rimbu.org/docs/collections/bimultimap) for more information. 7 | */ 8 | 9 | export * from './interface/generic/index.mjs'; 10 | export * from './interface/hashed/index.mjs'; 11 | export * from './interface/sorted/index.mjs'; 12 | -------------------------------------------------------------------------------- /packages/bimultimap/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/bimultimap/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/bimultimap/custom": ["custom/index.mjs", "custom/index.cts"], 7 | "@rimbu/bimultimap": ["main/index.mjs", "main/index.cts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/bimultimap/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/bimultimap/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/bimultimap/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/bimultimap/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/channel/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/channel/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/channel/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/channel/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/channel/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "/dist/esm/main/index.d.mts", 5 | "bundledPackages": ["@rimbu/common"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/channel/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/channel/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/channel/test/test-utils.mts: -------------------------------------------------------------------------------- 1 | import { timeout } from '../src/custom/index.mjs'; 2 | 3 | export async function expectNotResolves(promise: Promise) { 4 | await expect( 5 | Promise.any([promise, timeout(100).then(() => 'timeout')]) 6 | ).resolves.toBe('timeout'); 7 | } 8 | -------------------------------------------------------------------------------- /packages/channel/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/channel/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/channel/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/channel/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/channel/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": { 5 | "lib": ["ESNext", "DOM"] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/channel/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | import { mergeConfig } from 'vitest/config'; 3 | 4 | export default mergeConfig(commonConfig, { 5 | test: { 6 | environment: 'happy-dom', 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /packages/collection-types/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/collection-types/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/collection-types/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/collection-types/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/collection-types/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/collection-types/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/collection-types/map-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map-custom", 3 | "private": true, 4 | "main": "../dist/cjs/map-custom/index.cjs", 5 | "module": "../dist/esm/map-custom/index.mjs", 6 | "types": "../dist/cjs/map-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/collection-types/map/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map", 3 | "private": true, 4 | "main": "../dist/cjs/map/index.cjs", 5 | "module": "../dist/esm/map/index.mjs", 6 | "types": "../dist/cjs/map/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/collection-types/set-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set-custom", 3 | "private": true, 4 | "main": "../dist/cjs/set-custom/index.cjs", 5 | "module": "../dist/esm/set-custom/index.mjs", 6 | "types": "../dist/cjs/set-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/collection-types/set/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set", 3 | "private": true, 4 | "main": "../dist/cjs/set/index.cjs", 5 | "module": "../dist/esm/set/index.mjs", 6 | "types": "../dist/cjs/set/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/collection-types/src/common/index.mts: -------------------------------------------------------------------------------- 1 | export * from './types.mjs'; 2 | export * from './base.mjs'; 3 | -------------------------------------------------------------------------------- /packages/collection-types/src/map-custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from '../common/index.mjs'; 2 | export * from './interface/index.mjs'; 3 | -------------------------------------------------------------------------------- /packages/collection-types/src/map/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/collection-types/map` package provides interfaces for the variant `VariantMap` and generic `RMap` types.
5 | * See the [Rimbu docs Map page](/docs/collections/map) 6 | */ 7 | 8 | export * from './interface/variant.mjs'; 9 | export * from './interface/generic.mjs'; 10 | -------------------------------------------------------------------------------- /packages/collection-types/src/set-custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from '../common/index.mjs'; 2 | export * from './interface/base.mjs'; 3 | -------------------------------------------------------------------------------- /packages/collection-types/src/set/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/collection-types/set` package provides interfaces for the variant `VariantSet` and generic `RSet` types.
5 | * See [Rimbu docs Set page](/docs/collections/set) for more information. 6 | */ 7 | 8 | export * from './interface/variant.mjs'; 9 | export * from './interface/generic.mjs'; 10 | -------------------------------------------------------------------------------- /packages/collection-types/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/collection-types/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/collection-types/map-custom": [ 7 | "map-custom/index.mjs", 8 | "map-custom/index.cts" 9 | ], 10 | "@rimbu/collection-types/map": ["map/index.mjs", "map/index.cts"], 11 | "@rimbu/collection-types/set-custom": [ 12 | "set-custom/index.mjs", 13 | "set-custom/index.cts" 14 | ], 15 | "@rimbu/collection-types/set": ["set/index.mjs", "set/index.cts"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/collection-types/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/collection-types/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/collection-types/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d", "test-utils"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/common/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/common/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/common/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/common/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/common/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/common/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/common/src/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/common` package provides many commonly used types and utilities that can also be of use to Rimbu users.
5 | */ 6 | 7 | export * from './internal.mjs'; 8 | -------------------------------------------------------------------------------- /packages/common/src/internal.mts: -------------------------------------------------------------------------------- 1 | export * from './collect.mjs'; 2 | export * from './comp.mjs'; 3 | export * from './eq.mjs'; 4 | export * from './err.mjs'; 5 | export * from './index-range.mjs'; 6 | export * from './optlazy.mjs'; 7 | export * from './range.mjs'; 8 | export * from './traverse-state.mjs'; 9 | export * from './types.mjs'; 10 | export * from './update.mjs'; 11 | export * from './async-optlazy.mjs'; 12 | -------------------------------------------------------------------------------- /packages/common/test-d/async-to-sync.mts: -------------------------------------------------------------------------------- 1 | import { expectAssignable } from 'tsd'; 2 | 3 | import { OptLazy, AsyncOptLazy } from '../src/index.mjs'; 4 | 5 | expectAssignable>(OptLazy(5)); 6 | -------------------------------------------------------------------------------- /packages/common/test/err.test.mts: -------------------------------------------------------------------------------- 1 | import { Err, ErrBase } from '../src/index.mjs'; 2 | 3 | describe('Err/Base', () => { 4 | it('throws error', () => { 5 | expect(() => Err()).toThrow(ErrBase.ForcedError); 6 | }); 7 | 8 | it('throws error', () => { 9 | expect(() => ErrBase.msg('test')()).toThrow(ErrBase.ForcedError); 10 | }); 11 | 12 | it('has name', () => { 13 | const msg = 'abc'; 14 | const e = new ErrBase.ForcedError(msg); 15 | expect(e.message).toBe(msg); 16 | expect(e.name).toBe('ForcedError'); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /packages/common/test/optlazy.test.mts: -------------------------------------------------------------------------------- 1 | import { OptLazy, OptLazyOr } from '../src/index.mjs'; 2 | 3 | describe('OptLazy', () => { 4 | it('default', () => { 5 | const t1: number = OptLazy(1); 6 | const t2: number = OptLazy(() => 1); 7 | expect(t1).toBe(1); 8 | expect(t2).toBe(1); 9 | }); 10 | 11 | it('OptLazyOr', () => { 12 | expect(OptLazyOr(1, 2)).toBe(1); 13 | expect(OptLazyOr(() => 1, 2)).toBe(1); 14 | expect(OptLazyOr((none) => none, 2)).toBe(2); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /packages/common/test/update.test.mts: -------------------------------------------------------------------------------- 1 | import { Update } from '../src/index.mjs'; 2 | 3 | describe('Update', () => { 4 | it('updates', () => { 5 | expect(Update(5, 6)).toBe(6); 6 | expect(Update(5, () => 6)).toBe(6); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/common/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/common/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/common/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/common/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/common/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/common/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/core/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/core/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/core/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/core/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/core/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/core/menu/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "menu", 3 | "private": true, 4 | "main": "../dist/cjs/menu/index.cjs", 5 | "module": "../dist/esm/menu/index.mjs", 6 | "types": "../dist/cjs/menu/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/menu/bimultimap.mts: -------------------------------------------------------------------------------- 1 | export { 2 | HashBiMultiMap as Hashed, 3 | SortedBiMultiMap as Sorted, 4 | } from '@rimbu/bimultimap'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/graph/index.mts: -------------------------------------------------------------------------------- 1 | export * as NonValued from './non-valued/index.mjs'; 2 | export * as Valued from './valued/index.mjs'; 3 | -------------------------------------------------------------------------------- /packages/core/src/menu/graph/non-valued/arrow.mts: -------------------------------------------------------------------------------- 1 | export { 2 | ArrowGraphHashed as Hashed, 3 | ArrowGraphSorted as Sorted, 4 | } from '@rimbu/graph'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/graph/non-valued/edge.mts: -------------------------------------------------------------------------------- 1 | export { 2 | EdgeGraphHashed as Hashed, 3 | EdgeGraphSorted as Sorted, 4 | } from '@rimbu/graph'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/graph/non-valued/index.mts: -------------------------------------------------------------------------------- 1 | export * as Arrow from './arrow.mjs'; 2 | export * as Edge from './edge.mjs'; 3 | -------------------------------------------------------------------------------- /packages/core/src/menu/graph/valued/arrow.mts: -------------------------------------------------------------------------------- 1 | export { 2 | ArrowValuedGraphHashed as Hashed, 3 | ArrowValuedGraphSorted as Sorted, 4 | } from '@rimbu/graph'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/graph/valued/edge.mts: -------------------------------------------------------------------------------- 1 | export { 2 | EdgeValuedGraphHashed as Hashed, 3 | EdgeValuedGraphSorted as Sorted, 4 | } from '@rimbu/graph'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/graph/valued/index.mts: -------------------------------------------------------------------------------- 1 | export * as Arrow from './arrow.mjs'; 2 | export * as Edge from './edge.mjs'; 3 | -------------------------------------------------------------------------------- /packages/core/src/menu/index.mts: -------------------------------------------------------------------------------- 1 | import * as Menu from './menu.mjs'; 2 | 3 | export default Menu; 4 | -------------------------------------------------------------------------------- /packages/core/src/menu/map/index.mts: -------------------------------------------------------------------------------- 1 | export { HashMap as Hashed } from '@rimbu/hashed/map'; 2 | export { SortedMap as Sorted } from '@rimbu/sorted/map'; 3 | export { ProximityMap as Proximity } from '@rimbu/proximity/map'; 4 | 5 | export * as Ordered from './ordered.mjs'; 6 | -------------------------------------------------------------------------------- /packages/core/src/menu/map/ordered.mts: -------------------------------------------------------------------------------- 1 | export { 2 | OrderedHashMap as Hashed, 3 | OrderedSortedMap as Sorted, 4 | } from '@rimbu/ordered/map'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/menu.mts: -------------------------------------------------------------------------------- 1 | export { List } from '@rimbu/list'; 2 | export { AsyncStream, Stream } from '@rimbu/stream'; 3 | 4 | export * as BiMultiMap from './bimultimap.mjs'; 5 | export * as Graph from './graph/index.mjs'; 6 | export * as Map from './map/index.mjs'; 7 | export * as MultiSet from './multiset.mjs'; 8 | export * as Set from './set/index.mjs'; 9 | export * as Table from './table/index.mjs'; 10 | -------------------------------------------------------------------------------- /packages/core/src/menu/multimap/hash-key.mts: -------------------------------------------------------------------------------- 1 | export { 2 | HashMultiMapHashValue as HashValue, 3 | HashMultiMapSortedValue as SortedValue, 4 | } from '@rimbu/multimap'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/multimap/index.mts: -------------------------------------------------------------------------------- 1 | export * as HashKey from './hash-key.mjs'; 2 | export * as SortedKey from './sorted-key.mjs'; 3 | -------------------------------------------------------------------------------- /packages/core/src/menu/multimap/sorted-key.mts: -------------------------------------------------------------------------------- 1 | export { 2 | SortedMultiMapHashValue as HashValue, 3 | SortedMultiMapSortedValue as SortedValue, 4 | } from '@rimbu/multimap'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/multiset.mts: -------------------------------------------------------------------------------- 1 | export { 2 | HashMultiSet as Hashed, 3 | SortedMultiSet as Sorted, 4 | } from '@rimbu/multiset'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/set/index.mts: -------------------------------------------------------------------------------- 1 | export { HashSet as Hashed } from '@rimbu/hashed/set'; 2 | export { SortedSet as Sorted } from '@rimbu/sorted/set'; 3 | 4 | export * as Ordered from './ordered.mjs'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/set/ordered.mts: -------------------------------------------------------------------------------- 1 | export { 2 | OrderedHashSet as Hashed, 3 | OrderedSortedSet as Sorted, 4 | } from '@rimbu/ordered/set'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/table/hash-row.mts: -------------------------------------------------------------------------------- 1 | export { 2 | HashTableHashColumn as HashColumn, 3 | HashTableSortedColumn as SortedColumn, 4 | } from '@rimbu/table'; 5 | -------------------------------------------------------------------------------- /packages/core/src/menu/table/index.mts: -------------------------------------------------------------------------------- 1 | export * as HashRow from './hash-row.mjs'; 2 | export * as SortedRow from './sorted-row.mjs'; 3 | -------------------------------------------------------------------------------- /packages/core/src/menu/table/sorted-row.mts: -------------------------------------------------------------------------------- 1 | export { 2 | SortedTableHashColumn as HashColumn, 3 | SortedTableSortedColumn as SortedColumn, 4 | } from '@rimbu/table'; 5 | -------------------------------------------------------------------------------- /packages/core/test/create.test.mts: -------------------------------------------------------------------------------- 1 | import Menu from '../src/menu/index.mjs'; 2 | 3 | describe('Create', () => { 4 | it('creates', () => { 5 | expect(Menu.List.of(1, 2, 3).toArray()).toEqual([1, 2, 3]); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /packages/core/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/core/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/core/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/deep/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/deep/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/deep/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/deep/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/deep/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/deep/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/deep/src/internal.mts: -------------------------------------------------------------------------------- 1 | export type { Protected } from './protected.mjs'; 2 | export { Path } from './path.mjs'; 3 | export { type Match } from './match.mjs'; 4 | export type { Patch } from './patch.mjs'; 5 | export type { Selector } from './selector.mjs'; 6 | 7 | import * as Deep from './deep.mjs'; 8 | export { Deep }; 9 | -------------------------------------------------------------------------------- /packages/deep/test/selector.test.mts: -------------------------------------------------------------------------------- 1 | import { List } from '@rimbu/list'; 2 | 3 | import { select } from '../src/index.mjs'; 4 | 5 | describe('Selector', () => { 6 | const m = { 7 | a: 1, 8 | b: ['abc', 'def'], 9 | c: { 10 | d: true, 11 | e: [1, 'a'] as [number, string] | null, 12 | }, 13 | f: List.of(1, 2, 3), 14 | }; 15 | 16 | it('select', () => { 17 | expect(select(m, 'a')).toBe(1); 18 | expect(select(m, ['a', 'b[0]'] as const)).toEqual([1, 'abc']); 19 | expect(select(m, { a: 'a', b: 'c.e?.[0]' })).toEqual({ a: 1, b: 1 }); 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /packages/deep/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/deep/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/deep/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/deep/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/deep/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/deep/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/graph/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/graph/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/graph/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/graph/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/graph/config/api-extractor.custom.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/custom/index.d.mts", 5 | "bundledPackages": ["@rimbu/graph"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!custom.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/graph/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/graph/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/graph/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/graph/src/custom/common/index.mts: -------------------------------------------------------------------------------- 1 | export * from './interface/variant-graph-base.mjs'; 2 | export * from './interface/graph-base.mjs'; 3 | 4 | export * from './link.mjs'; 5 | export * from './valued-link.mjs'; 6 | 7 | export * from './implementation/base.mjs'; 8 | -------------------------------------------------------------------------------- /packages/graph/src/main/traverse/index.mts: -------------------------------------------------------------------------------- 1 | export * from './traverse-base.mjs'; 2 | export * from './traverse-breadth-first.mjs'; 3 | export * from './traverse-depth-first.mjs'; 4 | -------------------------------------------------------------------------------- /packages/graph/src/main/traverse/traverse-base.mts: -------------------------------------------------------------------------------- 1 | import type { 2 | Link, 3 | ValuedLink, 4 | VariantGraphBase, 5 | VariantValuedGraphBase, 6 | } from '@rimbu/graph/custom'; 7 | 8 | /** 9 | * Utility type to determine if a graph has valued or unvalued links 10 | * @typeparam G - a graph subtype 11 | * @typeparam N - the graph's node type 12 | */ 13 | export type LinkType, N> = 14 | G extends VariantValuedGraphBase ? ValuedLink : Link; 15 | -------------------------------------------------------------------------------- /packages/graph/test/arrow-graph.test.mts: -------------------------------------------------------------------------------- 1 | import { ArrowGraphHashed, ArrowGraphSorted } from '../src/main/index.mjs'; 2 | import { runArrowGraphTestsWith } from './arrow-graph-test-standard.mjs'; 3 | 4 | runArrowGraphTestsWith('ArrowGraphHashed', ArrowGraphHashed.defaultContext()); 5 | runArrowGraphTestsWith('ArrowGraphSorted', ArrowGraphSorted.defaultContext()); 6 | -------------------------------------------------------------------------------- /packages/graph/test/arrow-valued-graph.test.mts: -------------------------------------------------------------------------------- 1 | import { 2 | ArrowValuedGraphHashed, 3 | ArrowValuedGraphSorted, 4 | } from '../src/main/index.mjs'; 5 | import { runGraphTestsWith } from './arrow-valued-graph-test-standard.mjs'; 6 | 7 | runGraphTestsWith( 8 | 'ArrowValuedGraphHashed', 9 | ArrowValuedGraphHashed.defaultContext() 10 | ); 11 | 12 | runGraphTestsWith( 13 | 'ArrowValuedGraphSorted', 14 | ArrowValuedGraphSorted.defaultContext() 15 | ); 16 | -------------------------------------------------------------------------------- /packages/graph/test/edge-graph.test.mts: -------------------------------------------------------------------------------- 1 | import { EdgeGraphHashed, EdgeGraphSorted } from '../src/main/index.mjs'; 2 | import { runEdgeGraphTestsWith } from './edge-graph-test-standard.mjs'; 3 | 4 | runEdgeGraphTestsWith('EdgeGraphHashed', EdgeGraphHashed.defaultContext()); 5 | runEdgeGraphTestsWith('EdgeGraphSorted', EdgeGraphSorted.defaultContext()); 6 | -------------------------------------------------------------------------------- /packages/graph/test/edge-valued-graph.test.mts: -------------------------------------------------------------------------------- 1 | import { 2 | EdgeValuedGraphHashed, 3 | EdgeValuedGraphSorted, 4 | } from '../src/main/index.mjs'; 5 | import { runGraphTestsWith } from './edge-valued-graph-test-standard.mjs'; 6 | 7 | runGraphTestsWith( 8 | 'EdgeValuedGraphHashed', 9 | EdgeValuedGraphHashed.defaultContext() 10 | ); 11 | 12 | runGraphTestsWith( 13 | 'EdgeValuedGraphSorted', 14 | EdgeValuedGraphSorted.defaultContext() 15 | ); 16 | -------------------------------------------------------------------------------- /packages/graph/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/graph/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/graph/custom": ["custom/index.mjs", "custom/index.cts"], 7 | "@rimbu/graph": ["main/index.mjs", "main/index.cts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/graph/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/graph/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/graph/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/graph/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/hashed/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/hashed/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/hashed/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/hashed/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/hashed/common/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "common", 3 | "private": true, 4 | "main": "../dist/cjs/common/index.cjs", 5 | "module": "../dist/esm/common/index.mjs", 6 | "types": "../dist/cjs/common/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/hashed/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hashed/config/api-extractor.map.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/map/index.d.mts", 5 | "bundledPackages": ["@rimbu/hashed"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!map.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hashed/config/api-extractor.set.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/set/index.d.mts", 5 | "bundledPackages": ["@rimbu/hashed"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!set.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hashed/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/hashed/map-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map-custom", 3 | "private": true, 4 | "main": "../dist/cjs/map-custom/index.cjs", 5 | "module": "../dist/esm/map-custom/index.mjs", 6 | "types": "../dist/cjs/map-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/hashed/map/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map", 3 | "private": true, 4 | "main": "../dist/cjs/map/index.cjs", 5 | "module": "../dist/esm/map/index.mjs", 6 | "types": "../dist/cjs/map/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/hashed/set-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set-custom", 3 | "private": true, 4 | "main": "../dist/cjs/set-custom/index.cjs", 5 | "module": "../dist/esm/set-custom/index.mjs", 6 | "types": "../dist/cjs/set-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/hashed/set/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set", 3 | "private": true, 4 | "main": "../dist/cjs/set/index.cjs", 5 | "module": "../dist/esm/set/index.mjs", 6 | "types": "../dist/cjs/set/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/hashed/src/common/index.mts: -------------------------------------------------------------------------------- 1 | export * from './hasher.mjs'; 2 | export * from './hashed-custom.mjs'; 3 | -------------------------------------------------------------------------------- /packages/hashed/src/map-custom/index.mts: -------------------------------------------------------------------------------- 1 | // pure interfaces 2 | export * from './interface.mjs'; 3 | 4 | // pure classes and files 5 | export * from './implementation/immutable.mjs'; 6 | export * from './implementation/builder.mjs'; 7 | 8 | // circular dependencies 9 | export * from './implementation/context.mjs'; 10 | -------------------------------------------------------------------------------- /packages/hashed/src/map/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/hashed/map` package provides the `HashMap` implementation.
5 | *
6 | * See the [Rimbu docs Map page](/docs/collections/map) for more information. 7 | */ 8 | 9 | export * from './interface/index.mjs'; 10 | -------------------------------------------------------------------------------- /packages/hashed/src/set-custom/index.mts: -------------------------------------------------------------------------------- 1 | // pure interfaces 2 | export * from './interface.mjs'; 3 | 4 | // pure classes and files 5 | export * from './implementation/immutable.mjs'; 6 | export * from './implementation/builder.mjs'; 7 | 8 | // circular dependencies 9 | export * from './implementation/context.mjs'; 10 | -------------------------------------------------------------------------------- /packages/hashed/src/set/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/hashed/set` package provides the `HashSet` implementation.
5 | *
6 | * See the [Rimbu docs Set page](/docs/collections/set) for more information. 7 | */ 8 | 9 | export * from './interface/index.mjs'; 10 | -------------------------------------------------------------------------------- /packages/hashed/test-random/hashmap.test.mts: -------------------------------------------------------------------------------- 1 | import { runMapRandomTestsWith } from '../../collection-types/test-utils/map/map-random.mjs'; 2 | 3 | import { HashMap } from '../src/main/index.mjs'; 4 | 5 | runMapRandomTestsWith('HashMap default', HashMap.defaultContext()); 6 | 7 | runMapRandomTestsWith( 8 | 'HashMap blocksize 2', 9 | HashMap.createContext({ blockSizeBits: 2 }) 10 | ); 11 | 12 | runMapRandomTestsWith( 13 | 'HashMap blocksize 3', 14 | HashMap.createContext({ blockSizeBits: 3 }) 15 | ); 16 | -------------------------------------------------------------------------------- /packages/hashed/test/hashmap.test.mts: -------------------------------------------------------------------------------- 1 | import { runMapTestsWith } from '../../collection-types/test-utils/map/map-standard.mjs'; 2 | 3 | import { Hasher, HashMap } from '../src/main/index.mjs'; 4 | 5 | const collisionHasher: Hasher = { 6 | hash: () => 1, 7 | isValid(value: any): value is any { 8 | return true; 9 | }, 10 | }; 11 | 12 | runMapTestsWith( 13 | 'HashMap collision hasher', 14 | HashMap.createContext({ hasher: collisionHasher, blockSizeBits: 2 }) 15 | ); 16 | 17 | runMapTestsWith( 18 | 'HashMap block size 2', 19 | HashMap.createContext({ blockSizeBits: 2 }) 20 | ); 21 | -------------------------------------------------------------------------------- /packages/hashed/test/hashset.test.mts: -------------------------------------------------------------------------------- 1 | import { runSetTestsWith } from '../../collection-types/test-utils/set/set-standard.mjs'; 2 | 3 | import { Hasher, HashSet } from '../src/main/index.mjs'; 4 | 5 | runSetTestsWith( 6 | 'HashSet block size 2', 7 | HashSet.createContext({ blockSizeBits: 2 }) 8 | ); 9 | 10 | const collisionHasher: Hasher = { 11 | hash: () => 1, 12 | isValid(value: any): value is any { 13 | return true; 14 | }, 15 | }; 16 | 17 | runSetTestsWith( 18 | 'HashSet collision hasher', 19 | HashSet.createContext({ hasher: collisionHasher, blockSizeBits: 2 }) 20 | ); 21 | -------------------------------------------------------------------------------- /packages/hashed/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hashed/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hashed/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/hashed/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d", "test-random"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/hashed/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/hashed/vitest.random.config.ts: -------------------------------------------------------------------------------- 1 | import tsconfigPaths from 'vite-tsconfig-paths'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | test: { 6 | globals: true, 7 | include: ['test-random/**/*.test.mts'], 8 | }, 9 | plugins: [tsconfigPaths()], 10 | }); 11 | -------------------------------------------------------------------------------- /packages/list/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/list/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/list/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/list/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/list/config/api-extractor.custom.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "/dist/esm/custom/index.d.mts", 5 | "bundledPackages": ["@rimbu/list"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!custom.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/list/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "/dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/list/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/list/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/list/src/custom/builder/builder-base.mts: -------------------------------------------------------------------------------- 1 | import type { OptLazy } from '@rimbu/common'; 2 | 3 | import type { List } from '@rimbu/list'; 4 | import type { NonLeaf } from '@rimbu/list/custom'; 5 | 6 | export interface BuilderBase { 7 | readonly length: number; 8 | get(index: number, otherwise?: OptLazy): T | O; 9 | prepend(value: C): void; 10 | append(value: C): void; 11 | insert(index: number, value: T): void; 12 | remove(index: number): T; 13 | build(): List | NonLeaf; 14 | buildMap(f: (value: T) => T2): List | NonLeaf; 15 | } 16 | -------------------------------------------------------------------------------- /packages/list/src/custom/builder/nonleaf/nonleaf-builder.mts: -------------------------------------------------------------------------------- 1 | import type { 2 | BlockBuilder, 3 | NonLeafBlockBuilder, 4 | NonLeafTreeBuilder, 5 | } from '@rimbu/list/custom'; 6 | 7 | export type NonLeafBuilder> = 8 | | NonLeafBlockBuilder 9 | | NonLeafTreeBuilder; 10 | -------------------------------------------------------------------------------- /packages/list/src/custom/implementation/cache-map.mts: -------------------------------------------------------------------------------- 1 | export class CacheMap { 2 | readonly #map = new Map(); 3 | 4 | get(key: any): any { 5 | return this.#map.get(key); 6 | } 7 | 8 | setAndReturn(key: any, value: T): T { 9 | this.#map.set(key, value); 10 | return value; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/list/src/main/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/list` package provides the `List` implementation.
5 | *
6 | * See the [Rimbu docs List page](/docs/collections/list) for more information. 7 | */ 8 | 9 | export * from './interface.mjs'; 10 | -------------------------------------------------------------------------------- /packages/list/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/list/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/list/custom": ["custom/index.mjs", "custom/index.cts"], 7 | "@rimbu/list": ["main/index.mjs", "main/index.cts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/list/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/list/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/list/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d", "test-random"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/list/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | ...commonConfig, 6 | test: { 7 | ...commonConfig.test, 8 | setupFiles: ['./test/setupTests.mts'], 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /packages/list/vitest.random.config.ts: -------------------------------------------------------------------------------- 1 | import tsconfigPaths from 'vite-tsconfig-paths'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | test: { 6 | globals: true, 7 | include: ['test-random/**/*.test.mts'], 8 | testTimeout: 0, 9 | }, 10 | plugins: [tsconfigPaths()], 11 | }); 12 | -------------------------------------------------------------------------------- /packages/multimap/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/multimap/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/multimap/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/multimap/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/multimap/config/api-extractor.custom.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/custom/index.d.mts", 5 | "bundledPackages": ["@rimbu/multimap"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!custom.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/multimap/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/multimap/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/multimap/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/multimap/src/custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.mjs'; 2 | export * from './interface/creators.mjs'; 3 | export * from './implementation/base.mjs'; 4 | -------------------------------------------------------------------------------- /packages/multimap/test-random/hashmultimaphashvalue.test.mts: -------------------------------------------------------------------------------- 1 | import { HashSet } from '@rimbu/hashed'; 2 | 3 | import { runMultiMapRandomTestsWith } from './multimap-test-random.mjs'; 4 | 5 | import { HashMultiMapHashValue } from '../src/main/index.mjs'; 6 | 7 | runMultiMapRandomTestsWith( 8 | 'HashMultiMapHashValue default', 9 | HashMultiMapHashValue.defaultContext(), 10 | HashSet.defaultContext(), 11 | true 12 | ); 13 | -------------------------------------------------------------------------------- /packages/multimap/test-random/hashmultimapsortedvalue.test.mts: -------------------------------------------------------------------------------- 1 | import { HashSet } from '@rimbu/hashed'; 2 | 3 | import { runMultiMapRandomTestsWith } from './multimap-test-random.mjs'; 4 | 5 | import { HashMultiMapSortedValue } from '../src/main/index.mjs'; 6 | 7 | runMultiMapRandomTestsWith( 8 | 'HashMultiMapSortedValue default', 9 | HashMultiMapSortedValue.defaultContext(), 10 | HashSet.defaultContext(), 11 | true 12 | ); 13 | -------------------------------------------------------------------------------- /packages/multimap/test-random/sortedmultimaphashvalue.test.mts: -------------------------------------------------------------------------------- 1 | import { HashSet } from '@rimbu/hashed'; 2 | 3 | import { runMultiMapRandomTestsWith } from './multimap-test-random.mjs'; 4 | 5 | import { SortedMultiMapHashValue } from '../src/main/index.mjs'; 6 | 7 | runMultiMapRandomTestsWith( 8 | 'SortedMultiMapHashValue default', 9 | SortedMultiMapHashValue.defaultContext(), 10 | HashSet.defaultContext(), 11 | true 12 | ); 13 | -------------------------------------------------------------------------------- /packages/multimap/test-random/sortedmultimapsortedvalue.test.mts: -------------------------------------------------------------------------------- 1 | import { HashSet } from '@rimbu/hashed'; 2 | 3 | import { runMultiMapRandomTestsWith } from './multimap-test-random.mjs'; 4 | 5 | import { SortedMultiMapSortedValue } from '../src/main/index.mjs'; 6 | 7 | runMultiMapRandomTestsWith( 8 | 'SortedMultiMapSortedValue default', 9 | SortedMultiMapSortedValue.defaultContext(), 10 | HashSet.defaultContext(), 11 | true 12 | ); 13 | -------------------------------------------------------------------------------- /packages/multimap/test/hashmultimaphashvalue.test.mts: -------------------------------------------------------------------------------- 1 | import { runMultiMapTestsWith } from './multimap-test-standard.mjs'; 2 | 3 | import { HashMultiMapHashValue } from '../src/main/index.mjs'; 4 | 5 | runMultiMapTestsWith( 6 | 'HashMultiMapHashValue', 7 | HashMultiMapHashValue.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/multimap/test/hashmultimapsortedvalue.test.mts: -------------------------------------------------------------------------------- 1 | import { runMultiMapTestsWith } from './multimap-test-standard.mjs'; 2 | 3 | import { HashMultiMapSortedValue } from '../src/main/index.mjs'; 4 | 5 | runMultiMapTestsWith( 6 | 'HashMultiMapSortedValue', 7 | HashMultiMapSortedValue.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/multimap/test/sortedmultimaphashvalue.test.mts: -------------------------------------------------------------------------------- 1 | import { SortedMultiMapHashValue } from '../src/main/index.mjs'; 2 | 3 | import { runMultiMapTestsWith } from './multimap-test-standard.mjs'; 4 | 5 | runMultiMapTestsWith( 6 | 'SortedMultiMapHashValue', 7 | SortedMultiMapHashValue.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/multimap/test/sortedmultimapsortedvalue.test.mts: -------------------------------------------------------------------------------- 1 | import { SortedMultiMapSortedValue } from '../src/main/index.mjs'; 2 | 3 | import { runMultiMapTestsWith } from './multimap-test-standard.mjs'; 4 | 5 | runMultiMapTestsWith( 6 | 'SortedMultiMapSortedValue', 7 | SortedMultiMapSortedValue.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/multimap/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/multimap/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/multimap/custom": ["custom/index.mjs", "custom/index.cts"], 7 | "@rimbu/multimap": ["main/index.mjs", "main/index.cts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/multimap/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/multimap/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/multimap/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/multimap/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/multimap/vitest.random.config.ts: -------------------------------------------------------------------------------- 1 | import tsconfigPaths from 'vite-tsconfig-paths'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | test: { 6 | globals: true, 7 | include: ['test-random/**/*.test.mts'], 8 | }, 9 | plugins: [tsconfigPaths()], 10 | }); 11 | -------------------------------------------------------------------------------- /packages/multiset/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/multiset/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/multiset/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/multiset/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/multiset/config/api-extractor.custom.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/custom/index.d.mts", 5 | "bundledPackages": ["@rimbu/multiset"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!custom.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/multiset/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/multiset/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/multiset/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/multiset/src/custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.mjs'; 2 | export * from './interface/creators.mjs'; 3 | export * from './implementation/base.mjs'; 4 | -------------------------------------------------------------------------------- /packages/multiset/src/main/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/multiset` package provides implementations for various MultiSets.
5 | *
6 | * See the [Rimbu docs MultiSet page](/docs/collections/multiset) for more information. 7 | */ 8 | 9 | export * from './interface/generic/variant.mjs'; 10 | export * from './interface/generic/generic.mjs'; 11 | 12 | export * from './interface/hashed/interface.mjs'; 13 | export * from './interface/sorted/interface.mjs'; 14 | -------------------------------------------------------------------------------- /packages/multiset/test-random/hashmultiset.test.mts: -------------------------------------------------------------------------------- 1 | import { HashMultiSet } from '../src/main/index.mjs'; 2 | 3 | import { runMultiSetRandomTestsWith } from './multiset-test-random.mjs'; 4 | 5 | runMultiSetRandomTestsWith( 6 | 'HashMultiSet default', 7 | HashMultiSet.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/multiset/test-random/sortedmultiset.test.mts: -------------------------------------------------------------------------------- 1 | import { SortedMultiSet } from '../src/main/index.mjs'; 2 | 3 | import { runMultiSetRandomTestsWith } from './multiset-test-random.mjs'; 4 | 5 | runMultiSetRandomTestsWith( 6 | 'SortedMultiSet default', 7 | SortedMultiSet.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/multiset/test/hashmultiset.test.mts: -------------------------------------------------------------------------------- 1 | import { HashMultiSet } from '../src/main/index.mjs'; 2 | 3 | import { runMultiSetTestsWith } from './multiset-test-standard.mjs'; 4 | 5 | runMultiSetTestsWith('HashMultiSet', HashMultiSet.defaultContext()); 6 | -------------------------------------------------------------------------------- /packages/multiset/test/sortedmultiset.test.mts: -------------------------------------------------------------------------------- 1 | import { SortedMultiSet } from '../src/main/index.mjs'; 2 | 3 | import { runMultiSetTestsWith } from './multiset-test-standard.mjs'; 4 | 5 | runMultiSetTestsWith('SortedMultiSet', SortedMultiSet.defaultContext()); 6 | -------------------------------------------------------------------------------- /packages/multiset/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/multiset/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/multiset/custom": ["custom/index.mjs", "custom/index.cts"], 7 | "@rimbu/multiset": ["main/index.mjs", "main/index.cts"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/multiset/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/multiset/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/multiset/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d", "test-random"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/multiset/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/multiset/vitest.random.config.ts: -------------------------------------------------------------------------------- 1 | import tsconfigPaths from 'vite-tsconfig-paths'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | test: { 6 | globals: true, 7 | include: ['test-random/**/*.test.mts'], 8 | }, 9 | plugins: [tsconfigPaths()], 10 | }); 11 | -------------------------------------------------------------------------------- /packages/ordered/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/ordered/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/ordered/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/ordered/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/ordered/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ordered/config/api-extractor.map.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/map/index.d.mts", 5 | "bundledPackages": ["@rimbu/ordered"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!map.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ordered/config/api-extractor.set.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/set/index.d.mts", 5 | "bundledPackages": ["@rimbu/ordered"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!set.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ordered/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/ordered/map-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map-custom", 3 | "private": true, 4 | "main": "../dist/cjs/map-custom/index.cjs", 5 | "module": "../dist/esm/map-custom/index.mjs", 6 | "types": "../dist/cjs/map-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/ordered/map/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map", 3 | "private": true, 4 | "main": "../dist/cjs/map/index.cjs", 5 | "module": "../dist/esm/map/index.mjs", 6 | "types": "../dist/cjs/map/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/ordered/set-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set-custom", 3 | "private": true, 4 | "main": "../dist/cjs/set-custom/index.cjs", 5 | "module": "../dist/esm/set-custom/index.mjs", 6 | "types": "../dist/cjs/set-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/ordered/set/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set", 3 | "private": true, 4 | "main": "../dist/cjs/set/index.cjs", 5 | "module": "../dist/esm/set/index.mjs", 6 | "types": "../dist/cjs/set/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/ordered/src/map-custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.mjs'; 2 | export * from './interface/creators.mjs'; 3 | export * from './implementation/builder.mjs'; 4 | export * from './implementation/empty.mjs'; 5 | export * from './implementation/non-empty.mjs'; 6 | export * from './implementation/context.mjs'; 7 | -------------------------------------------------------------------------------- /packages/ordered/src/map/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/ordered/map` package provides various `OrderedMap` implementations.
5 | *
6 | * See the [Rimbu docs Map page](/docs/collections/map) for more information.
7 | */ 8 | 9 | export * from './interface/ordered-map.mjs'; 10 | export * from './interface/ordered-hash-map.mjs'; 11 | export * from './interface/ordered-sorted-map.mjs'; 12 | -------------------------------------------------------------------------------- /packages/ordered/src/set-custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.mjs'; 2 | export * from './interface/creators.mjs'; 3 | export * from './implementation/builder.mjs'; 4 | export * from './implementation/empty.mjs'; 5 | export * from './implementation/non-empty.mjs'; 6 | export * from './implementation/context.mjs'; 7 | -------------------------------------------------------------------------------- /packages/ordered/src/set/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/ordered/set` package provides various `OrderedSet` implementations.
5 | *
6 | * See the [Rimbu docs Set page](/docs/collections/set) for more information.
7 | */ 8 | 9 | export * from './interface/ordered-set.mjs'; 10 | export * from './interface/ordered-hash-set.mjs'; 11 | export * from './interface/ordered-sorted-set.mjs'; 12 | -------------------------------------------------------------------------------- /packages/ordered/test/orderedmap.test.mts: -------------------------------------------------------------------------------- 1 | import { runMapTestsWith } from '../../collection-types/test-utils/map/map-standard.mjs'; 2 | 3 | import { OrderedHashMap, OrderedSortedMap } from '../src/main/index.mjs'; 4 | 5 | runMapTestsWith( 6 | 'OrderedHashMap default', 7 | OrderedHashMap.defaultContext() 8 | ); 9 | 10 | runMapTestsWith( 11 | 'OrderedSortedMap default', 12 | OrderedSortedMap.defaultContext() 13 | ); 14 | -------------------------------------------------------------------------------- /packages/ordered/test/orderedset.test.mts: -------------------------------------------------------------------------------- 1 | import { runSetTestsWith } from '../../collection-types/test-utils/set/set-standard.mjs'; 2 | 3 | import { OrderedHashSet, OrderedSortedSet } from '../src/main/index.mjs'; 4 | 5 | runSetTestsWith( 6 | 'OrderedHashSet default', 7 | OrderedHashSet.defaultContext() 8 | ); 9 | runSetTestsWith( 10 | 'OrderedSortedSet default', 11 | OrderedSortedSet.defaultContext() 12 | ); 13 | -------------------------------------------------------------------------------- /packages/ordered/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/ordered/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ordered/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/ordered/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/ordered/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/proximity/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/proximity/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/proximity/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/proximity/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/proximity/common/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "common", 3 | "private": true, 4 | "main": "../dist/cjs/common/index.cjs", 5 | "module": "../dist/esm/common/index.mjs", 6 | "types": "../dist/cjs/common/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/proximity/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/proximity/config/api-extractor.map.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/map/index.d.mts", 5 | "bundledPackages": ["@rimbu/proximity"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!map.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/proximity/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/proximity/map-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map-custom", 3 | "private": true, 4 | "main": "../dist/cjs/map-custom/index.cjs", 5 | "module": "../dist/esm/map-custom/index.mjs", 6 | "types": "../dist/cjs/map-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/proximity/map/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map", 3 | "private": true, 4 | "main": "../dist/cjs/map/index.cjs", 5 | "module": "../dist/esm/map/index.mjs", 6 | "types": "../dist/cjs/map/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/proximity/src/common/index.mts: -------------------------------------------------------------------------------- 1 | export * from './distanceFunction.mjs'; 2 | export * from './keyMatching.mjs'; 3 | -------------------------------------------------------------------------------- /packages/proximity/src/main/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/proximity` package provides implementations of `ProximityMap`.
5 | *
6 | * See the [Rimbu docs Map page](/docs/collections/map) for more information. 7 | *
8 | * This is a convenience package that exports everything from the following sub-packages:
9 | * - [`@rimbu/proximity/common`](./common)
10 | * - [`@rimbu/proximity/map`](/api/rimbu/proximity/map)
11 | */ 12 | 13 | export * from '@rimbu/proximity/common'; 14 | export * from '@rimbu/proximity/map'; 15 | -------------------------------------------------------------------------------- /packages/proximity/src/map-custom/implementation/index.mts: -------------------------------------------------------------------------------- 1 | export * from './Empty.mjs'; 2 | export * from './NonEmpty.mjs'; 3 | -------------------------------------------------------------------------------- /packages/proximity/src/map-custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './implementation/index.mjs'; 2 | 3 | export * from './builder.mjs'; 4 | export * from './context.mjs'; 5 | -------------------------------------------------------------------------------- /packages/proximity/test/ProximityMap.test.mts: -------------------------------------------------------------------------------- 1 | import { runMapTestsWith } from '../../collection-types/test-utils/map/map-standard.mjs'; 2 | 3 | import { ProximityMap } from '../src/map/index.mjs'; 4 | 5 | runMapTestsWith( 6 | 'ProximityMap with default options', 7 | ProximityMap.createContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/proximity/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/proximity/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/proximity/common": ["common/index.mjs", "common/index.cts"], 7 | "@rimbu/proximity/map": ["map/index.mjs", "map/index.cts"], 8 | "@rimbu/proximity/map-custom": [ 9 | "map-custom/index.mjs", 10 | "map-custom/index.cts" 11 | ] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/proximity/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/proximity/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/proximity/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d", "test-random"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/proximity/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/proximity/vitest.random.config.ts: -------------------------------------------------------------------------------- 1 | import tsconfigPaths from 'vite-tsconfig-paths'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | test: { 6 | globals: true, 7 | include: ['test-random/**/*.test.mts'], 8 | }, 9 | plugins: [tsconfigPaths()], 10 | }); 11 | -------------------------------------------------------------------------------- /packages/reactor/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/reactor/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/reactor/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/reactor/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/reactor/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/reactor/src/index.mts: -------------------------------------------------------------------------------- 1 | export { Reactor, useForceRerender } from './internal.mjs'; 2 | -------------------------------------------------------------------------------- /packages/reactor/src/internal.mts: -------------------------------------------------------------------------------- 1 | // no dependencies 2 | export * from './types.mjs'; 3 | export * from './use-force-rerender.mjs'; 4 | export * from './update-selector-value.mjs'; 5 | export * from './register-selector.mjs'; 6 | export * from './unregister-selector.mjs'; 7 | 8 | // internal dependencies 9 | export * from './reactor.mjs'; 10 | -------------------------------------------------------------------------------- /packages/reactor/src/types.mts: -------------------------------------------------------------------------------- 1 | import type { Actor } from '@rimbu/actor'; 2 | import type { Deep } from '@rimbu/deep'; 3 | 4 | export type SelectorEntry = { 5 | value: unknown; 6 | listeners: Map; 7 | }; 8 | 9 | export type SelectorCache = Map, SelectorEntry>; 10 | -------------------------------------------------------------------------------- /packages/reactor/src/use-force-rerender.mts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export function useForceRerender(): () => void { 4 | const setState = React.useState(0)[1]; 5 | 6 | return (): void => setState((v) => (v + 1) | 0); 7 | } 8 | -------------------------------------------------------------------------------- /packages/reactor/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/reactor/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/reactor/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/reactor/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/reactor/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | import { mergeConfig } from 'vitest/config'; 3 | 4 | export default mergeConfig(commonConfig, { 5 | test: { 6 | environment: 'happy-dom', 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /packages/sorted/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/sorted/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/sorted/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/sorted/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/sorted/common/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "common", 3 | "private": true, 4 | "main": "../dist/cjs/common/index.cjs", 5 | "module": "../dist/esm/common/index.mjs", 6 | "types": "../dist/cjs/common/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/sorted/config/api-extractor.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/common/index.d.mts", 5 | "bundledPackages": ["@rimbu/sorted"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!common.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/sorted/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": [], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/sorted/config/api-extractor.map.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/map/index.d.mts", 5 | "bundledPackages": ["@rimbu/sorted"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!map.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/sorted/config/api-extractor.set.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/set/index.d.mts", 5 | "bundledPackages": ["@rimbu/sorted"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!set.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/sorted/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/sorted/map-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map-custom", 3 | "private": true, 4 | "main": "../dist/cjs/map-custom/index.cjs", 5 | "module": "../dist/esm/map-custom/index.mjs", 6 | "types": "../dist/cjs/map-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/sorted/map/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "map", 3 | "private": true, 4 | "main": "../dist/cjs/map/index.cjs", 5 | "module": "../dist/esm/map/index.mjs", 6 | "types": "../dist/cjs/map/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/sorted/set-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set-custom", 3 | "private": true, 4 | "main": "../dist/cjs/set-custom/index.cjs", 5 | "module": "../dist/esm/set-custom/index.mjs", 6 | "types": "../dist/cjs/set-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/sorted/set/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "set", 3 | "private": true, 4 | "main": "../dist/cjs/set/index.cjs", 5 | "module": "../dist/esm/set/index.mjs", 6 | "types": "../dist/cjs/set/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/sorted/src/common/index.mts: -------------------------------------------------------------------------------- 1 | export * from './sorted-index.mjs'; 2 | export * from './base.mjs'; 3 | -------------------------------------------------------------------------------- /packages/sorted/src/common/sorted-index.mts: -------------------------------------------------------------------------------- 1 | export namespace SortedIndex { 2 | export function next(index: number): number { 3 | return index >= 0 ? -index - 2 : -index - 1; 4 | } 5 | 6 | export function prev(index: number): number { 7 | return index >= 0 ? -index - 1 : -index - 2; 8 | } 9 | 10 | export const firstChild = -1; 11 | 12 | export function compare(i1: number, i2: number): number { 13 | if (Object.is(i1, i2)) return 0; 14 | 15 | const v1 = i1 >= 0 ? i1 : -i1 - 1.5; 16 | const v2 = i2 >= 0 ? i2 : -i2 - 1.5; 17 | 18 | return v1 - v2; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /packages/sorted/src/map-custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './creators.mjs'; 2 | export * from './implementation/builder.mjs'; 3 | export * from './implementation/immutable.mjs'; 4 | export * from './implementation/context.mjs'; 5 | -------------------------------------------------------------------------------- /packages/sorted/src/map/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/sorted/map` package provides `SortedMap` implementations.
5 | *
6 | * See the [Rimbu docs Map page](/docs/collections/map) for more information. 7 | */ 8 | 9 | export * from './interface/index.mjs'; 10 | -------------------------------------------------------------------------------- /packages/sorted/src/set-custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './creators.mjs'; 2 | export * from './implementation/builder.mjs'; 3 | export * from './implementation/immutable.mjs'; 4 | export * from './implementation/context.mjs'; 5 | -------------------------------------------------------------------------------- /packages/sorted/src/set/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/sorted/set` package provides `SortedSet` implementations.
5 | *
6 | * See the [Rimbu docs Set page](/docs/collections/set) for more information. 7 | */ 8 | 9 | export * from './interface/index.mjs'; 10 | -------------------------------------------------------------------------------- /packages/sorted/test-random/sortedmap-random-tests.test.mts: -------------------------------------------------------------------------------- 1 | import { runMapRandomTestsWith } from '../../collection-types/test-utils/map/map-random.mjs'; 2 | 3 | import { SortedMap } from '../src/main/index.mjs'; 4 | 5 | runMapRandomTestsWith('SortedMap default', SortedMap.defaultContext()); 6 | -------------------------------------------------------------------------------- /packages/sorted/test-random/sortedset-random-tests.test.mts: -------------------------------------------------------------------------------- 1 | import { runSetRandomTestsWith } from '../../collection-types/test-utils/set/set-random.mjs'; 2 | 3 | import { SortedSet } from '../src/main/index.mjs'; 4 | 5 | runSetRandomTestsWith('SortedSet default', SortedSet.defaultContext()); 6 | -------------------------------------------------------------------------------- /packages/sorted/test/sortedmap.test.mts: -------------------------------------------------------------------------------- 1 | import { runMapTestsWith } from '../../collection-types/test-utils/map/map-standard.mjs'; 2 | 3 | import { SortedMap } from '../src/main/index.mjs'; 4 | 5 | runMapTestsWith( 6 | 'SortedMap blockSize 2', 7 | SortedMap.createContext({ blockSizeBits: 2 }) 8 | ); 9 | 10 | runMapTestsWith( 11 | 'SortedMap blockSize 3', 12 | SortedMap.createContext({ blockSizeBits: 3 }) 13 | ); 14 | -------------------------------------------------------------------------------- /packages/sorted/test/sortedset.test.mts: -------------------------------------------------------------------------------- 1 | import { runSetTestsWith } from '../../collection-types/test-utils/set/set-standard.mjs'; 2 | 3 | import { SortedSet } from '../src/main/index.mjs'; 4 | 5 | runSetTestsWith( 6 | 'SortedSet blockSize 2', 7 | SortedSet.createContext({ blockSizeBits: 2 }) 8 | ); 9 | 10 | runSetTestsWith( 11 | 'SortedSet blockSize 3', 12 | SortedSet.createContext({ blockSizeBits: 3 }) 13 | ); 14 | -------------------------------------------------------------------------------- /packages/sorted/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/sorted/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/sorted/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/sorted/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d", "test-random"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/sorted/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/sorted/vitest.random.config.ts: -------------------------------------------------------------------------------- 1 | import tsconfigPaths from 'vite-tsconfig-paths'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | test: { 6 | globals: true, 7 | include: ['test-random/**/*.test.mts'], 8 | }, 9 | plugins: [tsconfigPaths()], 10 | }); 11 | -------------------------------------------------------------------------------- /packages/spy/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/spy/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/spy/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/spy/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/spy/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/index.d.mts", 5 | "bundledPackages": ["@rimbu/spy"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/spy/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/spy/src/index.mts: -------------------------------------------------------------------------------- 1 | export * from './spy.mjs'; 2 | -------------------------------------------------------------------------------- /packages/spy/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/spy/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/spy/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/spy/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/spy/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/stream/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/stream/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/stream/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/stream/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/stream/async-custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async-custom", 3 | "private": true, 4 | "main": "../dist/cjs/async-custom/index.cjs", 5 | "module": "../dist/esm/async-custom/index.mjs", 6 | "types": "../dist/cjs/async-custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/stream/async/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async", 3 | "private": true, 4 | "main": "../dist/cjs/async/index.cjs", 5 | "module": "../dist/esm/async/index.mjs", 6 | "types": "../dist/cjs/async/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/stream/config/api-extractor.async.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/async/index.d.mts", 5 | "bundledPackages": ["@rimbu/stream"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!async.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stream/config/api-extractor.custom.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/custom/index.d.mts", 5 | "bundledPackages": ["@rimbu/stream"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!custom.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stream/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/main/index.d.mts", 5 | "bundledPackages": ["@rimbu/stream"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stream/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/stream/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/stream/src/async-custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './constructors.mjs'; 2 | export * from './utils.mjs'; 3 | 4 | export * from './async-fast-iterator-base.mjs'; 5 | export * from './async-stream-custom.mjs'; 6 | -------------------------------------------------------------------------------- /packages/stream/src/async-custom/utils.mts: -------------------------------------------------------------------------------- 1 | export async function closeIters( 2 | ...iters: (AsyncIterator | undefined | null)[] 3 | ): Promise { 4 | await Promise.all( 5 | iters.map((i) => { 6 | i?.return?.(); 7 | }) 8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /packages/stream/src/async/async-fast-iterable.mts: -------------------------------------------------------------------------------- 1 | import type { AsyncFastIterator } from '@rimbu/stream/async'; 2 | 3 | export interface AsyncFastIterable extends AsyncIterable { 4 | [Symbol.asyncIterator](): AsyncFastIterator; 5 | } 6 | -------------------------------------------------------------------------------- /packages/stream/src/async/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/stream/async` package provides the `AsyncStream` implementations.
5 | *
6 | * See the [Rimbu docs Stream page](/docs/collections/stream) for more information. 7 | */ 8 | 9 | export * from './async-stream-source.mjs'; 10 | export * from './async-fast-iterator.mjs'; 11 | export * from './async-fast-iterable.mjs'; 12 | export * from './async-streamable.mjs'; 13 | 14 | export * from './async-stream.mjs'; 15 | 16 | export * from './async-reducer.mjs'; 17 | export * from './async-transformer.mjs'; 18 | -------------------------------------------------------------------------------- /packages/stream/src/custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './constructors.mjs'; 2 | 3 | export * from './fast-iterator-custom.mjs'; 4 | export * from './stream-custom.mjs'; 5 | -------------------------------------------------------------------------------- /packages/stream/src/main/fast-iterable.mts: -------------------------------------------------------------------------------- 1 | import type { FastIterator } from './index.mjs'; 2 | 3 | /** 4 | * An interface that extends the standard `Iterable` interface to return 5 | * a `FastIterator` instead of a normal `Iterator`. 6 | * @typeparam T - the element type 7 | */ 8 | export interface FastIterable extends Iterable { 9 | /** 10 | * Returns a `FastIterator` instance used to iterate over the values of this `Iterable`. 11 | */ 12 | [Symbol.iterator](): FastIterator; 13 | } 14 | -------------------------------------------------------------------------------- /packages/stream/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/stream/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/stream/async": ["async/index.mts", "async/index.cts"], 7 | "@rimbu/stream/async-custom": [ 8 | "async-custom/index.mts", 9 | "async-custom/index.cts" 10 | ], 11 | "@rimbu/stream/custom": ["custom/index.mts", "custom/index.cts"], 12 | "@rimbu/stream": ["main/index.mts", "main/index.cts"] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/stream/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/stream/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/stream/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/stream/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/table/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/main/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/table/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/table/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/table/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/table/config/api-extractor.custom.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "dist/esm/custom/index.d.mts", 5 | "bundledPackages": ["@rimbu/table"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/!custom.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/table/config/api-extractor.main.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", 3 | "extends": "/../../config/api-extractor.json", 4 | "mainEntryPointFilePath": "/dist/esm/main/index.d.mts", 5 | "bundledPackages": ["@rimbu/table"], 6 | "docModel": { 7 | "enabled": true, 8 | "apiJsonFilePath": "/../../doc-gen/input/.api.json" 9 | }, 10 | "compiler": { 11 | "tsconfigFilePath": "/tsconfig.extractor.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/table/custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom", 3 | "private": true, 4 | "main": "../dist/cjs/custom/index.cjs", 5 | "module": "../dist/esm/custom/index.mjs", 6 | "types": "../dist/cjs/custom/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/table/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/table/hash-row/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hash-row", 3 | "private": true, 4 | "main": "../dist/cjs/hash-row/index.cjs", 5 | "module": "../dist/esm/hash-row/index.mjs", 6 | "types": "../dist/cjs/hash-row/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/table/sorted-row/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sorted-row", 3 | "private": true, 4 | "main": "../dist/cjs/sorted-row/index.cjs", 5 | "module": "../dist/esm/sorted-row/index.mjs", 6 | "types": "../dist/cjs/sorted-row/index.d.cts" 7 | } 8 | -------------------------------------------------------------------------------- /packages/table/src/custom/index.mts: -------------------------------------------------------------------------------- 1 | export * from './interface/base.mjs'; 2 | export * from './interface/creators.mjs'; 3 | export * from './implementation/base.mjs'; 4 | -------------------------------------------------------------------------------- /packages/table/src/hash-row/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/table/hash-row` package provides tables with hashed row key implementations.
5 | *
6 | * See the [Rimbu docs Table page](/docs/collections/table) for more information. 7 | */ 8 | 9 | export * from './hash-column/interface.mjs'; 10 | export * from './sorted-column/interface.mjs'; 11 | -------------------------------------------------------------------------------- /packages/table/src/sorted-row/index.mts: -------------------------------------------------------------------------------- 1 | /** 2 | * @packageDocumentation 3 | * 4 | * The `@rimbu/table/sorted-row` package provides tables with sorted row key implementations.
5 | *
6 | * See the [Rimbu docs Table page](/docs/collections/table) for more information. 7 | */ 8 | 9 | export * from './hash-column/interface.mjs'; 10 | export * from './sorted-column/interface.mjs'; 11 | -------------------------------------------------------------------------------- /packages/table/test-random/hashtablehashcolumn.test.mts: -------------------------------------------------------------------------------- 1 | import { runTableRandomTestsWith } from './table-test-random.mjs'; 2 | 3 | import { HashTableHashColumn } from '../src/main/index.mjs'; 4 | 5 | runTableRandomTestsWith( 6 | 'HashTableHashColumn default', 7 | HashTableHashColumn.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/table/test-random/hashtablesortedcolumn.test.mts: -------------------------------------------------------------------------------- 1 | import { runTableRandomTestsWith } from './table-test-random.mjs'; 2 | 3 | import { HashTableSortedColumn } from '../src/main/index.mjs'; 4 | 5 | runTableRandomTestsWith( 6 | 'HashTableSortedColumn default', 7 | HashTableSortedColumn.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/table/test-random/sortedtablehashcolumn.test.mts: -------------------------------------------------------------------------------- 1 | import { runTableRandomTestsWith } from './table-test-random.mjs'; 2 | 3 | import { SortedTableHashColumn } from '../src/main/index.mjs'; 4 | 5 | runTableRandomTestsWith( 6 | 'SortedTableHashColumn default', 7 | SortedTableHashColumn.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/table/test-random/sortedtablesortedcolumn.test.mts: -------------------------------------------------------------------------------- 1 | import { runTableRandomTestsWith } from './table-test-random.mjs'; 2 | 3 | import { SortedTableSortedColumn } from '../src/main/index.mjs'; 4 | 5 | runTableRandomTestsWith( 6 | 'SortedTableSortedColumn default', 7 | SortedTableSortedColumn.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/table/test/hashtablehashcolumn.test.mts: -------------------------------------------------------------------------------- 1 | import { runTableTestsWith } from '../test-utils/table-standard-test.mjs'; 2 | 3 | import { HashTableHashColumn } from '../src/main/index.mjs'; 4 | 5 | runTableTestsWith( 6 | 'HashTableHashColumn default', 7 | HashTableHashColumn.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/table/test/hashtablesortedcolumn.test.mts: -------------------------------------------------------------------------------- 1 | import { runTableTestsWith } from '../test-utils/table-standard-test.mjs'; 2 | 3 | import { HashTableSortedColumn } from '../src/main/index.mjs'; 4 | 5 | runTableTestsWith( 6 | 'HashTableSortedColumn default', 7 | HashTableSortedColumn.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/table/test/sortedtablehashcolumn.test.mts: -------------------------------------------------------------------------------- 1 | import { runTableTestsWith } from '../test-utils/table-standard-test.mjs'; 2 | 3 | import { SortedTableHashColumn } from '../src/main/index.mjs'; 4 | 5 | runTableTestsWith( 6 | 'SortedTableHashColumn default', 7 | SortedTableHashColumn.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/table/test/sortedtablesortedcolumn.test.mts: -------------------------------------------------------------------------------- 1 | import { runTableTestsWith } from '../test-utils/table-standard-test.mjs'; 2 | 3 | import { SortedTableSortedColumn } from '../src/main/index.mjs'; 4 | 5 | runTableTestsWith( 6 | 'SortedTableSortedColumn default', 7 | SortedTableSortedColumn.defaultContext() 8 | ); 9 | -------------------------------------------------------------------------------- /packages/table/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/table/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src", 5 | "paths": { 6 | "@rimbu/table/custom": ["custom/index.mjs", "custom/index.cts"], 7 | "@rimbu/table/hash-row": ["hash-row/index.mjs", "hash-row/index.cts"], 8 | "@rimbu/table/sorted-row": [ 9 | "sorted-row/index.mjs", 10 | "sorted-row/index.cts" 11 | ], 12 | "@rimbu/table": ["main/index.mjs", "main/index.cts"] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/table/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/table/tsconfig.extractor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../config/tsconfig.extractor.base.json", 3 | "include": ["src"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/table/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d", "test-random"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/table/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /packages/table/vitest.random.config.ts: -------------------------------------------------------------------------------- 1 | import tsconfigPaths from 'vite-tsconfig-paths'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | test: { 6 | globals: true, 7 | include: ['test-random/**/*.test.mts'], 8 | }, 9 | plugins: [tsconfigPaths()], 10 | }); 11 | -------------------------------------------------------------------------------- /packages/typical/.denoifyrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "./_deno_prepare/src/index.ts", 3 | "replacer": "../../config/denoify-rimbu-replacer.js", 4 | "includes": ["README.md", "LICENSE", "CHANGELOG.md"], 5 | "out": "./deno_dist" 6 | } 7 | -------------------------------------------------------------------------------- /packages/typical/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /packages/typical/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /packages/typical/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /packages/typical/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../config/eslint.config.mjs'; 2 | 3 | export default baseConfig; 4 | -------------------------------------------------------------------------------- /packages/typical/src/index.mts: -------------------------------------------------------------------------------- 1 | import type * as U from './utils.mjs'; 2 | import type * as Str from './str.mjs'; 3 | import type * as StrNum from './strnum.mjs'; 4 | import type * as Num from './num.mjs'; 5 | 6 | export type { U, Str, StrNum, Num }; 7 | -------------------------------------------------------------------------------- /packages/typical/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.cjs.base.json", "./tsconfig.common.json"], 3 | "include": ["_cjs_prepare"], 4 | "compilerOptions": { 5 | "outDir": "./dist/cjs", 6 | "baseUrl": "./_cjs_prepare" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/typical/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "rootDirs": [".", ".."], 4 | "baseUrl": "./src" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/typical/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.esm.base.json", "./tsconfig.common.json"], 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "outDir": "./dist/esm" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/typical/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../config/tsconfig.base.json", "./tsconfig.common.json"], 3 | "include": ["src", "test", "test-d"], 4 | "compilerOptions": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/typical/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import commonConfig from '../../config/vitest.config.common'; 2 | 3 | export default commonConfig; 4 | -------------------------------------------------------------------------------- /performance/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../config/.eslintrc.json"], 3 | "rules": { 4 | "@typescript-eslint/explicit-function-return-type": "warn" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /performance/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | -------------------------------------------------------------------------------- /performance/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | -------------------------------------------------------------------------------- /performance/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require('../config/.prettierrc.cjs'); 2 | -------------------------------------------------------------------------------- /performance/src/benchmark.mts: -------------------------------------------------------------------------------- 1 | export * from './arr.mjs'; 2 | export * from './list.mjs'; 3 | -------------------------------------------------------------------------------- /performance/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../config/tsconfig.esm.base.json", 3 | "include": ["src"], 4 | "compilerOptions": { 5 | "rootDir": ".", 6 | "outDir": "bin", 7 | "paths": { 8 | "@rimbu/base": ["../packages/base"], 9 | "@rimbu/core": ["../packages/core"] 10 | } 11 | } 12 | } 13 | --------------------------------------------------------------------------------