@fluidframework/core-utils
Advanced tools
Comparing version 2.1.0-281041 to 2.1.0
# @fluidframework/core-utils | ||
## 2.1.0 | ||
Dependency updates only. | ||
## 2.0.0-rc.5.0.0 | ||
@@ -4,0 +8,0 @@ |
{ | ||
"name": "@fluidframework/core-utils", | ||
"version": "2.1.0-281041", | ||
"version": "2.1.0", | ||
"description": "Not intended for use outside the Fluid client repo.", | ||
@@ -72,7 +72,7 @@ "homepage": "https://fluidframework.com", | ||
"@biomejs/biome": "~1.8.3", | ||
"@fluid-internal/mocha-test-setup": "2.1.0-281041", | ||
"@fluid-internal/mocha-test-setup": "~2.1.0", | ||
"@fluid-tools/benchmark": "^0.47.0", | ||
"@fluid-tools/build-cli": "^0.40.0", | ||
"@fluid-tools/build-cli": "^0.41.0", | ||
"@fluidframework/build-common": "^2.0.3", | ||
"@fluidframework/build-tools": "^0.40.0", | ||
"@fluidframework/build-tools": "^0.41.0", | ||
"@fluidframework/core-utils-previous": "npm:@fluidframework/core-utils@2.0.0", | ||
@@ -79,0 +79,0 @@ "@fluidframework/eslint-config-fluid": "^5.3.0", |
112
README.md
@@ -6,7 +6,38 @@ # @fluidframework/core-utils | ||
<!-- AUTO-GENERATED-CONTENT:START (README_PACKAGE_SCOPE_NOTICE:scopeKind=INTERNAL) --> | ||
<!-- AUTO-GENERATED-CONTENT:START (LIBRARY_PACKAGE_README_HEADER) --> | ||
**IMPORTANT: This package is intended strictly as an implementation detail of the Fluid Framework and is not intended for public consumption.** | ||
**We make no stability guarantees regarding its APIs.** | ||
<!-- prettier-ignore-start --> | ||
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. --> | ||
## Using Fluid Framework libraries | ||
When taking a dependency on a Fluid Framework library's public APIs, we recommend using a `^` (caret) version range, such as `^1.3.4`. | ||
While Fluid Framework libraries may use different ranges with interdependencies between other Fluid Framework libraries, | ||
library consumers should always prefer `^`. | ||
If using any of Fluid Framework's unstable APIs (for example, its `beta` APIs), we recommend using a more constrained version range, such as `~`. | ||
## Installation | ||
To get started, install the package by running the following command: | ||
```bash | ||
npm i @fluidframework/core-utils | ||
``` | ||
## Importing from this package | ||
This package leverages [package.json exports](https://nodejs.org/api/packages.html#exports) to separate its APIs by support level. | ||
For more information on the related support guarantees, see [API Support Levels](https://fluidframework.com/docs/build/releases-and-apitags/#api-support-levels). | ||
To access the `public` ([SemVer](https://semver.org/)) APIs, import via `@fluidframework/core-utils` like normal. | ||
To access the `legacy` APIs, import via `@fluidframework/core-utils/legacy`. | ||
## API Documentation | ||
API documentation for **@fluidframework/core-utils** is available at <https://fluidframework.com/docs/apis/core-utils>. | ||
<!-- prettier-ignore-end --> | ||
<!-- AUTO-GENERATED-CONTENT:END --> | ||
@@ -40,3 +71,3 @@ | ||
<!-- AUTO-GENERATED-CONTENT:START (README_DEPENDENCY_GUIDELINES_SECTION:includeHeading=TRUE) --> | ||
<!-- AUTO-GENERATED-CONTENT:START (LIBRARY_PACKAGE_README_FOOTER) --> | ||
@@ -46,19 +77,72 @@ <!-- prettier-ignore-start --> | ||
## Using Fluid Framework libraries | ||
## Minimum Client Requirements | ||
When taking a dependency on a Fluid Framework library's public APIs, we recommend using a `^` (caret) version range, such as `^1.3.4`. | ||
While Fluid Framework libraries may use different ranges with interdependencies between other Fluid Framework libraries, | ||
library consumers should always prefer `^`. | ||
These are the platform requirements for the current version of Fluid Framework Client Packages. | ||
These requirements err on the side of being too strict since within a major version they can be relaxed over time, but not made stricter. | ||
For Long Term Support (LTS) versions this can require supporting these platforms for several years. | ||
If using any of Fluid Framework's unstable APIs (for example, its `beta` APIs), we recommend using a more constrained version range, such as `~`. | ||
It is likely that other configurations will work, but they are not supported: if they stop working, we do not consider that a bug. | ||
If you would benefit from support for something not listed here, file an issue and the product team will evaluate your request. | ||
When making such a request please include if the configuration already works (and thus the request is just that it becomes officially supported), or if changes are required to get it working. | ||
<!-- prettier-ignore-end --> | ||
### Supported Runtimes | ||
<!-- AUTO-GENERATED-CONTENT:END --> | ||
- NodeJs ^20.10.0 except that we will drop support for it [when NodeJs 20 loses its upstream support on 2026-04-30](https://github.com/nodejs/release#release-schedule), and will support a newer LTS version of NodeJS (22) at least 1 year before 20 is end-of-life. This same policy applies to NodeJS 22 when it is end of life (2027-04-30). | ||
- Modern browsers supporting the es2022 standard library: in response to asks we can add explicit support for using babel to polyfill to target specific standards or runtimes (meaning we can avoid/remove use of things that don't polyfill robustly, but otherwise target modern standards). | ||
<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) --> | ||
### Supported Tools | ||
<!-- prettier-ignore-start --> | ||
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. --> | ||
- TypeScript 5.4: | ||
- All [`strict`](https://www.typescriptlang.org/tsconfig) options are supported. | ||
- [`strictNullChecks`](https://www.typescriptlang.org/tsconfig) is required. | ||
- [Configuration options deprecated in 5.0](https://github.com/microsoft/TypeScript/issues/51909) are not supported. | ||
- `exactOptionalPropertyTypes` is currently not fully supported. | ||
If used, narrowing members of Fluid Framework types types using `in`, `Reflect.has`, `Object.hasOwn` or `Object.prototype.hasOwnProperty` should be avoided as they may incorrectly exclude `undefined` from the possible values in some cases. | ||
- [webpack](https://webpack.js.org/) 5 | ||
- We are not intending to be prescriptive about what bundler to use. | ||
Other bundlers which can handle ES Modules should work, but webpack is the only one we actively test. | ||
### Module Resolution | ||
[`Node16`, `NodeNext`, or `Bundler`](https://www.typescriptlang.org/tsconfig#moduleResolution) resolution should be used with TypeScript compilerOptions to follow the [Node.js v12+ ESM Resolution and Loading algorithm](https://nodejs.github.io/nodejs.dev/en/api/v20/esm/#resolution-and-loading-algorithm). | ||
Node10 resolution is not supported as it does not support Fluid Framework's API structuring pattern that is used to distinguish stable APIs from those that are in development. | ||
### Module Formats | ||
- ES Modules: | ||
ES Modules are the preferred way to consume our client packages (including in NodeJs) and consuming our client packages from ES Modules is fully supported. | ||
- CommonJs: | ||
Consuming our client packages as CommonJs is supported only in NodeJS and only for the cases listed below. | ||
This is done to accommodate some workflows without good ES Module support. | ||
If you have a workflow you would like included in this list, file an issue. | ||
Once this list of workflows motivating CommonJS support is empty, we may drop support for CommonJS one year after notice of the change is posted here. | ||
- Testing with Jest (which lacks [stable ESM support](https://jestjs.io/docs/ecmascript-modules) due to [unstable APIs in NodeJs](https://github.com/nodejs/node/issues/37648)) | ||
## Contribution Guidelines | ||
There are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid. | ||
- Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions). | ||
- [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in. | ||
- Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls). | ||
- [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md). | ||
Detailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki). | ||
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). | ||
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. | ||
This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services. | ||
Use of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks). | ||
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. | ||
## Help | ||
Not finding what you're looking for in this README? Check out [fluidframework.com](https://fluidframework.com/docs/). | ||
Still not finding what you're looking for? Please [file an issue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests). | ||
Thank you! | ||
## Trademark | ||
@@ -65,0 +149,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
259051
0
156
8