Welcome
Welcome to the new documentation pages! We are rebuilding our docs on top of Docusaurus to provide a better developer experience.
diff --git a/.changeset/README.md b/.changeset/README.md
deleted file mode 100644
index e5b6d8d6..00000000
--- a/.changeset/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Changesets
-
-Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
-with multi-package repos, or single-package repos to help you version and publish your code. You can
-find the full documentation for it [in our repository](https://github.com/changesets/changesets)
-
-We have a quick list of common questions to get you started engaging with this project in
-[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
diff --git a/.changeset/big-turkeys-smile.md b/.changeset/big-turkeys-smile.md
deleted file mode 100644
index 690c008d..00000000
--- a/.changeset/big-turkeys-smile.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/prototype-utils": minor
----
-
-Added `Prototype`.
diff --git a/.changeset/clever-maps-press.md b/.changeset/clever-maps-press.md
deleted file mode 100644
index e6a070e8..00000000
--- a/.changeset/clever-maps-press.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Updated `BindingMetadata` with `serviceIdentifier` and `getAncestor`.
diff --git a/.changeset/cold-birds-bow.md b/.changeset/cold-birds-bow.md
deleted file mode 100644
index 54a1667c..00000000
--- a/.changeset/cold-birds-bow.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `Binding`.
diff --git a/.changeset/config.json b/.changeset/config.json
deleted file mode 100644
index edef2ebc..00000000
--- a/.changeset/config.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json",
- "changelog": "@changesets/cli/changelog",
- "commit": false,
- "fixed": [],
- "linked": [],
- "access": "restricted",
- "baseBranch": "main",
- "updateInternalDependencies": "patch",
- "ignore": []
-}
diff --git a/.changeset/cuddly-suits-do.md b/.changeset/cuddly-suits-do.md
deleted file mode 100644
index 1c05b869..00000000
--- a/.changeset/cuddly-suits-do.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": major
----
-
-Removed `LegacyTarget`.
diff --git a/.changeset/cyan-carrots-flash.md b/.changeset/cyan-carrots-flash.md
deleted file mode 100644
index 149c9213..00000000
--- a/.changeset/cyan-carrots-flash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `optional`.
diff --git a/.changeset/early-coins-study.md b/.changeset/early-coins-study.md
deleted file mode 100644
index 6bd8a91d..00000000
--- a/.changeset/early-coins-study.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-"@inversifyjs/common": patch
-"@inversifyjs/core": patch
-"@inversifyjs/strongly-typed": patch
-"@inversifyjs/reflect-metadata-utils": patch
----
-
-Updated rollup config to provide right source map file paths.
diff --git a/.changeset/five-toes-study.md b/.changeset/five-toes-study.md
deleted file mode 100644
index 40b43616..00000000
--- a/.changeset/five-toes-study.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `multiInject`.
diff --git a/.changeset/gentle-deers-sleep.md b/.changeset/gentle-deers-sleep.md
deleted file mode 100644
index 088585ef..00000000
--- a/.changeset/gentle-deers-sleep.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `resolve`.
diff --git a/.changeset/gentle-moles-sneeze.md b/.changeset/gentle-moles-sneeze.md
deleted file mode 100644
index 1c416a25..00000000
--- a/.changeset/gentle-moles-sneeze.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": major
----
-
-Removed `LegacyMetadata`.
diff --git a/.changeset/green-beans-own.md b/.changeset/green-beans-own.md
deleted file mode 100644
index 4bfd246f..00000000
--- a/.changeset/green-beans-own.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/container": minor
----
-
-Added `Container`.
diff --git a/.changeset/green-garlics-doubt.md b/.changeset/green-garlics-doubt.md
deleted file mode 100644
index dfe83cc0..00000000
--- a/.changeset/green-garlics-doubt.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `named`.
diff --git a/.changeset/itchy-coins-agree.md b/.changeset/itchy-coins-agree.md
deleted file mode 100644
index d2093de2..00000000
--- a/.changeset/itchy-coins-agree.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/container": minor
----
-
-Added `InversifyContainerError`.
diff --git a/.changeset/modern-grapes-fly.md b/.changeset/modern-grapes-fly.md
deleted file mode 100644
index c611a802..00000000
--- a/.changeset/modern-grapes-fly.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `resolveServiceDeactivations`.
diff --git a/.changeset/moody-candles-hammer.md b/.changeset/moody-candles-hammer.md
deleted file mode 100644
index 039121da..00000000
--- a/.changeset/moody-candles-hammer.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `ActivationService`.
diff --git a/.changeset/nasty-spoons-walk.md b/.changeset/nasty-spoons-walk.md
deleted file mode 100644
index c074cf09..00000000
--- a/.changeset/nasty-spoons-walk.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `plan`.
diff --git a/.changeset/neat-humans-guess.md b/.changeset/neat-humans-guess.md
deleted file mode 100644
index 0cc19bed..00000000
--- a/.changeset/neat-humans-guess.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": major
----
-
-Removed `getClassMetadataFromMetadataReader`.
diff --git a/.changeset/new-yaks-own.md b/.changeset/new-yaks-own.md
deleted file mode 100644
index cb9e92c6..00000000
--- a/.changeset/new-yaks-own.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `postConstruct`.
diff --git a/.changeset/plenty-spiders-help.md b/.changeset/plenty-spiders-help.md
deleted file mode 100644
index 5ba92573..00000000
--- a/.changeset/plenty-spiders-help.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": major
----
-
-Updated `getClassMetadata` to no longer rely on legacy reflected metadata
diff --git a/.changeset/purple-eyes-jam.md b/.changeset/purple-eyes-jam.md
deleted file mode 100644
index be4c7fec..00000000
--- a/.changeset/purple-eyes-jam.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `unmanaged`.
diff --git a/.changeset/rare-bats-complain.md b/.changeset/rare-bats-complain.md
deleted file mode 100644
index 68579ea8..00000000
--- a/.changeset/rare-bats-complain.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `DeactivationsService`.
diff --git a/.changeset/rare-ghosts-rule.md b/.changeset/rare-ghosts-rule.md
deleted file mode 100644
index ea32c006..00000000
--- a/.changeset/rare-ghosts-rule.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/container": minor
----
-
-Added `ContainerModule`.
diff --git a/.changeset/real-goats-sleep.md b/.changeset/real-goats-sleep.md
deleted file mode 100644
index 43a66bc2..00000000
--- a/.changeset/real-goats-sleep.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `tagged`.
diff --git a/.changeset/rude-pans-remain.md b/.changeset/rude-pans-remain.md
deleted file mode 100644
index 2219b6f5..00000000
--- a/.changeset/rude-pans-remain.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/reflect-metadata-utils": major
----
-
-Updated `updateReflectMetadata` to receive a default value builder.
diff --git a/.changeset/shaggy-wasps-tickle.md b/.changeset/shaggy-wasps-tickle.md
deleted file mode 100644
index d3985b59..00000000
--- a/.changeset/shaggy-wasps-tickle.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `injectFromBase`.
diff --git a/.changeset/shiny-carrots-reflect.md b/.changeset/shiny-carrots-reflect.md
deleted file mode 100644
index d55b71b1..00000000
--- a/.changeset/shiny-carrots-reflect.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/reflect-metadata-utils": minor
----
-
-Added `setReflectMetadata`.
diff --git a/.changeset/short-ads-kick.md b/.changeset/short-ads-kick.md
deleted file mode 100644
index e8490064..00000000
--- a/.changeset/short-ads-kick.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Updated `ClassMetadata` with `scope`.
diff --git a/.changeset/shy-pandas-confess.md b/.changeset/shy-pandas-confess.md
deleted file mode 100644
index 1a512a59..00000000
--- a/.changeset/shy-pandas-confess.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `BindingService`.
diff --git a/.changeset/strong-lies-dance.md b/.changeset/strong-lies-dance.md
deleted file mode 100644
index f9298e8e..00000000
--- a/.changeset/strong-lies-dance.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `inject`.
diff --git a/.changeset/strong-needles-retire.md b/.changeset/strong-needles-retire.md
deleted file mode 100644
index 98474e77..00000000
--- a/.changeset/strong-needles-retire.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/prototype-utils": minor
----
-
-Added `getBaseType`.
diff --git a/.changeset/sweet-fans-turn.md b/.changeset/sweet-fans-turn.md
deleted file mode 100644
index 5758bc7e..00000000
--- a/.changeset/sweet-fans-turn.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": major
----
-
-Remove `getTargets`.
diff --git a/.changeset/tall-buckets-wonder.md b/.changeset/tall-buckets-wonder.md
deleted file mode 100644
index 70b6c39a..00000000
--- a/.changeset/tall-buckets-wonder.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `preDestroy`.
diff --git a/.changeset/thin-rats-refuse.md b/.changeset/thin-rats-refuse.md
deleted file mode 100644
index 545a32bc..00000000
--- a/.changeset/thin-rats-refuse.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": major
----
-
-Removed `LegacyMetadataReader`.
diff --git a/.changeset/two-kings-camp.md b/.changeset/two-kings-camp.md
deleted file mode 100644
index ac34d0df..00000000
--- a/.changeset/two-kings-camp.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/common": minor
----
-
-Added `isPromise`.
diff --git a/.changeset/witty-worms-wash.md b/.changeset/witty-worms-wash.md
deleted file mode 100644
index 0fb0d5b3..00000000
--- a/.changeset/witty-worms-wash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/container": minor
----
-
-Added `BindToFluentSyntax`.
diff --git a/.changeset/young-chefs-draw.md b/.changeset/young-chefs-draw.md
deleted file mode 100644
index 6ad51d15..00000000
--- a/.changeset/young-chefs-draw.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@inversifyjs/core": minor
----
-
-Added `injectable`.
diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
deleted file mode 100644
index 589a3851..00000000
--- a/.github/ISSUE_TEMPLATE/bug.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-name: Bug Report 🪲
-description: Create a bug report to help us improve
-title: '[Bug]: '
-labels: ['Bug Report', 'Needs Triage']
-body:
- - type: markdown
- attributes:
- value: |
- # Please follow these steps first:
- - type: markdown
- attributes:
- value: |
- ## Troubleshoot
- If the library is not behaving the way you expect, we'd ask you to look at the [documentation](https://inversify.io) and search the [issue tracker](https://github.com/inversify/monorepo/issues) for evidence supporting your expectation. Please make reasonable efforts to troubleshoot and rule out issues with your code, the configuration, or any 3rd party libraries you might be using.
- - type: markdown
- attributes:
- value: |
- ## Make a minimal reproduction
- To file the report, you will need to provide a minimal (but complete) example and simple/clear steps on how to reproduce the bug.
-
- The simpler you can make it, the more likely we are to successfully verify and fix the bug.
- - type: markdown
- attributes:
- value: |
- :bangbang: Bug reports without a minimal reproduction will be rejected. :bangbang:
-
- ---
- - type: input
- id: version
- attributes:
- label: Version
- description: |
- The version of library you are using.
- Is it the latest? Test and see if the bug has already been fixed.
- placeholder: ex. 1.0.0
- validations:
- required: true
- - type: textarea
- id: reproduction
- attributes:
- label: Steps to reproduce
- description: Please provide a minimal reproduction and describe accurately how we can reproduce/verify the bug.
- placeholder: |
- Example steps (replace with your own):
- 1. Clone my repo at https://github.com/ We could not find what you were looking for. Please contact the owner of the site that linked you to the original URL and let them know their link is broken. Your Docusaurus site did not load properly. A very common reason is a wrong site baseUrl configuration. Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+' We suggest trying baseUrl = ArchivePage Not Found
0&&(0,c.jsx)(vt,{links:n}),logo:r&&(0,c.jsx)(xt,{logo:r}),copyright:t&&(0,c.jsx)(St,{copyright:t})})}const Ct=r.memo(_t);var At=(0,R.fM)([B.a,k.o,N.Tv,Ie.VQ,i.Jx,function(e){var t=e.children;return(0,c.jsx)(L.y_,{children:(0,c.jsx)(P.e,{children:(0,c.jsx)(I,{children:t})})})}]);function Tt(e){var t=e.children;return(0,c.jsx)(At,{children:t})}var jt=n(5261);function Ot(e){var t=e.error,n=e.tryAgain;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(jt.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(Xe,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(Je,{error:t})})]})})})}const Pt={mainWrapper:"mainWrapper_zmkI"};function Nt(e){var t=e.children,n=e.noFooter,r=e.wrapperClassName,l=e.title,s=e.description;return(0,y.J)(),(0,c.jsxs)(Tt,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(b,{}),(0,c.jsx)(O,{}),(0,c.jsx)(ut,{}),(0,c.jsx)("div",{id:d,className:(0,a.A)(h.G.wrapper.main,Pt.mainWrapper,r),children:(0,c.jsx)(o.A,{fallback:function(e){return(0,c.jsx)(Ot,Object.assign({},e))},children:t})}),!n&&(0,c.jsx)(Ct,{})]})}},6438:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(4528),a=(n(2581),n(1435)),o=n(6264),i=n(2531),l=n(2516),s=n(8076),u=n(9793),c=["imageClassName","titleClassName"];function d(e){var t=e.logo,n=e.alt,r=e.imageClassName,a={light:(0,o.Ay)(t.src),dark:(0,o.Ay)(t.srcDark||t.src)},i=(0,u.jsx)(s.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,u.jsx)("div",{className:r,children:i}):i}function f(e){var t,n=(0,i.A)().siteConfig.title,s=(0,l.p)().navbar,f=s.title,p=s.logo,m=e.imageClassName,g=e.titleClassName,h=(0,r.A)(e,c),y=(0,o.Ay)((null==p?void 0:p.href)||"/"),v=f?"":n,b=null!=(t=null==p?void 0:p.alt)?t:v;return(0,u.jsxs)(a.A,Object.assign({to:y},h,(null==p?void 0:p.target)&&{target:p.target},{children:[p&&(0,u.jsx)(d,{logo:p,alt:b,imageClassName:m}),null!=f&&(0,u.jsx)("b",{className:g,children:f})]}))}},6284:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(2581);var r=n(1726),a=n(9793);function o(e){var t=e.locale,n=e.version,o=e.tag,i=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},8076:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(4528),a=n(2581),o=n(4921),i=n(3578),l=n(3147);const s={themedComponent:"themedComponent_fDA4","themedComponent--light":"themedComponent--light_PlZ_","themedComponent--dark":"themedComponent--dark_R0Z3"};var u=n(9793);function c(e){var t=e.className,n=e.children,r=(0,i.A)(),c=(0,l.G)().colorMode;return(0,u.jsx)(u.Fragment,{children:(r?"dark"===c?["dark"]:["light"]:["light","dark"]).map((function(e){var r=n({theme:e,className:(0,o.A)(t,s.themedComponent,s["themedComponent--"+e])});return(0,u.jsx)(a.Fragment,{children:r},e)}))})}var d=["sources","className","alt"];function f(e){var t=e.sources,n=e.className,a=e.alt,o=(0,r.A)(e,d);return(0,u.jsx)(c,{className:n,children:function(e){var n=e.theme,r=e.className;return(0,u.jsx)("img",Object.assign({src:t[n],alt:a,className:r},o))}})}},7776:(e,t,n)=>{"use strict";n.d(t,{N:()=>w,u:()=>f});var r=n(4528),a=n(2581),o=n(7684),i=n(9970),l=n(3107),s=n(9793),u=["collapsed"],c=["lazy"],d="ease-in-out";function f(e){var t=e.initialState,n=(0,a.useState)(null!=t&&t),r=n[0],o=n[1],i=(0,a.useCallback)((function(){o((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:o,toggleCollapsed:i}}var p={display:"none",overflow:"hidden",height:"0px"},m={display:"block",overflow:"visible",height:"auto"};function g(e,t){var n=t?p:m;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function h(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,o=(0,a.useRef)(!1);(0,a.useEffect)((function(){var e,a=t.current;function i(){var e,t,n=a.scrollHeight,o=null!=(e=null==r?void 0:r.duration)?e:function(e){if((0,l.O)())return 1;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+o+"ms "+(null!=(t=null==r?void 0:r.easing)?t:d),height:n+"px"}}function s(){var e=i();a.style.transition=e.transition,a.style.height=e.height}if(!o.current)return g(a,n),void(o.current=!0);return a.style.willChange="height",e=requestAnimationFrame((function(){n?(s(),requestAnimationFrame((function(){a.style.height=p.height,a.style.overflow=p.overflow}))):(a.style.display="block",requestAnimationFrame((function(){s()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function y(e){if(!o.A.canUseDOM)return e?p:m}function v(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,o=e.children,i=e.animation,l=e.onCollapseTransitionEnd,u=e.className,c=e.disableSSRStyle,d=(0,a.useRef)(null);return h({collapsibleRef:d,collapsed:r,animation:i}),(0,s.jsx)(n,{ref:d,style:c?void 0:y(r),onTransitionEnd:function(e){"height"===e.propertyName&&(g(d.current,r),null==l||l(r))},className:u,children:o})}function b(e){var t=e.collapsed,n=(0,r.A)(e,u),o=(0,a.useState)(!t),l=o[0],c=o[1],d=(0,a.useState)(t),f=d[0],p=d[1];return(0,i.A)((function(){t||c(!0)}),[t]),(0,i.A)((function(){l&&p(t)}),[l,t]),l?(0,s.jsx)(v,Object.assign({},n,{collapsed:f})):null}function w(e){var t=e.lazy,n=(0,r.A)(e,c),a=t?b:v;return(0,s.jsx)(a,Object.assign({},n))}},2899:(e,t,n)=>{"use strict";n.d(t,{M:()=>g,o:()=>m});var r=n(2581),a=n(3578),o=n(408),i=n(724),l=n(2516),s=n(9793),u=(0,o.Wf)("docusaurus.announcement.dismiss"),c=(0,o.Wf)("docusaurus.announcement.id"),d=function(){return"true"===u.get()},f=function(e){return u.set(String(e))},p=r.createContext(null);function m(e){var t=e.children,n=function(){var e=(0,l.p)().announcementBar,t=(0,a.A)(),n=(0,r.useState)((function(){return!!t&&d()})),o=n[0],i=n[1];(0,r.useEffect)((function(){i(d())}),[]);var s=(0,r.useCallback)((function(){f(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;c.set(t),r&&f(!1),!r&&d()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!o,close:s}}),[e,o,s])}();return(0,s.jsx)(p.Provider,{value:n,children:t})}function g(){var e=(0,r.useContext)(p);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},3147:(e,t,n)=>{"use strict";n.d(t,{G:()=>y,a:()=>h});var r=n(2581),a=n(7684),o=n(724),i=n(408),l=n(2516),s=n(9793),u=r.createContext(void 0),c="theme",d=(0,i.Wf)(c),f={light:"light",dark:"dark"},p=function(e){return e===f.dark?f.dark:f.light},m=function(e){return a.A.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e)},g=function(e){d.set(p(e))};function h(e){var t=e.children,n=function(){var e=(0,l.p)().colorMode,t=e.defaultMode,n=e.disableSwitch,a=e.respectPrefersColorScheme,o=(0,r.useState)(m(t)),i=o[0],s=o[1];(0,r.useEffect)((function(){n&&d.del()}),[n]);var u=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,o=void 0===r||r;e?(s(e),o&&g(e)):(s(a?window.matchMedia("(prefers-color-scheme: dark)").matches?f.dark:f.light:t),d.del())}),[a,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",p(i))}),[i]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===c){var t=d.get();null!==t&&u(p(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,u]);var h=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||a){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||h.current?h.current=window.matchMedia("print").matches:u(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[u,n,a]),(0,r.useMemo)((function(){return{colorMode:i,setColorMode:u,get isDarkTheme(){return i===f.dark},setLightTheme:function(){u(f.light)},setDarkTheme:function(){u(f.dark)}}}),[i,u])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function y(){var e=(0,r.useContext)(u);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},8659:(e,t,n)=>{"use strict";n.d(t,{e:()=>p,M:()=>m});var r=n(2581),a=n(1534),o=n(495),i=n(8516),l=n(724);function s(e){!function(e){var t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}var u=n(2516),c=n(9793),d=r.createContext(void 0);function f(){var e,t=(e=(0,a.YL)(),0===(0,u.p)().navbar.items.length&&!e.component),n=(0,o.l)(),i=!t&&"mobile"===n,l=(0,r.useState)(!1),c=l[0],d=l[1];s((function(){if(c)return d(!1),!1}));var f=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:i,toggle:f,shown:c}}),[t,i,f,c])}function p(e){var t=e.children,n=f();return(0,c.jsx)(d.Provider,{value:n,children:t})}function m(){var e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},1534:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(2581),a=n(724),o=n(9793),i=r.createContext(null);function l(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){var e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){var t=e.component,n=e.props,o=(0,r.useContext)(i);if(!o)throw new a.dV("NavbarSecondaryMenuContentProvider");var l=o[1],s=(0,a.Be)(n);return(0,r.useEffect)((function(){l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((function(){return function(){return l({component:null,props:null})}}),[l]),null}},4407:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(2581),a="navigation-with-keyboard";function o(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},495:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(2581),a=n(7684),o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(e){var t=(void 0===e?{}:e).desktopBreakpoint,n=void 0===t?i:t,l=(0,r.useState)((function(){return"ssr"})),s=l[0],u=l[1];return(0,r.useEffect)((function(){function e(){u(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(n))}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[n]),s}},9349:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},3107:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},8032:(e,t,n)=>{"use strict";n.d(t,{$z:()=>o,sb:()=>a});var r=n(2436);function a(e){return Array.from(new Set(e))}function o(e,t){for(var n,a={},o=0,i=(0,r.A)(e);!(n=i()).done;){var l=n.value,s=t(l,o);null!=a[s]||(a[s]=[]),a[s].push(l),o+=1}return a}},1378:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>c,Jx:()=>p});var r=n(2581),a=n(4921),o=n(1726),i=n(8116),l=n(6264),s=n(2531);var u=n(9793);function c(e){var t=e.title,n=e.description,r=e.keywords,a=e.image,i=e.children,c=function(e){var t=(0,s.A)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,l.hH)().withBaseUrl,f=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.A,{children:[t&&(0,u.jsx)("title",{children:c}),t&&(0,u.jsx)("meta",{property:"og:title",content:c}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),f&&(0,u.jsx)("meta",{property:"og:image",content:f}),f&&(0,u.jsx)("meta",{name:"twitter:image",content:f}),i]})}var d=r.createContext(void 0);function f(e){var t=e.className,n=e.children,i=r.useContext(d),l=(0,a.A)(i,t);return(0,u.jsxs)(d.Provider,{value:l,children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("html",{className:l})}),n]})}function p(e){var t=e.children,n=(0,i.A)(),r="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),o="plugin-id-"+n.plugin.id;return(0,u.jsx)(f,{className:(0,a.A)(r,o),children:t})}},724:(e,t,n)=>{"use strict";n.d(t,{dV:()=>m,fM:()=>h,_q:()=>f,ZC:()=>p,Be:()=>g});var r=n(1627),a=n(6710);function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}var i=n(8413);function l(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(l=function(){return!!e})()}function s(e){var t="function"==typeof Map?new Map:void 0;return s=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(l())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var a=new(e.bind.apply(e,r));return n&&(0,i.A)(a,n.prototype),a}(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,i.A)(n,e)},s(e)}var u=n(2581),c=n(9970),d=n(9793);function f(e){var t=(0,u.useRef)(e);return(0,c.A)((function(){t.current=e}),[e]),(0,u.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,u.useRef)();return(0,c.A)((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var a,o,i;return(i=e.call(this)||this).name="ReactContextError",i.message="Hook "+(null!=(a=null==(o=i.stack)||null==(o=o.split("\n")[1])||null==(o=o.match((0,r.A)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:o.groups.name)?a:"")+" is called outside the <"+t+">. "+(null!=n?n:""),i}return(0,a.A)(t,e),t}(s(Error));function g(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,u.useMemo)((function(){return e}),t.flat())}function h(e){return function(t){var n=t.children;return(0,d.jsx)(d.Fragment,{children:e.reduceRight((function(e,t){return(0,d.jsx)(t,{children:e})}),n)})}}},4459:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(2581),a=n(7370),o=n(2531);function i(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){var e=(0,o.A)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:a.A,baseUrl:e})}),[e])}},2702:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>u,gk:()=>p});var r=n(2581),a=n(7684),o=n(3578),i=(n(9970),n(724)),l=n(9793);var s=r.createContext(void 0);function u(e){var t,n=e.children,a=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return(0,l.jsx)(s.Provider,{value:a,children:n})}function c(){var e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}var d=function(){return a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function f(e,t){void 0===t&&(t=[]);var n=c().scrollEventsEnabledRef,a=(0,r.useRef)(d()),o=(0,i._q)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=d();o(e,a.current),a.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[o,n].concat(t))}function p(){var e=(0,r.useRef)(null),t=(0,o.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var a=document.documentElement.scrollTop;(n&&a>e||!n&&a.comment
can become .namespace--comment
) or replace them with your defined ones (like .editor__comment
). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll
and highlightAllUnder
methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},4505:(e,t,n)=>{const r=n(6474),a=n(7151),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(9798).resolve(t)],delete Prism.languages[e],n(9798)(t),o.add(e)}))}i.silent=!1,e.exports=i},1143:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s{"use strict";e.exports=n(3220)},9793:(e,t,n)=>{"use strict";e.exports=n(4931)},1892:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(A),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]/g,(function(){return n})).replace(/*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/Archive
This docs will include the latest released version of inversify
. Major Pre releases will be documented as well so you can learn about them and discuss then in the prerelease discussion thread.
+
Welcome to the new documentation pages! We are rebuilding our docs on top of Docusaurus to provide a better developer experience.
Welcome to the new documentation pages! We are rebuilding our docs on top of Docusaurus to provide a better developer experience.
This docs will include the latest released version of inversify
. Major Pre releases will be documented as well so you can learn about them and discuss then in the prerelease discussion thread.
+
Welcome to the new documentation pages! We are rebuilding our docs on top of Docusaurus to provide a better developer experience.
+ +This docs will include the latest released version of inversify
. Major Pre releases will be documented as well so you can learn about them and discuss then in the prerelease discussion thread.
Initialize your first container and add some bindings:
+Experimental decorators and Emit Decorator Metadata options must be enabled in order to use this library.
import { Container, injectable, inject } from 'inversify';
interface Weapon {
damage: number
}
@injectable()
class Katana {
public readonly damage: number = 10;
}
@injectable()
class Ninja {
constructor (
@inject(Katana)
public readonly weapon: Weapon
) {}
}
const container: Container = new Container();
container.bind(Ninja).toSelf();
container.bind(Katana).toSelf();
const ninja: Ninja = container.get(Ninja);
console.log(ninja.weapon.damage); // Prints 10
@injectable
allows both Katana
and Ninja
classes to be used as container bindings. @inject
provides metadata with Ninja
dependencies so the container is aware a Katana
should be provided as the first argument of Ninja
's constructor.
Bindings are provided through the Container
API.
Whith these two steps, we are ready to initialize our very first ninja!
A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript
InversifyJS is powered by TypeScript. TypeScript enable JavaScript developers to use highly-productive development tools and practices when developing JavaScript applications.
InversifyJS compiles to clean, simple JavaScript code which runs on any browser, in Node.js, or in any JavaScript engine that supports ECMAScript 2022 (or newer)
Inversifyjs is framework-agnostic and has been designed to in a way that makes possible its integration with popular frameworks and libraries like hapi, express, react or backbone.
You don't need React to write simple standalone pages.