diff --git a/frontend/node_modules/.vite/deps/_metadata.json b/frontend/node_modules/.vite/deps/_metadata.json
index 502111a9..74c34ce8 100644
--- a/frontend/node_modules/.vite/deps/_metadata.json
+++ b/frontend/node_modules/.vite/deps/_metadata.json
@@ -2,7 +2,7 @@
"hash": "8e064f63",
"configHash": "9602e671",
"lockfileHash": "2af5d584",
- "browserHash": "96f57e4a",
+ "browserHash": "c9ed3368",
"optimized": {
"vue-router": {
"src": "../../vue-router/dist/vue-router.mjs",
@@ -19,487 +19,487 @@
"vuetify": {
"src": "../../vuetify/lib/framework.js",
"file": "vuetify.js",
- "fileHash": "c6e98d38",
+ "fileHash": "a3d44ba9",
"needsInterop": false
},
"vuetify/components/VAlert": {
"src": "../../vuetify/lib/components/VAlert/index.js",
"file": "vuetify_components_VAlert.js",
- "fileHash": "ab007c98",
+ "fileHash": "0494828d",
"needsInterop": false
},
"vuetify/components/VApp": {
"src": "../../vuetify/lib/components/VApp/index.js",
"file": "vuetify_components_VApp.js",
- "fileHash": "f20430f7",
+ "fileHash": "8691f9fe",
"needsInterop": false
},
"vuetify/components/VAppBar": {
"src": "../../vuetify/lib/components/VAppBar/index.js",
"file": "vuetify_components_VAppBar.js",
- "fileHash": "269d1d21",
+ "fileHash": "ef23c19d",
"needsInterop": false
},
"vuetify/components/VAvatar": {
"src": "../../vuetify/lib/components/VAvatar/index.js",
"file": "vuetify_components_VAvatar.js",
- "fileHash": "ec01a545",
+ "fileHash": "5ce8925c",
"needsInterop": false
},
"vuetify/components/VBtn": {
"src": "../../vuetify/lib/components/VBtn/index.js",
"file": "vuetify_components_VBtn.js",
- "fileHash": "0fcf61d0",
+ "fileHash": "cf4c48b6",
"needsInterop": false
},
"vuetify/components/VBtnToggle": {
"src": "../../vuetify/lib/components/VBtnToggle/index.js",
"file": "vuetify_components_VBtnToggle.js",
- "fileHash": "639387a0",
+ "fileHash": "d1a4f67d",
"needsInterop": false
},
"vuetify/components/VCard": {
"src": "../../vuetify/lib/components/VCard/index.js",
"file": "vuetify_components_VCard.js",
- "fileHash": "1fdfa6bf",
+ "fileHash": "baee0497",
"needsInterop": false
},
"vuetify/components/VChip": {
"src": "../../vuetify/lib/components/VChip/index.js",
"file": "vuetify_components_VChip.js",
- "fileHash": "65e75ee4",
+ "fileHash": "40af6466",
"needsInterop": false
},
"vuetify/components/VCode": {
"src": "../../vuetify/lib/components/VCode/index.js",
"file": "vuetify_components_VCode.js",
- "fileHash": "c2812980",
+ "fileHash": "73fb1a0d",
"needsInterop": false
},
"vuetify/components/VDataTable": {
"src": "../../vuetify/lib/components/VDataTable/index.js",
"file": "vuetify_components_VDataTable.js",
- "fileHash": "a51c2fa4",
+ "fileHash": "0015d97a",
"needsInterop": false
},
"vuetify/components/VDialog": {
"src": "../../vuetify/lib/components/VDialog/index.js",
"file": "vuetify_components_VDialog.js",
- "fileHash": "9634c8d8",
+ "fileHash": "96235b6a",
"needsInterop": false
},
"vuetify/components/VDivider": {
"src": "../../vuetify/lib/components/VDivider/index.js",
"file": "vuetify_components_VDivider.js",
- "fileHash": "7aa6c03c",
+ "fileHash": "22b91c53",
"needsInterop": false
},
"vuetify/components/VEmptyState": {
"src": "../../vuetify/lib/components/VEmptyState/index.js",
"file": "vuetify_components_VEmptyState.js",
- "fileHash": "85c1d869",
+ "fileHash": "6fcb7e7d",
"needsInterop": false
},
"vuetify/components/VExpansionPanel": {
"src": "../../vuetify/lib/components/VExpansionPanel/index.js",
"file": "vuetify_components_VExpansionPanel.js",
- "fileHash": "a0026ebc",
+ "fileHash": "4b5f700a",
"needsInterop": false
},
"vuetify/components/VFileInput": {
"src": "../../vuetify/lib/components/VFileInput/index.js",
"file": "vuetify_components_VFileInput.js",
- "fileHash": "b38829ad",
+ "fileHash": "767d6c24",
"needsInterop": false
},
"vuetify/components/VForm": {
"src": "../../vuetify/lib/components/VForm/index.js",
"file": "vuetify_components_VForm.js",
- "fileHash": "ed25eb6f",
+ "fileHash": "f956317f",
"needsInterop": false
},
"vuetify/components/VGrid": {
"src": "../../vuetify/lib/components/VGrid/index.js",
"file": "vuetify_components_VGrid.js",
- "fileHash": "a4bea739",
+ "fileHash": "4bbfc290",
"needsInterop": false
},
"vuetify/components/VIcon": {
"src": "../../vuetify/lib/components/VIcon/index.js",
"file": "vuetify_components_VIcon.js",
- "fileHash": "539b5820",
+ "fileHash": "6bf4db8a",
"needsInterop": false
},
"vuetify/components/VImg": {
"src": "../../vuetify/lib/components/VImg/index.js",
"file": "vuetify_components_VImg.js",
- "fileHash": "5753ddf7",
+ "fileHash": "9c4fdff1",
"needsInterop": false
},
"vuetify/components/VList": {
"src": "../../vuetify/lib/components/VList/index.js",
"file": "vuetify_components_VList.js",
- "fileHash": "9322645a",
+ "fileHash": "14e9b6f5",
"needsInterop": false
},
"vuetify/components/VMain": {
"src": "../../vuetify/lib/components/VMain/index.js",
"file": "vuetify_components_VMain.js",
- "fileHash": "33923772",
+ "fileHash": "818f7c3d",
"needsInterop": false
},
"vuetify/components/VMenu": {
"src": "../../vuetify/lib/components/VMenu/index.js",
"file": "vuetify_components_VMenu.js",
- "fileHash": "8cecfbc2",
+ "fileHash": "6d91a786",
"needsInterop": false
},
"vuetify/components/VNavigationDrawer": {
"src": "../../vuetify/lib/components/VNavigationDrawer/index.js",
"file": "vuetify_components_VNavigationDrawer.js",
- "fileHash": "32ab5ae0",
+ "fileHash": "7f6e5d05",
"needsInterop": false
},
"vuetify/components/VProgressLinear": {
"src": "../../vuetify/lib/components/VProgressLinear/index.js",
"file": "vuetify_components_VProgressLinear.js",
- "fileHash": "9856819c",
+ "fileHash": "198b1e0f",
"needsInterop": false
},
"vuetify/components/VSelect": {
"src": "../../vuetify/lib/components/VSelect/index.js",
"file": "vuetify_components_VSelect.js",
- "fileHash": "92807e93",
+ "fileHash": "a88065a3",
"needsInterop": false
},
"vuetify/components/VSheet": {
"src": "../../vuetify/lib/components/VSheet/index.js",
"file": "vuetify_components_VSheet.js",
- "fileHash": "e87c90bb",
+ "fileHash": "bbb3fab6",
"needsInterop": false
},
"vuetify/components/VSnackbar": {
"src": "../../vuetify/lib/components/VSnackbar/index.js",
"file": "vuetify_components_VSnackbar.js",
- "fileHash": "65283df8",
+ "fileHash": "13b79196",
"needsInterop": false
},
"vuetify/components/VSwitch": {
"src": "../../vuetify/lib/components/VSwitch/index.js",
"file": "vuetify_components_VSwitch.js",
- "fileHash": "5798cdd3",
+ "fileHash": "e04d0dea",
"needsInterop": false
},
"vuetify/components/VTabs": {
"src": "../../vuetify/lib/components/VTabs/index.js",
"file": "vuetify_components_VTabs.js",
- "fileHash": "05f9a354",
+ "fileHash": "ea54a15a",
"needsInterop": false
},
"vuetify/components/VTextField": {
"src": "../../vuetify/lib/components/VTextField/index.js",
"file": "vuetify_components_VTextField.js",
- "fileHash": "6959b30d",
+ "fileHash": "2fdbd616",
"needsInterop": false
},
"vuetify/components/VTextarea": {
"src": "../../vuetify/lib/components/VTextarea/index.js",
"file": "vuetify_components_VTextarea.js",
- "fileHash": "88df35a8",
+ "fileHash": "d7862242",
"needsInterop": false
},
"vuetify/components/VTimeline": {
"src": "../../vuetify/lib/components/VTimeline/index.js",
"file": "vuetify_components_VTimeline.js",
- "fileHash": "dfc98cd0",
+ "fileHash": "f6ba4991",
"needsInterop": false
},
"vuetify/components/VToolbar": {
"src": "../../vuetify/lib/components/VToolbar/index.js",
"file": "vuetify_components_VToolbar.js",
- "fileHash": "37534b0f",
+ "fileHash": "822ddc35",
"needsInterop": false
},
"vuetify/components/transitions": {
"src": "../../vuetify/lib/components/transitions/index.js",
"file": "vuetify_components_transitions.js",
- "fileHash": "d7b77fc2",
+ "fileHash": "0f566edd",
"needsInterop": false
},
"vuetify/labs/VDateInput": {
"src": "../../vuetify/lib/labs/VDateInput/index.js",
"file": "vuetify_labs_VDateInput.js",
- "fileHash": "25fd9cc8",
+ "fileHash": "682c9f40",
"needsInterop": false
}
},
"chunks": {
- "VAvatar-DdzLb6e_": {
- "file": "VAvatar-DdzLb6e_.js",
+ "VAvatar-BHEBKXii": {
+ "file": "VAvatar-BHEBKXii.js",
"isDynamicEntry": false
},
- "VBadge-CiN6PgMV": {
- "file": "VBadge-CiN6PgMV.js",
+ "VBadge-DTJk6Mtd": {
+ "file": "VBadge-DTJk6Mtd.js",
"isDynamicEntry": false
},
- "VBtn-0bT-99qM": {
- "file": "VBtn-0bT-99qM.js",
+ "VBtn-Bm4dgaEe": {
+ "file": "VBtn-Bm4dgaEe.js",
"isDynamicEntry": false
},
- "VBtnToggle-COHI6AoR": {
- "file": "VBtnToggle-COHI6AoR.js",
+ "VBtnToggle-BtUiWTgd": {
+ "file": "VBtnToggle-BtUiWTgd.js",
"isDynamicEntry": false
},
- "VChip-CE9xKsuM": {
- "file": "VChip-CE9xKsuM.js",
+ "VChip-D8z4sLH7": {
+ "file": "VChip-D8z4sLH7.js",
"isDynamicEntry": false
},
- "VDefaultsProvider-CTN39wwv": {
- "file": "VDefaultsProvider-CTN39wwv.js",
+ "VDefaultsProvider-C3Dl0By9": {
+ "file": "VDefaultsProvider-C3Dl0By9.js",
"isDynamicEntry": false
},
- "VDivider-vMskEUvN": {
- "file": "VDivider-vMskEUvN.js",
+ "VDivider-Bm22Quav": {
+ "file": "VDivider-Bm22Quav.js",
"isDynamicEntry": false
},
- "VField-D15cm8qP": {
- "file": "VField-D15cm8qP.js",
+ "VField-CDtYQTyk": {
+ "file": "VField-CDtYQTyk.js",
"isDynamicEntry": false
},
- "VGrid-DPxB4khS": {
- "file": "VGrid-DPxB4khS.js",
+ "VGrid-xu6tptBP": {
+ "file": "VGrid-xu6tptBP.js",
"isDynamicEntry": false
},
- "VIcon-sEJi0XKP": {
- "file": "VIcon-sEJi0XKP.js",
+ "VIcon-DqvHH35X": {
+ "file": "VIcon-DqvHH35X.js",
"isDynamicEntry": false
},
- "VImg-B3K_zKHG": {
- "file": "VImg-B3K_zKHG.js",
+ "VImg-D29ak-Ji": {
+ "file": "VImg-D29ak-Ji.js",
"isDynamicEntry": false
},
- "VLabel-BWVZfhvb": {
- "file": "VLabel-BWVZfhvb.js",
+ "VLabel-BK6j7Ce3": {
+ "file": "VLabel-BK6j7Ce3.js",
"isDynamicEntry": false
},
- "VList-BPYFsjU7": {
- "file": "VList-BPYFsjU7.js",
+ "VList-BhbWLtAc": {
+ "file": "VList-BhbWLtAc.js",
"isDynamicEntry": false
},
- "VMenu-tK8Rb46Q": {
- "file": "VMenu-tK8Rb46Q.js",
+ "VMenu-g8bPIWQQ": {
+ "file": "VMenu-g8bPIWQQ.js",
"isDynamicEntry": false
},
- "VOverlay-CXGz5s5q": {
- "file": "VOverlay-CXGz5s5q.js",
+ "VOverlay-BntBXXGT": {
+ "file": "VOverlay-BntBXXGT.js",
"isDynamicEntry": false
},
- "VProgressCircular-BQ041Mfz": {
- "file": "VProgressCircular-BQ041Mfz.js",
+ "VProgressCircular-z2FRmexp": {
+ "file": "VProgressCircular-z2FRmexp.js",
"isDynamicEntry": false
},
- "VProgressLinear-DIOl79V8": {
- "file": "VProgressLinear-DIOl79V8.js",
+ "VProgressLinear-Wk0zAkvE": {
+ "file": "VProgressLinear-Wk0zAkvE.js",
"isDynamicEntry": false
},
- "VSelect-DP-1aJrD": {
- "file": "VSelect-DP-1aJrD.js",
+ "VSelect-9P7g-lSZ": {
+ "file": "VSelect-9P7g-lSZ.js",
"isDynamicEntry": false
},
- "VSelectionControl-CPYYRZWE": {
- "file": "VSelectionControl-CPYYRZWE.js",
+ "VSelectionControl-DGk6dNy-": {
+ "file": "VSelectionControl-DGk6dNy-.js",
"isDynamicEntry": false
},
- "VSheet-C9a054Bu": {
- "file": "VSheet-C9a054Bu.js",
+ "VSheet-CdUUbWcK": {
+ "file": "VSheet-CdUUbWcK.js",
"isDynamicEntry": false
},
- "VSlideGroup-CTSq2TjT": {
- "file": "VSlideGroup-CTSq2TjT.js",
+ "VSlideGroup-CVNSOV5n": {
+ "file": "VSlideGroup-CVNSOV5n.js",
"isDynamicEntry": false
},
- "VTextField-BAHlIp66": {
- "file": "VTextField-BAHlIp66.js",
+ "VTextField-CbHSipIH": {
+ "file": "VTextField-CbHSipIH.js",
"isDynamicEntry": false
},
- "VToolbar-CBjuzsOU": {
- "file": "VToolbar-CBjuzsOU.js",
+ "VToolbar-DAPb7QHO": {
+ "file": "VToolbar-DAPb7QHO.js",
"isDynamicEntry": false
},
- "anchor-fmhqx-jH": {
- "file": "anchor-fmhqx-jH.js",
+ "anchor-Co261iQQ": {
+ "file": "anchor-Co261iQQ.js",
"isDynamicEntry": false
},
- "animation-IGJS3o2f": {
- "file": "animation-IGJS3o2f.js",
+ "animation-gSo9lwa6": {
+ "file": "animation-gSo9lwa6.js",
"isDynamicEntry": false
},
- "autofocus-DSuuMpGE": {
- "file": "autofocus-DSuuMpGE.js",
+ "autofocus-xE7ffHAe": {
+ "file": "autofocus-xE7ffHAe.js",
"isDynamicEntry": false
},
- "border-BomwBLze": {
- "file": "border-BomwBLze.js",
+ "border-DgwbzrV0": {
+ "file": "border-DgwbzrV0.js",
"isDynamicEntry": false
},
- "box-De_BNjdi": {
- "file": "box-De_BNjdi.js",
+ "box-BNWMOtF7": {
+ "file": "box-BNWMOtF7.js",
"isDynamicEntry": false
},
- "color-CsNXUJXB": {
- "file": "color-CsNXUJXB.js",
+ "color-B0NTWdor": {
+ "file": "color-B0NTWdor.js",
"isDynamicEntry": false
},
- "colorUtils-CrR4MKb6": {
- "file": "colorUtils-CrR4MKb6.js",
+ "colorUtils-CIHuTsPA": {
+ "file": "colorUtils-CIHuTsPA.js",
"isDynamicEntry": false
},
- "component-cNt7KGbA": {
- "file": "component-cNt7KGbA.js",
+ "component-W6F5nwNC": {
+ "file": "component-W6F5nwNC.js",
"isDynamicEntry": false
},
- "createSimpleFunctional-CJfT4avK": {
- "file": "createSimpleFunctional-CJfT4avK.js",
+ "createSimpleFunctional-DYAlCmHj": {
+ "file": "createSimpleFunctional-DYAlCmHj.js",
"isDynamicEntry": false
},
- "date-DIfArSSH": {
- "file": "date-DIfArSSH.js",
+ "date-DVxTP86R": {
+ "file": "date-DVxTP86R.js",
"isDynamicEntry": false
},
- "deepEqual-tRUStdYj": {
- "file": "deepEqual-tRUStdYj.js",
+ "deepEqual-BC7T2p7H": {
+ "file": "deepEqual-BC7T2p7H.js",
"isDynamicEntry": false
},
- "defineComponent-92h8LsW-": {
- "file": "defineComponent-92h8LsW-.js",
+ "defineComponent-D5UWd5Vb": {
+ "file": "defineComponent-D5UWd5Vb.js",
"isDynamicEntry": false
},
- "density-D-xugoKB": {
- "file": "density-D-xugoKB.js",
+ "density-Dey2iIaF": {
+ "file": "density-Dey2iIaF.js",
"isDynamicEntry": false
},
- "dimensions-BOUfezru": {
- "file": "dimensions-BOUfezru.js",
+ "dimensions-DYqEoPdw": {
+ "file": "dimensions-DYqEoPdw.js",
"isDynamicEntry": false
},
- "display-NNQAdN_b": {
- "file": "display-NNQAdN_b.js",
+ "display-BD8QD-8J": {
+ "file": "display-BD8QD-8J.js",
"isDynamicEntry": false
},
"easing-DfcvkbkS": {
"file": "easing-DfcvkbkS.js",
"isDynamicEntry": false
},
- "elevation-B2sqdJV6": {
- "file": "elevation-B2sqdJV6.js",
+ "elevation-DF9Lgrr_": {
+ "file": "elevation-DF9Lgrr_.js",
"isDynamicEntry": false
},
- "focusTrap-5P1D0YbH": {
- "file": "focusTrap-5P1D0YbH.js",
+ "focusTrap-BRlT3Jgx": {
+ "file": "focusTrap-BRlT3Jgx.js",
"isDynamicEntry": false
},
- "form-aavUvMUm": {
- "file": "form-aavUvMUm.js",
+ "form-DdDtsBxc": {
+ "file": "form-DdDtsBxc.js",
"isDynamicEntry": false
},
- "forwardRefs-BgbYSFg3": {
- "file": "forwardRefs-BgbYSFg3.js",
+ "forwardRefs-C50LZ3ti": {
+ "file": "forwardRefs-C50LZ3ti.js",
"isDynamicEntry": false
},
"getScrollParent-DuXs8SPu": {
"file": "getScrollParent-DuXs8SPu.js",
"isDynamicEntry": false
},
- "goto-CD4cxzRn": {
- "file": "goto-CD4cxzRn.js",
+ "goto-B27jmATn": {
+ "file": "goto-B27jmATn.js",
"isDynamicEntry": false
},
- "group-Ba02qEMS": {
- "file": "group-Ba02qEMS.js",
+ "group-sYL2sZpA": {
+ "file": "group-sYL2sZpA.js",
"isDynamicEntry": false
},
- "icons-BqOQHwEN": {
- "file": "icons-BqOQHwEN.js",
+ "icons-czM1t0u4": {
+ "file": "icons-czM1t0u4.js",
"isDynamicEntry": false
},
- "intersect-B3zhL1Fk": {
- "file": "intersect-B3zhL1Fk.js",
+ "intersect-CzF7r7uD": {
+ "file": "intersect-CzF7r7uD.js",
"isDynamicEntry": false
},
- "layout-Booh7E97": {
- "file": "layout-Booh7E97.js",
+ "layout-DcSzssSI": {
+ "file": "layout-DcSzssSI.js",
"isDynamicEntry": false
},
- "lazy-CNRMZBuk": {
- "file": "lazy-CNRMZBuk.js",
+ "lazy-CSlNPYYk": {
+ "file": "lazy-CSlNPYYk.js",
"isDynamicEntry": false
},
- "loader-Cg-RQrUq": {
- "file": "loader-Cg-RQrUq.js",
+ "loader-Dn_UJdiG": {
+ "file": "loader-Dn_UJdiG.js",
"isDynamicEntry": false
},
- "locale-BI-ulWIe": {
- "file": "locale-BI-ulWIe.js",
+ "locale-DTRSr4yu": {
+ "file": "locale-DTRSr4yu.js",
"isDynamicEntry": false
},
- "location-Df6p1WYP": {
- "file": "location-Df6p1WYP.js",
+ "location-DD-AfEFw": {
+ "file": "location-DD-AfEFw.js",
"isDynamicEntry": false
},
- "position-ew5Obs9G": {
- "file": "position-ew5Obs9G.js",
+ "position-7CDSPI1P": {
+ "file": "position-7CDSPI1P.js",
"isDynamicEntry": false
},
- "proxiedModel-BI_mmSsi": {
- "file": "proxiedModel-BI_mmSsi.js",
+ "proxiedModel-BOZtsMxA": {
+ "file": "proxiedModel-BOZtsMxA.js",
"isDynamicEntry": false
},
- "resizeObserver-Cj_8nVae": {
- "file": "resizeObserver-Cj_8nVae.js",
+ "resizeObserver-BhsZsTWI": {
+ "file": "resizeObserver-BhsZsTWI.js",
"isDynamicEntry": false
},
- "ripple-BcjS5Kg8": {
- "file": "ripple-BcjS5Kg8.js",
+ "ripple-Q8q1hNUv": {
+ "file": "ripple-Q8q1hNUv.js",
"isDynamicEntry": false
},
- "rounded-zeYjdF6x": {
- "file": "rounded-zeYjdF6x.js",
+ "rounded-m6mNMWh4": {
+ "file": "rounded-m6mNMWh4.js",
"isDynamicEntry": false
},
- "router-CXIrojRO": {
- "file": "router-CXIrojRO.js",
+ "router-CiYG9tKT": {
+ "file": "router-CiYG9tKT.js",
"isDynamicEntry": false
},
- "scopeId-BhBMGBSS": {
- "file": "scopeId-BhBMGBSS.js",
+ "scopeId-BbFYJclW": {
+ "file": "scopeId-BbFYJclW.js",
"isDynamicEntry": false
},
- "ssrBoot-DPOmvdPm": {
- "file": "ssrBoot-DPOmvdPm.js",
+ "ssrBoot-Dt2Wz9ZC": {
+ "file": "ssrBoot-Dt2Wz9ZC.js",
"isDynamicEntry": false
},
- "tag-BzACG_PL": {
- "file": "tag-BzACG_PL.js",
+ "tag-CIFqtlp2": {
+ "file": "tag-CIFqtlp2.js",
"isDynamicEntry": false
},
- "theme-CwW_z-RC": {
- "file": "theme-CwW_z-RC.js",
+ "theme-C1b955Ym": {
+ "file": "theme-C1b955Ym.js",
"isDynamicEntry": false
},
- "transition-C2n5e2YD": {
- "file": "transition-C2n5e2YD.js",
+ "transition-BieT_XBo": {
+ "file": "transition-BieT_XBo.js",
"isDynamicEntry": false
},
- "transitions-CIB99T2D": {
- "file": "transitions-CIB99T2D.js",
+ "transitions-llwxsiay": {
+ "file": "transitions-llwxsiay.js",
"isDynamicEntry": false
},
- "useRender-kn3mcOTh": {
- "file": "useRender-kn3mcOTh.js",
+ "useRender-DB_YiTtB": {
+ "file": "useRender-DB_YiTtB.js",
"isDynamicEntry": false
},
- "variant-CXhPdVre": {
- "file": "variant-CXhPdVre.js",
+ "variant-BcdnKFgE": {
+ "file": "variant-BcdnKFgE.js",
"isDynamicEntry": false
},
"vue.runtime.esm-bundler-BvoXUmaf": {
diff --git a/frontend/node_modules/.vite/deps/vuetify.js b/frontend/node_modules/.vite/deps/vuetify.js
index 2bcaa301..e74a3dba 100644
--- a/frontend/node_modules/.vite/deps/vuetify.js
+++ b/frontend/node_modules/.vite/deps/vuetify.js
@@ -1,12 +1,12 @@
import { Mn as effectScope, Ot as nextTick, U as computed, Vn as onScopeDispose, Wn as reactive, er as toValue, gn as watch, pt as h } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { G as mergeDeep, I as includes, a as createDefaults, ct as consoleWarn, i as DefaultsSymbol, nt as IN_BROWSER, s as useDefaults, t as defineComponent, ut as propsFactory, z as isObject } from "./defineComponent-92h8LsW-.js";
-import { a as useLayout } from "./layout-Booh7E97.js";
-import { i as useRtl, n as createLocale, r as useLocale, t as LocaleSymbol } from "./locale-BI-ulWIe.js";
-import { a as useTheme, n as createTheme, t as ThemeSymbol } from "./theme-CwW_z-RC.js";
-import { o as VSvgIcon, r as VClassIcon, t as IconSymbol } from "./icons-BqOQHwEN.js";
-import { a as useDisplay, r as createDisplay, t as DisplaySymbol } from "./display-NNQAdN_b.js";
-import { n as DateOptionsSymbol, o as useDate, r as createDate, t as DateAdapterSymbol } from "./date-DIfArSSH.js";
-import { n as createGoTo, r as useGoTo, t as GoToSymbol } from "./goto-CD4cxzRn.js";
+import { B as isObject, K as mergeDeep, L as includes, a as createDefaults, i as DefaultsSymbol, lt as consoleWarn, rt as IN_BROWSER, s as useDefaults, t as defineComponent, u as propsFactory } from "./defineComponent-D5UWd5Vb.js";
+import { o as VSvgIcon, r as VClassIcon, t as IconSymbol } from "./icons-czM1t0u4.js";
+import { a as useTheme, n as createTheme, t as ThemeSymbol } from "./theme-C1b955Ym.js";
+import { i as useRtl, n as createLocale, r as useLocale, t as LocaleSymbol } from "./locale-DTRSr4yu.js";
+import { a as useLayout } from "./layout-DcSzssSI.js";
+import { a as useDisplay, r as createDisplay, t as DisplaySymbol } from "./display-BD8QD-8J.js";
+import { n as DateOptionsSymbol, o as useDate, r as createDate, t as DateAdapterSymbol } from "./date-DVxTP86R.js";
+import { n as createGoTo, r as useGoTo, t as GoToSymbol } from "./goto-B27jmATn.js";
//#region node_modules/vuetify/lib/composables/hotkey/key-aliases.js
/**
* Centralized key alias mapping for consistent key normalization across the hotkey system.
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VApp.js b/frontend/node_modules/.vite/deps/vuetify_components_VApp.js
index 40e5c741..b4b167a0 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VApp.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VApp.js
@@ -1,10 +1,10 @@
import { W as createBaseVNode, ar as normalizeClass, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { K as omit, r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { t as makeComponentProps } from "./component-cNt7KGbA.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { i as makeLayoutProps, n as createLayout } from "./layout-Booh7E97.js";
-import { i as useRtl } from "./locale-BI-ulWIe.js";
-import { i as provideTheme, r as makeThemeProps } from "./theme-CwW_z-RC.js";
+import { q as omit, r as genericComponent, u as propsFactory } from "./defineComponent-D5UWd5Vb.js";
+import { t as makeComponentProps } from "./component-W6F5nwNC.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { i as provideTheme, r as makeThemeProps } from "./theme-C1b955Ym.js";
+import { i as useRtl } from "./locale-DTRSr4yu.js";
+import { i as makeLayoutProps, n as createLayout } from "./layout-DcSzssSI.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VApp/VApp.css";
//#region node_modules/vuetify/lib/components/VApp/VApp.js
var makeVAppProps = propsFactory({
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VAppBar.js b/frontend/node_modules/.vite/deps/vuetify_components_VAppBar.js
index c67c5bdd..ed510342 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VAppBar.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VAppBar.js
@@ -1,11 +1,11 @@
import { Dt as mergeProps, Ft as onMounted, Kn as ref, Qn as toRef, U as computed, Yn as shallowRef, _n as watchEffect, et as createVNode, gn as watch, jt as onBeforeUnmount } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { K as omit, ct as consoleWarn, g as clamp, r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { o as useLayoutItem, r as makeLayoutItemProps } from "./layout-Booh7E97.js";
-import { n as useToggleScope, t as useProxiedModel } from "./proxiedModel-BI_mmSsi.js";
-import { i as makeVToolbarTitleProps, n as makeVToolbarProps, r as VToolbarTitle, t as VToolbar } from "./VToolbar-CBjuzsOU.js";
-import { t as useSsrBoot } from "./ssrBoot-DPOmvdPm.js";
-import { n as makeVBtnProps, t as VBtn } from "./VBtn-0bT-99qM.js";
+import { _ as clamp, lt as consoleWarn, q as omit, r as genericComponent, u as propsFactory } from "./defineComponent-D5UWd5Vb.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { n as useToggleScope, t as useProxiedModel } from "./proxiedModel-BOZtsMxA.js";
+import { o as useLayoutItem, r as makeLayoutItemProps } from "./layout-DcSzssSI.js";
+import { t as useSsrBoot } from "./ssrBoot-Dt2Wz9ZC.js";
+import { i as makeVToolbarTitleProps, n as makeVToolbarProps, r as VToolbarTitle, t as VToolbar } from "./VToolbar-DAPb7QHO.js";
+import { n as makeVBtnProps, t as VBtn } from "./VBtn-Bm4dgaEe.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VAppBar/VAppBar.css";
//#region node_modules/vuetify/lib/composables/scroll.js
var makeScrollProps = propsFactory({
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VAvatar.js b/frontend/node_modules/.vite/deps/vuetify_components_VAvatar.js
index 0945cb34..c07ebb98 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VAvatar.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VAvatar.js
@@ -1,2 +1,2 @@
-import { t as VAvatar } from "./VAvatar-DdzLb6e_.js";
+import { t as VAvatar } from "./VAvatar-BHEBKXii.js";
export { VAvatar };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VBtn.js b/frontend/node_modules/.vite/deps/vuetify_components_VBtn.js
index cd23db29..108c6f6b 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VBtn.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VBtn.js
@@ -1,2 +1,2 @@
-import { t as VBtn } from "./VBtn-0bT-99qM.js";
+import { t as VBtn } from "./VBtn-Bm4dgaEe.js";
export { VBtn };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VCard.js b/frontend/node_modules/.vite/deps/vuetify_components_VCard.js
index 0b93cf40..f0a12198 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VCard.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VCard.js
@@ -1,26 +1,26 @@
import { Cn as withDirectives, Dt as mergeProps, M as Fragment, W as createBaseVNode, Yn as shallowRef, ar as normalizeClass, cr as toDisplayString, et as createVNode, gn as watch, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { _ as convertToUnit, o as provideDefaults, r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { t as makeComponentProps } from "./component-cNt7KGbA.js";
-import { t as createSimpleFunctional } from "./createSimpleFunctional-CJfT4avK.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { i as provideTheme, r as makeThemeProps } from "./theme-CwW_z-RC.js";
-import { t as makeTagProps } from "./tag-BzACG_PL.js";
-import { t as VDefaultsProvider } from "./VDefaultsProvider-CTN39wwv.js";
-import { n as useDimension, t as makeDimensionProps } from "./dimensions-BOUfezru.js";
-import { t as VImg } from "./VImg-B3K_zKHG.js";
-import { n as useRounded, t as makeRoundedProps } from "./rounded-zeYjdF6x.js";
-import { n as useBorder, t as makeBorderProps } from "./border-BomwBLze.js";
-import { n as useElevation, t as makeElevationProps } from "./elevation-B2sqdJV6.js";
-import { n as useLocation, t as makeLocationProps } from "./location-Df6p1WYP.js";
-import { n as useDensity, t as makeDensityProps } from "./density-D-xugoKB.js";
-import { n as makeVariantProps, r as useVariant, t as genOverlays } from "./variant-CXhPdVre.js";
-import { n as IconValue } from "./icons-BqOQHwEN.js";
-import { t as VIcon } from "./VIcon-sEJi0XKP.js";
-import { n as makeLoaderProps, r as useLoader, t as LoaderSlot } from "./loader-Cg-RQrUq.js";
-import { n as usePosition, t as makePositionProps } from "./position-ew5Obs9G.js";
-import { r as useLink, t as makeRouterProps } from "./router-CXIrojRO.js";
-import { t as Ripple } from "./ripple-BcjS5Kg8.js";
-import { t as VAvatar } from "./VAvatar-DdzLb6e_.js";
+import { o as provideDefaults, r as genericComponent, u as propsFactory, v as convertToUnit } from "./defineComponent-D5UWd5Vb.js";
+import { t as makeComponentProps } from "./component-W6F5nwNC.js";
+import { t as createSimpleFunctional } from "./createSimpleFunctional-DYAlCmHj.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { n as IconValue } from "./icons-czM1t0u4.js";
+import { t as VIcon } from "./VIcon-DqvHH35X.js";
+import { t as makeTagProps } from "./tag-CIFqtlp2.js";
+import { i as provideTheme, r as makeThemeProps } from "./theme-C1b955Ym.js";
+import { n as useDimension, t as makeDimensionProps } from "./dimensions-DYqEoPdw.js";
+import { n as useLocation, t as makeLocationProps } from "./location-DD-AfEFw.js";
+import { n as useRounded, t as makeRoundedProps } from "./rounded-m6mNMWh4.js";
+import { t as VDefaultsProvider } from "./VDefaultsProvider-C3Dl0By9.js";
+import { t as VImg } from "./VImg-D29ak-Ji.js";
+import { n as useBorder, t as makeBorderProps } from "./border-DgwbzrV0.js";
+import { n as useDensity, t as makeDensityProps } from "./density-Dey2iIaF.js";
+import { n as makeVariantProps, r as useVariant, t as genOverlays } from "./variant-BcdnKFgE.js";
+import { t as VAvatar } from "./VAvatar-BHEBKXii.js";
+import { r as useLink, t as makeRouterProps } from "./router-CiYG9tKT.js";
+import { n as useElevation, t as makeElevationProps } from "./elevation-DF9Lgrr_.js";
+import { t as Ripple } from "./ripple-Q8q1hNUv.js";
+import { n as makeLoaderProps, r as useLoader, t as LoaderSlot } from "./loader-Dn_UJdiG.js";
+import { n as usePosition, t as makePositionProps } from "./position-7CDSPI1P.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VCard/VCard.css";
//#region node_modules/vuetify/lib/components/VCard/VCardActions.js
var makeVCardActionsProps = propsFactory({
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VCode.js b/frontend/node_modules/.vite/deps/vuetify_components_VCode.js
index 53d221f9..1c97547d 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VCode.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VCode.js
@@ -1,4 +1,4 @@
-import { t as createSimpleFunctional } from "./createSimpleFunctional-CJfT4avK.js";
+import { t as createSimpleFunctional } from "./createSimpleFunctional-DYAlCmHj.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VCode/VCode.css";
//#region node_modules/vuetify/lib/components/VCode/index.js
var VCode = createSimpleFunctional("v-code", "code");
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VDialog.js b/frontend/node_modules/.vite/deps/vuetify_components_VDialog.js
index b38b46fe..0b22228c 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VDialog.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VDialog.js
@@ -1,12 +1,12 @@
import { Dt as mergeProps, Kn as ref, Ot as nextTick, et as createVNode, gn as watch } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { K as omit, r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { n as makeVOverlayProps, t as VOverlay } from "./VOverlay-CXGz5s5q.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { t as useProxiedModel } from "./proxiedModel-BI_mmSsi.js";
-import { _ as VDialogTransition } from "./transitions-CIB99T2D.js";
-import { t as VDefaultsProvider } from "./VDefaultsProvider-CTN39wwv.js";
-import { t as useScopeId } from "./scopeId-BhBMGBSS.js";
-import { t as forwardRefs } from "./forwardRefs-BgbYSFg3.js";
+import { q as omit, r as genericComponent, u as propsFactory } from "./defineComponent-D5UWd5Vb.js";
+import { n as makeVOverlayProps, t as VOverlay } from "./VOverlay-BntBXXGT.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { t as useProxiedModel } from "./proxiedModel-BOZtsMxA.js";
+import { t as VDefaultsProvider } from "./VDefaultsProvider-C3Dl0By9.js";
+import { _ as VDialogTransition } from "./transitions-llwxsiay.js";
+import { t as useScopeId } from "./scopeId-BbFYJclW.js";
+import { t as forwardRefs } from "./forwardRefs-C50LZ3ti.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VDialog/VDialog.css";
//#region node_modules/vuetify/lib/components/VDialog/VDialog.js
var makeVDialogProps = propsFactory({
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VDivider.js b/frontend/node_modules/.vite/deps/vuetify_components_VDivider.js
index 9c90011d..e95a56c7 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VDivider.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VDivider.js
@@ -1,2 +1,2 @@
-import { t as VDivider } from "./VDivider-vMskEUvN.js";
+import { t as VDivider } from "./VDivider-Bm22Quav.js";
export { VDivider };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VExpansionPanel.js b/frontend/node_modules/.vite/deps/vuetify_components_VExpansionPanel.js
index f28291c4..6d51bc08 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VExpansionPanel.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VExpansionPanel.js
@@ -1,20 +1,20 @@
import { C as vShow, Cn as withDirectives, Qn as toRef, U as computed, Ut as provide, W as createBaseVNode, ar as normalizeClass, et as createVNode, sr as normalizeStyle, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { X as pick, o as provideDefaults, r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { t as makeComponentProps } from "./component-cNt7KGbA.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { i as provideTheme, r as makeThemeProps } from "./theme-CwW_z-RC.js";
-import { t as makeTagProps } from "./tag-BzACG_PL.js";
-import { i as VExpandTransition } from "./transitions-CIB99T2D.js";
-import { t as VDefaultsProvider } from "./VDefaultsProvider-CTN39wwv.js";
-import { n as useDimension, t as makeDimensionProps } from "./dimensions-BOUfezru.js";
-import { t as useBackgroundColor } from "./color-CsNXUJXB.js";
-import { n as useRounded, t as makeRoundedProps } from "./rounded-zeYjdF6x.js";
-import { n as useElevation, t as makeElevationProps } from "./elevation-B2sqdJV6.js";
-import { i as useGroupItem, n as makeGroupProps, r as useGroup, t as makeGroupItemProps } from "./group-Ba02qEMS.js";
-import { n as IconValue } from "./icons-BqOQHwEN.js";
-import { t as VIcon } from "./VIcon-sEJi0XKP.js";
-import { t as Ripple } from "./ripple-BcjS5Kg8.js";
-import { n as useLazy, t as makeLazyProps } from "./lazy-CNRMZBuk.js";
+import { Z as pick, o as provideDefaults, r as genericComponent, u as propsFactory } from "./defineComponent-D5UWd5Vb.js";
+import { t as makeComponentProps } from "./component-W6F5nwNC.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { t as useBackgroundColor } from "./color-B0NTWdor.js";
+import { n as IconValue } from "./icons-czM1t0u4.js";
+import { t as VIcon } from "./VIcon-DqvHH35X.js";
+import { t as makeTagProps } from "./tag-CIFqtlp2.js";
+import { i as provideTheme, r as makeThemeProps } from "./theme-C1b955Ym.js";
+import { n as useDimension, t as makeDimensionProps } from "./dimensions-DYqEoPdw.js";
+import { n as useRounded, t as makeRoundedProps } from "./rounded-m6mNMWh4.js";
+import { t as VDefaultsProvider } from "./VDefaultsProvider-C3Dl0By9.js";
+import { i as VExpandTransition } from "./transitions-llwxsiay.js";
+import { n as useLazy, t as makeLazyProps } from "./lazy-CSlNPYYk.js";
+import { n as useElevation, t as makeElevationProps } from "./elevation-DF9Lgrr_.js";
+import { t as Ripple } from "./ripple-Q8q1hNUv.js";
+import { i as useGroupItem, n as makeGroupProps, r as useGroup, t as makeGroupItemProps } from "./group-sYL2sZpA.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanel.css";
//#region node_modules/vuetify/lib/components/VExpansionPanel/shared.js
var VExpansionPanelSymbol = Symbol.for("vuetify:v-expansion-panel");
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VGrid.js b/frontend/node_modules/.vite/deps/vuetify_components_VGrid.js
index fb0cfa60..1c351e5d 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VGrid.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VGrid.js
@@ -1,2 +1,2 @@
-import { i as VContainer, n as VRow, r as VCol, t as VSpacer } from "./VGrid-DPxB4khS.js";
+import { i as VContainer, n as VRow, r as VCol, t as VSpacer } from "./VGrid-xu6tptBP.js";
export { VCol, VContainer, VRow, VSpacer };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VIcon.js b/frontend/node_modules/.vite/deps/vuetify_components_VIcon.js
index 4c7bc348..3d03dadd 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VIcon.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VIcon.js
@@ -1,3 +1,3 @@
-import { a as VLigatureIcon, i as VComponentIcon, o as VSvgIcon, r as VClassIcon } from "./icons-BqOQHwEN.js";
-import { t as VIcon } from "./VIcon-sEJi0XKP.js";
+import { a as VLigatureIcon, i as VComponentIcon, o as VSvgIcon, r as VClassIcon } from "./icons-czM1t0u4.js";
+import { t as VIcon } from "./VIcon-DqvHH35X.js";
export { VClassIcon, VComponentIcon, VIcon, VLigatureIcon, VSvgIcon };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VImg.js b/frontend/node_modules/.vite/deps/vuetify_components_VImg.js
index 050438ab..3871fd16 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VImg.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VImg.js
@@ -1,2 +1,2 @@
-import { t as VImg } from "./VImg-B3K_zKHG.js";
+import { t as VImg } from "./VImg-D29ak-Ji.js";
export { VImg };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VList.js b/frontend/node_modules/.vite/deps/vuetify_components_VList.js
index 5e89ba60..b32653f2 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VList.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VList.js
@@ -1,2 +1,2 @@
-import { c as VListItem, d as VListGroup, i as VList, l as VListItemTitle, n as VListItemAction, r as VListImg, s as VListSubheader, t as VListItemMedia, u as VListItemSubtitle } from "./VList-BPYFsjU7.js";
+import { c as VListItem, d as VListGroup, i as VList, l as VListItemTitle, n as VListItemAction, r as VListImg, s as VListSubheader, t as VListItemMedia, u as VListItemSubtitle } from "./VList-BhbWLtAc.js";
export { VList, VListGroup, VListImg, VListItem, VListItemAction, VListItemMedia, VListItemSubtitle, VListItemTitle, VListSubheader };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VMain.js b/frontend/node_modules/.vite/deps/vuetify_components_VMain.js
index 2d1e4861..68497b92 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VMain.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VMain.js
@@ -1,11 +1,11 @@
import { W as createBaseVNode, ar as normalizeClass, et as createVNode, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { t as makeComponentProps } from "./component-cNt7KGbA.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { a as useLayout } from "./layout-Booh7E97.js";
-import { t as makeTagProps } from "./tag-BzACG_PL.js";
-import { n as useDimension, t as makeDimensionProps } from "./dimensions-BOUfezru.js";
-import { t as useSsrBoot } from "./ssrBoot-DPOmvdPm.js";
+import { r as genericComponent, u as propsFactory } from "./defineComponent-D5UWd5Vb.js";
+import { t as makeComponentProps } from "./component-W6F5nwNC.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { t as makeTagProps } from "./tag-CIFqtlp2.js";
+import { n as useDimension, t as makeDimensionProps } from "./dimensions-DYqEoPdw.js";
+import { a as useLayout } from "./layout-DcSzssSI.js";
+import { t as useSsrBoot } from "./ssrBoot-Dt2Wz9ZC.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VMain/VMain.css";
//#region node_modules/vuetify/lib/components/VMain/VMain.js
var makeVMainProps = propsFactory({
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VMenu.js b/frontend/node_modules/.vite/deps/vuetify_components_VMenu.js
index 2fa64aad..c3524506 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VMenu.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VMenu.js
@@ -1,2 +1,2 @@
-import { t as VMenu } from "./VMenu-tK8Rb46Q.js";
+import { t as VMenu } from "./VMenu-g8bPIWQQ.js";
export { VMenu };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VNavigationDrawer.js b/frontend/node_modules/.vite/deps/vuetify_components_VNavigationDrawer.js
index 3c72bc6d..9c7f7c03 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VNavigationDrawer.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VNavigationDrawer.js
@@ -1,24 +1,24 @@
import { Dt as mergeProps, Ft as onMounted, Gn as readonly, Kn as ref, M as Fragment, Ot as nextTick, Qn as toRef, U as computed, Vn as onScopeDispose, W as createBaseVNode, Yn as shallowRef, _n as watchEffect, et as createVNode, gn as watch, jt as onBeforeUnmount, n as Transition } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { K as omit, _ as convertToUnit, g as clamp, o as provideDefaults, r as genericComponent, u as CircularBuffer, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { t as makeComponentProps } from "./component-cNt7KGbA.js";
-import { o as toPhysical } from "./anchor-fmhqx-jH.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { o as useLayoutItem, r as makeLayoutItemProps } from "./layout-Booh7E97.js";
-import { n as useToggleScope, t as useProxiedModel } from "./proxiedModel-BI_mmSsi.js";
-import { i as useRtl } from "./locale-BI-ulWIe.js";
-import { i as provideTheme, r as makeThemeProps } from "./theme-CwW_z-RC.js";
-import { t as makeTagProps } from "./tag-BzACG_PL.js";
-import { t as VDefaultsProvider } from "./VDefaultsProvider-CTN39wwv.js";
-import { t as VImg } from "./VImg-B3K_zKHG.js";
-import { t as useBackgroundColor } from "./color-CsNXUJXB.js";
-import { n as useRounded, t as makeRoundedProps } from "./rounded-zeYjdF6x.js";
-import { n as useBorder, t as makeBorderProps } from "./border-BomwBLze.js";
-import { n as useElevation, t as makeElevationProps } from "./elevation-B2sqdJV6.js";
-import { t as useSsrBoot } from "./ssrBoot-DPOmvdPm.js";
-import { i as useRouter } from "./router-CXIrojRO.js";
-import { a as useDisplay, i as makeDisplayProps } from "./display-NNQAdN_b.js";
-import { i as useDelay, n as useFocusTrap, r as makeDelayProps, t as makeFocusTrapProps } from "./focusTrap-5P1D0YbH.js";
-import { t as useScopeId } from "./scopeId-BhBMGBSS.js";
+import { _ as clamp, d as CircularBuffer, o as provideDefaults, q as omit, r as genericComponent, u as propsFactory, v as convertToUnit } from "./defineComponent-D5UWd5Vb.js";
+import { o as toPhysical } from "./anchor-Co261iQQ.js";
+import { t as makeComponentProps } from "./component-W6F5nwNC.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { t as useBackgroundColor } from "./color-B0NTWdor.js";
+import { t as makeTagProps } from "./tag-CIFqtlp2.js";
+import { i as provideTheme, r as makeThemeProps } from "./theme-C1b955Ym.js";
+import { n as useToggleScope, t as useProxiedModel } from "./proxiedModel-BOZtsMxA.js";
+import { i as useRtl } from "./locale-DTRSr4yu.js";
+import { n as useRounded, t as makeRoundedProps } from "./rounded-m6mNMWh4.js";
+import { t as VDefaultsProvider } from "./VDefaultsProvider-C3Dl0By9.js";
+import { t as VImg } from "./VImg-D29ak-Ji.js";
+import { n as useBorder, t as makeBorderProps } from "./border-DgwbzrV0.js";
+import { o as useLayoutItem, r as makeLayoutItemProps } from "./layout-DcSzssSI.js";
+import { i as useDelay, n as useFocusTrap, r as makeDelayProps, t as makeFocusTrapProps } from "./focusTrap-BRlT3Jgx.js";
+import { a as useDisplay, i as makeDisplayProps } from "./display-BD8QD-8J.js";
+import { i as useRouter } from "./router-CiYG9tKT.js";
+import { t as useScopeId } from "./scopeId-BbFYJclW.js";
+import { t as useSsrBoot } from "./ssrBoot-Dt2Wz9ZC.js";
+import { n as useElevation, t as makeElevationProps } from "./elevation-DF9Lgrr_.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VNavigationDrawer/VNavigationDrawer.css";
//#region node_modules/vuetify/lib/components/VNavigationDrawer/sticky.js
function useSticky({ rootEl, isSticky, layoutItemStyles }) {
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VSelect.js b/frontend/node_modules/.vite/deps/vuetify_components_VSelect.js
index 93022bbf..65ff2fca 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VSelect.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VSelect.js
@@ -1,2 +1,2 @@
-import { t as VSelect } from "./VSelect-DP-1aJrD.js";
+import { t as VSelect } from "./VSelect-9P7g-lSZ.js";
export { VSelect };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VSheet.js b/frontend/node_modules/.vite/deps/vuetify_components_VSheet.js
index 9c6c707d..491b63d5 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VSheet.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VSheet.js
@@ -1,2 +1,2 @@
-import { t as VSheet } from "./VSheet-C9a054Bu.js";
+import { t as VSheet } from "./VSheet-CdUUbWcK.js";
export { VSheet };
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VSwitch.js b/frontend/node_modules/.vite/deps/vuetify_components_VSwitch.js
index 942484d7..1991842f 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VSwitch.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VSwitch.js
@@ -1,15 +1,15 @@
import { Dt as mergeProps, Kn as ref, M as Fragment, Qn as toRef, W as createBaseVNode, ar as normalizeClass, cn as useId, et as createVNode, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { T as filterInputAttrs, at as SUPPORTS_MATCH_MEDIA, r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { t as useProxiedModel } from "./proxiedModel-BI_mmSsi.js";
-import { c as VScaleTransition } from "./transitions-CIB99T2D.js";
-import { t as VDefaultsProvider } from "./VDefaultsProvider-CTN39wwv.js";
-import { t as VIcon } from "./VIcon-sEJi0XKP.js";
-import { t as VProgressCircular } from "./VProgressCircular-BQ041Mfz.js";
-import { r as useLoader, t as LoaderSlot } from "./loader-Cg-RQrUq.js";
-import { t as forwardRefs } from "./forwardRefs-BgbYSFg3.js";
-import { a as useFocus, n as VInput, r as makeVInputProps } from "./VLabel-BWVZfhvb.js";
-import { n as makeVSelectionControlProps, t as VSelectionControl } from "./VSelectionControl-CPYYRZWE.js";
+import { E as filterInputAttrs, ot as SUPPORTS_MATCH_MEDIA, r as genericComponent, u as propsFactory } from "./defineComponent-D5UWd5Vb.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { t as VIcon } from "./VIcon-DqvHH35X.js";
+import { t as useProxiedModel } from "./proxiedModel-BOZtsMxA.js";
+import { t as VDefaultsProvider } from "./VDefaultsProvider-C3Dl0By9.js";
+import { c as VScaleTransition } from "./transitions-llwxsiay.js";
+import { t as forwardRefs } from "./forwardRefs-C50LZ3ti.js";
+import { t as VProgressCircular } from "./VProgressCircular-z2FRmexp.js";
+import { r as useLoader, t as LoaderSlot } from "./loader-Dn_UJdiG.js";
+import { a as useFocus, n as VInput, r as makeVInputProps } from "./VLabel-BK6j7Ce3.js";
+import { n as makeVSelectionControlProps, t as VSelectionControl } from "./VSelectionControl-DGk6dNy-.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VSwitch/VSwitch.css";
//#region node_modules/vuetify/lib/components/VSwitch/VSwitch.js
var makeVSwitchProps = propsFactory({
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VTabs.js b/frontend/node_modules/.vite/deps/vuetify_components_VTabs.js
index 8c8d86bf..84436165 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VTabs.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VTabs.js
@@ -1,24 +1,24 @@
import { C as vShow, Cn as withDirectives, Dt as mergeProps, Kn as ref, M as Fragment, Ot as nextTick, Qn as toRef, U as computed, Ut as provide, W as createBaseVNode, Yn as shallowRef, ar as normalizeClass, et as createVNode, gn as watch, sr as normalizeStyle, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { K as omit, U as keys, X as pick, _ as convertToUnit, nt as IN_BROWSER, o as provideDefaults, r as genericComponent, rt as PREFERS_REDUCED_MOTION, ut as propsFactory, z as isObject } from "./defineComponent-92h8LsW-.js";
-import { t as makeComponentProps } from "./component-cNt7KGbA.js";
-import { t as animate } from "./animation-IGJS3o2f.js";
+import { B as isObject, W as keys, Z as pick, it as PREFERS_REDUCED_MOTION, o as provideDefaults, q as omit, r as genericComponent, rt as IN_BROWSER, u as propsFactory, v as convertToUnit } from "./defineComponent-D5UWd5Vb.js";
+import { t as animate } from "./animation-gSo9lwa6.js";
+import { t as makeComponentProps } from "./component-W6F5nwNC.js";
import { i as standardEasing } from "./easing-DfcvkbkS.js";
import { t as getScrollParent } from "./getScrollParent-DuXs8SPu.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { t as useProxiedModel } from "./proxiedModel-BI_mmSsi.js";
-import { i as useRtl, r as useLocale } from "./locale-BI-ulWIe.js";
-import { i as provideTheme, r as makeThemeProps } from "./theme-CwW_z-RC.js";
-import { t as makeTagProps } from "./tag-BzACG_PL.js";
-import { r as useTextColor, t as useBackgroundColor } from "./color-CsNXUJXB.js";
-import { t as MaybeTransition } from "./transition-C2n5e2YD.js";
-import { t as useSsrBoot } from "./ssrBoot-DPOmvdPm.js";
-import { n as useDensity, t as makeDensityProps } from "./density-D-xugoKB.js";
-import { i as useGroupItem, r as useGroup, t as makeGroupItemProps } from "./group-Ba02qEMS.js";
-import { n as makeVBtnProps, t as VBtn } from "./VBtn-0bT-99qM.js";
-import { n as useLazy, t as makeLazyProps } from "./lazy-CNRMZBuk.js";
-import { t as useScopeId } from "./scopeId-BhBMGBSS.js";
-import { t as forwardRefs } from "./forwardRefs-BgbYSFg3.js";
-import { r as makeVSlideGroupProps, t as VSlideGroup } from "./VSlideGroup-CTSq2TjT.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { r as useTextColor, t as useBackgroundColor } from "./color-B0NTWdor.js";
+import { t as makeTagProps } from "./tag-CIFqtlp2.js";
+import { i as provideTheme, r as makeThemeProps } from "./theme-C1b955Ym.js";
+import { t as useProxiedModel } from "./proxiedModel-BOZtsMxA.js";
+import { i as useRtl, r as useLocale } from "./locale-DTRSr4yu.js";
+import { t as MaybeTransition } from "./transition-BieT_XBo.js";
+import { n as useDensity, t as makeDensityProps } from "./density-Dey2iIaF.js";
+import { n as useLazy, t as makeLazyProps } from "./lazy-CSlNPYYk.js";
+import { t as useScopeId } from "./scopeId-BbFYJclW.js";
+import { t as forwardRefs } from "./forwardRefs-C50LZ3ti.js";
+import { t as useSsrBoot } from "./ssrBoot-Dt2Wz9ZC.js";
+import { i as useGroupItem, r as useGroup, t as makeGroupItemProps } from "./group-sYL2sZpA.js";
+import { n as makeVBtnProps, t as VBtn } from "./VBtn-Bm4dgaEe.js";
+import { r as makeVSlideGroupProps, t as VSlideGroup } from "./VSlideGroup-CVNSOV5n.js";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VTabs/VTab.css";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VTabs/VTabs.css";
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VWindow/VWindow.css";
diff --git a/frontend/node_modules/.vite/deps/vuetify_components_VToolbar.js b/frontend/node_modules/.vite/deps/vuetify_components_VToolbar.js
index b7a0d828..1086cda9 100644
--- a/frontend/node_modules/.vite/deps/vuetify_components_VToolbar.js
+++ b/frontend/node_modules/.vite/deps/vuetify_components_VToolbar.js
@@ -1,9 +1,9 @@
import { Qn as toRef, W as createBaseVNode, ar as normalizeClass, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
-import { o as provideDefaults, r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
-import { t as makeComponentProps } from "./component-cNt7KGbA.js";
-import { t as useRender } from "./useRender-kn3mcOTh.js";
-import { r as VToolbarTitle, t as VToolbar } from "./VToolbar-CBjuzsOU.js";
-import { n as makeVariantProps } from "./variant-CXhPdVre.js";
+import { o as provideDefaults, r as genericComponent, u as propsFactory } from "./defineComponent-D5UWd5Vb.js";
+import { t as makeComponentProps } from "./component-W6F5nwNC.js";
+import { t as useRender } from "./useRender-DB_YiTtB.js";
+import { n as makeVariantProps } from "./variant-BcdnKFgE.js";
+import { r as VToolbarTitle, t as VToolbar } from "./VToolbar-DAPb7QHO.js";
//#region node_modules/vuetify/lib/components/VToolbar/VToolbarItems.js
var makeVToolbarItemsProps = propsFactory({
...makeComponentProps(),
diff --git a/frontend/src/components/AppSnackbar.vue b/frontend/src/components/AppSnackbar.vue
index 2ff005e4..273e6f95 100644
--- a/frontend/src/components/AppSnackbar.vue
+++ b/frontend/src/components/AppSnackbar.vue
@@ -27,7 +27,7 @@ function toast(message, opts = {}) {
}
// Shorthand helpers
-const success = (msg, opts = {}) => toast(msg, { color: 'success', icon: 'mdi-check-circle-outline', ...opts })
+const success = (msg, opts = {}) => toast(msg, { color: 'blue-grey', icon: 'mdi-check-circle-outline', ...opts })
const error = (msg, opts = {}) => toast(msg, { color: 'error', icon: 'mdi-alert-circle-outline', ...opts })
const warning = (msg, opts = {}) => toast(msg, { color: 'warning', icon: 'mdi-alert-outline', ...opts })
const info = (msg, opts = {}) => toast(msg, { color: 'info', icon: 'mdi-information-outline', ...opts })
diff --git a/frontend/src/plugins/vuetify.ts b/frontend/src/plugins/vuetify.ts
index a4df9386..55498815 100644
--- a/frontend/src/plugins/vuetify.ts
+++ b/frontend/src/plugins/vuetify.ts
@@ -13,7 +13,6 @@ import { VDateInput } from 'vuetify/labs/VDateInput'
export default createVuetify({
theme: {
defaultTheme: 'system',
- utilities: false,
},
components: {
VDateInput,
diff --git a/node_modules/.bin/jiti b/node_modules/.bin/jiti
new file mode 120000
index 00000000..18f28cf3
--- /dev/null
+++ b/node_modules/.bin/jiti
@@ -0,0 +1 @@
+../jiti/lib/jiti-cli.mjs
\ No newline at end of file
diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid
new file mode 120000
index 00000000..e2be547b
--- /dev/null
+++ b/node_modules/.bin/nanoid
@@ -0,0 +1 @@
+../nanoid/bin/nanoid.cjs
\ No newline at end of file
diff --git a/node_modules/.bin/rolldown b/node_modules/.bin/rolldown
new file mode 120000
index 00000000..7725012c
--- /dev/null
+++ b/node_modules/.bin/rolldown
@@ -0,0 +1 @@
+../rolldown/bin/cli.mjs
\ No newline at end of file
diff --git a/node_modules/.bin/vite b/node_modules/.bin/vite
new file mode 120000
index 00000000..6d1e3bea
--- /dev/null
+++ b/node_modules/.bin/vite
@@ -0,0 +1 @@
+../vite/bin/vite.js
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
new file mode 100644
index 00000000..af2bcc79
--- /dev/null
+++ b/node_modules/.package-lock.json
@@ -0,0 +1,558 @@
+{
+ "name": "routie2",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "node_modules/@emnapi/core": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.2.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
+ "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@tybys/wasm-util": "^0.10.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ },
+ "peerDependencies": {
+ "@emnapi/core": "^1.7.1",
+ "@emnapi/runtime": "^1.7.1"
+ }
+ },
+ "node_modules/@oxc-project/types": {
+ "version": "0.127.0",
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.127.0.tgz",
+ "integrity": "sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==",
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
+ }
+ },
+ "node_modules/@rolldown/binding-darwin-arm64": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "peer": true,
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz",
+ "integrity": "sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@tailwindcss/node": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.4.tgz",
+ "integrity": "sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "enhanced-resolve": "^5.19.0",
+ "jiti": "^2.6.1",
+ "lightningcss": "1.32.0",
+ "magic-string": "^0.30.21",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.2.4"
+ }
+ },
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.4.tgz",
+ "integrity": "sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20"
+ },
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.2.4",
+ "@tailwindcss/oxide-darwin-arm64": "4.2.4",
+ "@tailwindcss/oxide-darwin-x64": "4.2.4",
+ "@tailwindcss/oxide-freebsd-x64": "4.2.4",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.2.4",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.2.4",
+ "@tailwindcss/oxide-linux-x64-musl": "4.2.4",
+ "@tailwindcss/oxide-wasm32-wasi": "4.2.4",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.2.4"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.4.tgz",
+ "integrity": "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/vite": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.4.tgz",
+ "integrity": "sha512-pCvohwOCspk3ZFn6eJzrrX3g4n2JY73H6MmYC87XfGPyTty4YsCjYTMArRZm/zOI8dIt3+EcrLHAFPe5A4bgtw==",
+ "license": "MIT",
+ "dependencies": {
+ "@tailwindcss/node": "4.2.4",
+ "@tailwindcss/oxide": "4.2.4",
+ "tailwindcss": "4.2.4"
+ },
+ "peerDependencies": {
+ "vite": "^5.2.0 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.21.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.0.tgz",
+ "integrity": "sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.3.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
+ "node_modules/jiti": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
+ "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
+ "license": "MIT",
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
+ }
+ },
+ "node_modules/lightningcss": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-android-arm64": "1.32.0",
+ "lightningcss-darwin-arm64": "1.32.0",
+ "lightningcss-darwin-x64": "1.32.0",
+ "lightningcss-freebsd-x64": "1.32.0",
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
+ "lightningcss-linux-arm64-gnu": "1.32.0",
+ "lightningcss-linux-arm64-musl": "1.32.0",
+ "lightningcss-linux-x64-gnu": "1.32.0",
+ "lightningcss-linux-x64-musl": "1.32.0",
+ "lightningcss-win32-arm64-msvc": "1.32.0",
+ "lightningcss-win32-x64-msvc": "1.32.0"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.12",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
+ "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.13",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.13.tgz",
+ "integrity": "sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/rolldown": {
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz",
+ "integrity": "sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@oxc-project/types": "=0.127.0",
+ "@rolldown/pluginutils": "1.0.0-rc.17"
+ },
+ "bin": {
+ "rolldown": "bin/cli.mjs"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "optionalDependencies": {
+ "@rolldown/binding-android-arm64": "1.0.0-rc.17",
+ "@rolldown/binding-darwin-arm64": "1.0.0-rc.17",
+ "@rolldown/binding-darwin-x64": "1.0.0-rc.17",
+ "@rolldown/binding-freebsd-x64": "1.0.0-rc.17",
+ "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17",
+ "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17",
+ "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17",
+ "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17",
+ "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17",
+ "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17",
+ "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17",
+ "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17",
+ "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17",
+ "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17",
+ "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz",
+ "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==",
+ "license": "MIT"
+ },
+ "node_modules/tapable": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
+ "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD",
+ "optional": true
+ },
+ "node_modules/vite": {
+ "version": "8.0.10",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.10.tgz",
+ "integrity": "sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "lightningcss": "^1.32.0",
+ "picomatch": "^4.0.4",
+ "postcss": "^8.5.10",
+ "rolldown": "1.0.0-rc.17",
+ "tinyglobby": "^0.2.16"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "@vitejs/devtools": "^0.1.0",
+ "esbuild": "^0.27.0 || ^0.28.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "@vitejs/devtools": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ }
+ }
+}
diff --git a/node_modules/@emnapi/core/LICENSE b/node_modules/@emnapi/core/LICENSE
new file mode 100644
index 00000000..05a59441
--- /dev/null
+++ b/node_modules/@emnapi/core/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021-present Toyobayashi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@emnapi/core/README.md b/node_modules/@emnapi/core/README.md
new file mode 100644
index 00000000..c98dddca
--- /dev/null
+++ b/node_modules/@emnapi/core/README.md
@@ -0,0 +1 @@
+See [https://github.com/toyobayashi/emnapi](https://github.com/toyobayashi/emnapi)
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.cjs.js b/node_modules/@emnapi/core/dist/emnapi-core.cjs.js
new file mode 100644
index 00000000..cd71fc49
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.cjs.js
@@ -0,0 +1,7397 @@
+var wasiThreads = require('@emnapi/wasi-threads');
+
+const _WebAssembly = typeof WebAssembly !== 'undefined'
+ ? WebAssembly
+ : typeof WXWebAssembly !== 'undefined'
+ ? WXWebAssembly
+ : undefined;
+function validateImports(imports) {
+ if (imports && typeof imports !== 'object') {
+ throw new TypeError('imports must be an object or undefined');
+ }
+ return true;
+}
+function load(wasmInput, imports) {
+ if (!wasmInput)
+ throw new TypeError('Invalid wasm source');
+ validateImports(imports);
+ imports = imports !== null && imports !== void 0 ? imports : {};
+ try {
+ const then = typeof wasmInput === 'object' && wasmInput !== null && 'then' in wasmInput ? wasmInput.then : undefined;
+ if (typeof then === 'function') {
+ return then.call(wasmInput, (input) => load(input, imports));
+ }
+ }
+ catch (_) { }
+ if (wasmInput instanceof ArrayBuffer || ArrayBuffer.isView(wasmInput)) {
+ return _WebAssembly.instantiate(wasmInput, imports);
+ }
+ if (wasmInput instanceof _WebAssembly.Module) {
+ return _WebAssembly.instantiate(wasmInput, imports).then((instance) => {
+ return { instance, module: wasmInput };
+ });
+ }
+ if (typeof Response !== 'undefined' && wasmInput instanceof Response) {
+ return wasmInput.arrayBuffer().then(buffer => {
+ return _WebAssembly.instantiate(buffer, imports);
+ });
+ }
+ const inputIsString = typeof wasmInput === 'string';
+ if (inputIsString || (typeof URL !== 'undefined' && wasmInput instanceof URL)) {
+ if (inputIsString && typeof wx !== 'undefined' && typeof __wxConfig !== 'undefined') {
+ return _WebAssembly.instantiate(wasmInput, imports);
+ }
+ if (typeof fetch !== 'function') {
+ throw new TypeError('wasm source can not be a string or URL in this environment');
+ }
+ if (typeof _WebAssembly.instantiateStreaming === 'function') {
+ try {
+ return _WebAssembly.instantiateStreaming(fetch(wasmInput), imports).catch(() => {
+ return load(fetch(wasmInput), imports);
+ });
+ }
+ catch (_) {
+ return load(fetch(wasmInput), imports);
+ }
+ }
+ else {
+ return load(fetch(wasmInput), imports);
+ }
+ }
+ throw new TypeError('Invalid wasm source');
+}
+function loadSync(wasmInput, imports) {
+ if (!wasmInput)
+ throw new TypeError('Invalid wasm source');
+ validateImports(imports);
+ imports = imports !== null && imports !== void 0 ? imports : {};
+ let module;
+ if ((wasmInput instanceof ArrayBuffer) || ArrayBuffer.isView(wasmInput)) {
+ module = new _WebAssembly.Module(wasmInput);
+ }
+ else if (wasmInput instanceof WebAssembly.Module) {
+ module = wasmInput;
+ }
+ else {
+ throw new TypeError('Invalid wasm source');
+ }
+ const instance = new _WebAssembly.Instance(module, imports);
+ const source = { instance, module };
+ return source;
+}
+
+function createNapiModule(options) {
+ var napiModule = (function () {
+ var ENVIRONMENT_IS_NODE = typeof process === 'object' && process !== null && typeof process.versions === 'object' && process.versions !== null && typeof process.versions.node === 'string';
+ var ENVIRONMENT_IS_PTHREAD = Boolean(options.childThread);
+ var waitThreadStart = typeof options.waitThreadStart === 'number' ? options.waitThreadStart : Boolean(options.waitThreadStart);
+ var wasmInstance;
+ var wasmMemory;
+ var wasmTable;
+ var _malloc;
+ var _free;
+ function abort(msg) {
+ if (typeof _WebAssembly.RuntimeError === 'function') {
+ throw new _WebAssembly.RuntimeError(msg);
+ }
+ throw Error(msg);
+ }
+ var napiModule = {
+ imports: {
+ env: {},
+ napi: {},
+ emnapi: {}
+ },
+ exports: {},
+ emnapi: {},
+ loaded: false,
+ filename: '',
+ childThread: ENVIRONMENT_IS_PTHREAD,
+ initWorker: undefined,
+ waitThreadStart: waitThreadStart,
+ PThread: undefined,
+ init: function (options) {
+ if (napiModule.loaded)
+ return napiModule.exports;
+ if (!options)
+ throw new TypeError('Invalid napi init options');
+ var instance = options.instance;
+ if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
+ throw new TypeError('Invalid wasm instance');
+ wasmInstance = instance;
+ var exports$1 = instance.exports;
+ var module = options.module;
+ var memory = options.memory || exports$1.memory;
+ var table = options.table || exports$1.__indirect_function_table;
+ if (!(module instanceof _WebAssembly.Module))
+ throw new TypeError('Invalid wasm module');
+ if (!(memory instanceof _WebAssembly.Memory))
+ throw new TypeError('Invalid wasm memory');
+ if (!(table instanceof _WebAssembly.Table))
+ throw new TypeError('Invalid wasm table');
+ wasmMemory = memory;
+ wasmTable = table;
+ if (typeof exports$1.malloc !== 'function')
+ throw new TypeError('malloc is not exported');
+ if (typeof exports$1.free !== 'function')
+ throw new TypeError('free is not exported');
+ _malloc = exports$1.malloc;
+ _free = exports$1.free;
+ if (!napiModule.childThread) {
+ var moduleApiVersion = 8;
+ var node_api_module_get_api_version_v1 = instance.exports.node_api_module_get_api_version_v1;
+ if (typeof node_api_module_get_api_version_v1 === 'function') {
+ moduleApiVersion = node_api_module_get_api_version_v1();
+ }
+ var envObject = napiModule.envObject || (napiModule.envObject = emnapiCtx.createEnv(napiModule.filename, moduleApiVersion, function (cb) { return (wasmTable.get(cb)); }, function (cb) { return (wasmTable.get(cb)); }, abort, emnapiNodeBinding));
+ var scope_1 = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callIntoModule(function (_envObject) {
+ var exports$1 = napiModule.exports;
+ var exportsHandle = scope_1.add(exports$1);
+ var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
+ var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
+ napiModule.exports = (!napiValue) ? exports$1 : emnapiCtx.handleStore.get(napiValue).value;
+ });
+ }
+ catch (e) {
+ if (e !== 'unwind') {
+ throw e;
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope_1);
+ }
+ napiModule.loaded = true;
+ delete napiModule.envObject;
+ return napiModule.exports;
+ }
+ }
+ };
+ var emnapiCtx;
+ var emnapiNodeBinding;
+ var onCreateWorker = undefined;
+ var err;
+ if (!ENVIRONMENT_IS_PTHREAD) {
+ var context = options.context;
+ if (typeof context !== 'object' || context === null) {
+ throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");
+ }
+ emnapiCtx = context;
+ }
+ else {
+ emnapiCtx = options === null || options === void 0 ? void 0 : options.context;
+ var postMsg = typeof options.postMessage === 'function'
+ ? options.postMessage
+ : typeof postMessage === 'function'
+ ? postMessage
+ : undefined;
+ if (typeof postMsg !== 'function') {
+ throw new TypeError('No postMessage found');
+ }
+ napiModule.postMessage = postMsg;
+ }
+ if (typeof options.filename === 'string') {
+ napiModule.filename = options.filename;
+ }
+ if (typeof options.onCreateWorker === 'function') {
+ onCreateWorker = options.onCreateWorker;
+ }
+ if (typeof options.print === 'function') {
+ options.print;
+ }
+ else {
+ console.log.bind(console);
+ }
+ if (typeof options.printErr === 'function') {
+ err = options.printErr;
+ }
+ else {
+ err = console.warn.bind(console);
+ }
+ if ('nodeBinding' in options) {
+ var nodeBinding = options.nodeBinding;
+ if (typeof nodeBinding !== 'object' || nodeBinding === null) {
+ throw new TypeError('Invalid `options.nodeBinding`. Use @emnapi/node-binding package');
+ }
+ emnapiNodeBinding = nodeBinding;
+ }
+ var emnapiAsyncWorkPoolSize = 0;
+ if ('asyncWorkPoolSize' in options) {
+ if (typeof options.asyncWorkPoolSize !== 'number') {
+ throw new TypeError('options.asyncWorkPoolSize must be a integer');
+ }
+ emnapiAsyncWorkPoolSize = options.asyncWorkPoolSize >> 0;
+ if (emnapiAsyncWorkPoolSize > 1024) {
+ emnapiAsyncWorkPoolSize = 1024;
+ }
+ else if (emnapiAsyncWorkPoolSize < -1024) {
+ emnapiAsyncWorkPoolSize = -1024;
+ }
+ }
+ var singleThreadAsyncWork = ENVIRONMENT_IS_PTHREAD ? false : (emnapiAsyncWorkPoolSize <= 0);
+ function _emnapi_async_work_pool_size() {
+ return Math.abs(emnapiAsyncWorkPoolSize);
+ }
+ napiModule.imports.env._emnapi_async_work_pool_size = _emnapi_async_work_pool_size;
+ function emnapiAddSendListener(worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiSendListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__ && __emnapi__.type === 'async-send') {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({ __emnapi__: __emnapi__ });
+ }
+ else {
+ var callback = __emnapi__.payload.callback;
+ (wasmTable.get(callback))(__emnapi__.payload.data);
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiSendListener;
+ };
+ worker._emnapiSendListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ }
+ napiModule.emnapi.addSendListener = emnapiAddSendListener;
+ var PThread = new wasiThreads.ThreadManager(ENVIRONMENT_IS_PTHREAD
+ ? {
+ printErr: err,
+ childThread: true
+ }
+ : {
+ printErr: err,
+ beforeLoad: function (worker) {
+ emnapiAddSendListener(worker);
+ },
+ reuseWorker: options.reuseWorker,
+ onCreateWorker: onCreateWorker
+ });
+ napiModule.PThread = PThread;
+ function napi_set_last_error(env, error_code, engine_error_code, engine_reserved) {
+ var envObject = emnapiCtx.envStore.get(env);
+ return envObject.setLastError(error_code, engine_error_code, engine_reserved);
+ }
+ function napi_clear_last_error(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ return envObject.clearLastError();
+ }
+ function _emnapi_get_node_version(major, minor, patch) {
+ major >>>= 0;
+ minor >>>= 0;
+ patch >>>= 0;
+ var versions = (typeof process === 'object' && process !== null &&
+ typeof process.versions === 'object' && process.versions !== null &&
+ typeof process.versions.node === 'string')
+ ? process.versions.node.split('.').map(function (n) { return Number(n); })
+ : [0, 0, 0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(major, versions[0], true);
+ HEAP_DATA_VIEW.setUint32(minor, versions[1], true);
+ HEAP_DATA_VIEW.setUint32(patch, versions[2], true);
+ }
+ function _emnapi_runtime_keepalive_push() {
+ }
+ function _emnapi_runtime_keepalive_pop() {
+ }
+ function _emnapi_set_immediate(callback, data) {
+ emnapiCtx.feature.setImmediate(function () {
+ (wasmTable.get(callback))(data);
+ });
+ }
+ function _emnapi_next_tick(callback, data) {
+ Promise.resolve().then(function () {
+ (wasmTable.get(callback))(data);
+ });
+ }
+ function _emnapi_callback_into_module(forceUncaught, env, callback, data, close_scope_if_throw) {
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callbackIntoModule(Boolean(forceUncaught), function () {
+ (wasmTable.get(callback))(env, data);
+ });
+ }
+ catch (err) {
+ emnapiCtx.closeScope(envObject, scope);
+ if (close_scope_if_throw) {
+ emnapiCtx.closeScope(envObject);
+ }
+ throw err;
+ }
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
+ var envObject = emnapiCtx.envStore.get(env);
+ callback >>>= 0;
+ envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
+ }
+ function _emnapi_ctx_increase_waiting_request_counter() {
+ emnapiCtx.increaseWaitingRequestCounter();
+ }
+ function _emnapi_ctx_decrease_waiting_request_counter() {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ function _emnapi_is_main_runtime_thread() {
+ return ENVIRONMENT_IS_PTHREAD ? 0 : 1;
+ }
+ function _emnapi_is_main_browser_thread() {
+ return (typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE) ? 1 : 0;
+ }
+ function _emnapi_unwind() {
+ throw 'unwind';
+ }
+ function _emnapi_get_now() {
+ return performance.timeOrigin + performance.now();
+ }
+ function $emnapiSetValueI64(result, numberValue) {
+ var tempDouble;
+ var tempI64 = [
+ numberValue >>> 0,
+ (tempDouble = numberValue, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)
+ ];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, tempI64[0], true);
+ HEAP_DATA_VIEW.setInt32(result + 4, tempI64[1], true);
+ }
+ function _emnapi_open_handle_scope() {
+ return emnapiCtx.openScope().id;
+ }
+ function _emnapi_close_handle_scope(_scope) {
+ return emnapiCtx.closeScope();
+ }
+ var utilMod = Object.freeze({
+ __proto__: null,
+ $emnapiSetValueI64: $emnapiSetValueI64,
+ _emnapi_call_finalizer: _emnapi_call_finalizer,
+ _emnapi_callback_into_module: _emnapi_callback_into_module,
+ _emnapi_close_handle_scope: _emnapi_close_handle_scope,
+ _emnapi_ctx_decrease_waiting_request_counter: _emnapi_ctx_decrease_waiting_request_counter,
+ _emnapi_ctx_increase_waiting_request_counter: _emnapi_ctx_increase_waiting_request_counter,
+ _emnapi_get_node_version: _emnapi_get_node_version,
+ _emnapi_get_now: _emnapi_get_now,
+ _emnapi_is_main_browser_thread: _emnapi_is_main_browser_thread,
+ _emnapi_is_main_runtime_thread: _emnapi_is_main_runtime_thread,
+ _emnapi_next_tick: _emnapi_next_tick,
+ _emnapi_open_handle_scope: _emnapi_open_handle_scope,
+ _emnapi_runtime_keepalive_pop: _emnapi_runtime_keepalive_pop,
+ _emnapi_runtime_keepalive_push: _emnapi_runtime_keepalive_push,
+ _emnapi_set_immediate: _emnapi_set_immediate,
+ _emnapi_unwind: _emnapi_unwind,
+ napi_clear_last_error: napi_clear_last_error,
+ napi_set_last_error: napi_set_last_error
+ });
+ function emnapiGetWorkerByPthreadPtr(pthreadPtr) {
+ var view = new DataView(wasmMemory.buffer);
+ var tidOffset = 20;
+ var tid = view.getInt32(pthreadPtr + tidOffset, true);
+ var worker = PThread.pthreads[tid];
+ return worker;
+ }
+ function _emnapi_worker_ref(pthreadPtr) {
+ if (ENVIRONMENT_IS_PTHREAD)
+ return;
+ pthreadPtr >>>= 0;
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ if (worker && typeof worker.ref === 'function') {
+ worker.ref();
+ }
+ }
+ function _emnapi_worker_unref(pthreadPtr) {
+ if (ENVIRONMENT_IS_PTHREAD)
+ return;
+ pthreadPtr >>>= 0;
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ if (worker && typeof worker.unref === 'function') {
+ worker.unref();
+ }
+ }
+ function _emnapi_async_send_js(type, callback, data) {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({
+ __emnapi__: {
+ type: 'async-send',
+ payload: {
+ callback: callback,
+ data: data
+ }
+ }
+ });
+ }
+ else {
+ switch (type) {
+ case 0:
+ _emnapi_set_immediate(callback, data);
+ break;
+ case 1:
+ _emnapi_next_tick(callback, data);
+ break;
+ }
+ }
+ }
+ var uvThreadpoolReadyResolve;
+ var uvThreadpoolReady = new Promise(function (resolve) {
+ uvThreadpoolReadyResolve = function () {
+ uvThreadpoolReady.ready = true;
+ resolve();
+ };
+ });
+ uvThreadpoolReady.ready = false;
+ function _emnapi_after_uvthreadpool_ready(callback, q, type) {
+ if (uvThreadpoolReady.ready) {
+ (wasmTable.get(callback))(q, type);
+ }
+ else {
+ uvThreadpoolReady.then(function () {
+ (wasmTable.get(callback))(q, type);
+ });
+ }
+ }
+ function _emnapi_tell_js_uvthreadpool(threads, size) {
+ var p = [];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var _loop_1 = function (i) {
+ var pthreadPtr = HEAP_DATA_VIEW.getUint32(threads + i * 4, true);
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ p.push(new Promise(function (resolve) {
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__ && __emnapi__.type === 'async-thread-ready') {
+ resolve();
+ if (worker && typeof worker.unref === 'function') {
+ worker.unref();
+ }
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler);
+ }
+ }
+ };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler);
+ }
+ }));
+ };
+ for (var i = 0; i < size; i++) {
+ _loop_1(i);
+ }
+ Promise.all(p).then(uvThreadpoolReadyResolve);
+ }
+ function _emnapi_emit_async_thread_ready() {
+ if (!ENVIRONMENT_IS_PTHREAD)
+ return;
+ var postMessage = napiModule.postMessage;
+ postMessage({
+ __emnapi__: {
+ type: 'async-thread-ready',
+ payload: {}
+ }
+ });
+ }
+ var asyncMod = Object.freeze({
+ __proto__: null,
+ _emnapi_after_uvthreadpool_ready: _emnapi_after_uvthreadpool_ready,
+ _emnapi_async_send_js: _emnapi_async_send_js,
+ _emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
+ _emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
+ _emnapi_worker_ref: _emnapi_worker_ref,
+ _emnapi_worker_unref: _emnapi_worker_unref
+ });
+ function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!adjusted_value)
+ return envObject.setLastError(1);
+ var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
+ adjusted_value >>>= 0;
+ if (emnapiCtx.feature.supportBigInt) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
+ }
+ else {
+ $emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
+ }
+ return envObject.clearLastError();
+ }
+ var memoryMod = Object.freeze({
+ __proto__: null,
+ napi_adjust_external_memory: napi_adjust_external_memory
+ });
+ var emnapiAWST = {
+ idGen: {},
+ values: [undefined],
+ queued: new Set(),
+ pending: [],
+ init: function () {
+ var idGen = {
+ nextId: 1,
+ list: [],
+ generate: function () {
+ var id;
+ if (idGen.list.length) {
+ id = idGen.list.shift();
+ }
+ else {
+ id = idGen.nextId;
+ idGen.nextId++;
+ }
+ return id;
+ },
+ reuse: function (id) {
+ idGen.list.push(id);
+ }
+ };
+ emnapiAWST.idGen = idGen;
+ emnapiAWST.values = [undefined];
+ emnapiAWST.queued = new Set();
+ emnapiAWST.pending = [];
+ },
+ create: function (env, resource, resourceName, execute, complete, data) {
+ var asyncId = 0;
+ var triggerAsyncId = 0;
+ if (emnapiNodeBinding) {
+ var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resourceName, -1);
+ asyncId = asyncContext.asyncId;
+ triggerAsyncId = asyncContext.triggerAsyncId;
+ }
+ var id = emnapiAWST.idGen.generate();
+ emnapiAWST.values[id] = {
+ env: env,
+ id: id,
+ resource: resource,
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId,
+ status: 0,
+ execute: execute,
+ complete: complete,
+ data: data
+ };
+ return id;
+ },
+ callComplete: function (work, status) {
+ var complete = work.complete;
+ var env = work.env;
+ var data = work.data;
+ var callback = function () {
+ if (!complete)
+ return;
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callbackIntoModule(true, function () {
+ (wasmTable.get(complete))(env, status, data);
+ });
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ };
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.node.makeCallback(work.resource, callback, [], {
+ asyncId: work.asyncId,
+ triggerAsyncId: work.triggerAsyncId
+ });
+ }
+ else {
+ callback();
+ }
+ },
+ queue: function (id) {
+ var work = emnapiAWST.values[id];
+ if (!work)
+ return;
+ if (work.status === 0) {
+ work.status = 1;
+ if (emnapiAWST.queued.size >= (Math.abs(emnapiAsyncWorkPoolSize) || 4)) {
+ emnapiAWST.pending.push(id);
+ return;
+ }
+ emnapiAWST.queued.add(id);
+ var env_1 = work.env;
+ var data_1 = work.data;
+ var execute = work.execute;
+ work.status = 2;
+ emnapiCtx.feature.setImmediate(function () {
+ (wasmTable.get(execute))(env_1, data_1);
+ emnapiAWST.queued.delete(id);
+ work.status = 3;
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWST.callComplete(work, 0);
+ });
+ if (emnapiAWST.pending.length > 0) {
+ var nextWorkId = emnapiAWST.pending.shift();
+ emnapiAWST.values[nextWorkId].status = 0;
+ emnapiAWST.queue(nextWorkId);
+ }
+ });
+ }
+ },
+ cancel: function (id) {
+ var index = emnapiAWST.pending.indexOf(id);
+ if (index !== -1) {
+ var work_1 = emnapiAWST.values[id];
+ if (work_1 && (work_1.status === 1)) {
+ work_1.status = 4;
+ emnapiAWST.pending.splice(index, 1);
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWST.callComplete(work_1, 11);
+ });
+ return 0;
+ }
+ else {
+ return 9;
+ }
+ }
+ return 9;
+ },
+ remove: function (id) {
+ var work = emnapiAWST.values[id];
+ if (!work)
+ return;
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.node.emitAsyncDestroy({
+ asyncId: work.asyncId,
+ triggerAsyncId: work.triggerAsyncId
+ });
+ }
+ emnapiAWST.values[id] = undefined;
+ emnapiAWST.idGen.reuse(id);
+ }
+ };
+ function _emnapi_node_emit_async_init(async_resource, async_resource_name, trigger_async_id, result) {
+ if (!emnapiNodeBinding)
+ return;
+ var resource = emnapiCtx.handleStore.get(async_resource).value;
+ var resource_name = emnapiCtx.handleStore.get(async_resource_name).value;
+ var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resource_name, trigger_async_id);
+ var asyncId = asyncContext.asyncId;
+ var triggerAsyncId = asyncContext.triggerAsyncId;
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
+ HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
+ }
+ }
+ function _emnapi_node_emit_async_destroy(async_id, trigger_async_id) {
+ if (!emnapiNodeBinding)
+ return;
+ emnapiNodeBinding.node.emitAsyncDestroy({
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ });
+ }
+ function _emnapi_node_make_callback(env, async_resource, cb, argv, size, async_id, trigger_async_id, result) {
+ var i = 0;
+ var v;
+ if (!emnapiNodeBinding)
+ return;
+ var resource = emnapiCtx.handleStore.get(async_resource).value;
+ var callback = emnapiCtx.handleStore.get(cb).value;
+ argv >>>= 0;
+ size >>>= 0;
+ size = size >>> 0;
+ var arr = Array(size);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (; i < size; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ arr[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var ret = emnapiNodeBinding.node.makeCallback(resource, callback, arr, {
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ });
+ if (result) {
+ result >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ }
+ function _emnapi_async_init_js(async_resource, async_resource_name, result) {
+ if (!emnapiNodeBinding) {
+ return 9;
+ }
+ var resource;
+ if (async_resource) {
+ resource = Object(emnapiCtx.handleStore.get(async_resource).value);
+ }
+ var name = emnapiCtx.handleStore.get(async_resource_name).value;
+ var ret = emnapiNodeBinding.napi.asyncInit(resource, name);
+ if (ret.status !== 0)
+ return ret.status;
+ var numberValue = ret.value;
+ if (!((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63))))) {
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ if (numberValue >= (BigInt(1) << BigInt(63))) {
+ numberValue = numberValue - (BigInt(1) << BigInt(64));
+ }
+ }
+ var low = Number(numberValue & BigInt(0xffffffff));
+ var high = Number(numberValue >> BigInt(32));
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, low, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, high, true);
+ return 0;
+ }
+ function _emnapi_async_destroy_js(async_context) {
+ if (!emnapiNodeBinding) {
+ return 9;
+ }
+ async_context >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var low = HEAP_DATA_VIEW.getInt32(async_context, true);
+ var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
+ var pointer = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
+ var ret = emnapiNodeBinding.napi.asyncDestroy(pointer);
+ if (ret.status !== 0)
+ return ret.status;
+ return 0;
+ }
+ function napi_open_callback_scope(env, ignored, async_context_handle, result) {
+ throw new Error('napi_open_callback_scope has not been implemented yet');
+ }
+ function napi_close_callback_scope(env, scope) {
+ throw new Error('napi_close_callback_scope has not been implemented yet');
+ }
+ function napi_make_callback(env, async_context, recv, func, argc, argv, result) {
+ var i = 0;
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!emnapiNodeBinding) {
+ return envObject.setLastError(9);
+ }
+ if (!recv)
+ return envObject.setLastError(1);
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1);
+ }
+ var v8recv = Object(emnapiCtx.handleStore.get(recv).value);
+ var v8func = emnapiCtx.handleStore.get(func).value;
+ if (typeof v8func !== 'function') {
+ return envObject.setLastError(1);
+ }
+ async_context >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var low = HEAP_DATA_VIEW.getInt32(async_context, true);
+ var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
+ var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
+ argv >>>= 0;
+ argc >>>= 0;
+ argc = argc >>> 0;
+ var arr = Array(argc);
+ for (; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ arr[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var ret = emnapiNodeBinding.napi.makeCallback(ctx, v8recv, v8func, arr);
+ if (ret.error) {
+ throw ret.error;
+ }
+ if (ret.status !== 0)
+ return envObject.setLastError(ret.status);
+ if (result) {
+ result >>>= 0;
+ v = envObject.ensureHandleId(ret.value);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function _emnapi_env_check_gc_access(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ }
+ var nodeMod = Object.freeze({
+ __proto__: null,
+ _emnapi_async_destroy_js: _emnapi_async_destroy_js,
+ _emnapi_async_init_js: _emnapi_async_init_js,
+ _emnapi_env_check_gc_access: _emnapi_env_check_gc_access,
+ _emnapi_node_emit_async_destroy: _emnapi_node_emit_async_destroy,
+ _emnapi_node_emit_async_init: _emnapi_node_emit_async_init,
+ _emnapi_node_make_callback: _emnapi_node_make_callback,
+ napi_close_callback_scope: napi_close_callback_scope,
+ napi_make_callback: napi_make_callback,
+ napi_open_callback_scope: napi_open_callback_scope
+ });
+ var emnapiTSFN = {
+ _liveSet: {},
+ offset: {
+ __size__: 0,
+ resource: 0,
+ async_id: 0,
+ trigger_async_id: 0,
+ queue_size: 0,
+ is_some: 0,
+ queue: 0,
+ async_pending: 0,
+ async_u_fd: 0,
+ thread_count: 0,
+ state: 0,
+ dispatch_state: 0,
+ context: 0,
+ max_queue_size: 0,
+ ref: 0,
+ env: 0,
+ finalize_data: 0,
+ finalize_cb: 0,
+ call_js_cb: 0,
+ handles_closing: 0,
+ async_ref: 0,
+ mutex: 0,
+ cond: 0
+ },
+ init: function () {
+ emnapiTSFN._liveSet = new Set();
+ emnapiTSFN.offset.__size__ = 184;
+ emnapiTSFN.offset.resource = 0;
+ emnapiTSFN.offset.async_id = 8;
+ emnapiTSFN.offset.trigger_async_id = 16;
+ emnapiTSFN.offset.queue_size = 60;
+ emnapiTSFN.offset.is_some = 24;
+ emnapiTSFN.offset.queue = 64;
+ emnapiTSFN.offset.async_pending = 132;
+ emnapiTSFN.offset.async_u_fd = 96;
+ emnapiTSFN.offset.thread_count = 136;
+ emnapiTSFN.offset.state = 140;
+ emnapiTSFN.offset.dispatch_state = 144;
+ emnapiTSFN.offset.context = 148;
+ emnapiTSFN.offset.max_queue_size = 152;
+ emnapiTSFN.offset.ref = 156;
+ emnapiTSFN.offset.env = 160;
+ emnapiTSFN.offset.finalize_data = 164;
+ emnapiTSFN.offset.finalize_cb = 168;
+ emnapiTSFN.offset.call_js_cb = 172;
+ emnapiTSFN.offset.handles_closing = 176;
+ emnapiTSFN.offset.async_ref = 180;
+ emnapiTSFN.offset.mutex = 32;
+ emnapiTSFN.offset.cond = 56;
+ emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
+ if (typeof PThread !== 'undefined') {
+ PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
+ PThread.runningWorkers.forEach(emnapiTSFN.addListener);
+ var __original_getNewWorker_1 = PThread.getNewWorker;
+ PThread.getNewWorker = function () {
+ var r = __original_getNewWorker_1.apply(this, arguments);
+ emnapiTSFN.addListener(r);
+ return r;
+ };
+ }
+ },
+ addListener: function (worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiTSFNListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__) {
+ var type = __emnapi__.type;
+ var payload = __emnapi__.payload;
+ if (type === 'tsfn-send') {
+ var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
+ emnapiTSFN.enqueue(payload.tsfn);
+ }
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiTSFNListener;
+ };
+ worker._emnapiTSFNListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ },
+ initQueue: function (func) {
+ var size = 2 * 4;
+ var queue = _malloc(size);
+ if (!queue)
+ return false;
+ queue >>>= 0;
+ new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
+ emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
+ return true;
+ },
+ destroyQueue: function (func) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ if (queue) {
+ var node = emnapiTSFN.loadSizeTypeValue(queue, false);
+ while (node !== 0) {
+ var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
+ _free(node);
+ node = next;
+ }
+ _free(queue);
+ }
+ },
+ pushQueue: function (func, data) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ var head = emnapiTSFN.loadSizeTypeValue(queue, false);
+ var tail = emnapiTSFN.loadSizeTypeValue(queue + 4, false);
+ var size = 2 * 4;
+ var node = _malloc(size);
+ if (!node)
+ throw new Error('OOM');
+ node >>>= 0;
+ emnapiTSFN.storeSizeTypeValue(node, data, false);
+ emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
+ if (head === 0 && tail === 0) {
+ emnapiTSFN.storeSizeTypeValue(queue, node, false);
+ emnapiTSFN.storeSizeTypeValue(queue + 4, node, false);
+ }
+ else {
+ emnapiTSFN.storeSizeTypeValue(tail + 4, node, false);
+ emnapiTSFN.storeSizeTypeValue(queue + 4, node, false);
+ }
+ emnapiTSFN.addQueueSize(func);
+ },
+ shiftQueue: function (func) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ var head = emnapiTSFN.loadSizeTypeValue(queue, false);
+ if (head === 0)
+ return 0;
+ var node = head;
+ var next = emnapiTSFN.loadSizeTypeValue(head + 4, false);
+ emnapiTSFN.storeSizeTypeValue(queue, next, false);
+ if (next === 0) {
+ emnapiTSFN.storeSizeTypeValue(queue + 4, 0, false);
+ }
+ emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
+ var value = emnapiTSFN.loadSizeTypeValue(node, false);
+ _free(node);
+ emnapiTSFN.subQueueSize(func);
+ return value;
+ },
+ push: function (func, data, mode) {
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ var waitCondition = function () {
+ var queueSize = emnapiTSFN.getQueueSize(func);
+ var maxSize = emnapiTSFN.getMaxQueueSize(func);
+ return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0;
+ };
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var shouldDelete = false;
+ var ret = mutex.execute(function () {
+ while (waitCondition()) {
+ if (mode === 0) {
+ return 15;
+ }
+ if (isBrowserMain) {
+ return 21;
+ }
+ cond.wait();
+ }
+ if (emnapiTSFN.getState(func) === 0) {
+ emnapiTSFN.pushQueue(func, data);
+ emnapiTSFN.send(func);
+ return 0;
+ }
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ return 1;
+ }
+ emnapiTSFN.subThreadCount(func);
+ if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
+ return 16;
+ }
+ shouldDelete = true;
+ return 16;
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ return ret;
+ },
+ getMutex: function (func) {
+ var index = func + emnapiTSFN.offset.mutex;
+ var mutex = {
+ lock: function () {
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ if (isBrowserMain) {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ }
+ }
+ else {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ Atomics.wait(i32a, 0, 10);
+ }
+ }
+ },
+ unlock: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
+ if (oldValue !== 10) {
+ throw new Error('Tried to unlock while not holding the mutex');
+ }
+ Atomics.notify(i32a, 0, 1);
+ },
+ execute: function (fn) {
+ mutex.lock();
+ try {
+ return fn();
+ }
+ finally {
+ mutex.unlock();
+ }
+ }
+ };
+ return mutex;
+ },
+ getCond: function (func) {
+ var index = func + emnapiTSFN.offset.cond;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = {
+ wait: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var value = Atomics.load(i32a, 0);
+ mutex.unlock();
+ Atomics.wait(i32a, 0, value);
+ mutex.lock();
+ },
+ signal: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ Atomics.add(i32a, 0, 1);
+ Atomics.notify(i32a, 0, 1);
+ }
+ };
+ return cond;
+ },
+ getQueueSize: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue_size, true);
+ },
+ addQueueSize: function (func) {
+ var offset = emnapiTSFN.offset.queue_size;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.add(arr, index, 1);
+ },
+ subQueueSize: function (func) {
+ var offset = emnapiTSFN.offset.queue_size;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.sub(arr, index, 1);
+ },
+ getThreadCount: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.thread_count, true);
+ },
+ addThreadCount: function (func) {
+ var offset = emnapiTSFN.offset.thread_count;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.add(arr, index, 1);
+ },
+ subThreadCount: function (func) {
+ var offset = emnapiTSFN.offset.thread_count;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.sub(arr, index, 1);
+ },
+ getState: function (func) {
+ return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
+ },
+ setState: function (func, value) {
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
+ },
+ getHandlesClosing: function (func) {
+ return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
+ },
+ setHandlesClosing: function (func, value) {
+ Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
+ },
+ getDispatchState: function (func) {
+ return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
+ },
+ getContext: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
+ },
+ getMaxQueueSize: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.max_queue_size, true);
+ },
+ getEnv: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.env, false);
+ },
+ getCallJSCb: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.call_js_cb, false);
+ },
+ getRef: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.ref, false);
+ },
+ getResource: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.resource, false);
+ },
+ getFinalizeCb: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.finalize_cb, false);
+ },
+ getFinalizeData: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.finalize_data, false);
+ },
+ loadSizeTypeValue: function (offset, unsigned) {
+ var ret;
+ var arr;
+ if (unsigned) {
+ arr = new Uint32Array(wasmMemory.buffer);
+ ret = Atomics.load(arr, offset >>> 2);
+ return ret;
+ }
+ else {
+ arr = new Int32Array(wasmMemory.buffer);
+ ret = Atomics.load(arr, offset >>> 2);
+ return ret;
+ }
+ },
+ storeSizeTypeValue: function (offset, value, unsigned) {
+ var arr;
+ if (unsigned) {
+ arr = new Uint32Array(wasmMemory.buffer);
+ Atomics.store(arr, offset >>> 2, value);
+ return undefined;
+ }
+ else {
+ arr = new Int32Array(wasmMemory.buffer);
+ Atomics.store(arr, offset >>> 2, value >>> 0);
+ return undefined;
+ }
+ },
+ releaseResources: function (func) {
+ if (emnapiTSFN.getState(func) !== 2) {
+ emnapiTSFN.setState(func, 2);
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ var ref = emnapiTSFN.getRef(func);
+ if (ref) {
+ emnapiCtx.refStore.get(ref).dispose();
+ }
+ var resource = emnapiTSFN.getResource(func);
+ emnapiCtx.refStore.get(resource).dispose();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
+ emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
+ envObject.unref();
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ if (Atomics.load(arr, asyncRefOffset) > 0) {
+ Atomics.store(arr, asyncRefOffset, 0);
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ if (emnapiNodeBinding) {
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
+ }
+ }
+ },
+ destroy: function (func) {
+ emnapiTSFN._liveSet.delete(func);
+ emnapiTSFN.destroyQueue(func);
+ emnapiTSFN.releaseResources(func);
+ _free(func);
+ },
+ emptyQueue: function (func) {
+ var drainQueue = [];
+ emnapiTSFN.getMutex(func).execute(function () {
+ while (emnapiTSFN.getQueueSize(func) > 0) {
+ drainQueue.push(emnapiTSFN.shiftQueue(func));
+ }
+ });
+ var callJsCb = emnapiTSFN.getCallJSCb(func);
+ var context = emnapiTSFN.getContext(func);
+ var data;
+ for (var i = 0; i < drainQueue.length; i++) {
+ data = drainQueue[i];
+ if (callJsCb) {
+ (wasmTable.get(callJsCb))(0, 0, context, data);
+ }
+ }
+ },
+ maybeDelete: function (func) {
+ var shouldDelete = false;
+ emnapiTSFN.getMutex(func).execute(function () {
+ if (emnapiTSFN.getThreadCount(func) > 0) {
+ emnapiTSFN.releaseResources(func);
+ }
+ else {
+ shouldDelete = true;
+ }
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ },
+ finalize: function (func) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject);
+ var finalize = emnapiTSFN.getFinalizeCb(func);
+ var data = emnapiTSFN.getFinalizeData(func);
+ var context = emnapiTSFN.getContext(func);
+ var f = function () {
+ envObject.callFinalizerInternal(0, finalize, data, context);
+ };
+ try {
+ emnapiTSFN.emptyQueue(func);
+ if (finalize) {
+ if (emnapiNodeBinding) {
+ var resource = emnapiTSFN.getResource(func);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
+ emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId
+ });
+ }
+ else {
+ f();
+ }
+ }
+ emnapiTSFN.maybeDelete(func);
+ }
+ finally {
+ emnapiCtx.closeScope(envObject);
+ }
+ },
+ cleanup: function (func) {
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 1);
+ },
+ closeHandlesAndMaybeDelete: function (func, set_closing) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject);
+ try {
+ if (set_closing) {
+ emnapiTSFN.getMutex(func).execute(function () {
+ emnapiTSFN.setState(func, 1);
+ if (emnapiTSFN.getMaxQueueSize(func) > 0) {
+ emnapiTSFN.getCond(func).signal();
+ }
+ });
+ }
+ if (emnapiTSFN.getHandlesClosing(func)) {
+ return;
+ }
+ emnapiTSFN.setHandlesClosing(func, 1);
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiTSFN.finalize(func);
+ });
+ }
+ finally {
+ emnapiCtx.closeScope(envObject);
+ }
+ },
+ dispatchOne: function (func) {
+ var data = 0;
+ var popped_value = false;
+ var has_more = false;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ mutex.execute(function () {
+ if (emnapiTSFN.getState(func) === 0) {
+ var size = emnapiTSFN.getQueueSize(func);
+ if (size > 0) {
+ data = emnapiTSFN.shiftQueue(func);
+ popped_value = true;
+ var maxQueueSize = emnapiTSFN.getMaxQueueSize(func);
+ if (size === maxQueueSize && maxQueueSize > 0) {
+ cond.signal();
+ }
+ size--;
+ }
+ if (size === 0) {
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ emnapiTSFN.setState(func, 1);
+ if (emnapiTSFN.getMaxQueueSize(func) > 0) {
+ cond.signal();
+ }
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
+ }
+ }
+ else {
+ has_more = true;
+ }
+ }
+ else {
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
+ }
+ });
+ if (popped_value) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject_1 = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject_1);
+ var f = function () {
+ envObject_1.callbackIntoModule(false, function () {
+ var callJsCb = emnapiTSFN.getCallJSCb(func);
+ var ref = emnapiTSFN.getRef(func);
+ var js_callback = ref ? emnapiCtx.refStore.get(ref).get() : 0;
+ if (callJsCb) {
+ var context = emnapiTSFN.getContext(func);
+ (wasmTable.get(callJsCb))(env, js_callback, context, data);
+ }
+ else {
+ var jsCallback = js_callback ? emnapiCtx.handleStore.get(js_callback).value : null;
+ if (typeof jsCallback === 'function') {
+ jsCallback();
+ }
+ }
+ });
+ };
+ try {
+ if (emnapiNodeBinding) {
+ var resource = emnapiTSFN.getResource(func);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
+ asyncId: view.getFloat64(func + emnapiTSFN.offset.async_id, true),
+ triggerAsyncId: view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true)
+ });
+ }
+ else {
+ f();
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject_1);
+ }
+ }
+ return has_more;
+ },
+ dispatch: function (func) {
+ var has_more = true;
+ var iterations_left = 1000;
+ var ui32a = new Uint32Array(wasmMemory.buffer);
+ var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
+ while (has_more && --iterations_left !== 0) {
+ Atomics.store(ui32a, index, 1);
+ has_more = emnapiTSFN.dispatchOne(func);
+ if (Atomics.exchange(ui32a, index, 0) !== 1) {
+ has_more = true;
+ }
+ }
+ if (has_more) {
+ emnapiTSFN.send(func);
+ }
+ },
+ enqueue: function (func) {
+ var pending = func + emnapiTSFN.offset.async_pending;
+ var scheduled = func + emnapiTSFN.offset.async_u_fd;
+ var i32a = new Int32Array(wasmMemory.buffer);
+ if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
+ return;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ if (!emnapiTSFN._liveSet.has(func)) {
+ return;
+ }
+ if (Atomics.load(i32a, pending >>> 2) === 0) {
+ Atomics.store(i32a, scheduled >>> 2, 0);
+ return;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ try {
+ if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
+ return;
+ }
+ if (!emnapiTSFN._liveSet.has(func)) {
+ return;
+ }
+ emnapiTSFN.dispatch(func);
+ }
+ finally {
+ if (emnapiTSFN._liveSet.has(func)) {
+ Atomics.store(i32a, scheduled >>> 2, 0);
+ if (Atomics.load(i32a, pending >>> 2) !== 0) {
+ emnapiTSFN.enqueue(func);
+ }
+ }
+ }
+ });
+ });
+ },
+ send: function (func) {
+ var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
+ if ((current_state & 1) === 1) {
+ return;
+ }
+ var pendng = func + emnapiTSFN.offset.async_pending;
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
+ return;
+ }
+ if (Atomics.exchange(new Int32Array(wasmMemory.buffer), pendng >>> 2, 1) === 0) {
+ if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
+ postMessage({
+ __emnapi__: {
+ type: 'tsfn-send',
+ payload: {
+ tsfn: func
+ }
+ }
+ });
+ }
+ else {
+ emnapiTSFN.enqueue(func);
+ }
+ }
+ }
+ };
+ function napi_create_threadsafe_function(env, func, async_resource, async_resource_name, max_queue_size, initial_thread_count, thread_finalize_data, thread_finalize_cb, context, call_js_cb, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!async_resource_name)
+ return envObject.setLastError(1);
+ max_queue_size >>>= 0;
+ initial_thread_count >>>= 0;
+ env >>>= 0;
+ thread_finalize_data >>>= 0;
+ thread_finalize_cb >>>= 0;
+ context >>>= 0;
+ call_js_cb >>>= 0;
+ max_queue_size = max_queue_size >>> 0;
+ initial_thread_count = initial_thread_count >>> 0;
+ if (initial_thread_count === 0) {
+ return envObject.setLastError(1);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ var ref = 0;
+ func >>>= 0;
+ if (!func) {
+ if (!call_js_cb)
+ return envObject.setLastError(1);
+ }
+ else {
+ var funcValue = emnapiCtx.handleStore.get(func).value;
+ if (typeof funcValue !== 'function') {
+ return envObject.setLastError(1);
+ }
+ ref = emnapiCtx.createReference(envObject, func, 1, 1).id;
+ }
+ var asyncResourceObject;
+ if (async_resource) {
+ asyncResourceObject = emnapiCtx.handleStore.get(async_resource).value;
+ if (asyncResourceObject == null) {
+ return envObject.setLastError(2);
+ }
+ asyncResourceObject = Object(asyncResourceObject);
+ }
+ else {
+ asyncResourceObject = {};
+ }
+ var resource = envObject.ensureHandleId(asyncResourceObject);
+ var asyncResourceName = emnapiCtx.handleStore.get(async_resource_name).value;
+ if (typeof asyncResourceName === 'symbol') {
+ return envObject.setLastError(3);
+ }
+ asyncResourceName = String(asyncResourceName);
+ var resource_name = envObject.ensureHandleId(asyncResourceName);
+ var sizeofTSFN = emnapiTSFN.offset.__size__;
+ var tsfn = _malloc(sizeofTSFN);
+ if (!tsfn)
+ return envObject.setLastError(9);
+ tsfn >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
+ var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1);
+ var resource_ = resourceRef.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
+ if (!emnapiTSFN.initQueue(tsfn)) {
+ _free(tsfn);
+ resourceRef.dispose();
+ return envObject.setLastError(9);
+ }
+ _emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
+ HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.ref, ref, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.env, env, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_data, thread_finalize_data, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
+ emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
+ emnapiTSFN._liveSet.add(tsfn);
+ envObject.ref();
+ emnapiCtx.increaseWaitingRequestCounter();
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, tsfn, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_threadsafe_function_context(func, result) {
+ if (!func || !result) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ result >>>= 0;
+ var context = emnapiTSFN.getContext(func);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, context, true);
+ return 0;
+ }
+ function napi_call_threadsafe_function(func, data, mode) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ data >>>= 0;
+ return emnapiTSFN.push(func, data, mode);
+ }
+ function napi_acquire_threadsafe_function(func) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ var mutex = emnapiTSFN.getMutex(func);
+ return mutex.execute(function () {
+ if (emnapiTSFN.getState(func) === 0) {
+ emnapiTSFN.addThreadCount(func);
+ return 0;
+ }
+ return 16;
+ });
+ }
+ function napi_release_threadsafe_function(func, mode) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ var shouldDelete = false;
+ var ret = mutex.execute(function () {
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ return 1;
+ }
+ emnapiTSFN.subThreadCount(func);
+ if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1) {
+ if (emnapiTSFN.getState(func) === 0) {
+ if (mode === 1) {
+ emnapiTSFN.setState(func, 1);
+ }
+ if (emnapiTSFN.getState(func) === 1 && emnapiTSFN.getMaxQueueSize(func) > 0) {
+ cond.signal();
+ }
+ emnapiTSFN.send(func);
+ }
+ }
+ if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
+ return 0;
+ }
+ shouldDelete = true;
+ return 0;
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ return ret;
+ }
+ function napi_unref_threadsafe_function(env, func) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ var currentValue = Atomics.load(arr, asyncRefOffset);
+ if (currentValue > 0) {
+ Atomics.store(arr, asyncRefOffset, currentValue - 1);
+ if (currentValue === 1) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ }
+ return 0;
+ }
+ function napi_ref_threadsafe_function(env, func) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ var currentValue = Atomics.load(arr, asyncRefOffset);
+ if (!currentValue) {
+ emnapiCtx.increaseWaitingRequestCounter();
+ }
+ Atomics.store(arr, asyncRefOffset, currentValue + 1);
+ return 0;
+ }
+ var emnapiAWMT = {
+ pool: [],
+ workerReady: null,
+ globalAddress: 0,
+ globalOffset: {
+ idle_threads: 0,
+ q: 1 * 4,
+ next: 1 * 4,
+ prev: 2 * 4,
+ mutex: 3 * 4,
+ cond: 4 * 4,
+ exit_message: 5 * 4,
+ end: 7 * 4
+ },
+ offset: {
+ resource: 0,
+ async_id: 8,
+ trigger_async_id: 16,
+ env: 24,
+ status: 1 * 4 + 24,
+ queue: 2 * 4 + 24,
+ queue_next: 2 * 4 + 24,
+ queue_prev: 3 * 4 + 24,
+ data: 4 * 4 + 24,
+ execute: 5 * 4 + 24,
+ complete: 6 * 4 + 24,
+ end: 7 * 4 + 24
+ },
+ init: function () {
+ emnapiAWMT.pool = [];
+ emnapiAWMT.workerReady = null;
+ if (typeof PThread !== 'undefined') {
+ PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
+ PThread.runningWorkers.forEach(emnapiAWMT.addListener);
+ var __original_getNewWorker_1 = PThread.getNewWorker;
+ PThread.getNewWorker = function () {
+ var r = __original_getNewWorker_1.apply(this, arguments);
+ emnapiAWMT.addListener(r);
+ return r;
+ };
+ }
+ },
+ addListener: function (worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiAWMTListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__) {
+ var type = __emnapi__.type;
+ var payload = __emnapi__.payload;
+ if (type === 'async-work-complete') {
+ emnapiAWMT.callComplete(payload.work, 0);
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiAWMTListener;
+ };
+ worker._emnapiAWMTListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ },
+ initGlobal: function () {
+ if (!emnapiAWMT.globalAddress) {
+ emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
+ emnapiAWMT.globalAddress >>>= 0;
+ var size = emnapiAWMT.globalOffset.end;
+ var addr = emnapiAWMT.globalAddress;
+ new Uint8Array(wasmMemory.buffer, addr, size).fill(0);
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
+ }
+ },
+ terminateWorkers: function () {
+ emnapiAWMT.pool.forEach(function (w) {
+ var _a, _b;
+ (_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
+ (_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
+ w.terminate();
+ });
+ emnapiAWMT.pool.length = 0;
+ },
+ initWorkers: function (n) {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ return emnapiAWMT.workerReady || (emnapiAWMT.workerReady = Promise.resolve());
+ }
+ if (emnapiAWMT.workerReady)
+ return emnapiAWMT.workerReady;
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
+ }
+ var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
+ var args = [];
+ emnapiAWMT.initGlobal();
+ for (var i = 0; i < n; ++i) {
+ args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
+ }
+ var promises = args.map(function (index) {
+ if (index === 0) {
+ return Promise.reject(new Error('Failed to create async worker'));
+ }
+ var worker;
+ if (index < 0) {
+ worker = emnapiAWMT.pool[-index - 1];
+ if (worker)
+ return worker.whenLoaded;
+ }
+ index >>>= 0;
+ var view = new DataView(wasmMemory.buffer);
+ var tidOffset = 20;
+ var tid = view.getInt32(index + tidOffset, true);
+ worker = PThread.pthreads[tid];
+ return worker.whenLoaded;
+ });
+ emnapiAWMT.workerReady = Promise.all(promises);
+ return emnapiAWMT.workerReady;
+ },
+ getResource: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
+ },
+ getExecute: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
+ },
+ getComplete: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
+ },
+ getEnv: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
+ },
+ getData: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
+ },
+ getMutex: function () {
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
+ var mutex = {
+ lock: function () {
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ if (isBrowserMain) {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ }
+ }
+ else {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ Atomics.wait(i32a, 0, 10);
+ }
+ }
+ },
+ unlock: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
+ if (oldValue !== 10) {
+ throw new Error('Tried to unlock while not holding the mutex');
+ }
+ Atomics.notify(i32a, 0, 1);
+ },
+ execute: function (fn) {
+ mutex.lock();
+ try {
+ return fn();
+ }
+ finally {
+ mutex.unlock();
+ }
+ }
+ };
+ return mutex;
+ },
+ getCond: function () {
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
+ var mutex = emnapiAWMT.getMutex();
+ var cond = {
+ wait: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var value = Atomics.load(i32a, 0);
+ mutex.unlock();
+ Atomics.wait(i32a, 0, value);
+ mutex.lock();
+ },
+ signal: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ Atomics.add(i32a, 0, 1);
+ Atomics.notify(i32a, 0, 1);
+ }
+ };
+ return cond;
+ },
+ queueInit: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(q, q, true);
+ HEAP_DATA_VIEW.setUint32(q + 4, q, true);
+ },
+ queueInsertTail: function (h, q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(q, h, true);
+ var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
+ HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
+ HEAP_DATA_VIEW.setUint32(qprev, q, true);
+ HEAP_DATA_VIEW.setUint32(h + 4, q, true);
+ },
+ queueRemove: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
+ var qnext = HEAP_DATA_VIEW.getUint32(q, true);
+ HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
+ HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
+ },
+ queueEmpty: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return q == HEAP_DATA_VIEW.getUint32(q, true);
+ },
+ scheduleWork: function (work) {
+ var _a;
+ if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
+ emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
+ emnapiAWMT.workerReady.ready = true;
+ }).catch(function (err) {
+ emnapiAWMT.workerReady = null;
+ throw err;
+ });
+ }
+ emnapiCtx.increaseWaitingRequestCounter();
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
+ Atomics.store(statusBuffer, 0, 0);
+ var mutex = emnapiAWMT.getMutex();
+ var cond = emnapiAWMT.getCond();
+ mutex.lock();
+ try {
+ emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
+ }
+ catch (err) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ mutex.unlock();
+ throw err;
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
+ cond.signal();
+ }
+ mutex.unlock();
+ },
+ cancelWork: function (work) {
+ var cancelled = false;
+ emnapiAWMT.getMutex().execute(function () {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2;
+ if (cancelled) {
+ emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
+ }
+ });
+ if (!cancelled) {
+ return 9;
+ }
+ if (Atomics.compareExchange(new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1), 0, 0, 1) !== 0) {
+ return 9;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWMT.callComplete(work, 11);
+ });
+ return 0;
+ },
+ callComplete: function (work, status) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ var complete = emnapiAWMT.getComplete(work);
+ var env = emnapiAWMT.getEnv(work);
+ var data = emnapiAWMT.getData(work);
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ var callback = function () {
+ if (!complete)
+ return;
+ envObject.callbackIntoModule(true, function () {
+ (wasmTable.get(complete))(env, status, data);
+ });
+ };
+ try {
+ if (emnapiNodeBinding) {
+ var resource = emnapiAWMT.getResource(work);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
+ emnapiNodeBinding.node.makeCallback(resourceObject, callback, [], {
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId
+ });
+ }
+ else {
+ callback();
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ }
+ };
+ emnapiAWMT.init();
+ var napi_create_async_work = singleThreadAsyncWork
+ ? function (env, resource, resource_name, execute, complete, data, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!execute)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var resourceObject;
+ if (resource) {
+ resourceObject = Object(emnapiCtx.handleStore.get(resource).value);
+ }
+ else {
+ resourceObject = {};
+ }
+ if (!resource_name)
+ return envObject.setLastError(1);
+ var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
+ var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, id, true);
+ return envObject.clearLastError();
+ }
+ : function (env, resource, resource_name, execute, complete, data, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!execute)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var resourceObject;
+ if (resource) {
+ resourceObject = Object(emnapiCtx.handleStore.get(resource).value);
+ }
+ else {
+ resourceObject = {};
+ }
+ if (!resource_name)
+ return envObject.setLastError(1);
+ var sizeofAW = emnapiAWMT.offset.end;
+ var aw = _malloc(sizeofAW);
+ if (!aw)
+ return envObject.setLastError(9);
+ aw >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(aw, aw + sizeofAW).fill(0);
+ var s = envObject.ensureHandleId(resourceObject);
+ var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1);
+ var resource_ = resourceRef.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(aw, resource_, true);
+ _emnapi_node_emit_async_init(s, resource_name, -1, aw + emnapiAWMT.offset.async_id);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.env, env, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
+ emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, aw, true);
+ return envObject.clearLastError();
+ };
+ var napi_delete_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ emnapiAWST.remove(work);
+ return envObject.clearLastError();
+ }
+ : function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ var resource = emnapiAWMT.getResource(work);
+ emnapiCtx.refStore.get(resource).dispose();
+ if (emnapiNodeBinding) {
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
+ }
+ _free(work);
+ return envObject.clearLastError();
+ };
+ var napi_queue_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ emnapiAWST.queue(work);
+ return envObject.clearLastError();
+ }
+ : function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ emnapiAWMT.scheduleWork(work);
+ return envObject.clearLastError();
+ };
+ var napi_cancel_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ var status = emnapiAWST.cancel(work);
+ if (status === 0)
+ return envObject.clearLastError();
+ return envObject.setLastError(status);
+ }
+ : function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ var status = emnapiAWMT.cancelWork(work);
+ if (status === 0)
+ return envObject.clearLastError();
+ return envObject.setLastError(status);
+ };
+ function _emnapi_async_worker(globalAddress) {
+ globalAddress >>>= 0;
+ emnapiAWMT.globalAddress = globalAddress;
+ var mutex = emnapiAWMT.getMutex();
+ var cond = emnapiAWMT.getCond();
+ mutex.lock();
+ var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
+ var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
+ var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (;;) {
+ while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
+ Atomics.add(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
+ cond.wait();
+ Atomics.sub(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
+ }
+ var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
+ if (q === exitMessageAddr) {
+ cond.signal();
+ mutex.unlock();
+ break;
+ }
+ var work = q - emnapiAWMT.offset.queue;
+ emnapiAWMT.queueRemove(q);
+ emnapiAWMT.queueInit(q);
+ mutex.unlock();
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
+ if (Atomics.load(statusBuffer, 0) === 1) {
+ abort('unreachable');
+ }
+ var execute = emnapiAWMT.getExecute(work);
+ var env = emnapiAWMT.getEnv(work);
+ var data = emnapiAWMT.getData(work);
+ (wasmTable.get(execute))(env, data);
+ Atomics.store(statusBuffer, 0, 2);
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({
+ __emnapi__: {
+ type: 'async-work-complete',
+ payload: { work: work }
+ }
+ });
+ mutex.lock();
+ }
+ return 0;
+ }
+ function _emnapi_spawn_worker(f, globalAddress) {
+ if (typeof onCreateWorker !== 'function') {
+ throw new TypeError('`options.onCreateWorker` is not a function');
+ }
+ var promises = [];
+ var args = [];
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
+ }
+ args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
+ var handleError = function (e) {
+ if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
+ emnapiAWMT.terminateWorkers();
+ }
+ };
+ var ret;
+ try {
+ var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
+ var p = PThread.loadWasmModuleToWorker(worker_1);
+ if (ENVIRONMENT_IS_NODE) {
+ worker_1.on('error', handleError);
+ }
+ else {
+ worker_1.addEventListener('error', handleError, false);
+ }
+ emnapiAWMT.addListener(worker_1);
+ emnapiTSFN.addListener(worker_1);
+ promises.push(p.then(function () {
+ if (typeof worker_1.unref === 'function') {
+ worker_1.unref();
+ }
+ }));
+ ret = emnapiAWMT.pool.push(worker_1) - 1;
+ var arg = args[0];
+ worker_1.threadBlockBase = arg;
+ worker_1.postMessage({
+ __emnapi__: {
+ type: 'async-worker-init',
+ payload: { arg: arg, func: [f, globalAddress] }
+ }
+ });
+ }
+ catch (err) {
+ var arg = args[0];
+ _free(arg);
+ throw err;
+ }
+ return ret;
+ }
+ function initWorker(startArg, func) {
+ if (napiModule.childThread) {
+ if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
+ throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
+ }
+ wasmInstance.exports.emnapi_async_worker_init(startArg);
+ (wasmTable.get(func[0]))(func[1]);
+ }
+ else {
+ throw new Error('startThread is only available in child threads');
+ }
+ }
+ napiModule.initWorker = initWorker;
+ var asyncWorkMod = Object.freeze({
+ __proto__: null,
+ _emnapi_async_worker: _emnapi_async_worker,
+ _emnapi_spawn_worker: _emnapi_spawn_worker,
+ napi_cancel_async_work: napi_cancel_async_work,
+ napi_create_async_work: napi_create_async_work,
+ napi_delete_async_work: napi_delete_async_work,
+ napi_queue_async_work: napi_queue_async_work
+ });
+ var emnapiExternalMemory = {
+ registry: typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined,
+ table: new WeakMap(),
+ wasmMemoryViewTable: new WeakMap(),
+ init: function () {
+ emnapiExternalMemory.registry = typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined;
+ emnapiExternalMemory.table = new WeakMap();
+ emnapiExternalMemory.wasmMemoryViewTable = new WeakMap();
+ },
+ isSharedArrayBuffer: function (value) {
+ return ((typeof SharedArrayBuffer === 'function' && value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(value) === '[object SharedArrayBuffer]'));
+ },
+ isDetachedArrayBuffer: function (arrayBuffer) {
+ if (arrayBuffer.byteLength === 0) {
+ try {
+ new Uint8Array(arrayBuffer);
+ }
+ catch (_) {
+ return true;
+ }
+ }
+ return false;
+ },
+ getArrayBufferPointer: function (arrayBuffer, shouldCopy) {
+ var _a;
+ var info = {
+ address: 0,
+ ownership: 0,
+ runtimeAllocated: 0
+ };
+ if (arrayBuffer === wasmMemory.buffer) {
+ return info;
+ }
+ var isDetached = emnapiExternalMemory.isDetachedArrayBuffer(arrayBuffer);
+ if (emnapiExternalMemory.table.has(arrayBuffer)) {
+ var cachedInfo = emnapiExternalMemory.table.get(arrayBuffer);
+ if (isDetached) {
+ cachedInfo.address = 0;
+ return cachedInfo;
+ }
+ if (shouldCopy && cachedInfo.ownership === 0 && cachedInfo.runtimeAllocated === 1) {
+ new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), cachedInfo.address);
+ }
+ return cachedInfo;
+ }
+ if (isDetached || (arrayBuffer.byteLength === 0)) {
+ return info;
+ }
+ if (!shouldCopy) {
+ return info;
+ }
+ var pointer = _malloc(arrayBuffer.byteLength);
+ if (!pointer)
+ throw new Error('Out of memory');
+ pointer >>>= 0;
+ new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
+ info.address = pointer;
+ info.ownership = emnapiExternalMemory.registry ? 0 : 1;
+ info.runtimeAllocated = 1;
+ emnapiExternalMemory.table.set(arrayBuffer, info);
+ (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(arrayBuffer, pointer);
+ return info;
+ },
+ getOrUpdateMemoryView: function (view) {
+ if (view.buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(view, {
+ Ctor: view.constructor,
+ address: view.byteOffset,
+ length: view instanceof DataView ? view.byteLength : view.length,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ return view;
+ }
+ var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
+ if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
+ var Ctor = info.Ctor;
+ var newView = void 0;
+ var Buffer_1 = emnapiCtx.feature.Buffer;
+ if (typeof Buffer_1 === 'function' && Ctor === Buffer_1) {
+ newView = Buffer_1.from(wasmMemory.buffer, info.address, info.length);
+ }
+ else {
+ newView = new Ctor(wasmMemory.buffer, info.address, info.length);
+ }
+ emnapiExternalMemory.wasmMemoryViewTable.set(newView, info);
+ return newView;
+ }
+ return view;
+ },
+ getViewPointer: function (view, shouldCopy) {
+ view = emnapiExternalMemory.getOrUpdateMemoryView(view);
+ if (view.buffer === wasmMemory.buffer) {
+ if (emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ var _a = emnapiExternalMemory.wasmMemoryViewTable.get(view), address_1 = _a.address, ownership_1 = _a.ownership, runtimeAllocated_1 = _a.runtimeAllocated;
+ return { address: address_1, ownership: ownership_1, runtimeAllocated: runtimeAllocated_1, view: view };
+ }
+ return { address: view.byteOffset, ownership: 1, runtimeAllocated: 0, view: view };
+ }
+ var _b = emnapiExternalMemory.getArrayBufferPointer(view.buffer, shouldCopy), address = _b.address, ownership = _b.ownership, runtimeAllocated = _b.runtimeAllocated;
+ return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
+ }
+ };
+ var emnapiString = {
+ utf8Decoder: undefined,
+ utf16Decoder: undefined,
+ init: function () {
+ var fallbackDecoder = {
+ decode: function (bytes) {
+ var inputIndex = 0;
+ var pendingSize = Math.min(0x1000, bytes.length + 1);
+ var pending = new Uint16Array(pendingSize);
+ var chunks = [];
+ var pendingIndex = 0;
+ for (;;) {
+ var more = inputIndex < bytes.length;
+ if (!more || (pendingIndex >= pendingSize - 1)) {
+ var subarray = pending.subarray(0, pendingIndex);
+ var arraylike = subarray;
+ chunks.push(String.fromCharCode.apply(null, arraylike));
+ if (!more) {
+ return chunks.join('');
+ }
+ bytes = bytes.subarray(inputIndex);
+ inputIndex = 0;
+ pendingIndex = 0;
+ }
+ var byte1 = bytes[inputIndex++];
+ if ((byte1 & 0x80) === 0) {
+ pending[pendingIndex++] = byte1;
+ }
+ else if ((byte1 & 0xe0) === 0xc0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ pending[pendingIndex++] = ((byte1 & 0x1f) << 6) | byte2;
+ }
+ else if ((byte1 & 0xf0) === 0xe0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ var byte3 = bytes[inputIndex++] & 0x3f;
+ pending[pendingIndex++] = ((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3;
+ }
+ else if ((byte1 & 0xf8) === 0xf0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ var byte3 = bytes[inputIndex++] & 0x3f;
+ var byte4 = bytes[inputIndex++] & 0x3f;
+ var codepoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;
+ if (codepoint > 0xffff) {
+ codepoint -= 0x10000;
+ pending[pendingIndex++] = (codepoint >>> 10) & 0x3ff | 0xd800;
+ codepoint = 0xdc00 | codepoint & 0x3ff;
+ }
+ pending[pendingIndex++] = codepoint;
+ }
+ else ;
+ }
+ }
+ };
+ var utf8Decoder;
+ utf8Decoder = typeof TextDecoder === 'function' ? new TextDecoder() : fallbackDecoder;
+ emnapiString.utf8Decoder = utf8Decoder;
+ var fallbackDecoder2 = {
+ decode: function (input) {
+ var bytes = new Uint16Array(input.buffer, input.byteOffset, input.byteLength / 2);
+ if (bytes.length <= 0x1000) {
+ return String.fromCharCode.apply(null, bytes);
+ }
+ var chunks = [];
+ var i = 0;
+ var len = 0;
+ for (; i < bytes.length; i += len) {
+ len = Math.min(0x1000, bytes.length - i);
+ chunks.push(String.fromCharCode.apply(null, bytes.subarray(i, i + len)));
+ }
+ return chunks.join('');
+ }
+ };
+ var utf16Decoder;
+ utf16Decoder = typeof TextDecoder === 'function' ? new TextDecoder('utf-16le') : fallbackDecoder2;
+ emnapiString.utf16Decoder = utf16Decoder;
+ },
+ lengthBytesUTF8: function (str) {
+ var c;
+ var len = 0;
+ for (var i = 0; i < str.length; ++i) {
+ c = str.charCodeAt(i);
+ if (c <= 0x7F) {
+ len++;
+ }
+ else if (c <= 0x7FF) {
+ len += 2;
+ }
+ else if (c >= 0xD800 && c <= 0xDFFF) {
+ len += 4;
+ ++i;
+ }
+ else {
+ len += 3;
+ }
+ }
+ return len;
+ },
+ UTF8ToString: function (ptr, length) {
+ if (!ptr || !length)
+ return '';
+ ptr >>>= 0;
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ var end = ptr;
+ if (length === -1 || length === 4294967295) {
+ for (; HEAPU8[end];)
+ ++end;
+ }
+ else {
+ end = ptr + (length >>> 0);
+ }
+ length = end - ptr;
+ if (length <= 16) {
+ var idx = ptr;
+ var str = '';
+ while (idx < end) {
+ var u0 = HEAPU8[idx++];
+ if (!(u0 & 0x80)) {
+ str += String.fromCharCode(u0);
+ continue;
+ }
+ var u1 = HEAPU8[idx++] & 63;
+ if ((u0 & 0xE0) === 0xC0) {
+ str += String.fromCharCode(((u0 & 31) << 6) | u1);
+ continue;
+ }
+ var u2 = HEAPU8[idx++] & 63;
+ if ((u0 & 0xF0) === 0xE0) {
+ u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
+ }
+ else {
+ u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (HEAPU8[idx++] & 63);
+ }
+ if (u0 < 0x10000) {
+ str += String.fromCharCode(u0);
+ }
+ else {
+ var ch = u0 - 0x10000;
+ str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
+ }
+ }
+ return str;
+ }
+ return emnapiString.utf8Decoder.decode(((typeof SharedArrayBuffer === "function" && HEAPU8.buffer instanceof SharedArrayBuffer) || (Object.prototype.toString.call(HEAPU8.buffer) === "[object SharedArrayBuffer]")) ? HEAPU8.slice(ptr, end) : HEAPU8.subarray(ptr, end));
+ },
+ stringToUTF8: function (str, outPtr, maxBytesToWrite) {
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ var outIdx = outPtr;
+ outIdx >>>= 0;
+ if (!(maxBytesToWrite > 0)) {
+ return 0;
+ }
+ var startIdx = outIdx;
+ var endIdx = outIdx + maxBytesToWrite - 1;
+ for (var i = 0; i < str.length; ++i) {
+ var u = str.charCodeAt(i);
+ if (u >= 0xD800 && u <= 0xDFFF) {
+ var u1 = str.charCodeAt(++i);
+ u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);
+ }
+ if (u <= 0x7F) {
+ if (outIdx >= endIdx)
+ break;
+ HEAPU8[outIdx++] = u;
+ }
+ else if (u <= 0x7FF) {
+ if (outIdx + 1 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xC0 | (u >> 6);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ else if (u <= 0xFFFF) {
+ if (outIdx + 2 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xE0 | (u >> 12);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 6) & 63);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ else {
+ if (outIdx + 3 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xF0 | (u >> 18);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 12) & 63);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 6) & 63);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ }
+ HEAPU8[outIdx] = 0;
+ return outIdx - startIdx;
+ },
+ UTF16ToString: function (ptr, length) {
+ if (!ptr || !length)
+ return '';
+ ptr >>>= 0;
+ var end = ptr;
+ if (length === -1 || length === 4294967295) {
+ var idx = end >>> 1;
+ var HEAPU16 = new Uint16Array(wasmMemory.buffer);
+ while (HEAPU16[idx])
+ ++idx;
+ end = (idx << 1) >>> 0;
+ }
+ else {
+ end = ptr + (length >>> 0) * 2;
+ }
+ length = end - ptr;
+ if (length <= 32) {
+ return String.fromCharCode.apply(null, new Uint16Array(wasmMemory.buffer, ptr, length / 2));
+ }
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ return emnapiString.utf16Decoder.decode(((typeof SharedArrayBuffer === "function" && HEAPU8.buffer instanceof SharedArrayBuffer) || (Object.prototype.toString.call(HEAPU8.buffer) === "[object SharedArrayBuffer]")) ? HEAPU8.slice(ptr, end) : HEAPU8.subarray(ptr, end));
+ },
+ stringToUTF16: function (str, outPtr, maxBytesToWrite) {
+ if (maxBytesToWrite === undefined) {
+ maxBytesToWrite = 0x7FFFFFFF;
+ }
+ if (maxBytesToWrite < 2)
+ return 0;
+ maxBytesToWrite -= 2;
+ var startPtr = outPtr;
+ var numCharsToWrite = (maxBytesToWrite < str.length * 2) ? (maxBytesToWrite / 2) : str.length;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < numCharsToWrite; ++i) {
+ var codeUnit = str.charCodeAt(i);
+ HEAP_DATA_VIEW.setInt16(outPtr, codeUnit, true);
+ outPtr += 2;
+ }
+ HEAP_DATA_VIEW.setInt16(outPtr, 0, true);
+ return outPtr - startPtr;
+ },
+ newString: function (env, str, length, result, stringMaker) {
+ length >>>= 0;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!str)
+ return envObject.setLastError(1);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ if (!(autoLength || (sizelength <= 2147483647)))
+ return envObject.setLastError(1);
+ str >>>= 0;
+ var strValue = stringMaker(str, autoLength, sizelength);
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(strValue).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ },
+ newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
+ length >>>= 0;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!str)
+ return envObject.setLastError(1);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ if (!(autoLength || (sizelength <= 2147483647)))
+ return envObject.setLastError(1);
+ var status = createApi(env, str, length, result);
+ if (status === 0) {
+ if (copied) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(copied, 1, true);
+ }
+ if (finalize_callback) {
+ envObject.callFinalizer(finalize_callback, str, finalize_hint);
+ }
+ }
+ return status;
+ }
+ };
+ function napi_get_array_length(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isArray()) {
+ return envObject.setLastError(8);
+ }
+ result >>>= 0;
+ var v = handle.value.length >>> 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_arraybuffer_info(env, arraybuffer, data, byte_length) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
+ return envObject.setLastError(1);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (data) {
+ data >>>= 0;
+ var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (byte_length) {
+ byte_length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
+ }
+ return envObject.clearLastError();
+ }
+ function node_api_set_prototype(env, object, value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ var obj = emnapiCtx.handleStore.get(object).value;
+ if (obj == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var type = typeof obj;
+ var v = void 0;
+ try {
+ v = (type === 'object' && obj !== null) || type === 'function' ? obj : Object(obj);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ var val = emnapiCtx.handleStore.get(value).value;
+ Object.setPrototypeOf(v, val);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_prototype(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = handle.isObject() || handle.isFunction() ? handle.value : Object(handle.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, p, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_typedarray_info(env, typedarray, type, length, data, arraybuffer, byte_offset) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!typedarray)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(typedarray);
+ if (!handle.isTypedArray()) {
+ return envObject.setLastError(1);
+ }
+ var v = handle.value;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (type) {
+ type >>>= 0;
+ var t = void 0;
+ if (v instanceof Int8Array) {
+ t = 0;
+ }
+ else if (v instanceof Uint8Array) {
+ t = 1;
+ }
+ else if (v instanceof Uint8ClampedArray) {
+ t = 2;
+ }
+ else if (v instanceof Int16Array) {
+ t = 3;
+ }
+ else if (v instanceof Uint16Array) {
+ t = 4;
+ }
+ else if (v instanceof Int32Array) {
+ t = 5;
+ }
+ else if (v instanceof Uint32Array) {
+ t = 6;
+ }
+ else if (typeof Float16Array === 'function' && v instanceof Float16Array) {
+ t = 11;
+ }
+ else if (v instanceof Float32Array) {
+ t = 7;
+ }
+ else if (v instanceof Float64Array) {
+ t = 8;
+ }
+ else if (v instanceof BigInt64Array) {
+ t = 9;
+ }
+ else if (v instanceof BigUint64Array) {
+ t = 10;
+ }
+ else {
+ return envObject.setLastError(9);
+ }
+ HEAP_DATA_VIEW.setInt32(type, t, true);
+ }
+ v = emnapiExternalMemory.getOrUpdateMemoryView(v);
+ if (length) {
+ length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(length, v.length, true);
+ }
+ if (data || arraybuffer) {
+ if (data) {
+ data >>>= 0;
+ var p = emnapiExternalMemory.getViewPointer(v, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (arraybuffer) {
+ arraybuffer >>>= 0;
+ var ab = envObject.ensureHandleId(v.buffer);
+ HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
+ }
+ }
+ if (byte_offset) {
+ byte_offset >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_buffer_info(env, buffer, data, length) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!buffer)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(buffer);
+ if (!handle.isBuffer(emnapiCtx.feature.Buffer))
+ return envObject.setLastError(1);
+ if (handle.isDataView()) {
+ return napi_get_dataview_info(env, buffer, length, data, 0, 0);
+ }
+ return napi_get_typedarray_info(env, buffer, 0, length, data, 0, 0);
+ }
+ function napi_get_dataview_info(env, dataview, byte_length, data, arraybuffer, byte_offset) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!dataview)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(dataview);
+ if (!handle.isDataView()) {
+ return envObject.setLastError(1);
+ }
+ var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (byte_length) {
+ byte_length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
+ }
+ if (data || arraybuffer) {
+ if (data) {
+ data >>>= 0;
+ var p = emnapiExternalMemory.getViewPointer(v, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (arraybuffer) {
+ arraybuffer >>>= 0;
+ var ab = envObject.ensureHandleId(v.buffer);
+ HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
+ }
+ }
+ if (byte_offset) {
+ byte_offset >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_date_value(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isDate()) {
+ return envObject.setLastError(1);
+ }
+ result >>>= 0;
+ v = handle.value.valueOf();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_value_bool(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'boolean') {
+ return envObject.setLastError(7);
+ }
+ result >>>= 0;
+ var r = handle.value ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_double(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6);
+ }
+ result >>>= 0;
+ var r = handle.value;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_bigint_int64(env, value, result, lossless) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!lossless)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ var numberValue = handle.value;
+ if (typeof numberValue !== 'bigint') {
+ return envObject.setLastError(6);
+ }
+ lossless >>>= 0;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
+ HEAP_DATA_VIEW.setInt8(lossless, 1, true);
+ }
+ else {
+ HEAP_DATA_VIEW.setInt8(lossless, 0, true);
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ if (numberValue >= (BigInt(1) << BigInt(63))) {
+ numberValue = numberValue - (BigInt(1) << BigInt(64));
+ }
+ }
+ var low = Number(numberValue & BigInt(0xffffffff));
+ var high = Number(numberValue >> BigInt(32));
+ HEAP_DATA_VIEW.setInt32(result, low, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, high, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_bigint_uint64(env, value, result, lossless) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!lossless)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ var numberValue = handle.value;
+ if (typeof numberValue !== 'bigint') {
+ return envObject.setLastError(6);
+ }
+ lossless >>>= 0;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
+ HEAP_DATA_VIEW.setInt8(lossless, 1, true);
+ }
+ else {
+ HEAP_DATA_VIEW.setInt8(lossless, 0, true);
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ }
+ var low = Number(numberValue & BigInt(0xffffffff));
+ var high = Number(numberValue >> BigInt(32));
+ HEAP_DATA_VIEW.setUint32(result, low, true);
+ HEAP_DATA_VIEW.setUint32(result + 4, high, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_bigint_words(env, value, sign_bit, word_count, words) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ if (!value)
+ return envObject.setLastError(1);
+ if (!word_count)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isBigInt()) {
+ return envObject.setLastError(17);
+ }
+ var isMinus = handle.value < BigInt(0);
+ sign_bit >>>= 0;
+ words >>>= 0;
+ word_count >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
+ word_count_int >>>= 0;
+ var wordCount = 0;
+ var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
+ while (bigintValue !== BigInt(0)) {
+ wordCount++;
+ bigintValue = bigintValue >> BigInt(64);
+ }
+ bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
+ if (!sign_bit && !words) {
+ word_count_int = wordCount;
+ HEAP_DATA_VIEW.setUint32(word_count, word_count_int, true);
+ }
+ else {
+ if (!sign_bit)
+ return envObject.setLastError(1);
+ if (!words)
+ return envObject.setLastError(1);
+ var wordsArr = [];
+ while (bigintValue !== BigInt(0)) {
+ var uint64 = bigintValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ wordsArr.push(uint64);
+ bigintValue = bigintValue >> BigInt(64);
+ }
+ var len = Math.min(word_count_int, wordsArr.length);
+ for (var i = 0; i < len; i++) {
+ var low = Number(wordsArr[i] & BigInt(0xffffffff));
+ var high = Number(wordsArr[i] >> BigInt(32));
+ HEAP_DATA_VIEW.setUint32(words + i * 8, low, true);
+ HEAP_DATA_VIEW.setUint32(words + (i * 8 + 4), high, true);
+ }
+ HEAP_DATA_VIEW.setInt32(sign_bit, isMinus ? 1 : 0, true);
+ HEAP_DATA_VIEW.setUint32(word_count, len, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_external(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isExternal()) {
+ return envObject.setLastError(1);
+ }
+ result >>>= 0;
+ var p = handle.data();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, p, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_int32(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6);
+ }
+ result >>>= 0;
+ var v = new Int32Array([handle.value])[0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_int64(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6);
+ }
+ var numberValue = handle.value;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
+ HEAP_DATA_VIEW.setInt32(result, 0, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, 0, true);
+ }
+ else if (numberValue < -9223372036854776e3) {
+ HEAP_DATA_VIEW.setInt32(result, 0, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, 2147483648, true);
+ }
+ else if (numberValue >= 9223372036854776000) {
+ HEAP_DATA_VIEW.setUint32(result, 4294967295, true);
+ HEAP_DATA_VIEW.setUint32(result + 4, 2147483647, true);
+ }
+ else {
+ $emnapiSetValueI64(result, Math.trunc(numberValue));
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_string_latin1(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1);
+ HEAP_DATA_VIEW.setUint32(result, handle.value.length, true);
+ }
+ else if (buf_size !== 0) {
+ var copied = 0;
+ var v = void 0;
+ for (var i = 0; i < buf_size - 1; ++i) {
+ v = handle.value.charCodeAt(i) & 0xff;
+ HEAP_DATA_VIEW.setUint8(buf + i, v, true);
+ copied++;
+ }
+ HEAP_DATA_VIEW.setUint8(buf + copied, 0, true);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_string_utf8(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1);
+ var strLength = emnapiString.lengthBytesUTF8(handle.value);
+ HEAP_DATA_VIEW.setUint32(result, strLength, true);
+ }
+ else if (buf_size !== 0) {
+ var copied = emnapiString.stringToUTF8(handle.value, buf, buf_size);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_string_utf16(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1);
+ HEAP_DATA_VIEW.setUint32(result, handle.value.length, true);
+ }
+ else if (buf_size !== 0) {
+ var copied = emnapiString.stringToUTF16(handle.value, buf, buf_size * 2);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied / 2, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_uint32(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6);
+ }
+ result >>>= 0;
+ var v = new Uint32Array([handle.value])[0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ var convert2cMod = Object.freeze({
+ __proto__: null,
+ napi_get_array_length: napi_get_array_length,
+ napi_get_arraybuffer_info: napi_get_arraybuffer_info,
+ napi_get_buffer_info: napi_get_buffer_info,
+ napi_get_dataview_info: napi_get_dataview_info,
+ napi_get_date_value: napi_get_date_value,
+ napi_get_prototype: napi_get_prototype,
+ napi_get_typedarray_info: napi_get_typedarray_info,
+ napi_get_value_bigint_int64: napi_get_value_bigint_int64,
+ napi_get_value_bigint_uint64: napi_get_value_bigint_uint64,
+ napi_get_value_bigint_words: napi_get_value_bigint_words,
+ napi_get_value_bool: napi_get_value_bool,
+ napi_get_value_double: napi_get_value_double,
+ napi_get_value_external: napi_get_value_external,
+ napi_get_value_int32: napi_get_value_int32,
+ napi_get_value_int64: napi_get_value_int64,
+ napi_get_value_string_latin1: napi_get_value_string_latin1,
+ napi_get_value_string_utf16: napi_get_value_string_utf16,
+ napi_get_value_string_utf8: napi_get_value_string_utf8,
+ napi_get_value_uint32: napi_get_value_uint32,
+ node_api_set_prototype: node_api_set_prototype
+ });
+ function napi_create_int32(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var v = emnapiCtx.addToCurrentScope(value).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_uint32(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_int64(env, low, high, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var value;
+ if (!high)
+ return envObject.setLastError(1);
+ value = Number(low);
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_double(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var v = emnapiCtx.addToCurrentScope(value).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_string_latin1(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str, autoLength, sizeLength) {
+ var latin1String = '';
+ var len = 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (autoLength) {
+ while (true) {
+ var ch = HEAP_DATA_VIEW.getUint8(str, true);
+ if (!ch)
+ break;
+ latin1String += String.fromCharCode(ch);
+ str++;
+ }
+ }
+ else {
+ while (len < sizeLength) {
+ var ch = HEAP_DATA_VIEW.getUint8(str, true);
+ if (!ch)
+ break;
+ latin1String += String.fromCharCode(ch);
+ len++;
+ str++;
+ }
+ }
+ return latin1String;
+ });
+ }
+ function napi_create_string_utf16(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str) {
+ return emnapiString.UTF16ToString(str, length);
+ });
+ }
+ function napi_create_string_utf8(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str) {
+ return emnapiString.UTF8ToString(str, length);
+ });
+ }
+ function node_api_create_external_string_latin1(env, str, length, finalize_callback, finalize_hint, result, copied) {
+ return emnapiString.newExternalString(env, str, length, finalize_callback, finalize_hint, result, copied, napi_create_string_latin1, undefined);
+ }
+ function node_api_create_external_string_utf16(env, str, length, finalize_callback, finalize_hint, result, copied) {
+ return emnapiString.newExternalString(env, str, length, finalize_callback, finalize_hint, result, copied, napi_create_string_utf16, undefined);
+ }
+ function node_api_create_property_key_latin1(env, str, length, result) {
+ return napi_create_string_latin1(env, str, length, result);
+ }
+ function node_api_create_property_key_utf8(env, str, length, result) {
+ return napi_create_string_utf8(env, str, length, result);
+ }
+ function node_api_create_property_key_utf16(env, str, length, result) {
+ return napi_create_string_utf16(env, str, length, result);
+ }
+ function napi_create_bigint_int64(env, low, high, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ var value;
+ if (!high)
+ return envObject.setLastError(1);
+ value = low;
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_bigint_uint64(env, low, high, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ var value;
+ if (!high)
+ return envObject.setLastError(1);
+ value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_bigint_words(env, sign_bit, word_count, words, result) {
+ var v, i;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ words >>>= 0;
+ word_count >>>= 0;
+ word_count = word_count >>> 0;
+ if (word_count > 2147483647) {
+ return envObject.setLastError(1);
+ }
+ if (word_count > (1024 * 1024 / (4 * 8) / 2)) {
+ throw new RangeError('Maximum BigInt size exceeded');
+ }
+ var value = BigInt(0);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (i = 0; i < word_count; i++) {
+ var low = HEAP_DATA_VIEW.getUint32(words + i * 8, true);
+ var high = HEAP_DATA_VIEW.getUint32(words + (i * 8 + 4), true);
+ var wordi = BigInt(low) | (BigInt(high) << BigInt(32));
+ value += wordi << BigInt(64 * i);
+ }
+ value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
+ result >>>= 0;
+ v = emnapiCtx.addToCurrentScope(value).id;
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ var convert2napiMod = Object.freeze({
+ __proto__: null,
+ napi_create_bigint_int64: napi_create_bigint_int64,
+ napi_create_bigint_uint64: napi_create_bigint_uint64,
+ napi_create_bigint_words: napi_create_bigint_words,
+ napi_create_double: napi_create_double,
+ napi_create_int32: napi_create_int32,
+ napi_create_int64: napi_create_int64,
+ napi_create_string_latin1: napi_create_string_latin1,
+ napi_create_string_utf16: napi_create_string_utf16,
+ napi_create_string_utf8: napi_create_string_utf8,
+ napi_create_uint32: napi_create_uint32,
+ node_api_create_external_string_latin1: node_api_create_external_string_latin1,
+ node_api_create_external_string_utf16: node_api_create_external_string_utf16,
+ node_api_create_property_key_latin1: node_api_create_property_key_latin1,
+ node_api_create_property_key_utf16: node_api_create_property_key_utf16,
+ node_api_create_property_key_utf8: node_api_create_property_key_utf8
+ });
+ function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
+ utf8name >>>= 0;
+ var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
+ var f;
+ var napiCallback = (wasmTable.get(cb));
+ var callback = function (envObject) {
+ return napiCallback(envObject.id, envObject.ctx.scopeStore.currentScope.id);
+ };
+ var makeFunction = function (envObject, callback) {
+ return function () {
+ var scope = envObject.ctx.openScope(envObject);
+ var callbackInfo = scope.callbackInfo;
+ callbackInfo.data = data;
+ callbackInfo.args = arguments;
+ callbackInfo.thiz = this;
+ callbackInfo.fn = f;
+ try {
+ var napiValue = envObject.callIntoModule(callback);
+ return (!napiValue) ? undefined : envObject.ctx.handleStore.get(napiValue).value;
+ }
+ finally {
+ callbackInfo.data = 0;
+ callbackInfo.args = undefined;
+ callbackInfo.thiz = undefined;
+ callbackInfo.fn = undefined;
+ envObject.ctx.closeScope(envObject, scope);
+ }
+ };
+ };
+ if (functionName === '') {
+ f = makeFunction(envObject, callback);
+ return { status: 0, f: f };
+ }
+ if (!(/^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(functionName))) {
+ return { status: 1, f: undefined };
+ }
+ if (emnapiCtx.feature.supportNewFunction) {
+ var _ = makeFunction(envObject, callback);
+ try {
+ f = (new Function('_', 'return function ' + functionName + '(){' +
+ '"use strict";' +
+ 'return _.apply(this,arguments);' +
+ '};'))(_);
+ }
+ catch (_err) {
+ f = makeFunction(envObject, callback);
+ if (emnapiCtx.feature.canSetFunctionName)
+ Object.defineProperty(f, 'name', { value: functionName });
+ }
+ }
+ else {
+ f = makeFunction(envObject, callback);
+ if (emnapiCtx.feature.canSetFunctionName)
+ Object.defineProperty(f, 'name', { value: functionName });
+ }
+ return { status: 0, f: f };
+ }
+ function emnapiDefineProperty(envObject, obj, propertyName, method, getter, setter, value, attributes, data) {
+ if (getter || setter) {
+ var localGetter = void 0;
+ var localSetter = void 0;
+ if (getter) {
+ localGetter = emnapiCreateFunction(envObject, 0, 0, getter, data).f;
+ }
+ if (setter) {
+ localSetter = emnapiCreateFunction(envObject, 0, 0, setter, data).f;
+ }
+ var desc = {
+ configurable: (attributes & 4) !== 0,
+ enumerable: (attributes & 2) !== 0,
+ get: localGetter,
+ set: localSetter
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ else if (method) {
+ var localMethod = emnapiCreateFunction(envObject, 0, 0, method, data).f;
+ var desc = {
+ configurable: (attributes & 4) !== 0,
+ enumerable: (attributes & 2) !== 0,
+ writable: (attributes & 1) !== 0,
+ value: localMethod
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ else {
+ var desc = {
+ configurable: (attributes & 4) !== 0,
+ enumerable: (attributes & 2) !== 0,
+ writable: (attributes & 1) !== 0,
+ value: emnapiCtx.handleStore.get(value).value
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ }
+ function emnapiGetHandle(js_object) {
+ var handle = emnapiCtx.handleStore.get(js_object);
+ if (!(handle.isObject() || handle.isFunction())) {
+ return { status: 1 };
+ }
+ if (typeof emnapiExternalMemory !== 'undefined' && ArrayBuffer.isView(handle.value)) {
+ if (emnapiExternalMemory.wasmMemoryViewTable.has(handle.value)) {
+ handle = emnapiCtx.addToCurrentScope(emnapiExternalMemory.wasmMemoryViewTable.get(handle.value));
+ }
+ }
+ return { status: 0, handle: handle };
+ }
+ function emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
+ var referenceId;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!emnapiCtx.feature.supportFinalizer) {
+ if (finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_wrap', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ if (result) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_wrap', 'Parameter "result" must be 0(NULL)');
+ }
+ }
+ if (!js_object)
+ return envObject.setLastError(1);
+ var handleResult = emnapiGetHandle(js_object);
+ if (handleResult.status !== 0) {
+ return envObject.setLastError(handleResult.status);
+ }
+ var handle = handleResult.handle;
+ if (envObject.getObjectBinding(handle.value).wrapped !== 0) {
+ return envObject.setLastError(1);
+ }
+ var reference = void 0;
+ if (result) {
+ if (!finalize_cb)
+ return envObject.setLastError(1);
+ reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1, finalize_cb, native_object, finalize_hint);
+ result >>>= 0;
+ referenceId = reference.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, referenceId, true);
+ }
+ else {
+ if (finalize_cb) {
+ reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 0, finalize_cb, native_object, finalize_hint);
+ }
+ else {
+ reference = emnapiCtx.createReferenceWithData(envObject, handle.id, 0, 0, native_object);
+ }
+ }
+ envObject.getObjectBinding(handle.value).wrapped = reference.id;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function emnapiUnwrap(env, js_object, result, action) {
+ var data;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!js_object)
+ return envObject.setLastError(1);
+ if (action === 0) {
+ if (!result)
+ return envObject.setLastError(1);
+ }
+ var value = emnapiCtx.handleStore.get(js_object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(1);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ var referenceId = binding.wrapped;
+ var ref = emnapiCtx.refStore.get(referenceId);
+ if (!ref)
+ return envObject.setLastError(1);
+ if (result) {
+ result >>>= 0;
+ data = ref.data();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, data, true);
+ }
+ if (action === 1) {
+ binding.wrapped = 0;
+ if (ref.ownership() === 1) {
+ ref.resetFinalizer();
+ }
+ else {
+ ref.dispose();
+ }
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_define_class(env, utf8name, length, constructor, callback_data, property_count, properties, result) {
+ var propPtr, valueHandleId, attributes;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!constructor)
+ return envObject.setLastError(1);
+ length >>>= 0;
+ properties >>>= 0;
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!properties)
+ return envObject.setLastError(1);
+ }
+ if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
+ return envObject.setLastError(1);
+ }
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
+ if (fresult.status !== 0)
+ return envObject.setLastError(fresult.status);
+ var F = fresult.f;
+ var propertyName = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ propPtr = properties + (i * (4 * 8));
+ var utf8Name = HEAP_DATA_VIEW.getUint32(propPtr, true);
+ var name_1 = HEAP_DATA_VIEW.getUint32(propPtr + 4, true);
+ var method = HEAP_DATA_VIEW.getUint32(propPtr + 8, true);
+ var getter = HEAP_DATA_VIEW.getUint32(propPtr + 12, true);
+ var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
+ var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
+ attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
+ attributes >>>= 0;
+ var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
+ if (utf8Name) {
+ propertyName = emnapiString.UTF8ToString(utf8Name, -1);
+ }
+ else {
+ if (!name_1) {
+ return envObject.setLastError(4);
+ }
+ propertyName = emnapiCtx.handleStore.get(name_1).value;
+ if (typeof propertyName !== 'string' && typeof propertyName !== 'symbol') {
+ return envObject.setLastError(4);
+ }
+ }
+ if ((attributes & 1024) !== 0) {
+ emnapiDefineProperty(envObject, F, propertyName, method, getter, setter, value, attributes, data);
+ continue;
+ }
+ emnapiDefineProperty(envObject, F.prototype, propertyName, method, getter, setter, value, attributes, data);
+ }
+ var valueHandle = emnapiCtx.addToCurrentScope(F);
+ valueHandleId = valueHandle.id;
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_wrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
+ return emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result);
+ }
+ function napi_unwrap(env, js_object, result) {
+ return emnapiUnwrap(env, js_object, result, 0);
+ }
+ function napi_remove_wrap(env, js_object, result) {
+ return emnapiUnwrap(env, js_object, result, 1);
+ }
+ function napi_type_tag_object(env, object, type_tag) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var value = emnapiCtx.handleStore.get(object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 2);
+ }
+ type_tag >>>= 0;
+ if (!type_tag) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ if (binding.tag !== null) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var tag = new Uint8Array(16);
+ tag.set(new Uint8Array(wasmMemory.buffer, type_tag, 16));
+ binding.tag = new Uint32Array(tag.buffer);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_check_object_type_tag(env, object, type_tag, result) {
+ var ret = true;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var value = emnapiCtx.handleStore.get(object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 2);
+ }
+ if (!type_tag) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ if (!result) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ if (binding.tag !== null) {
+ type_tag >>>= 0;
+ var tag = binding.tag;
+ var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
+ ret = (tag[0] === typeTag[0] &&
+ tag[1] === typeTag[1] &&
+ tag[2] === typeTag[2] &&
+ tag[3] === typeTag[3]);
+ }
+ else {
+ ret = false;
+ }
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_add_finalizer(env, js_object, finalize_data, finalize_cb, finalize_hint, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportFinalizer) {
+ return envObject.setLastError(9);
+ }
+ if (!js_object)
+ return envObject.setLastError(1);
+ if (!finalize_cb)
+ return envObject.setLastError(1);
+ var handleResult = emnapiGetHandle(js_object);
+ if (handleResult.status !== 0) {
+ return envObject.setLastError(handleResult.status);
+ }
+ var handle = handleResult.handle;
+ var ownership = !result ? 0 : 1;
+ finalize_data >>>= 0;
+ finalize_cb >>>= 0;
+ finalize_hint >>>= 0;
+ var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
+ if (result) {
+ result >>>= 0;
+ var referenceId = reference.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, referenceId, true);
+ }
+ return envObject.clearLastError();
+ }
+ function node_api_post_finalizer(env, finalize_cb, finalize_data, finalize_hint) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.enqueueFinalizer(emnapiCtx.createTrackedFinalizer(envObject, finalize_cb, finalize_data, finalize_hint));
+ return envObject.clearLastError();
+ }
+ var wrapMod = Object.freeze({
+ __proto__: null,
+ napi_add_finalizer: napi_add_finalizer,
+ napi_check_object_type_tag: napi_check_object_type_tag,
+ napi_define_class: napi_define_class,
+ napi_remove_wrap: napi_remove_wrap,
+ napi_type_tag_object: napi_type_tag_object,
+ napi_unwrap: napi_unwrap,
+ napi_wrap: napi_wrap,
+ node_api_post_finalizer: node_api_post_finalizer
+ });
+ function emnapi_create_memory_view(env, typedarray_type, external_data, byte_length, finalize_cb, finalize_hint, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ byte_length >>>= 0;
+ external_data >>>= 0;
+ result >>>= 0;
+ byte_length = byte_length >>> 0;
+ if (!external_data) {
+ byte_length = 0;
+ }
+ if (byte_length > 2147483647) {
+ throw new RangeError('Cannot create a memory view larger than 2147483647 bytes');
+ }
+ if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
+ throw new RangeError('Memory out of range');
+ }
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('emnapi_create_memory_view', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var viewDescriptor = void 0;
+ switch (typedarray_type) {
+ case 0:
+ viewDescriptor = { Ctor: Int8Array, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 1:
+ viewDescriptor = { Ctor: Uint8Array, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 2:
+ viewDescriptor = { Ctor: Uint8ClampedArray, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 3:
+ viewDescriptor = { Ctor: Int16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 4:
+ viewDescriptor = { Ctor: Uint16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 5:
+ viewDescriptor = { Ctor: Int32Array, address: external_data, length: byte_length >> 2, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 6:
+ viewDescriptor = { Ctor: Uint32Array, address: external_data, length: byte_length >> 2, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 7:
+ viewDescriptor = { Ctor: Float32Array, address: external_data, length: byte_length >> 2, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 8:
+ viewDescriptor = { Ctor: Float64Array, address: external_data, length: byte_length >> 3, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 9:
+ viewDescriptor = { Ctor: BigInt64Array, address: external_data, length: byte_length >> 3, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 10:
+ viewDescriptor = { Ctor: BigUint64Array, address: external_data, length: byte_length >> 3, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case -1:
+ viewDescriptor = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 11:
+ if (typeof Float16Array !== 'function') {
+ return envObject.setLastError(1);
+ }
+ viewDescriptor = { Ctor: Float16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case -2: {
+ if (!emnapiCtx.feature.Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('emnapi_create_memory_view', '');
+ }
+ viewDescriptor = { Ctor: emnapiCtx.feature.Buffer, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ }
+ default: return envObject.setLastError(1);
+ }
+ var Ctor = viewDescriptor.Ctor;
+ var typedArray = typedarray_type === -2
+ ? emnapiCtx.feature.Buffer.from(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length)
+ : new Ctor(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length);
+ var handle = emnapiCtx.addToCurrentScope(typedArray);
+ emnapiExternalMemory.wasmMemoryViewTable.set(typedArray, viewDescriptor);
+ if (finalize_cb) {
+ var status_1 = napi_add_finalizer(env, handle.id, external_data, finalize_cb, finalize_hint, 0);
+ if (status_1 === 10) {
+ var err = envObject.tryCatch.extractException();
+ envObject.clearLastError();
+ throw err;
+ }
+ else if (status_1 !== 0) {
+ return envObject.setLastError(status_1);
+ }
+ }
+ value = handle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function emnapi_is_support_weakref() {
+ return emnapiCtx.feature.supportFinalizer ? 1 : 0;
+ }
+ function emnapi_is_support_bigint() {
+ return emnapiCtx.feature.supportBigInt ? 1 : 0;
+ }
+ function emnapi_is_node_binding_available() {
+ return emnapiNodeBinding ? 1 : 0;
+ }
+ function $emnapiSyncMemory(js_to_wasm, arrayBufferOrView, offset, len) {
+ offset = offset !== null && offset !== void 0 ? offset : 0;
+ offset = offset >>> 0;
+ var view;
+ if (arrayBufferOrView instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
+ var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
+ if (!pointer)
+ throw new Error('Unknown ArrayBuffer address');
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
+ len = arrayBufferOrView.byteLength - offset;
+ }
+ len = len >>> 0;
+ if (len === 0)
+ return arrayBufferOrView;
+ view = new Uint8Array(arrayBufferOrView, offset, len);
+ var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
+ if (!js_to_wasm) {
+ view.set(wasmMemoryU8.subarray(pointer, pointer + len));
+ }
+ else {
+ wasmMemoryU8.set(view, pointer);
+ }
+ return arrayBufferOrView;
+ }
+ if (ArrayBuffer.isView(arrayBufferOrView)) {
+ var viewPointerInfo = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
+ var latestView = viewPointerInfo.view;
+ var pointer = viewPointerInfo.address;
+ if (!pointer)
+ throw new Error('Unknown ArrayBuffer address');
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
+ len = latestView.byteLength - offset;
+ }
+ len = len >>> 0;
+ if (len === 0)
+ return latestView;
+ view = new Uint8Array(latestView.buffer, latestView.byteOffset + offset, len);
+ var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
+ if (!js_to_wasm) {
+ view.set(wasmMemoryU8.subarray(pointer, pointer + len));
+ }
+ else {
+ wasmMemoryU8.set(view, pointer);
+ }
+ return latestView;
+ }
+ throw new TypeError('emnapiSyncMemory expect ArrayBuffer or ArrayBufferView as first parameter');
+ }
+ function emnapi_sync_memory(env, js_to_wasm, arraybuffer_or_view, offset, len) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer_or_view)
+ return envObject.setLastError(1);
+ arraybuffer_or_view >>>= 0;
+ offset >>>= 0;
+ len >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
+ var handle = envObject.ctx.handleStore.get(handleId);
+ if (!handle.isArrayBuffer() && !handle.isTypedArray() && !handle.isDataView() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
+ return envObject.setLastError(1);
+ }
+ var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
+ if (handle.value !== ret) {
+ arraybuffer_or_view >>>= 0;
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function $emnapiGetMemoryAddress(arrayBufferOrView) {
+ var isArrayBuffer = arrayBufferOrView instanceof ArrayBuffer;
+ var isDataView = arrayBufferOrView instanceof DataView;
+ var isTypedArray = ArrayBuffer.isView(arrayBufferOrView) && !isDataView;
+ if (!isArrayBuffer && !isTypedArray && !isDataView && !emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
+ throw new TypeError('emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter');
+ }
+ var info;
+ if (isArrayBuffer) {
+ info = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false);
+ }
+ else {
+ info = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
+ }
+ return {
+ address: info.address,
+ ownership: info.ownership,
+ runtimeAllocated: info.runtimeAllocated
+ };
+ }
+ function emnapi_get_memory_address(env, arraybuffer_or_view, address, ownership, runtime_allocated) {
+ var p, runtimeAllocated, ownershipOut;
+ var info;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer_or_view)
+ return envObject.setLastError(1);
+ if (!address && !ownership && !runtime_allocated) {
+ return envObject.setLastError(1);
+ }
+ var handle = envObject.ctx.handleStore.get(arraybuffer_or_view);
+ info = $emnapiGetMemoryAddress(handle.value);
+ p = info.address;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (address) {
+ address >>>= 0;
+ HEAP_DATA_VIEW.setUint32(address, p, true);
+ }
+ if (ownership) {
+ ownership >>>= 0;
+ ownershipOut = info.ownership;
+ HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
+ }
+ if (runtime_allocated) {
+ runtime_allocated >>>= 0;
+ runtimeAllocated = info.runtimeAllocated;
+ HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function emnapi_get_runtime_version(env, version) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!version)
+ return envObject.setLastError(1);
+ var runtimeVersion;
+ try {
+ runtimeVersion = emnapiCtx.getRuntimeVersions().version;
+ }
+ catch (_) {
+ return envObject.setLastError(9);
+ }
+ var versions = runtimeVersion.split('.')
+ .map(function (n) { return Number(n); });
+ version >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(version, versions[0], true);
+ HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
+ HEAP_DATA_VIEW.setUint32(version + 8, versions[2], true);
+ return envObject.clearLastError();
+ }
+ var emnapiMod = Object.freeze({
+ __proto__: null,
+ $emnapiGetMemoryAddress: $emnapiGetMemoryAddress,
+ $emnapiSyncMemory: $emnapiSyncMemory,
+ emnapi_create_memory_view: emnapi_create_memory_view,
+ emnapi_get_memory_address: emnapi_get_memory_address,
+ emnapi_get_runtime_version: emnapi_get_runtime_version,
+ emnapi_is_node_binding_available: emnapi_is_node_binding_available,
+ emnapi_is_support_bigint: emnapi_is_support_bigint,
+ emnapi_is_support_weakref: emnapi_is_support_weakref,
+ emnapi_sync_memory: emnapi_sync_memory
+ });
+ function napi_create_array(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope([]).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_array_with_length(env, length, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ length >>>= 0;
+ result >>>= 0;
+ length = length >>> 0;
+ var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function emnapiCreateArrayBuffer(byte_length, data, shared) {
+ byte_length >>>= 0;
+ byte_length = byte_length >>> 0;
+ var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
+ if (data) {
+ data >>>= 0;
+ var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ return arrayBuffer;
+ }
+ function napi_create_arraybuffer(env, byte_length, data, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function node_api_create_sharedarraybuffer(env, byte_length, data, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_date(env, time, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ value = emnapiCtx.addToCurrentScope(new Date(time)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_external(env, data, finalize_cb, finalize_hint, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_create_external', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var externalHandle = emnapiCtx.getCurrentScope().addExternal(data);
+ if (finalize_cb) {
+ emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0, finalize_cb, data, finalize_hint);
+ }
+ result >>>= 0;
+ value = externalHandle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_external_arraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ byte_length >>>= 0;
+ external_data >>>= 0;
+ result >>>= 0;
+ byte_length = byte_length >>> 0;
+ if (!external_data) {
+ byte_length = 0;
+ }
+ if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
+ throw new RangeError('Memory out of range');
+ }
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_create_external_arraybuffer', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var arrayBuffer = new ArrayBuffer(byte_length);
+ if (byte_length === 0) {
+ try {
+ var MessageChannel_1 = emnapiCtx.feature.MessageChannel;
+ var messageChannel = new MessageChannel_1();
+ messageChannel.port1.postMessage(arrayBuffer, [arrayBuffer]);
+ }
+ catch (_) { }
+ }
+ else {
+ var u8arr = new Uint8Array(arrayBuffer);
+ u8arr.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
+ emnapiExternalMemory.table.set(arrayBuffer, {
+ address: external_data,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ var handle = emnapiCtx.addToCurrentScope(arrayBuffer);
+ if (finalize_cb) {
+ var status_1 = napi_add_finalizer(env, handle.id, external_data, finalize_cb, finalize_hint, 0);
+ if (status_1 === 10) {
+ var err = envObject.tryCatch.extractException();
+ envObject.clearLastError();
+ throw err;
+ }
+ else if (status_1 !== 0) {
+ return envObject.setLastError(status_1);
+ }
+ }
+ value = handle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_object(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope({}).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!property_names)
+ return envObject.setLastError(1);
+ if (!property_values)
+ return envObject.setLastError(1);
+ }
+ var v8_prototype_or_null = prototype_or_null
+ ? emnapiCtx.handleStore.get(prototype_or_null).value
+ : null;
+ var properties = {};
+ property_names >>>= 0;
+ property_values >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
+ if (!(typeof name_value === "string" || typeof name_value === "symbol"))
+ return envObject.setLastError(4);
+ properties[name_value] = {
+ value: emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_values + i * 4, true)).value,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ };
+ }
+ var obj;
+ try {
+ obj = Object.defineProperties(Object.create(v8_prototype_or_null), properties);
+ }
+ catch (_) {
+ return envObject.setLastError(9);
+ }
+ var value = emnapiCtx.addToCurrentScope(obj).id;
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_symbol(env, description, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!description) {
+ var value = emnapiCtx.addToCurrentScope(Symbol()).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ }
+ else {
+ var handle = emnapiCtx.handleStore.get(description);
+ var desc = handle.value;
+ if (typeof desc !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var v = emnapiCtx.addToCurrentScope(Symbol(desc)).id;
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_create_typedarray(env, type, length, arraybuffer, byte_offset, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer()) {
+ return envObject.setLastError(1);
+ }
+ var buffer = handle.value;
+ byte_offset >>>= 0;
+ length >>>= 0;
+ var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
+ var _a;
+ byte_offset = byte_offset >>> 0;
+ length = length >>> 0;
+ if (size_of_element > 1) {
+ if ((byte_offset) % (size_of_element) !== 0) {
+ var err = new RangeError("start offset of ".concat((_a = Type.name) !== null && _a !== void 0 ? _a : '', " should be a multiple of ").concat(size_of_element));
+ err.code = 'ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT';
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(9);
+ }
+ }
+ if (((length * size_of_element) + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('Invalid typed array length');
+ err.code = 'ERR_NAPI_INVALID_TYPEDARRAY_LENGTH';
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(9);
+ }
+ var out = new Type(buffer, byte_offset, length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(out, {
+ Ctor: Type,
+ address: byte_offset,
+ length: length,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ value = emnapiCtx.addToCurrentScope(out).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ };
+ switch (type) {
+ case 0:
+ return createTypedArray(envObject, Int8Array, 1, buffer, byte_offset, length);
+ case 1:
+ return createTypedArray(envObject, Uint8Array, 1, buffer, byte_offset, length);
+ case 2:
+ return createTypedArray(envObject, Uint8ClampedArray, 1, buffer, byte_offset, length);
+ case 3:
+ return createTypedArray(envObject, Int16Array, 2, buffer, byte_offset, length);
+ case 4:
+ return createTypedArray(envObject, Uint16Array, 2, buffer, byte_offset, length);
+ case 5:
+ return createTypedArray(envObject, Int32Array, 4, buffer, byte_offset, length);
+ case 6:
+ return createTypedArray(envObject, Uint32Array, 4, buffer, byte_offset, length);
+ case 7:
+ return createTypedArray(envObject, Float32Array, 4, buffer, byte_offset, length);
+ case 8:
+ return createTypedArray(envObject, Float64Array, 8, buffer, byte_offset, length);
+ case 9:
+ return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
+ case 10:
+ return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
+ case 11:
+ if (typeof Float16Array !== 'function') {
+ return envObject.setLastError(1);
+ }
+ return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
+ default:
+ return envObject.setLastError(1);
+ }
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_buffer(env, size, data, result) {
+ var _a;
+ var value, pointer;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
+ }
+ result >>>= 0;
+ var buffer = void 0;
+ size >>>= 0;
+ size = size >>> 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!data || (size === 0)) {
+ buffer = Buffer.alloc(size);
+ value = emnapiCtx.addToCurrentScope(buffer).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ }
+ else {
+ pointer = _malloc(size);
+ if (!pointer)
+ throw new Error('Out of memory');
+ pointer >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
+ var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
+ var viewDescriptor = {
+ Ctor: Buffer,
+ address: pointer,
+ length: size,
+ ownership: emnapiExternalMemory.registry ? 0 : 1,
+ runtimeAllocated: 1
+ };
+ emnapiExternalMemory.wasmMemoryViewTable.set(buffer_1, viewDescriptor);
+ (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
+ value = emnapiCtx.addToCurrentScope(buffer_1).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ data >>>= 0;
+ HEAP_DATA_VIEW.setUint32(data, pointer, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_buffer_copy(env, length, data, result_data, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('napi_create_buffer_copy', '');
+ }
+ var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
+ var buffer = Buffer.from(arrayBuffer);
+ data >>>= 0;
+ length >>>= 0;
+ buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
+ value = emnapiCtx.addToCurrentScope(buffer).id;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_external_buffer(env, length, data, finalize_cb, finalize_hint, result) {
+ return emnapi_create_memory_view(env, -2, data, length, finalize_cb, finalize_hint, result);
+ }
+ function node_api_create_buffer_from_arraybuffer(env, arraybuffer, byte_offset, byte_length, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ byte_offset >>>= 0;
+ byte_length >>>= 0;
+ byte_offset = byte_offset >>> 0;
+ byte_length = byte_length >>> 0;
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer()) {
+ return envObject.setLastError(1);
+ }
+ var buffer = handle.value;
+ if ((byte_length + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('The byte offset + length is out of range');
+ err.code = 'ERR_OUT_OF_RANGE';
+ throw err;
+ }
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('node_api_create_buffer_from_arraybuffer', '');
+ }
+ var out = Buffer.from(buffer, byte_offset, byte_length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(out, {
+ Ctor: Buffer,
+ address: byte_offset,
+ length: byte_length,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ value = emnapiCtx.addToCurrentScope(out).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_dataview(env, byte_length, arraybuffer, byte_offset, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ byte_length >>>= 0;
+ byte_offset >>>= 0;
+ byte_length = byte_length >>> 0;
+ byte_offset = byte_offset >>> 0;
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
+ var createDataview = function (buffer) {
+ if ((byte_length + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in');
+ err.code = 'ERR_NAPI_INVALID_DATAVIEW_ARGS';
+ throw err;
+ }
+ var dataview = new DataView(buffer, byte_offset, byte_length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(dataview)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(dataview, {
+ Ctor: DataView,
+ address: byte_offset,
+ length: byte_length,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ var v = emnapiCtx.addToCurrentScope(dataview).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ };
+ if (value instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(value)) {
+ return createDataview(value);
+ }
+ else {
+ return envObject.setLastError(1);
+ }
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function node_api_symbol_for(env, utf8description, length, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ length >>>= 0;
+ utf8description >>>= 0;
+ result >>>= 0;
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!utf8description)
+ return envObject.setLastError(1);
+ }
+ if (!(autoLength || (sizelength <= 2147483647))) {
+ return envObject.setLastError(1);
+ }
+ var descriptionString = emnapiString.UTF8ToString(utf8description, length);
+ var value = emnapiCtx.addToCurrentScope(Symbol.for(descriptionString)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var createMod = Object.freeze({
+ __proto__: null,
+ napi_create_array: napi_create_array,
+ napi_create_array_with_length: napi_create_array_with_length,
+ napi_create_arraybuffer: napi_create_arraybuffer,
+ napi_create_buffer: napi_create_buffer,
+ napi_create_buffer_copy: napi_create_buffer_copy,
+ napi_create_dataview: napi_create_dataview,
+ napi_create_date: napi_create_date,
+ napi_create_external: napi_create_external,
+ napi_create_external_arraybuffer: napi_create_external_arraybuffer,
+ napi_create_external_buffer: napi_create_external_buffer,
+ napi_create_object: napi_create_object,
+ napi_create_symbol: napi_create_symbol,
+ napi_create_typedarray: napi_create_typedarray,
+ node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
+ node_api_create_object_with_properties: node_api_create_object_with_properties,
+ node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
+ node_api_symbol_for: node_api_symbol_for
+ });
+ function napi_get_boolean(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var v = value === 0 ? 3 : 4;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_global(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = 5;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_null(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = 2;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_undefined(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = 1;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var globalMod = Object.freeze({
+ __proto__: null,
+ napi_get_boolean: napi_get_boolean,
+ napi_get_global: napi_get_global,
+ napi_get_null: napi_get_null,
+ napi_get_undefined: napi_get_undefined
+ });
+ function napi_set_instance_data(env, data, finalize_cb, finalize_hint) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ data >>>= 0;
+ finalize_cb >>>= 0;
+ finalize_hint >>>= 0;
+ envObject.setInstanceData(data, finalize_cb, finalize_hint);
+ return envObject.clearLastError();
+ }
+ function napi_get_instance_data(env, data) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!data)
+ return envObject.setLastError(1);
+ data >>>= 0;
+ var value = envObject.getInstanceData();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(data, value, true);
+ return envObject.clearLastError();
+ }
+ var envMod = Object.freeze({
+ __proto__: null,
+ napi_get_instance_data: napi_get_instance_data,
+ napi_set_instance_data: napi_set_instance_data
+ });
+ function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
+ error_code >>>= 0;
+ engine_error_code >>>= 0;
+ engine_reserved >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ var lastError = envObject.lastError;
+ var errorCode = lastError.errorCode;
+ var engineErrorCode = lastError.engineErrorCode >>> 0;
+ var engineReserved = lastError.engineReserved;
+ engineReserved >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
+ HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
+ HEAP_DATA_VIEW.setUint32(engine_reserved, engineReserved, true);
+ }
+ function napi_throw(env, error) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!error)
+ return envObject.setLastError(1);
+ envObject.tryCatch.setError(emnapiCtx.handleStore.get(error).value);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_throw_error(env, code, msg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new Error(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_throw_type_error(env, code, msg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_throw_range_error(env, code, msg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function node_api_throw_syntax_error(env, code, msg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_is_exception_pending(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ var r = envObject.tryCatch.hasCaught();
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_error(env, code, msg, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var error = new Error(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_type_error(env, code, msg, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var error = new TypeError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_range_error(env, code, msg, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var error = new RangeError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function node_api_create_syntax_error(env, code, msg, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var error = new SyntaxError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_and_clear_last_exception(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!envObject.tryCatch.hasCaught()) {
+ HEAP_DATA_VIEW.setUint32(result, 1, true);
+ return envObject.clearLastError();
+ }
+ else {
+ var err = envObject.tryCatch.exception();
+ var value = envObject.ensureHandleId(err);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ envObject.tryCatch.reset();
+ }
+ return envObject.clearLastError();
+ }
+ function napi_fatal_error(location, location_len, message, message_len) {
+ location >>>= 0;
+ location_len >>>= 0;
+ message >>>= 0;
+ message_len >>>= 0;
+ var locationStr = emnapiString.UTF8ToString(location, location_len);
+ var messageStr = emnapiString.UTF8ToString(message, message_len);
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.napi.fatalError(locationStr, messageStr);
+ }
+ else {
+ abort('FATAL ERROR: ' + locationStr + ' ' + messageStr);
+ }
+ }
+ function napi_fatal_exception(env, err) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!err)
+ return envObject.setLastError(1);
+ var error = envObject.ctx.handleStore.get(err);
+ try {
+ envObject.triggerFatalException(error.value);
+ }
+ catch (_) {
+ return envObject.setLastError(9);
+ }
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ var errorMod = Object.freeze({
+ __proto__: null,
+ _emnapi_get_last_error_info: _emnapi_get_last_error_info,
+ napi_create_error: napi_create_error,
+ napi_create_range_error: napi_create_range_error,
+ napi_create_type_error: napi_create_type_error,
+ napi_fatal_error: napi_fatal_error,
+ napi_fatal_exception: napi_fatal_exception,
+ napi_get_and_clear_last_exception: napi_get_and_clear_last_exception,
+ napi_is_exception_pending: napi_is_exception_pending,
+ napi_throw: napi_throw,
+ napi_throw_error: napi_throw_error,
+ napi_throw_range_error: napi_throw_range_error,
+ napi_throw_type_error: napi_throw_type_error,
+ node_api_create_syntax_error: node_api_create_syntax_error,
+ node_api_throw_syntax_error: node_api_throw_syntax_error
+ });
+ function _emnapi_create_function(env, utf8name, length, cb, data, result) {
+ length >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
+ if (fresult.status !== 0)
+ return envObject.setLastError(fresult.status);
+ var f = fresult.f;
+ var valueHandle = emnapiCtx.addToCurrentScope(f);
+ result >>>= 0;
+ var value = valueHandle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ function napi_create_function(env, utf8name, length, cb, data, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!cb)
+ return envObject.setLastError(1);
+ return _emnapi_create_function(env, utf8name, length, cb, data, result);
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_cb_info(env, cbinfo, argc, argv, this_arg, data) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!cbinfo)
+ return envObject.setLastError(1);
+ var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
+ argc >>>= 0;
+ argv >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (argv) {
+ if (!argc)
+ return envObject.setLastError(1);
+ var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
+ argcValue >>>= 0;
+ var len = cbinfoValue.args.length;
+ var arrlen = argcValue < len ? argcValue : len;
+ var i = 0;
+ for (; i < arrlen; i++) {
+ var argVal = envObject.ensureHandleId(cbinfoValue.args[i]);
+ HEAP_DATA_VIEW.setUint32(argv + i * 4, argVal, true);
+ }
+ if (i < argcValue) {
+ for (; i < argcValue; i++) {
+ HEAP_DATA_VIEW.setUint32(argv + i * 4, 1, true);
+ }
+ }
+ }
+ if (argc) {
+ HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
+ }
+ if (this_arg) {
+ this_arg >>>= 0;
+ var v = envObject.ensureHandleId(cbinfoValue.thiz);
+ HEAP_DATA_VIEW.setUint32(this_arg, v, true);
+ }
+ if (data) {
+ data >>>= 0;
+ HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_call_function(env, recv, func, argc, argv, result) {
+ var i = 0;
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!recv)
+ return envObject.setLastError(1);
+ argc >>>= 0;
+ argv >>>= 0;
+ result >>>= 0;
+ argc = argc >>> 0;
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1);
+ }
+ var v8recv = emnapiCtx.handleStore.get(recv).value;
+ if (!func)
+ return envObject.setLastError(1);
+ var v8func = emnapiCtx.handleStore.get(func).value;
+ if (typeof v8func !== 'function')
+ return envObject.setLastError(1);
+ var args = [];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ args.push(emnapiCtx.handleStore.get(argVal).value);
+ }
+ var ret = v8func.apply(v8recv, args);
+ if (result) {
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_new_instance(env, constructor, argc, argv, result) {
+ var i;
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!constructor)
+ return envObject.setLastError(1);
+ argc >>>= 0;
+ argv >>>= 0;
+ result >>>= 0;
+ argc = argc >>> 0;
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ var Ctor = emnapiCtx.handleStore.get(constructor).value;
+ if (typeof Ctor !== 'function')
+ return envObject.setLastError(1);
+ var ret = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (emnapiCtx.feature.supportReflect) {
+ var argList = Array(argc);
+ for (i = 0; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ argList[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ ret = Reflect.construct(Ctor, argList, Ctor);
+ }
+ else {
+ var args = Array(argc + 1);
+ args[0] = undefined;
+ for (i = 0; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ args[i + 1] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var BoundCtor = Ctor.bind.apply(Ctor, args);
+ ret = new BoundCtor();
+ }
+ if (result) {
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_new_target(env, cbinfo, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!cbinfo)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
+ var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
+ var value = thiz == null || thiz.constructor == null
+ ? 0
+ : thiz instanceof fn
+ ? envObject.ensureHandleId(thiz.constructor)
+ : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var functionMod = Object.freeze({
+ __proto__: null,
+ _emnapi_create_function: _emnapi_create_function,
+ napi_call_function: napi_call_function,
+ napi_create_function: napi_create_function,
+ napi_get_cb_info: napi_get_cb_info,
+ napi_get_new_target: napi_get_new_target,
+ napi_new_instance: napi_new_instance
+ });
+ function napi_open_handle_scope(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ var scope = emnapiCtx.openScope(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, scope.id, true);
+ return envObject.clearLastError();
+ }
+ function napi_close_handle_scope(env, scope) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1);
+ if ((envObject.openHandleScopes === 0)) {
+ return 13;
+ }
+ emnapiCtx.closeScope(envObject);
+ return envObject.clearLastError();
+ }
+ function napi_open_escapable_handle_scope(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ var scope = emnapiCtx.openScope(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, scope.id, true);
+ return envObject.clearLastError();
+ }
+ function napi_close_escapable_handle_scope(env, scope) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1);
+ if ((envObject.openHandleScopes === 0)) {
+ return 13;
+ }
+ emnapiCtx.closeScope(envObject);
+ return envObject.clearLastError();
+ }
+ function napi_escape_handle(env, scope, escapee, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1);
+ if (!escapee)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var scopeObject = emnapiCtx.scopeStore.get(scope);
+ if (!scopeObject.escapeCalled()) {
+ escapee >>>= 0;
+ result >>>= 0;
+ var newHandle = scopeObject.escape(escapee);
+ var value = newHandle ? newHandle.id : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ return envObject.setLastError(12);
+ }
+ function napi_create_reference(env, value, initial_refcount, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (envObject.moduleApiVersion < 10) {
+ if (!(handle.isObject() || handle.isFunction() || handle.isSymbol())) {
+ return envObject.setLastError(1);
+ }
+ }
+ var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, ref.id, true);
+ return envObject.clearLastError();
+ }
+ function napi_delete_reference(env, ref) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!ref)
+ return envObject.setLastError(1);
+ emnapiCtx.refStore.get(ref).dispose();
+ return envObject.clearLastError();
+ }
+ function napi_reference_ref(env, ref, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1);
+ var count = emnapiCtx.refStore.get(ref).ref();
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, count, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_reference_unref(env, ref, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1);
+ var reference = emnapiCtx.refStore.get(ref);
+ var refcount = reference.refcount();
+ if (refcount === 0) {
+ return envObject.setLastError(9);
+ }
+ var count = reference.unref();
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, count, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_reference_value(env, ref, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var reference = emnapiCtx.refStore.get(ref);
+ var handleId = reference.get(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, handleId, true);
+ return envObject.clearLastError();
+ }
+ function napi_add_env_cleanup_hook(env, fun, arg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!fun)
+ return envObject.setLastError(1);
+ fun >>>= 0;
+ arg >>>= 0;
+ emnapiCtx.addCleanupHook(envObject, fun, arg);
+ return 0;
+ }
+ function napi_remove_env_cleanup_hook(env, fun, arg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!fun)
+ return envObject.setLastError(1);
+ fun >>>= 0;
+ arg >>>= 0;
+ emnapiCtx.removeCleanupHook(envObject, fun, arg);
+ return 0;
+ }
+ function _emnapi_env_ref(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.ref();
+ }
+ function _emnapi_env_unref(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.unref();
+ }
+ var lifeMod = Object.freeze({
+ __proto__: null,
+ _emnapi_env_ref: _emnapi_env_ref,
+ _emnapi_env_unref: _emnapi_env_unref,
+ napi_add_env_cleanup_hook: napi_add_env_cleanup_hook,
+ napi_close_escapable_handle_scope: napi_close_escapable_handle_scope,
+ napi_close_handle_scope: napi_close_handle_scope,
+ napi_create_reference: napi_create_reference,
+ napi_delete_reference: napi_delete_reference,
+ napi_escape_handle: napi_escape_handle,
+ napi_get_reference_value: napi_get_reference_value,
+ napi_open_escapable_handle_scope: napi_open_escapable_handle_scope,
+ napi_open_handle_scope: napi_open_handle_scope,
+ napi_reference_ref: napi_reference_ref,
+ napi_reference_unref: napi_reference_unref,
+ napi_remove_env_cleanup_hook: napi_remove_env_cleanup_hook
+ });
+ function _emnapi_get_filename(env, buf, len) {
+ var envObject = emnapiCtx.envStore.get(env);
+ var filename = envObject.filename;
+ if (!buf) {
+ return emnapiString.lengthBytesUTF8(filename);
+ }
+ return emnapiString.stringToUTF8(filename, buf, len);
+ }
+ var miscellaneousMod = Object.freeze({
+ __proto__: null,
+ _emnapi_get_filename: _emnapi_get_filename
+ });
+ function napi_create_promise(env, deferred, promise) {
+ var deferredObjectId, value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1);
+ if (!promise)
+ return envObject.setLastError(1);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var p = new Promise(function (resolve, reject) {
+ var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
+ deferredObjectId = deferredObject.id;
+ deferred >>>= 0;
+ HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
+ });
+ promise >>>= 0;
+ value = emnapiCtx.addToCurrentScope(p).id;
+ HEAP_DATA_VIEW.setUint32(promise, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_resolve_deferred(env, deferred, resolution) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1);
+ if (!resolution)
+ return envObject.setLastError(1);
+ var deferredObject = emnapiCtx.deferredStore.get(deferred);
+ deferredObject.resolve(emnapiCtx.handleStore.get(resolution).value);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_reject_deferred(env, deferred, resolution) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1);
+ if (!resolution)
+ return envObject.setLastError(1);
+ var deferredObject = emnapiCtx.deferredStore.get(deferred);
+ deferredObject.reject(emnapiCtx.handleStore.get(resolution).value);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_is_promise(env, value, is_promise) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!is_promise)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ is_promise >>>= 0;
+ var r = h.isPromise() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(is_promise, r, true);
+ return envObject.clearLastError();
+ }
+ var promiseMod = Object.freeze({
+ __proto__: null,
+ napi_create_promise: napi_create_promise,
+ napi_is_promise: napi_is_promise,
+ napi_reject_deferred: napi_reject_deferred,
+ napi_resolve_deferred: napi_resolve_deferred
+ });
+ function napi_get_all_property_names(env, object, key_mode, key_filter, key_conversion, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var obj = void 0;
+ try {
+ obj = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ if (key_mode !== 0 && key_mode !== 1) {
+ return envObject.setLastError(1);
+ }
+ if (key_conversion !== 0 && key_conversion !== 1) {
+ return envObject.setLastError(1);
+ }
+ var props = [];
+ var names = void 0;
+ var symbols = void 0;
+ var i = void 0;
+ var own = true;
+ var integerIndiceRegex = /^(0|[1-9][0-9]*)$/;
+ do {
+ names = Object.getOwnPropertyNames(obj);
+ symbols = Object.getOwnPropertySymbols(obj);
+ for (i = 0; i < names.length; i++) {
+ props.push({
+ name: integerIndiceRegex.test(names[i]) ? Number(names[i]) : names[i],
+ desc: Object.getOwnPropertyDescriptor(obj, names[i]),
+ own: own
+ });
+ }
+ for (i = 0; i < symbols.length; i++) {
+ props.push({
+ name: symbols[i],
+ desc: Object.getOwnPropertyDescriptor(obj, symbols[i]),
+ own: own
+ });
+ }
+ if (key_mode === 1) {
+ break;
+ }
+ obj = Object.getPrototypeOf(obj);
+ own = false;
+ } while (obj);
+ var ret = [];
+ var addName = function (ret, name, key_filter, conversion_mode) {
+ if (ret.indexOf(name) !== -1)
+ return;
+ if (conversion_mode === 0) {
+ ret.push(name);
+ }
+ else if (conversion_mode === 1) {
+ var realName = typeof name === 'number' ? String(name) : name;
+ if (typeof realName === 'string') {
+ if (!(key_filter & 8)) {
+ ret.push(realName);
+ }
+ }
+ else {
+ ret.push(realName);
+ }
+ }
+ };
+ for (i = 0; i < props.length; i++) {
+ var prop = props[i];
+ var name_1 = prop.name;
+ var desc = prop.desc;
+ if (key_filter === 0) {
+ addName(ret, name_1, key_filter, key_conversion);
+ }
+ else {
+ if (key_filter & 8 && typeof name_1 === 'string') {
+ continue;
+ }
+ if (key_filter & 16 && typeof name_1 === 'symbol') {
+ continue;
+ }
+ var shouldAdd = true;
+ switch (key_filter & 7) {
+ case 1: {
+ shouldAdd = Boolean(desc.writable);
+ break;
+ }
+ case 2: {
+ shouldAdd = Boolean(desc.enumerable);
+ break;
+ }
+ case (1 | 2): {
+ shouldAdd = Boolean(desc.writable && desc.enumerable);
+ break;
+ }
+ case 4: {
+ shouldAdd = Boolean(desc.configurable);
+ break;
+ }
+ case (4 | 1): {
+ shouldAdd = Boolean(desc.configurable && desc.writable);
+ break;
+ }
+ case (4 | 2): {
+ shouldAdd = Boolean(desc.configurable && desc.enumerable);
+ break;
+ }
+ case (4 | 2 | 1): {
+ shouldAdd = Boolean(desc.configurable && desc.enumerable && desc.writable);
+ break;
+ }
+ }
+ if (shouldAdd) {
+ addName(ret, name_1, key_filter, key_conversion);
+ }
+ }
+ }
+ result >>>= 0;
+ value = emnapiCtx.addToCurrentScope(ret).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_property_names(env, object, result) {
+ return napi_get_all_property_names(env, object, 0, 2 | 16, 1, result);
+ }
+ function napi_set_property(env, object, key, value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!value)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ h.value[emnapiCtx.handleStore.get(key).value] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_has_property(env, object, key, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_property(env, object, key, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_delete_property(env, object, key, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ var propertyKey = emnapiCtx.handleStore.get(key).value;
+ if (emnapiCtx.feature.supportReflect) {
+ r = Reflect.deleteProperty(h.value, propertyKey);
+ }
+ else {
+ try {
+ r = delete h.value[propertyKey];
+ }
+ catch (_) {
+ r = false;
+ }
+ }
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_has_own_property(env, object, key, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ var prop = emnapiCtx.handleStore.get(key).value;
+ if (typeof prop !== 'string' && typeof prop !== 'symbol') {
+ return envObject.setLastError(4);
+ }
+ r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_set_named_property(env, object, cname, value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ if (!cname) {
+ return envObject.setLastError(1);
+ }
+ cname >>>= 0;
+ emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_has_named_property(env, object, utf8name, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ if (!utf8name) {
+ return envObject.setLastError(1);
+ }
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ utf8name >>>= 0;
+ result >>>= 0;
+ r = emnapiString.UTF8ToString(utf8name, -1) in v;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_named_property(env, object, utf8name, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ if (!utf8name) {
+ return envObject.setLastError(1);
+ }
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ utf8name >>>= 0;
+ result >>>= 0;
+ value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_set_element(env, object, index, value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ h.value[index >>> 0] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_has_element(env, object, index, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ r = ((index >>> 0) in v) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_element(env, object, index, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ value = envObject.ensureHandleId(v[index >>> 0]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_delete_element(env, object, index, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ if (emnapiCtx.feature.supportReflect) {
+ r = Reflect.deleteProperty(h.value, index >>> 0);
+ }
+ else {
+ try {
+ r = delete h.value[index >>> 0];
+ }
+ catch (_) {
+ r = false;
+ }
+ }
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_define_properties(env, object, property_count, properties) {
+ var propPtr, attributes;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ properties >>>= 0;
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!properties)
+ return envObject.setLastError(1);
+ }
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ var propertyName = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ propPtr = properties + (i * (4 * 8));
+ var utf8Name = HEAP_DATA_VIEW.getUint32(propPtr, true);
+ var name_2 = HEAP_DATA_VIEW.getUint32(propPtr + 4, true);
+ var method = HEAP_DATA_VIEW.getUint32(propPtr + 8, true);
+ var getter = HEAP_DATA_VIEW.getUint32(propPtr + 12, true);
+ var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
+ var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
+ attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
+ attributes >>>= 0;
+ var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
+ if (utf8Name) {
+ propertyName = emnapiString.UTF8ToString(utf8Name, -1);
+ }
+ else {
+ if (!name_2) {
+ return envObject.setLastError(4);
+ }
+ propertyName = emnapiCtx.handleStore.get(name_2).value;
+ if (typeof propertyName !== 'string' && typeof propertyName !== 'symbol') {
+ return envObject.setLastError(4);
+ }
+ }
+ emnapiDefineProperty(envObject, maybeObject, propertyName, method, getter, setter, value, attributes, data);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_object_freeze(env, object) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ Object.freeze(maybeObject);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_object_seal(env, object) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ Object.seal(maybeObject);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ var propertyMod = Object.freeze({
+ __proto__: null,
+ napi_define_properties: napi_define_properties,
+ napi_delete_element: napi_delete_element,
+ napi_delete_property: napi_delete_property,
+ napi_get_all_property_names: napi_get_all_property_names,
+ napi_get_element: napi_get_element,
+ napi_get_named_property: napi_get_named_property,
+ napi_get_property: napi_get_property,
+ napi_get_property_names: napi_get_property_names,
+ napi_has_element: napi_has_element,
+ napi_has_named_property: napi_has_named_property,
+ napi_has_own_property: napi_has_own_property,
+ napi_has_property: napi_has_property,
+ napi_object_freeze: napi_object_freeze,
+ napi_object_seal: napi_object_seal,
+ napi_set_element: napi_set_element,
+ napi_set_named_property: napi_set_named_property,
+ napi_set_property: napi_set_property
+ });
+ function napi_run_script(env, script, result) {
+ var status;
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!script)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var v8Script = emnapiCtx.handleStore.get(script);
+ if (!v8Script.isString()) {
+ return envObject.setLastError(3);
+ }
+ var g = emnapiCtx.handleStore.get(5).value;
+ var ret = g.eval(v8Script.value);
+ result >>>= 0;
+ value = envObject.ensureHandleId(ret);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ status = envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ return status;
+ }
+ var scriptMod = Object.freeze({
+ __proto__: null,
+ napi_run_script: napi_run_script
+ });
+ function napi_typeof(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var v = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r;
+ if (v.isNumber()) {
+ r = 3;
+ }
+ else if (v.isBigInt()) {
+ r = 9;
+ }
+ else if (v.isString()) {
+ r = 4;
+ }
+ else if (v.isFunction()) {
+ r = 7;
+ }
+ else if (v.isExternal()) {
+ r = 8;
+ }
+ else if (v.isObject()) {
+ r = 6;
+ }
+ else if (v.isBoolean()) {
+ r = 2;
+ }
+ else if (v.isUndefined()) {
+ r = 0;
+ }
+ else if (v.isSymbol()) {
+ r = 5;
+ }
+ else if (v.isNull()) {
+ r = 1;
+ }
+ else {
+ return envObject.setLastError(1);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_coerce_to_bool(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ v = handle.value ? 4 : 3;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_coerce_to_number(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.isBigInt()) {
+ throw new TypeError('Cannot convert a BigInt value to a number');
+ }
+ result >>>= 0;
+ v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_coerce_to_object(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ result >>>= 0;
+ v = envObject.ensureHandleId(Object(handle.value));
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_coerce_to_string(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.isSymbol()) {
+ throw new TypeError('Cannot convert a Symbol value to a string');
+ }
+ result >>>= 0;
+ v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_instanceof(env, object, constructor, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!constructor)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, 0, true);
+ var ctor = emnapiCtx.handleStore.get(constructor);
+ if (!ctor.isFunction()) {
+ return envObject.setLastError(5);
+ }
+ var val = emnapiCtx.handleStore.get(object).value;
+ var ret = val instanceof ctor.value;
+ r = ret ? 1 : 0;
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_is_array(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isArray() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_arraybuffer(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isArrayBuffer() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function node_api_is_sharedarraybuffer(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
+ ? 1
+ : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_date(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isDate() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_error(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var val = emnapiCtx.handleStore.get(value).value;
+ result >>>= 0;
+ var r = (val instanceof Error) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_typedarray(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isTypedArray() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_buffer(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_dataview(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isDataView() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_strict_equals(env, lhs, rhs, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!lhs)
+ return envObject.setLastError(1);
+ if (!rhs)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var lv = emnapiCtx.handleStore.get(lhs).value;
+ var rv = emnapiCtx.handleStore.get(rhs).value;
+ result >>>= 0;
+ r = (lv === rv) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_detach_arraybuffer(env, arraybuffer) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
+ if (!(value instanceof ArrayBuffer)) {
+ if (typeof SharedArrayBuffer === 'function' && (value instanceof SharedArrayBuffer)) {
+ return envObject.setLastError(20);
+ }
+ return envObject.setLastError(19);
+ }
+ try {
+ var MessageChannel_1 = emnapiCtx.feature.MessageChannel;
+ var messageChannel = new MessageChannel_1();
+ messageChannel.port1.postMessage(value, [value]);
+ }
+ catch (_) {
+ return envObject.setLastError(9);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_is_detached_arraybuffer(env, arraybuffer, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(arraybuffer);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (h.isArrayBuffer() && h.value.byteLength === 0) {
+ try {
+ new Uint8Array(h.value);
+ }
+ catch (_) {
+ HEAP_DATA_VIEW.setInt8(result, 1, true);
+ return envObject.getReturnStatus();
+ }
+ }
+ HEAP_DATA_VIEW.setInt8(result, 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ var valueOperationMod = Object.freeze({
+ __proto__: null,
+ napi_coerce_to_bool: napi_coerce_to_bool,
+ napi_coerce_to_number: napi_coerce_to_number,
+ napi_coerce_to_object: napi_coerce_to_object,
+ napi_coerce_to_string: napi_coerce_to_string,
+ napi_detach_arraybuffer: napi_detach_arraybuffer,
+ napi_instanceof: napi_instanceof,
+ napi_is_array: napi_is_array,
+ napi_is_arraybuffer: napi_is_arraybuffer,
+ napi_is_buffer: napi_is_buffer,
+ napi_is_dataview: napi_is_dataview,
+ napi_is_date: napi_is_date,
+ napi_is_detached_arraybuffer: napi_is_detached_arraybuffer,
+ napi_is_error: napi_is_error,
+ napi_is_typedarray: napi_is_typedarray,
+ napi_strict_equals: napi_strict_equals,
+ napi_typeof: napi_typeof,
+ node_api_is_sharedarraybuffer: node_api_is_sharedarraybuffer
+ });
+ function napi_get_version(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!result)
+ return envObject.setLastError(1);
+ var NODE_API_SUPPORTED_VERSION_MAX = 10;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, NODE_API_SUPPORTED_VERSION_MAX, true);
+ return envObject.clearLastError();
+ }
+ var versionMod = Object.freeze({
+ __proto__: null,
+ napi_get_version: napi_get_version
+ });
+ emnapiAWST.init();
+ emnapiExternalMemory.init();
+ emnapiString.init();
+ emnapiTSFN.init();
+ PThread.init();
+ napiModule.emnapi.syncMemory = $emnapiSyncMemory;
+ napiModule.emnapi.getMemoryAddress = $emnapiGetMemoryAddress;
+ function addImports(mod) {
+ var keys = Object.keys(mod);
+ for (var i = 0; i < keys.length; ++i) {
+ var k = keys[i];
+ if (k.indexOf('$') === 0)
+ continue;
+ if (k.indexOf('emnapi_') === 0) {
+ napiModule.imports.emnapi[k] = mod[k];
+ }
+ else if (k.indexOf('_emnapi_') === 0 || k === 'napi_set_last_error' || k === 'napi_clear_last_error') {
+ napiModule.imports.env[k] = mod[k];
+ }
+ else {
+ napiModule.imports.napi[k] = mod[k];
+ }
+ }
+ }
+ addImports(asyncMod);
+ addImports(memoryMod);
+ addImports(asyncWorkMod);
+ addImports(utilMod);
+ addImports(convert2cMod);
+ addImports(convert2napiMod);
+ addImports(createMod);
+ addImports(globalMod);
+ addImports(wrapMod);
+ addImports(envMod);
+ addImports(emnapiMod);
+ addImports(errorMod);
+ addImports(functionMod);
+ addImports(lifeMod);
+ addImports(miscellaneousMod);
+ addImports(nodeMod);
+ addImports(promiseMod);
+ addImports(propertyMod);
+ addImports(scriptMod);
+ addImports(valueOperationMod);
+ addImports(versionMod);
+ napiModule.imports.napi.napi_create_threadsafe_function = napi_create_threadsafe_function;
+ napiModule.imports.napi.napi_get_threadsafe_function_context = napi_get_threadsafe_function_context;
+ napiModule.imports.napi.napi_call_threadsafe_function = napi_call_threadsafe_function;
+ napiModule.imports.napi.napi_acquire_threadsafe_function = napi_acquire_threadsafe_function;
+ napiModule.imports.napi.napi_release_threadsafe_function = napi_release_threadsafe_function;
+ napiModule.imports.napi.napi_unref_threadsafe_function = napi_unref_threadsafe_function;
+ napiModule.imports.napi.napi_ref_threadsafe_function = napi_ref_threadsafe_function;
+ return napiModule;
+ })();
+ return napiModule;
+}
+
+function loadNapiModuleImpl(loadFn, userNapiModule, wasmInput, options) {
+ options = options !== null && options !== void 0 ? options : {};
+ const getMemory = options.getMemory;
+ const getTable = options.getTable;
+ const beforeInit = options.beforeInit;
+ if (getMemory != null && typeof getMemory !== 'function') {
+ throw new TypeError('options.getMemory is not a function');
+ }
+ if (getTable != null && typeof getTable !== 'function') {
+ throw new TypeError('options.getTable is not a function');
+ }
+ if (beforeInit != null && typeof beforeInit !== 'function') {
+ throw new TypeError('options.beforeInit is not a function');
+ }
+ let napiModule;
+ const isLoad = typeof userNapiModule === 'object' && userNapiModule !== null;
+ if (isLoad) {
+ if (userNapiModule.loaded) {
+ throw new Error('napiModule has already loaded');
+ }
+ napiModule = userNapiModule;
+ }
+ else {
+ napiModule = createNapiModule(options);
+ }
+ const wasi = options.wasi;
+ let wasiThreads$1;
+ let importObject = {
+ env: napiModule.imports.env,
+ napi: napiModule.imports.napi,
+ emnapi: napiModule.imports.emnapi
+ };
+ if (wasi) {
+ wasiThreads$1 = new wasiThreads.WASIThreads(napiModule.childThread
+ ? {
+ wasi,
+ childThread: true,
+ postMessage: napiModule.postMessage
+ }
+ : {
+ wasi,
+ threadManager: napiModule.PThread,
+ waitThreadStart: napiModule.waitThreadStart
+ });
+ Object.assign(importObject, typeof wasi.getImportObject === 'function'
+ ? wasi.getImportObject()
+ : { wasi_snapshot_preview1: wasi.wasiImport });
+ Object.assign(importObject, wasiThreads$1.getImportObject());
+ }
+ const overwriteImports = options.overwriteImports;
+ if (typeof overwriteImports === 'function') {
+ const newImportObject = overwriteImports(importObject);
+ if (typeof newImportObject === 'object' && newImportObject !== null) {
+ importObject = newImportObject;
+ }
+ }
+ return loadFn(wasmInput, importObject, (err, source) => {
+ if (err) {
+ throw err;
+ }
+ const originalInstance = source.instance;
+ let instance = originalInstance;
+ const originalExports = originalInstance.exports;
+ const exportMemory = 'memory' in originalExports;
+ const importMemory = 'memory' in importObject.env;
+ const memory = getMemory
+ ? getMemory(originalExports)
+ : exportMemory
+ ? originalExports.memory
+ : importMemory
+ ? importObject.env.memory
+ : undefined;
+ if (!memory) {
+ throw new Error('memory is neither exported nor imported');
+ }
+ const table = getTable ? getTable(originalExports) : originalExports.__indirect_function_table;
+ if (wasi && !exportMemory) {
+ const exports$1 = Object.create(null);
+ Object.assign(exports$1, originalExports, { memory });
+ instance = { exports: exports$1 };
+ }
+ const module = source.module;
+ if (wasi) {
+ instance = wasiThreads$1.initialize(instance, module, memory);
+ }
+ else {
+ napiModule.PThread.setup(module, memory);
+ }
+ const emnapiInit = () => {
+ if (beforeInit) {
+ beforeInit({
+ instance: originalInstance,
+ module
+ });
+ }
+ napiModule.init({
+ instance,
+ module,
+ memory,
+ table
+ });
+ const ret = {
+ instance: originalInstance,
+ module,
+ usedInstance: instance
+ };
+ if (!isLoad) {
+ ret.napiModule = napiModule;
+ }
+ return ret;
+ };
+ if (napiModule.PThread.shouldPreloadWorkers()) {
+ const poolReady = napiModule.PThread.loadWasmModuleToAllWorkers();
+ if (loadFn === loadCallback) {
+ return poolReady.then(emnapiInit);
+ }
+ else {
+ throw new Error('Synchronous loading is not supported with worker pool (reuseWorker.size > 0)');
+ }
+ }
+ return emnapiInit();
+ });
+}
+function loadCallback(wasmInput, importObject, callback) {
+ return load(wasmInput, importObject).then((source) => {
+ return callback(null, source);
+ }, err => {
+ return callback(err);
+ });
+}
+function loadSyncCallback(wasmInput, importObject, callback) {
+ let source;
+ try {
+ source = loadSync(wasmInput, importObject);
+ }
+ catch (err) {
+ return callback(err);
+ }
+ return callback(null, source);
+}
+function loadNapiModule(napiModule, wasmInput, options) {
+ if (typeof napiModule !== 'object' || napiModule === null) {
+ throw new TypeError('Invalid napiModule');
+ }
+ return loadNapiModuleImpl(loadCallback, napiModule, wasmInput, options);
+}
+function loadNapiModuleSync(napiModule, wasmInput, options) {
+ if (typeof napiModule !== 'object' || napiModule === null) {
+ throw new TypeError('Invalid napiModule');
+ }
+ return loadNapiModuleImpl(loadSyncCallback, napiModule, wasmInput, options);
+}
+function instantiateNapiModule(wasmInput, options) {
+ return loadNapiModuleImpl(loadCallback, undefined, wasmInput, options);
+}
+function instantiateNapiModuleSync(wasmInput, options) {
+ return loadNapiModuleImpl(loadSyncCallback, undefined, wasmInput, options);
+}
+
+class MessageHandler extends wasiThreads.ThreadMessageHandler {
+ constructor(options) {
+ if (typeof options.onLoad !== 'function') {
+ throw new TypeError('options.onLoad is not a function');
+ }
+ const userOnError = options.onError;
+ super({
+ ...options,
+ onError: (err, type) => {
+ var _a;
+ const emnapi_thread_crashed = (_a = this.instance) === null || _a === void 0 ? void 0 : _a.exports.emnapi_thread_crashed;
+ if (typeof emnapi_thread_crashed === 'function') {
+ emnapi_thread_crashed();
+ }
+ if (typeof userOnError === 'function') {
+ userOnError(err, type);
+ }
+ else {
+ throw err;
+ }
+ }
+ });
+ this.napiModule = undefined;
+ }
+ instantiate(data) {
+ const source = this.onLoad(data);
+ const then = source.then;
+ if (typeof then === 'function') {
+ return source.then((result) => {
+ this.napiModule = result.napiModule;
+ return result;
+ });
+ }
+ this.napiModule = source.napiModule;
+ return source;
+ }
+ handle(e) {
+ var _a;
+ super.handle(e);
+ if ((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.__emnapi__) {
+ const type = e.data.__emnapi__.type;
+ const payload = e.data.__emnapi__.payload;
+ try {
+ if (type === 'async-worker-init') {
+ this.handleAfterLoad(e, () => {
+ this.napiModule.initWorker(payload.arg, payload.func);
+ });
+ }
+ }
+ catch (err) {
+ this.onError(err, type);
+ }
+ }
+ }
+}
+
+const version = "1.10.0";
+
+exports.MessageHandler = MessageHandler;
+exports.createNapiModule = createNapiModule;
+exports.instantiateNapiModule = instantiateNapiModule;
+exports.instantiateNapiModuleSync = instantiateNapiModuleSync;
+exports.loadNapiModule = loadNapiModule;
+exports.loadNapiModuleSync = loadNapiModuleSync;
+exports.version = version;
+Object.keys(wasiThreads).forEach(function (k) {
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
+ enumerable: true,
+ get: function () { return wasiThreads[k]; }
+ });
+});
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts b/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts
new file mode 100644
index 00000000..0ec6eb84
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.d.ts
@@ -0,0 +1,420 @@
+///
+
+import type { Context } from '@emnapi/runtime';
+import type { ReferenceOwnership } from '@emnapi/runtime';
+import type { Worker as Worker_2 } from 'worker_threads';
+
+/** @public */
+export declare type BaseCreateOptions = {
+ filename?: string
+ nodeBinding?: NodeBinding
+ reuseWorker?: ThreadManagerOptionsMain['reuseWorker']
+ asyncWorkPoolSize?: number
+ waitThreadStart?: MainThreadBaseOptions['waitThreadStart']
+ onCreateWorker?: (info: CreateWorkerInfo) => any
+ print?: (str: string) => void
+ printErr?: (str: string) => void
+ postMessage?: (msg: any) => any
+}
+
+/** @public */
+export declare interface BaseOptions {
+ wasi: WASIInstance;
+ version?: 'preview1';
+ wasm64?: boolean;
+}
+
+/** @public */
+export declare interface ChildThreadOptions extends BaseOptions {
+ childThread: true;
+ postMessage?: (data: any) => void;
+}
+
+/** @public */
+export declare interface CleanupThreadPayload {
+ tid: number;
+}
+
+/** @public */
+export declare interface CommandInfo {
+ type: T;
+ payload: CommandPayloadMap[T];
+}
+
+/** @public */
+export declare interface CommandPayloadMap {
+ load: LoadPayload;
+ loaded: LoadedPayload;
+ start: StartPayload;
+ 'cleanup-thread': CleanupThreadPayload;
+ 'terminate-all-threads': TerminateAllThreadsPayload;
+ 'spawn-thread': SpawnThreadPayload;
+}
+
+/** @public */
+export declare type CommandType = keyof CommandPayloadMap;
+
+/** @public */
+export declare function createInstanceProxy(instance: WebAssembly.Instance, memory?: WebAssembly.Memory | (() => WebAssembly.Memory)): WebAssembly.Instance;
+
+/** @public */
+export declare function createNapiModule (
+options: CreateOptions
+): NapiModule
+
+/** @public */
+export declare type CreateOptions = BaseCreateOptions & ({
+ context: Context
+ childThread?: boolean
+} | {
+ context?: Context
+ childThread: true
+})
+
+/** @public */
+export declare interface CreateWorkerInfo {
+ type: 'thread' | 'async-work'
+ name: string
+}
+
+/** @public */
+export declare interface InitOptions {
+ instance: WebAssembly.Instance
+ module: WebAssembly.Module
+ memory?: WebAssembly.Memory
+ table?: WebAssembly.Table
+}
+
+export declare type InputType = string | URL | Response | BufferSource | WebAssembly.Module;
+
+/** @public */
+export declare interface InstantiatedSource extends LoadedSource {
+ napiModule: NapiModule;
+}
+
+/** @public */
+export declare function instantiateNapiModule(
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput: InputType | Promise, options: InstantiateOptions): Promise;
+
+/** @public */
+export declare function instantiateNapiModuleSync(wasmInput: BufferSource | WebAssembly.Module, options: InstantiateOptions): InstantiatedSource;
+
+/** @public */
+export declare type InstantiateOptions = CreateOptions & LoadOptions;
+
+/** @public */
+export declare function isSharedArrayBuffer(value: any): value is SharedArrayBuffer;
+
+/** @public */
+export declare function isTrapError(e: Error): e is WebAssembly.RuntimeError;
+
+/** @public */
+export declare interface LoadedPayload {
+}
+
+/** @public */
+export declare interface LoadedSource extends WebAssembly.WebAssemblyInstantiatedSource {
+ usedInstance: WebAssembly.Instance;
+}
+
+/** @public */
+export declare function loadNapiModule(napiModule: NapiModule,
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput: InputType | Promise, options?: LoadOptions): Promise;
+
+/** @public */
+export declare function loadNapiModuleSync(napiModule: NapiModule, wasmInput: BufferSource | WebAssembly.Module, options?: LoadOptions): LoadedSource;
+
+/** @public */
+export declare interface LoadOptions {
+ wasi?: WASIInstance;
+ overwriteImports?: (importObject: WebAssembly.Imports) => WebAssembly.Imports;
+ beforeInit?: (source: WebAssembly.WebAssemblyInstantiatedSource) => void;
+ getMemory?: (exports: WebAssembly.Exports) => WebAssembly.Memory;
+ getTable?: (exports: WebAssembly.Exports) => WebAssembly.Table;
+}
+
+/** @public */
+export declare interface LoadPayload {
+ wasmModule: WebAssembly.Module;
+ wasmMemory: WebAssembly.Memory;
+ sab?: Int32Array;
+}
+
+/** @public */
+export declare interface MainThreadBaseOptions extends BaseOptions {
+ waitThreadStart?: boolean | number;
+}
+
+/** @public */
+export declare type MainThreadOptions = MainThreadOptionsWithThreadManager | MainThreadOptionsCreateThreadManager;
+
+/** @public */
+export declare interface MainThreadOptionsCreateThreadManager extends MainThreadBaseOptions, ThreadManagerOptionsMain {
+}
+
+/** @public */
+export declare interface MainThreadOptionsWithThreadManager extends MainThreadBaseOptions {
+ threadManager?: ThreadManager | (() => ThreadManager);
+}
+
+/** @public */
+export declare interface MessageEventData {
+ __emnapi__: CommandInfo;
+}
+
+/** @public */
+export declare class MessageHandler extends ThreadMessageHandler {
+ napiModule: NapiModule | undefined;
+ constructor(options: MessageHandlerOptions);
+ instantiate(data: LoadPayload): InstantiatedSource | PromiseLike;
+ handle(e: WorkerMessageEvent): void;
+}
+
+/** @public */
+export declare interface MessageHandlerOptions extends ThreadMessageHandlerOptions {
+ onLoad: (data: LoadPayload) => InstantiatedSource | PromiseLike;
+}
+
+/** @public */
+export declare interface NapiModule {
+ imports: {
+ env: any
+ napi: any
+ emnapi: any
+ }
+ exports: any
+ loaded: boolean
+ filename: string
+ childThread: boolean
+ emnapi: {
+ syncMemory (
+ js_to_wasm: boolean,
+ arrayBufferOrView: T,
+ offset?: number,
+ len?: number
+ ): T
+ getMemoryAddress (arrayBufferOrView: ArrayBuffer | ArrayBufferView): PointerInfo
+ addSendListener (worker: any): boolean
+ }
+
+ init (options: InitOptions): any
+ initWorker (arg: number, func: [number, number]): void
+ postMessage?: (msg: any) => any
+
+ waitThreadStart: boolean | number
+ /* Excluded from this release type: PThread */}
+
+/** @public */
+export declare interface NodeBinding {
+ node: {
+ emitAsyncInit: Function
+ emitAsyncDestroy: Function
+ makeCallback: Function
+ }
+ napi: {
+ asyncInit: Function
+ asyncDestroy: Function
+ makeCallback: Function
+ }
+}
+
+/** @public */
+export declare interface PointerInfo {
+ address: number
+ ownership: ReferenceOwnership
+ runtimeAllocated: 0 | 1
+}
+
+/** @public */
+export declare interface ReuseWorkerOptions {
+ /**
+ * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size | PTHREAD_POOL_SIZE}
+ */
+ size: number;
+ /**
+ * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size-strict | PTHREAD_POOL_SIZE_STRICT}
+ */
+ strict?: boolean;
+}
+
+/** @public */
+export declare interface SpawnThreadPayload {
+ startArg: number;
+ errorOrTid: number;
+}
+
+/** @public */
+export declare interface StartPayload {
+ tid: number;
+ arg: number;
+ sab?: Int32Array;
+}
+
+/** @public */
+export declare interface StartResult {
+ exitCode: number;
+ instance: WebAssembly.Instance;
+}
+
+/** @public */
+export declare interface TerminateAllThreadsPayload {
+}
+
+/** @public */
+export declare class ThreadManager {
+ unusedWorkers: WorkerLike[];
+ runningWorkers: WorkerLike[];
+ pthreads: Record;
+ get nextWorkerID(): number;
+ wasmModule: WebAssembly.Module | null;
+ wasmMemory: WebAssembly.Memory | null;
+ private readonly messageEvents;
+ private readonly _childThread;
+ private readonly _onCreateWorker;
+ private readonly _reuseWorker;
+ private readonly _beforeLoad?;
+ /* Excluded from this release type: printErr */
+ threadSpawn?: ((startArg: number, errorOrTid?: number) => number);
+ constructor(options: ThreadManagerOptions);
+ init(): void;
+ initMainThread(): void;
+ private preparePool;
+ shouldPreloadWorkers(): boolean;
+ loadWasmModuleToAllWorkers(): Promise;
+ preloadWorkers(): Promise;
+ setup(wasmModule: WebAssembly.Module, wasmMemory: WebAssembly.Memory): void;
+ markId(worker: WorkerLike): number;
+ returnWorkerToPool(worker: WorkerLike): void;
+ loadWasmModuleToWorker(worker: WorkerLike, sab?: Int32Array): Promise;
+ allocateUnusedWorker(): WorkerLike;
+ getNewWorker(sab?: Int32Array): WorkerLike | undefined;
+ cleanThread(worker: WorkerLike, tid: number, force?: boolean): void;
+ terminateWorker(worker: WorkerLike): void;
+ terminateAllThreads(): void;
+ addMessageEventListener(worker: WorkerLike, onMessage: (e: WorkerMessageEvent) => void): () => void;
+ fireMessageEvent(worker: WorkerLike, e: WorkerMessageEvent): void;
+}
+
+/** @public */
+export declare type ThreadManagerOptions = ThreadManagerOptionsMain | ThreadManagerOptionsChild;
+
+/** @public */
+export declare interface ThreadManagerOptionsBase {
+ printErr?: (message: string) => void;
+ threadSpawn?: (startArg: number, errorOrTid?: number) => number;
+}
+
+/** @public */
+export declare interface ThreadManagerOptionsChild extends ThreadManagerOptionsBase {
+ childThread: true;
+}
+
+/** @public */
+export declare interface ThreadManagerOptionsMain extends ThreadManagerOptionsBase {
+ beforeLoad?: (worker: WorkerLike) => any;
+ reuseWorker?: boolean | number | ReuseWorkerOptions;
+ onCreateWorker: WorkerFactory;
+ childThread?: false;
+}
+
+/** @public */
+export declare class ThreadMessageHandler {
+ protected instance: WebAssembly.Instance | undefined;
+ private messagesBeforeLoad;
+ protected postMessage: (message: any) => void;
+ protected onLoad?: (data: LoadPayload) => WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ protected onError: (error: Error, type: WorkerMessageType) => void;
+ constructor(options?: ThreadMessageHandlerOptions);
+ /** @virtual */
+ instantiate(data: LoadPayload): WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ /** @virtual */
+ handle(e: WorkerMessageEvent>): void;
+ private _load;
+ private _start;
+ protected _loaded(err: Error | null, source: WebAssembly.WebAssemblyInstantiatedSource | null, payload: LoadPayload): void;
+ protected handleAfterLoad(e: E, f: (e: E) => void): void;
+}
+
+/** @public */
+export declare interface ThreadMessageHandlerOptions {
+ onLoad?: (data: LoadPayload) => WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ onError?: (error: Error, type: WorkerMessageType) => void;
+ postMessage?: (message: any) => void;
+}
+
+export declare const version: string;
+
+/** @public */
+export declare interface WASIInstance {
+ readonly wasiImport?: Record;
+ initialize(instance: object): void;
+ start(instance: object): number;
+ getImportObject?(): any;
+}
+
+/** @public */
+export declare class WASIThreads {
+ PThread: ThreadManager | undefined;
+ private wasmMemory;
+ private wasmInstance;
+ private readonly threadSpawn;
+ readonly childThread: boolean;
+ private readonly postMessage;
+ readonly wasi: WASIInstance;
+ constructor(options: WASIThreadsOptions);
+ getImportObject(): {
+ wasi: WASIThreadsImports;
+ };
+ setup(wasmInstance: WebAssembly.Instance, wasmModule: WebAssembly.Module, wasmMemory?: WebAssembly.Memory): void;
+ preloadWorkers(): Promise;
+ /**
+ * It's ok to call this method to a WASI command module.
+ *
+ * in child thread, must call this method instead of {@link WASIThreads.start} even if it's a WASI command module
+ *
+ * @returns A proxied WebAssembly instance if in child thread, other wise the original instance
+ */
+ initialize(instance: WebAssembly.Instance, module: WebAssembly.Module, memory?: WebAssembly.Memory): WebAssembly.Instance;
+ /**
+ * Equivalent to calling {@link WASIThreads.initialize} and then calling {@link WASIInstance.start}
+ * ```js
+ * this.initialize(instance, module, memory)
+ * this.wasi.start(instance)
+ * ```
+ */
+ start(instance: WebAssembly.Instance, module: WebAssembly.Module, memory?: WebAssembly.Memory): StartResult;
+ terminateAllThreads(): void;
+}
+
+/** @public */
+export declare interface WASIThreadsImports {
+ 'thread-spawn': (startArg: number, errorOrTid?: number) => number;
+}
+
+/** @public */
+export declare type WASIThreadsOptions = MainThreadOptions | ChildThreadOptions;
+
+/** @public */
+export declare type WorkerFactory = (ctx: {
+ type: string;
+ name: string;
+}) => WorkerLike;
+
+/** @public */
+export declare type WorkerLike = (Worker | Worker_2) & {
+ whenLoaded?: Promise;
+ loaded?: boolean;
+ __emnapi_tid?: number;
+};
+
+/** @public */
+export declare interface WorkerMessageEvent {
+ data: T;
+}
+
+/** @public */
+export declare type WorkerMessageType = 'load' | 'start';
+
+export { }
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js b/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js
new file mode 100644
index 00000000..0b5fadfa
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.cjs.min.js
@@ -0,0 +1 @@
+var e=require("@emnapi/wasi-threads");const r="undefined"!=typeof WebAssembly?WebAssembly:"undefined"!=typeof WXWebAssembly?WXWebAssembly:void 0;function t(e){if(e&&"object"!=typeof e)throw new TypeError("imports must be an object or undefined");return!0}function n(e,a){if(!e)throw new TypeError("Invalid wasm source");t(a),a=null!=a?a:{};try{const r="object"==typeof e&&null!==e&&"then"in e?e.then:void 0;if("function"==typeof r)return r.call(e,e=>n(e,a))}catch(e){}if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return r.instantiate(e,a);if(e instanceof r.Module)return r.instantiate(e,a).then(r=>({instance:r,module:e}));if("undefined"!=typeof Response&&e instanceof Response)return e.arrayBuffer().then(e=>r.instantiate(e,a));const o="string"==typeof e;if(o||"undefined"!=typeof URL&&e instanceof URL){if(o&&"undefined"!=typeof wx&&"undefined"!=typeof __wxConfig)return r.instantiate(e,a);if("function"!=typeof fetch)throw new TypeError("wasm source can not be a string or URL in this environment");if("function"!=typeof r.instantiateStreaming)return n(fetch(e),a);try{return r.instantiateStreaming(fetch(e),a).catch(()=>n(fetch(e),a))}catch(r){return n(fetch(e),a)}}throw new TypeError("Invalid wasm source")}function a(t){var n=function(){var n,a,o,s,i,u="object"==typeof process&&null!==process&&"object"==typeof process.versions&&null!==process.versions&&"string"==typeof process.versions.node,f=Boolean(t.childThread),c="number"==typeof t.waitThreadStart?t.waitThreadStart:Boolean(t.waitThreadStart);function l(e){if("function"==typeof r.RuntimeError)throw new r.RuntimeError(e);throw Error(e)}var d,v,p,g={imports:{env:{},napi:{},emnapi:{}},exports:{},emnapi:{},loaded:!1,filename:"",childThread:f,initWorker:void 0,waitThreadStart:c,PThread:void 0,init:function(e){if(g.loaded)return g.exports;if(!e)throw new TypeError("Invalid napi init options");var t=e.instance;if(!(null==t?void 0:t.exports))throw new TypeError("Invalid wasm instance");n=t;var u=t.exports,f=e.module,c=e.memory||u.memory,p=e.table||u.__indirect_function_table;if(!(f instanceof r.Module))throw new TypeError("Invalid wasm module");if(!(c instanceof r.Memory))throw new TypeError("Invalid wasm memory");if(!(p instanceof r.Table))throw new TypeError("Invalid wasm table");if(a=c,o=p,"function"!=typeof u.malloc)throw new TypeError("malloc is not exported");if("function"!=typeof u.free)throw new TypeError("free is not exported");if(s=u.malloc,i=u.free,!g.childThread){var y=8,h=t.exports.node_api_module_get_api_version_v1;"function"==typeof h&&(y=h());var _=g.envObject||(g.envObject=d.createEnv(g.filename,y,function(e){return o.get(e)},function(e){return o.get(e)},l,v)),E=d.openScope(_);try{_.callIntoModule(function(e){var r=g.exports,n=E.add(r),a=(0,t.exports.napi_register_wasm_v1)(e.id,n.id);g.exports=a?d.handleStore.get(a).value:r})}catch(e){if("unwind"!==e)throw e}finally{d.closeScope(_,E)}return g.loaded=!0,delete g.envObject,g.exports}}},y=void 0;if(f){d=null==t?void 0:t.context;var h="function"==typeof t.postMessage?t.postMessage:"function"==typeof postMessage?postMessage:void 0;if("function"!=typeof h)throw new TypeError("No postMessage found");g.postMessage=h}else{var _=t.context;if("object"!=typeof _||null===_)throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");d=_}if("string"==typeof t.filename&&(g.filename=t.filename),"function"==typeof t.onCreateWorker&&(y=t.onCreateWorker),"function"==typeof t.print?t.print:console.log.bind(console),p="function"==typeof t.printErr?t.printErr:console.warn.bind(console),"nodeBinding"in t){var E=t.nodeBinding;if("object"!=typeof E||null===E)throw new TypeError("Invalid `options.nodeBinding`. Use @emnapi/node-binding package");v=E}var w=0;if("asyncWorkPoolSize"in t){if("number"!=typeof t.asyncWorkPoolSize)throw new TypeError("options.asyncWorkPoolSize must be a integer");(w=t.asyncWorkPoolSize|0)>1024?w=1024:w<-1024&&(w=-1024)}var L=!f&&w<=0;function m(){return Math.abs(w)}function b(e){if(!e)return!1;if(e._emnapiSendListener)return!0;var r=function(e){var r=(u?e:e.data).__emnapi__;if(r&&"async-send"===r.type)if(f){(0,g.postMessage)({__emnapi__:r})}else{var t=r.payload.callback;o.get(t)(r.payload.data)}};return e._emnapiSendListener={handler:r,dispose:function(){u?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiSendListener}},u?e.on("message",r):e.addEventListener("message",r,!1),!0}g.imports.env._emnapi_async_work_pool_size=m,g.emnapi.addSendListener=b;var S=new e.ThreadManager(f?{printErr:p,childThread:!0}:{printErr:p,beforeLoad:function(e){b(e)},reuseWorker:t.reuseWorker,onCreateWorker:y});function A(e,r){d.feature.setImmediate(function(){o.get(e)(r)})}function C(e,r){Promise.resolve().then(function(){o.get(e)(r)})}function I(e,r){var t,n=[r>>>0,(t=r,+Math.abs(t)>=1?t>0?(0|Math.min(+Math.floor(t/4294967296),4294967295))>>>0:~~+Math.ceil((t-+(~~t>>>0))/4294967296)>>>0:0)],o=new DataView(a.buffer);o.setInt32(e,n[0],!0),o.setInt32(e+4,n[1],!0)}g.PThread=S;var k,U=Object.freeze({__proto__:null,$emnapiSetValueI64:I,_emnapi_call_finalizer:function(e,r,t,n,a){t>>>=0,d.envStore.get(r).callFinalizerInternal(e,t,n,a)},_emnapi_callback_into_module:function(e,r,t,n,a){var s=d.envStore.get(r),i=d.openScope(s);try{s.callbackIntoModule(Boolean(e),function(){o.get(t)(r,n)})}catch(e){throw d.closeScope(s,i),a&&d.closeScope(s),e}d.closeScope(s,i)},_emnapi_close_handle_scope:function(e){return d.closeScope()},_emnapi_ctx_decrease_waiting_request_counter:function(){d.decreaseWaitingRequestCounter()},_emnapi_ctx_increase_waiting_request_counter:function(){d.increaseWaitingRequestCounter()},_emnapi_get_node_version:function(e,r,t){e>>>=0,r>>>=0,t>>>=0;var n="object"==typeof process&&null!==process&&"object"==typeof process.versions&&null!==process.versions&&"string"==typeof process.versions.node?process.versions.node.split(".").map(function(e){return Number(e)}):[0,0,0],o=new DataView(a.buffer);o.setUint32(e,n[0],!0),o.setUint32(r,n[1],!0),o.setUint32(t,n[2],!0)},_emnapi_get_now:function(){return performance.timeOrigin+performance.now()},_emnapi_is_main_browser_thread:function(){return"undefined"==typeof window||"undefined"==typeof document||u?0:1},_emnapi_is_main_runtime_thread:function(){return f?0:1},_emnapi_next_tick:C,_emnapi_open_handle_scope:function(){return d.openScope().id},_emnapi_runtime_keepalive_pop:function(){},_emnapi_runtime_keepalive_push:function(){},_emnapi_set_immediate:A,_emnapi_unwind:function(){throw"unwind"},napi_clear_last_error:function(e){return d.envStore.get(e).clearLastError()},napi_set_last_error:function(e,r,t,n){return d.envStore.get(e).setLastError(r,t,n)}});function V(e){var r=new DataView(a.buffer).getInt32(e+20,!0);return S.pthreads[r]}var T=new Promise(function(e){k=function(){T.ready=!0,e()}});T.ready=!1;var D=Object.freeze({__proto__:null,_emnapi_after_uvthreadpool_ready:function(e,r,t){T.ready?o.get(e)(r,t):T.then(function(){o.get(e)(r,t)})},_emnapi_async_send_js:function(e,r,t){if(f)(0,g.postMessage)({__emnapi__:{type:"async-send",payload:{callback:r,data:t}}});else switch(e){case 0:A(r,t);break;case 1:C(r,t)}},_emnapi_emit_async_thread_ready:function(){f&&(0,g.postMessage)({__emnapi__:{type:"async-thread-ready",payload:{}}})},_emnapi_tell_js_uvthreadpool:function(e,r){for(var t=[],n=new DataView(a.buffer),o=function(r){var a=V(n.getUint32(e+4*r,!0));t.push(new Promise(function(e){var r=function(t){var n=(u?t:t.data).__emnapi__;n&&"async-thread-ready"===n.type&&(e(),a&&"function"==typeof a.unref&&a.unref(),u?a.off("message",r):a.removeEventListener("message",r))};u?a.on("message",r):a.addEventListener("message",r)}))},s=0;s>>=0);r&&"function"==typeof r.ref&&r.ref()}},_emnapi_worker_unref:function(e){if(!f){var r=V(e>>>=0);r&&"function"==typeof r.unref&&r.unref()}}});var B=Object.freeze({__proto__:null,napi_adjust_external_memory:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(!t)return n.setLastError(1);var o=d.adjustAmountOfExternalAllocatedMemory(r);return t>>>=0,d.feature.supportBigInt?new DataView(a.buffer).setBigInt64(t,BigInt(o),!0):I(t,Number(o)),n.clearLastError()}}),x={idGen:{},values:[void 0],queued:new Set,pending:[],init:function(){var e={nextId:1,list:[],generate:function(){var r;return e.list.length?r=e.list.shift():(r=e.nextId,e.nextId++),r},reuse:function(r){e.list.push(r)}};x.idGen=e,x.values=[void 0],x.queued=new Set,x.pending=[]},create:function(e,r,t,n,a,o){var s=0,i=0;if(v){var u=v.node.emitAsyncInit(r,t,-1);s=u.asyncId,i=u.triggerAsyncId}var f=x.idGen.generate();return x.values[f]={env:e,id:f,resource:r,asyncId:s,triggerAsyncId:i,status:0,execute:n,complete:a,data:o},f},callComplete:function(e,r){var t=e.complete,n=e.env,a=e.data,s=function(){if(t){var e=d.envStore.get(n),s=d.openScope(e);try{e.callbackIntoModule(!0,function(){o.get(t)(n,r,a)})}finally{d.closeScope(e,s)}}};v?v.node.makeCallback(e.resource,s,[],{asyncId:e.asyncId,triggerAsyncId:e.triggerAsyncId}):s()},queue:function(e){var r=x.values[e];if(r&&0===r.status){if(r.status=1,x.queued.size>=(Math.abs(w)||4))return void x.pending.push(e);x.queued.add(e);var t=r.env,n=r.data,a=r.execute;r.status=2,d.feature.setImmediate(function(){if(o.get(a)(t,n),x.queued.delete(e),r.status=3,d.feature.setImmediate(function(){x.callComplete(r,0)}),x.pending.length>0){var s=x.pending.shift();x.values[s].status=0,x.queue(s)}})}},cancel:function(e){var r=x.pending.indexOf(e);if(-1!==r){var t=x.values[e];return t&&1===t.status?(t.status=4,x.pending.splice(r,1),d.feature.setImmediate(function(){x.callComplete(t,11)}),0):9}return 9},remove:function(e){var r=x.values[e];r&&(v&&v.node.emitAsyncDestroy({asyncId:r.asyncId,triggerAsyncId:r.triggerAsyncId}),x.values[e]=void 0,x.idGen.reuse(e))}};function j(e,r,t,n){if(v){var o=d.handleStore.get(e).value,s=d.handleStore.get(r).value,i=v.node.emitAsyncInit(o,s,t),u=i.asyncId,f=i.triggerAsyncId;if(n){n>>>=0;var c=new DataView(a.buffer);c.setFloat64(n,u,!0),c.setFloat64(n+8,f,!0)}}}function O(e,r){v&&v.node.emitAsyncDestroy({asyncId:e,triggerAsyncId:r})}var R=Object.freeze({__proto__:null,_emnapi_async_destroy_js:function(e){if(!v)return 9;e>>>=0;var r=new DataView(a.buffer),t=r.getInt32(e,!0),n=r.getInt32(e+4,!0),o=BigInt(t>>>0)|BigInt(n)<=BigInt(-1)*(BigInt(1)<=BigInt(1)<>BigInt(32));t>>>=0;var c=new DataView(a.buffer);return c.setInt32(t,u,!0),c.setInt32(t+4,f,!0),0},_emnapi_env_check_gc_access:function(e){d.envStore.get(e).checkGCAccess()},_emnapi_node_emit_async_destroy:O,_emnapi_node_emit_async_init:j,_emnapi_node_make_callback:function(e,r,t,n,o,s,i,u){var f,c=0;if(v){var l=d.handleStore.get(r).value,p=d.handleStore.get(t).value;n>>>=0,o>>>=0,o>>>=0;for(var g=Array(o),y=new DataView(a.buffer);c>>=0,f=d.envStore.get(e).ensureHandleId(_),y.setUint32(u,f,!0)}},napi_close_callback_scope:function(e,r){throw new Error("napi_close_callback_scope has not been implemented yet")},napi_make_callback:function(e,r,t,n,o,s,i){var u,f=0;if(!e)return 1;var c=d.envStore.get(e);if(c.checkGCAccess(),!c.tryCatch.isEmpty())return c.setLastError(10);if(!c.canCallIntoJs())return c.setLastError(c.moduleApiVersion>=10?23:10);c.clearLastError();try{if(!v)return c.setLastError(9);if(!t)return c.setLastError(1);if(o>0&&!s)return c.setLastError(1);var l=Object(d.handleStore.get(t).value),p=d.handleStore.get(n).value;if("function"!=typeof p)return c.setLastError(1);r>>>=0;var g=new DataView(a.buffer),y=g.getInt32(r,!0),h=g.getInt32(r+4,!0),_=BigInt(y>>>0)|BigInt(h)<>>=0,o>>>=0,o>>>=0;for(var E=Array(o);f>>=0,u=c.ensureHandleId(L.value),g.setUint32(i,u,!0)),c.getReturnStatus())}catch(e){return c.tryCatch.setError(e),c.setLastError(10)}},napi_open_callback_scope:function(e,r,t,n){throw new Error("napi_open_callback_scope has not been implemented yet")}}),G={_liveSet:{},offset:{__size__:0,resource:0,async_id:0,trigger_async_id:0,queue_size:0,is_some:0,queue:0,async_pending:0,async_u_fd:0,thread_count:0,state:0,dispatch_state:0,context:0,max_queue_size:0,ref:0,env:0,finalize_data:0,finalize_cb:0,call_js_cb:0,handles_closing:0,async_ref:0,mutex:0,cond:0},init:function(){if(G._liveSet=new Set,G.offset.__size__=184,G.offset.resource=0,G.offset.async_id=8,G.offset.trigger_async_id=16,G.offset.queue_size=60,G.offset.is_some=24,G.offset.queue=64,G.offset.async_pending=132,G.offset.async_u_fd=96,G.offset.thread_count=136,G.offset.state=140,G.offset.dispatch_state=144,G.offset.context=148,G.offset.max_queue_size=152,G.offset.ref=156,G.offset.env=160,G.offset.finalize_data=164,G.offset.finalize_cb=168,G.offset.call_js_cb=172,G.offset.handles_closing=176,G.offset.async_ref=180,G.offset.mutex=32,G.offset.cond=56,G.offset.mutex=G.offset.mutex+4,void 0!==S){S.unusedWorkers.forEach(G.addListener),S.runningWorkers.forEach(G.addListener);var e=S.getNewWorker;S.getNewWorker=function(){var r=e.apply(this,arguments);return G.addListener(r),r}}},addListener:function(e){if(!e)return!1;if(e._emnapiTSFNListener)return!0;var r=function(e){var r=(u?e:e.data).__emnapi__;if(r){var t=r.type,n=r.payload;if("tsfn-send"===t){var o=n.tsfn+G.offset.async_pending;0!==Atomics.load(new Int32Array(a.buffer),o>>>2)&&G.enqueue(n.tsfn)}}};return e._emnapiTSFNListener={handler:r,dispose:function(){u?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiTSFNListener}},u?e.on("message",r):e.addEventListener("message",r,!1),!0},initQueue:function(e){var r=s(8);return!!r&&(r>>>=0,new Uint8Array(a.buffer,r,8).fill(0),G.storeSizeTypeValue(e+G.offset.queue,r,!1),!0)},destroyQueue:function(e){var r=G.loadSizeTypeValue(e+G.offset.queue,!1);if(r){for(var t=G.loadSizeTypeValue(r,!1);0!==t;){var n=G.loadSizeTypeValue(t+4,!1);i(t),t=n}i(r)}},pushQueue:function(e,r){var t=G.loadSizeTypeValue(e+G.offset.queue,!1),n=G.loadSizeTypeValue(t,!1),a=G.loadSizeTypeValue(t+4,!1),o=s(8);if(!o)throw new Error("OOM");o>>>=0,G.storeSizeTypeValue(o,r,!1),G.storeSizeTypeValue(o+4,0,!1),0===n&&0===a?(G.storeSizeTypeValue(t,o,!1),G.storeSizeTypeValue(t+4,o,!1)):(G.storeSizeTypeValue(a+4,o,!1),G.storeSizeTypeValue(t+4,o,!1)),G.addQueueSize(e)},shiftQueue:function(e){var r=G.loadSizeTypeValue(e+G.offset.queue,!1),t=G.loadSizeTypeValue(r,!1);if(0===t)return 0;var n=t,a=G.loadSizeTypeValue(t+4,!1);G.storeSizeTypeValue(r,a,!1),0===a&&G.storeSizeTypeValue(r+4,0,!1),G.storeSizeTypeValue(n+4,0,!1);var o=G.loadSizeTypeValue(n,!1);return i(n),G.subQueueSize(e),o},push:function(e,r,t){var n=G.getMutex(e),a=G.getCond(e),o=function(){var r=G.getQueueSize(e),t=G.getMaxQueueSize(e);return r>=t&&t>0&&0===G.getState(e)},s="undefined"!=typeof window&&"undefined"!=typeof document&&!u,i=!1,f=n.execute(function(){for(;o();){if(0===t)return 15;if(s)return 21;a.wait()}return 0===G.getState(e)?(G.pushQueue(e,r),G.send(e),0):0===G.getThreadCount(e)?1:(G.subThreadCount(e),2!==G.getState(e)||0!==G.getThreadCount(e)||(i=!0),16)});return i&&G.destroy(e),f},getMutex:function(e){var r=e+G.offset.mutex,t={lock:function(){var e="undefined"!=typeof window&&"undefined"!=typeof document&&!u,t=new Int32Array(a.buffer,r,1);if(e)for(;;){if(0===Atomics.compareExchange(t,0,0,10))return}else for(;;){if(0===Atomics.compareExchange(t,0,0,10))return;Atomics.wait(t,0,10)}},unlock:function(){var e=new Int32Array(a.buffer,r,1);if(10!==Atomics.compareExchange(e,0,10,0))throw new Error("Tried to unlock while not holding the mutex");Atomics.notify(e,0,1)},execute:function(e){t.lock();try{return e()}finally{t.unlock()}}};return t},getCond:function(e){var r=e+G.offset.cond,t=G.getMutex(e);return{wait:function(){var e=new Int32Array(a.buffer,r,1),n=Atomics.load(e,0);t.unlock(),Atomics.wait(e,0,n),t.lock()},signal:function(){var e=new Int32Array(a.buffer,r,1);Atomics.add(e,0,1),Atomics.notify(e,0,1)}}},getQueueSize:function(e){return G.loadSizeTypeValue(e+G.offset.queue_size,!0)},addQueueSize:function(e){var r,t,n=G.offset.queue_size;r=new Uint32Array(a.buffer),t=e+n>>>2,Atomics.add(r,t,1)},subQueueSize:function(e){var r,t,n=G.offset.queue_size;r=new Uint32Array(a.buffer),t=e+n>>>2,Atomics.sub(r,t,1)},getThreadCount:function(e){return G.loadSizeTypeValue(e+G.offset.thread_count,!0)},addThreadCount:function(e){var r,t,n=G.offset.thread_count;r=new Uint32Array(a.buffer),t=e+n>>>2,Atomics.add(r,t,1)},subThreadCount:function(e){var r,t,n=G.offset.thread_count;r=new Uint32Array(a.buffer),t=e+n>>>2,Atomics.sub(r,t,1)},getState:function(e){return Atomics.load(new Int32Array(a.buffer),e+G.offset.state>>>2)},setState:function(e,r){Atomics.store(new Int32Array(a.buffer),e+G.offset.state>>>2,r)},getHandlesClosing:function(e){return Atomics.load(new Int8Array(a.buffer),e+G.offset.handles_closing)},setHandlesClosing:function(e,r){Atomics.store(new Int8Array(a.buffer),e+G.offset.handles_closing,r)},getDispatchState:function(e){return Atomics.load(new Uint32Array(a.buffer),e+G.offset.dispatch_state>>>2)},getContext:function(e){return G.loadSizeTypeValue(e+G.offset.context,!1)},getMaxQueueSize:function(e){return G.loadSizeTypeValue(e+G.offset.max_queue_size,!0)},getEnv:function(e){return G.loadSizeTypeValue(e+G.offset.env,!1)},getCallJSCb:function(e){return G.loadSizeTypeValue(e+G.offset.call_js_cb,!1)},getRef:function(e){return G.loadSizeTypeValue(e+G.offset.ref,!1)},getResource:function(e){return G.loadSizeTypeValue(e+G.offset.resource,!1)},getFinalizeCb:function(e){return G.loadSizeTypeValue(e+G.offset.finalize_cb,!1)},getFinalizeData:function(e){return G.loadSizeTypeValue(e+G.offset.finalize_data,!1)},loadSizeTypeValue:function(e,r){var t;return r?(t=new Uint32Array(a.buffer),Atomics.load(t,e>>>2)):(t=new Int32Array(a.buffer),Atomics.load(t,e>>>2))},storeSizeTypeValue:function(e,r,t){var n;return t?(n=new Uint32Array(a.buffer),void Atomics.store(n,e>>>2,r)):(n=new Int32Array(a.buffer),void Atomics.store(n,e>>>2,r>>>0))},releaseResources:function(e){if(2!==G.getState(e)){G.setState(e,2);var r=G.getEnv(e),t=d.envStore.get(r),n=G.getRef(e);n&&d.refStore.get(n).dispose();var o=G.getResource(e);d.refStore.get(o).dispose(),new DataView(a.buffer).setInt8(e+G.offset.is_some,0,!0),d.removeCleanupHook(t,G.cleanup,e),t.unref();var s=e+G.offset.async_ref>>>2,i=new Uint32Array(a.buffer);if(Atomics.load(i,s)>0&&(Atomics.store(i,s,0),d.decreaseWaitingRequestCounter()),v){var u=new DataView(a.buffer);O(u.getFloat64(e+G.offset.async_id,!0),u.getFloat64(e+G.offset.trigger_async_id,!0))}}},destroy:function(e){G._liveSet.delete(e),G.destroyQueue(e),G.releaseResources(e),i(e)},emptyQueue:function(e){var r=[];G.getMutex(e).execute(function(){for(;G.getQueueSize(e)>0;)r.push(G.shiftQueue(e))});for(var t,n=G.getCallJSCb(e),a=G.getContext(e),s=0;s0?G.releaseResources(e):r=!0}),r&&G.destroy(e)},finalize:function(e){var r=G.getEnv(e),t=d.envStore.get(r);d.openScope(t);var n=G.getFinalizeCb(e),o=G.getFinalizeData(e),s=G.getContext(e),i=function(){t.callFinalizerInternal(0,n,o,s)};try{if(G.emptyQueue(e),n)if(v){var u=G.getResource(e),f=d.refStore.get(u).get(),c=d.handleStore.get(f).value,l=new DataView(a.buffer),p=l.getFloat64(e+G.offset.async_id,!0),g=l.getFloat64(e+G.offset.trigger_async_id,!0);v.node.makeCallback(c,i,[],{asyncId:p,triggerAsyncId:g})}else i();G.maybeDelete(e)}finally{d.closeScope(t)}},cleanup:function(e){G.closeHandlesAndMaybeDelete(e,1)},closeHandlesAndMaybeDelete:function(e,r){var t=G.getEnv(e),n=d.envStore.get(t);d.openScope(n);try{if(r&&G.getMutex(e).execute(function(){G.setState(e,1),G.getMaxQueueSize(e)>0&&G.getCond(e).signal()}),G.getHandlesClosing(e))return;G.setHandlesClosing(e,1),Atomics.store(new Int32Array(a.buffer),e+G.offset.async_pending>>>2,1),d.feature.setImmediate(function(){G.finalize(e)})}finally{d.closeScope(n)}},dispatchOne:function(e){var r=0,t=!1,n=!1,s=G.getMutex(e),i=G.getCond(e);if(s.execute(function(){if(0===G.getState(e)){var a=G.getQueueSize(e);if(a>0){r=G.shiftQueue(e),t=!0;var o=G.getMaxQueueSize(e);a===o&&o>0&&i.signal(),a--}0===a?0===G.getThreadCount(e)&&(G.setState(e,1),G.getMaxQueueSize(e)>0&&i.signal(),G.closeHandlesAndMaybeDelete(e,0)):n=!0}else G.closeHandlesAndMaybeDelete(e,0)}),t){var u=G.getEnv(e),f=d.envStore.get(u);d.openScope(f);var c=function(){f.callbackIntoModule(!1,function(){var t=G.getCallJSCb(e),n=G.getRef(e),a=n?d.refStore.get(n).get():0;if(t){var s=G.getContext(e);o.get(t)(u,a,s,r)}else{var i=a?d.handleStore.get(a).value:null;"function"==typeof i&&i()}})};try{if(v){var l=G.getResource(e),p=d.refStore.get(l).get(),g=d.handleStore.get(p).value,y=new DataView(a.buffer);v.node.makeCallback(g,c,[],{asyncId:y.getFloat64(e+G.offset.async_id,!0),triggerAsyncId:y.getFloat64(e+G.offset.trigger_async_id,!0)})}else c()}finally{d.closeScope(f)}}return n},dispatch:function(e){for(var r=!0,t=1e3,n=new Uint32Array(a.buffer),o=e+G.offset.dispatch_state>>>2;r&&0!==--t;)Atomics.store(n,o,1),r=G.dispatchOne(e),1!==Atomics.exchange(n,o,0)&&(r=!0);r&&G.send(e)},enqueue:function(e){var r=e+G.offset.async_pending,t=e+G.offset.async_u_fd,n=new Int32Array(a.buffer);0===Atomics.exchange(n,t>>>2,1)&&d.feature.setImmediate(function(){G._liveSet.has(e)&&(0!==Atomics.load(n,r>>>2)?d.feature.setImmediate(function(){try{if(0===Atomics.exchange(n,r>>>2,0))return;if(!G._liveSet.has(e))return;G.dispatch(e)}finally{G._liveSet.has(e)&&(Atomics.store(n,t>>>2,0),0!==Atomics.load(n,r>>>2)&&G.enqueue(e))}}):Atomics.store(n,t>>>2,0))})},send:function(e){if(1&~Atomics.or(new Uint32Array(a.buffer),e+G.offset.dispatch_state>>>2,2)){var r=e+G.offset.async_pending;0===Atomics.load(new Int32Array(a.buffer),r>>>2)&&0===Atomics.exchange(new Int32Array(a.buffer),r>>>2,1)&&(void 0!==f&&f?postMessage({__emnapi__:{type:"tsfn-send",payload:{tsfn:e}}}):G.enqueue(e))}}};var z={pool:[],workerReady:null,globalAddress:0,globalOffset:{idle_threads:0,q:4,next:4,prev:8,mutex:12,cond:16,exit_message:20,end:28},offset:{resource:0,async_id:8,trigger_async_id:16,env:24,status:28,queue:32,queue_next:32,queue_prev:36,data:40,execute:44,complete:48,end:52},init:function(){if(z.pool=[],z.workerReady=null,void 0!==S){S.unusedWorkers.forEach(z.addListener),S.runningWorkers.forEach(z.addListener);var e=S.getNewWorker;S.getNewWorker=function(){var r=e.apply(this,arguments);return z.addListener(r),r}}},addListener:function(e){if(!e)return!1;if(e._emnapiAWMTListener)return!0;var r=function(e){var r=(u?e:e.data).__emnapi__;if(r){var t=r.type,n=r.payload;"async-work-complete"===t&&z.callComplete(n.work,0)}};return e._emnapiAWMTListener={handler:r,dispose:function(){u?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiAWMTListener}},u?e.on("message",r):e.addEventListener("message",r,!1),!0},initGlobal:function(){if(!z.globalAddress){z.globalAddress=s(z.globalOffset.end),z.globalAddress>>>=0;var e=z.globalOffset.end,r=z.globalAddress;new Uint8Array(a.buffer,r,e).fill(0),z.queueInit(z.globalAddress+z.globalOffset.q),z.queueInit(z.globalAddress+z.globalOffset.exit_message)}},terminateWorkers:function(){z.pool.forEach(function(e){var r,t;null===(r=e._emnapiAWMTListener)||void 0===r||r.dispose(),null===(t=e._emnapiTSFNListener)||void 0===t||t.dispose(),e.terminate()}),z.pool.length=0},initWorkers:function(e){if(f)return z.workerReady||(z.workerReady=Promise.resolve());if(z.workerReady)return z.workerReady;if(!("emnapi_async_worker_create"in n.exports))throw new TypeError("`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags");var r=n.exports.emnapi_async_worker_create,t=[];z.initGlobal();for(var o=0;o>>=0;var t=new DataView(a.buffer).getInt32(e+20,!0);return(r=S.pthreads[t]).whenLoaded});return z.workerReady=Promise.all(s),z.workerReady},getResource:function(e){return new DataView(a.buffer).getUint32(e+z.offset.resource,!0)},getExecute:function(e){return new DataView(a.buffer).getUint32(e+z.offset.execute,!0)},getComplete:function(e){return new DataView(a.buffer).getUint32(e+z.offset.complete,!0)},getEnv:function(e){return new DataView(a.buffer).getUint32(e+z.offset.env,!0)},getData:function(e){return new DataView(a.buffer).getUint32(e+z.offset.data,!0)},getMutex:function(){var e=z.globalAddress+z.globalOffset.mutex,r={lock:function(){var r="undefined"!=typeof window&&"undefined"!=typeof document&&!u,t=new Int32Array(a.buffer,e,1);if(r)for(;;){if(0===Atomics.compareExchange(t,0,0,10))return}else for(;;){if(0===Atomics.compareExchange(t,0,0,10))return;Atomics.wait(t,0,10)}},unlock:function(){var r=new Int32Array(a.buffer,e,1);if(10!==Atomics.compareExchange(r,0,10,0))throw new Error("Tried to unlock while not holding the mutex");Atomics.notify(r,0,1)},execute:function(e){r.lock();try{return e()}finally{r.unlock()}}};return r},getCond:function(){var e=z.globalAddress+z.globalOffset.cond,r=z.getMutex();return{wait:function(){var t=new Int32Array(a.buffer,e,1),n=Atomics.load(t,0);r.unlock(),Atomics.wait(t,0,n),r.lock()},signal:function(){var r=new Int32Array(a.buffer,e,1);Atomics.add(r,0,1),Atomics.notify(r,0,1)}}},queueInit:function(e){var r=new DataView(a.buffer);r.setUint32(e,e,!0),r.setUint32(e+4,e,!0)},queueInsertTail:function(e,r){var t=new DataView(a.buffer);t.setUint32(r,e,!0);var n=t.getUint32(e+4,!0);t.setUint32(r+4,n,!0);var o=t.getUint32(r+4,!0);t.setUint32(o,r,!0),t.setUint32(e+4,r,!0)},queueRemove:function(e){var r=new DataView(a.buffer),t=r.getUint32(e+4,!0),n=r.getUint32(e,!0);r.setUint32(t,n,!0),r.setUint32(n+4,t,!0)},queueEmpty:function(e){return e==new DataView(a.buffer).getUint32(e,!0)},scheduleWork:function(e){var r;(null===(r=z.workerReady)||void 0===r?void 0:r.ready)||z.initWorkers(m()).then(function(){z.workerReady.ready=!0}).catch(function(e){throw z.workerReady=null,e}),d.increaseWaitingRequestCounter();var t=new Int32Array(a.buffer,e+z.offset.status,1);Atomics.store(t,0,0);var n=z.getMutex(),o=z.getCond();n.lock();try{z.queueInsertTail(z.globalAddress+z.globalOffset.q,e+z.offset.queue)}catch(e){throw d.decreaseWaitingRequestCounter(),n.unlock(),e}new DataView(a.buffer).getUint32(z.globalAddress+z.globalOffset.idle_threads,!0)>0&&o.signal(),n.unlock()},cancelWork:function(e){var r=!1;return z.getMutex().execute(function(){var t=new DataView(a.buffer);(r=!z.queueEmpty(e+z.offset.queue)&&2!==t.getInt32(e+z.offset.status,!0))&&z.queueRemove(e+z.offset.queue)}),r?0!==Atomics.compareExchange(new Int32Array(a.buffer,e+z.offset.status,1),0,0,1)?9:(d.feature.setImmediate(function(){z.callComplete(e,11)}),0):9},callComplete:function(e,r){d.decreaseWaitingRequestCounter();var t=z.getComplete(e),n=z.getEnv(e),s=z.getData(e),i=d.envStore.get(n),u=d.openScope(i),f=function(){t&&i.callbackIntoModule(!0,function(){o.get(t)(n,r,s)})};try{if(v){var c=z.getResource(e),l=d.refStore.get(c).get(),p=d.handleStore.get(l).value,g=new DataView(a.buffer),y=g.getFloat64(e+z.offset.async_id,!0),h=g.getFloat64(e+z.offset.trigger_async_id,!0);v.node.makeCallback(p,f,[],{asyncId:y,triggerAsyncId:h})}else f()}finally{d.closeScope(i,u)}}};z.init();var M=L?function(e,r,t,n,o,s,i){if(!e)return 1;var u,f=d.envStore.get(e);if(f.checkGCAccess(),!n)return f.setLastError(1);if(!i)return f.setLastError(1);if(u=r?Object(d.handleStore.get(r).value):{},!t)return f.setLastError(1);var c=String(d.handleStore.get(t).value),l=x.create(e,u,c,n,o,s);return i>>>=0,new DataView(a.buffer).setUint32(i,l,!0),f.clearLastError()}:function(e,r,t,n,o,i,u){if(!e)return 1;var f,c=d.envStore.get(e);if(c.checkGCAccess(),!n)return c.setLastError(1);if(!u)return c.setLastError(1);if(f=r?Object(d.handleStore.get(r).value):{},!t)return c.setLastError(1);var l=z.offset.end,v=s(l);if(!v)return c.setLastError(9);v>>>=0,new Uint8Array(a.buffer).subarray(v,v+l).fill(0);var p=c.ensureHandleId(f),g=d.createReference(c,p,1,1).id,y=new DataView(a.buffer);return y.setUint32(v,g,!0),j(p,t,-1,v+z.offset.async_id),y.setUint32(v+z.offset.env,e,!0),y.setUint32(v+z.offset.execute,n,!0),y.setUint32(v+z.offset.complete,o,!0),y.setUint32(v+z.offset.data,i,!0),z.queueInit(v+z.offset.queue),u>>>=0,y.setUint32(u,v,!0),c.clearLastError()},F=L?function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,x.remove(r),t.clearLastError()):t.setLastError(1)}:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var n=z.getResource(r);if(d.refStore.get(n).dispose(),v){var o=new DataView(a.buffer);O(o.getFloat64(r+z.offset.async_id,!0),o.getFloat64(r+z.offset.trigger_async_id,!0))}return i(r),t.clearLastError()},W=L?function(e,r){if(!e)return 1;var t=d.envStore.get(e);return r?(r>>>=0,x.queue(r),t.clearLastError()):t.setLastError(1)}:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return r?(r>>>=0,z.scheduleWork(r),t.clearLastError()):t.setLastError(1)},q=L?function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var n=x.cancel(r);return 0===n?t.clearLastError():t.setLastError(n)}:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var n=z.cancelWork(r);return 0===n?t.clearLastError():t.setLastError(n)};g.initWorker=function(e,r){if(!g.childThread)throw new Error("startThread is only available in child threads");if("function"!=typeof n.exports.emnapi_async_worker_init)throw new TypeError("`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags");n.exports.emnapi_async_worker_init(e),o.get(r[0])(r[1])};var N=Object.freeze({__proto__:null,_emnapi_async_worker:function(e){e>>>=0,z.globalAddress=e;var r=z.getMutex(),t=z.getCond();r.lock();for(var n=e+z.globalOffset.exit_message,s=e+z.globalOffset.idle_threads,i=e+z.globalOffset.q,u=new DataView(a.buffer);;){for(;z.queueEmpty(i);)Atomics.add(new Int32Array(a.buffer,s,1),0,1),t.wait(),Atomics.sub(new Int32Array(a.buffer,s,1),0,1);var f=u.getUint32(i,!0);if(f===n){t.signal(),r.unlock();break}var c=f-z.offset.queue;z.queueRemove(f),z.queueInit(f),r.unlock();var d=new Int32Array(a.buffer,c+z.offset.status,1);1===Atomics.load(d,0)&&l("unreachable");var v=z.getExecute(c),p=z.getEnv(c),y=z.getData(c);o.get(v)(p,y),Atomics.store(d,0,2),(0,g.postMessage)({__emnapi__:{type:"async-work-complete",payload:{work:c}}}),r.lock()}return 0},_emnapi_spawn_worker:function(e,r){if("function"!=typeof y)throw new TypeError("`options.onCreateWorker` is not a function");var t=[];if(!("emnapi_async_worker_create"in n.exports))throw new TypeError("`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags");t.push(n.exports.emnapi_async_worker_create(0,0));var a,o=function(e){!("message"in e)||-1===e.message.indexOf("RuntimeError")&&-1===e.message.indexOf("unreachable")||z.terminateWorkers()};try{var s=y({type:"async-work",name:"emnapi-async-worker"}),f=S.loadWasmModuleToWorker(s);u?s.on("error",o):s.addEventListener("error",o,!1),z.addListener(s),G.addListener(s),[].push(f.then(function(){"function"==typeof s.unref&&s.unref()})),a=z.pool.push(s)-1;var c=t[0];s.threadBlockBase=c,s.postMessage({__emnapi__:{type:"async-worker-init",payload:{arg:c,func:[e,r]}}})}catch(e){c=t[0];throw i(c),e}return a},napi_cancel_async_work:q,napi_create_async_work:M,napi_delete_async_work:F,napi_queue_async_work:W}),J={registry:"function"==typeof FinalizationRegistry?new FinalizationRegistry(function(e){i(e)}):void 0,table:new WeakMap,wasmMemoryViewTable:new WeakMap,init:function(){J.registry="function"==typeof FinalizationRegistry?new FinalizationRegistry(function(e){i(e)}):void 0,J.table=new WeakMap,J.wasmMemoryViewTable=new WeakMap},isSharedArrayBuffer:function(e){return"function"==typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(e)},isDetachedArrayBuffer:function(e){if(0===e.byteLength)try{new Uint8Array(e)}catch(e){return!0}return!1},getArrayBufferPointer:function(e,r){var t,n={address:0,ownership:0,runtimeAllocated:0};if(e===a.buffer)return n;var o=J.isDetachedArrayBuffer(e);if(J.table.has(e)){var i=J.table.get(e);return o?(i.address=0,i):(r&&0===i.ownership&&1===i.runtimeAllocated&&new Uint8Array(a.buffer).set(new Uint8Array(e),i.address),i)}if(o||0===e.byteLength)return n;if(!r)return n;var u=s(e.byteLength);if(!u)throw new Error("Out of memory");return u>>>=0,new Uint8Array(a.buffer).set(new Uint8Array(e),u),n.address=u,n.ownership=J.registry?0:1,n.runtimeAllocated=1,J.table.set(e,n),null===(t=J.registry)||void 0===t||t.register(e,u),n},getOrUpdateMemoryView:function(e){if(e.buffer===a.buffer)return J.wasmMemoryViewTable.has(e)||J.wasmMemoryViewTable.set(e,{Ctor:e.constructor,address:e.byteOffset,length:e instanceof DataView?e.byteLength:e.length,ownership:1,runtimeAllocated:0}),e;if((J.isDetachedArrayBuffer(e.buffer)||J.isSharedArrayBuffer(e.buffer))&&J.wasmMemoryViewTable.has(e)){var r=J.wasmMemoryViewTable.get(e),t=r.Ctor,n=void 0,o=d.feature.Buffer;return n="function"==typeof o&&t===o?o.from(a.buffer,r.address,r.length):new t(a.buffer,r.address,r.length),J.wasmMemoryViewTable.set(n,r),n}return e},getViewPointer:function(e,r){if((e=J.getOrUpdateMemoryView(e)).buffer===a.buffer){if(J.wasmMemoryViewTable.has(e)){var t=J.wasmMemoryViewTable.get(e);return{address:t.address,ownership:t.ownership,runtimeAllocated:t.runtimeAllocated,view:e}}return{address:e.byteOffset,ownership:1,runtimeAllocated:0,view:e}}var n=J.getArrayBufferPointer(e.buffer,r),o=n.address,s=n.ownership,i=n.runtimeAllocated;return{address:0===o?0:o+e.byteOffset,ownership:s,runtimeAllocated:i,view:e}}},P={utf8Decoder:void 0,utf16Decoder:void 0,init:function(){var e,r={decode:function(e){for(var r=0,t=Math.min(4096,e.length+1),n=new Uint16Array(t),a=[],o=0;;){var s=r=t-1){var i=n.subarray(0,o);if(a.push(String.fromCharCode.apply(null,i)),!s)return a.join("");e=e.subarray(r),r=0,o=0}var u=e[r++];if(128&u){if(192==(224&u)){var f=63&e[r++];n[o++]=(31&u)<<6|f}else if(224==(240&u)){f=63&e[r++];var c=63&e[r++];n[o++]=(31&u)<<12|f<<6|c}else if(240==(248&u)){var l=(7&u)<<18|(f=63&e[r++])<<12|(c=63&e[r++])<<6|63&e[r++];l>65535&&(l-=65536,n[o++]=l>>>10&1023|55296,l=56320|1023&l),n[o++]=l}}else n[o++]=u}}};e="function"==typeof TextDecoder?new TextDecoder:r,P.utf8Decoder=e;var t,n={decode:function(e){var r=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2);if(r.length<=4096)return String.fromCharCode.apply(null,r);for(var t=[],n=0,a=0;n=55296&&r<=57343?(t+=4,++n):t+=3;return t},UTF8ToString:function(e,r){if(!e||!r)return"";e>>>=0;var t=new Uint8Array(a.buffer),n=e;if(-1===r||4294967295===r)for(;t[n];)++n;else n=e+(r>>>0);if((r=n-e)<=16){for(var o=e,s="";o>10,56320|1023&c)}}else s+=String.fromCharCode((31&i)<<6|u)}else s+=String.fromCharCode(i)}return s}return P.utf8Decoder.decode("function"==typeof SharedArrayBuffer&&t.buffer instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(t.buffer)?t.slice(e,n):t.subarray(e,n))},stringToUTF8:function(e,r,t){var n=new Uint8Array(a.buffer),o=r;if(!(t>0))return 0;for(var s=o>>>=0,i=o+t-1,u=0;u=55296&&f<=57343)f=65536+((1023&f)<<10)|1023&e.charCodeAt(++u);if(f<=127){if(o>=i)break;n[o++]=f}else if(f<=2047){if(o+1>=i)break;n[o++]=192|f>>6,n[o++]=128|63&f}else if(f<=65535){if(o+2>=i)break;n[o++]=224|f>>12,n[o++]=128|f>>6&63,n[o++]=128|63&f}else{if(o+3>=i)break;n[o++]=240|f>>18,n[o++]=128|f>>12&63,n[o++]=128|f>>6&63,n[o++]=128|63&f}}return n[o]=0,o-s},UTF16ToString:function(e,r){if(!e||!r)return"";var t=e>>>=0;if(-1===r||4294967295===r){for(var n=t>>>1,o=new Uint16Array(a.buffer);o[n];)++n;t=n<<1>>>0}else t=e+2*(r>>>0);if((r=t-e)<=32)return String.fromCharCode.apply(null,new Uint16Array(a.buffer,e,r/2));var s=new Uint8Array(a.buffer);return P.utf16Decoder.decode("function"==typeof SharedArrayBuffer&&s.buffer instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(s.buffer)?s.slice(e,t):s.subarray(e,t))},stringToUTF16:function(e,r,t){if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,o=(t-=2)<2*e.length?t/2:e.length,s=new DataView(a.buffer),i=0;i>>=0,!e)return 1;var s=d.envStore.get(e);s.checkGCAccess();var i=-1===t||4294967295===t,u=t>>>0;if(0!==t&&!r)return s.setLastError(1);if(!n)return s.setLastError(1);if(!(i||u<=2147483647))return s.setLastError(1);var f=o(r>>>=0,i,u);n>>>=0;var c=d.addToCurrentScope(f).id;return new DataView(a.buffer).setUint32(n,c,!0),s.clearLastError()},newExternalString:function(e,r,t,n,o,s,i,u,f){if(t>>>=0,!e)return 1;var c=d.envStore.get(e);c.checkGCAccess();var l=-1===t||4294967295===t,v=t>>>0;if(0!==t&&!r)return c.setLastError(1);if(!s)return c.setLastError(1);if(!(l||v<=2147483647))return c.setLastError(1);var p=u(e,r,t,s);if(0===p){if(i)new DataView(a.buffer).setInt8(i,1,!0);n&&c.callFinalizer(n,r,o)}return p}};function H(e,r,t,n,o,s,i){if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!r)return u.setLastError(1);var f=d.handleStore.get(r);if(!f.isTypedArray())return u.setLastError(1);var c=f.value,l=new DataView(a.buffer);if(t){t>>>=0;var v=void 0;if(c instanceof Int8Array)v=0;else if(c instanceof Uint8Array)v=1;else if(c instanceof Uint8ClampedArray)v=2;else if(c instanceof Int16Array)v=3;else if(c instanceof Uint16Array)v=4;else if(c instanceof Int32Array)v=5;else if(c instanceof Uint32Array)v=6;else if("function"==typeof Float16Array&&c instanceof Float16Array)v=11;else if(c instanceof Float32Array)v=7;else if(c instanceof Float64Array)v=8;else if(c instanceof BigInt64Array)v=9;else{if(!(c instanceof BigUint64Array))return u.setLastError(9);v=10}l.setInt32(t,v,!0)}if(c=J.getOrUpdateMemoryView(c),n&&(n>>>=0,l.setUint32(n,c.length,!0)),o||s){if(o){o>>>=0;var p=J.getViewPointer(c,!0).address;l.setUint32(o,p,!0)}if(s){s>>>=0;var g=u.ensureHandleId(c.buffer);l.setUint32(s,g,!0)}}return i&&(i>>>=0,l.setUint32(i,c.byteOffset,!0)),u.clearLastError()}function Q(e,r,t,n,o,s){if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!r)return i.setLastError(1);var u=d.handleStore.get(r);if(!u.isDataView())return i.setLastError(1);var f=J.getOrUpdateMemoryView(u.value),c=new DataView(a.buffer);if(t&&(t>>>=0,c.setUint32(t,f.byteLength,!0)),n||o){if(n){n>>>=0;var l=J.getViewPointer(f,!0).address;c.setUint32(n,l,!0)}if(o){o>>>=0;var v=i.ensureHandleId(f.buffer);c.setUint32(o,v,!0)}}return s&&(s>>>=0,c.setUint32(s,f.byteOffset,!0)),i.clearLastError()}var $=Object.freeze({__proto__:null,napi_get_array_length:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if(!o.isArray())return n.setLastError(8);t>>>=0;var s=o.value.length>>>0;return new DataView(a.buffer).setUint32(t,s,!0),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_get_arraybuffer_info:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);var s=d.handleStore.get(r);if(!s.isArrayBuffer()&&!J.isSharedArrayBuffer(s.value))return o.setLastError(1);var i=new DataView(a.buffer);if(t){t>>>=0;var u=J.getArrayBufferPointer(s.value,!0).address;i.setUint32(t,u,!0)}return n&&(n>>>=0,i.setUint32(n,s.value.byteLength,!0)),o.clearLastError()},napi_get_buffer_info:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);var o=d.handleStore.get(r);return o.isBuffer(d.feature.Buffer)?o.isDataView()?Q(e,r,n,t,0,0):H(e,r,0,n,t,0,0):a.setLastError(1)},napi_get_dataview_info:Q,napi_get_date_value:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);return s.isDate()?(t>>>=0,n=s.value.valueOf(),new DataView(a.buffer).setFloat64(t,n,!0),o.getReturnStatus()):o.setLastError(1)}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_get_prototype:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if(null==o.value)throw new TypeError("Cannot convert undefined or null to object");var s=void 0;try{s=o.isObject()||o.isFunction()?o.value:Object(o.value)}catch(e){return n.setLastError(2)}t>>>=0;var i=n.ensureHandleId(Object.getPrototypeOf(s));return new DataView(a.buffer).setUint32(t,i,!0),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_get_typedarray_info:H,napi_get_value_bigint_int64:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!d.feature.supportBigInt)return o.setLastError(9);if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(r).value;if("bigint"!=typeof s)return o.setLastError(6);n>>>=0,t>>>=0;var i=new DataView(a.buffer);s>=BigInt(-1)*(BigInt(1)<=BigInt(1)<>BigInt(32));return i.setInt32(t,u,!0),i.setInt32(t+4,f,!0),o.clearLastError()},napi_get_value_bigint_uint64:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!d.feature.supportBigInt)return o.setLastError(9);if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(r).value;if("bigint"!=typeof s)return o.setLastError(6);n>>>=0,t>>>=0;var i=new DataView(a.buffer);s>=BigInt(0)&&s>BigInt(32));return i.setUint32(t,u,!0),i.setUint32(t+4,f,!0),o.clearLastError()},napi_get_value_bigint_words:function(e,r,t,n,o){if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!d.feature.supportBigInt)return s.setLastError(9);if(!r)return s.setLastError(1);if(!n)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isBigInt())return s.setLastError(17);var u=i.value>>=0,o>>>=0,n>>>=0;var f=new DataView(a.buffer),c=f.getUint32(n,!0);c>>>=0;for(var l=0,v=u?i.value*BigInt(-1):i.value;v!==BigInt(0);)l++,v>>=BigInt(64);if(v=u?i.value*BigInt(-1):i.value,t||o){if(!t)return s.setLastError(1);if(!o)return s.setLastError(1);for(var p=[];v!==BigInt(0);){var g=v&(BigInt(1)<>=BigInt(64)}for(var y=Math.min(c,p.length),h=0;h>BigInt(32));f.setUint32(o+8*h,_,!0),f.setUint32(o+(8*h+4),E,!0)}f.setInt32(t,u?1:0,!0),f.setUint32(n,y,!0)}else c=l,f.setUint32(n,c,!0);return s.clearLastError()},napi_get_value_bool:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("boolean"!=typeof o.value)return n.setLastError(7);t>>>=0;var s=o.value?1:0;return new DataView(a.buffer).setInt8(t,s,!0),n.clearLastError()},napi_get_value_double:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("number"!=typeof o.value)return n.setLastError(6);t>>>=0;var s=o.value;return new DataView(a.buffer).setFloat64(t,s,!0),n.clearLastError()},napi_get_value_external:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if(!o.isExternal())return n.setLastError(1);t>>>=0;var s=o.data();return new DataView(a.buffer).setUint32(t,s,!0),n.clearLastError()},napi_get_value_int32:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("number"!=typeof o.value)return n.setLastError(6);t>>>=0;var s=new Int32Array([o.value])[0];return new DataView(a.buffer).setInt32(t,s,!0),n.clearLastError()},napi_get_value_int64:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("number"!=typeof o.value)return n.setLastError(6);var s=o.value;t>>>=0;var i=new DataView(a.buffer);return s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY||isNaN(s)?(i.setInt32(t,0,!0),i.setInt32(t+4,0,!0)):s<-0x8000000000000000?(i.setInt32(t,0,!0),i.setInt32(t+4,2147483648,!0)):s>=0x8000000000000000?(i.setUint32(t,4294967295,!0),i.setUint32(t+4,2147483647,!0)):I(t,Math.trunc(s)),n.clearLastError()},napi_get_value_string_latin1:function(e,r,t,n,o){if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!r)return s.setLastError(1);o>>>=0,t>>>=0,n>>>=0,n>>>=0;var i=d.handleStore.get(r);if("string"!=typeof i.value)return s.setLastError(3);var u=new DataView(a.buffer);if(t)if(0!==n){for(var f=0,c=void 0,l=0;l>>=0,t>>>=0,n>>>=0,n>>>=0;var i=d.handleStore.get(r);if("string"!=typeof i.value)return s.setLastError(3);var u=new DataView(a.buffer);if(t)if(0!==n){var f=P.stringToUTF16(i.value,t,2*n);o&&u.setUint32(o,f/2,!0)}else o&&u.setUint32(o,0,!0);else{if(!o)return s.setLastError(1);u.setUint32(o,i.value.length,!0)}return s.clearLastError()},napi_get_value_string_utf8:function(e,r,t,n,o){if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!r)return s.setLastError(1);o>>>=0,t>>>=0,n>>>=0,n>>>=0;var i=d.handleStore.get(r);if("string"!=typeof i.value)return s.setLastError(3);var u=new DataView(a.buffer);if(t)if(0!==n){var f=P.stringToUTF8(i.value,t,n);o&&u.setUint32(o,f,!0)}else o&&u.setUint32(o,0,!0);else{if(!o)return s.setLastError(1);var c=P.lengthBytesUTF8(i.value);u.setUint32(o,c,!0)}return s.clearLastError()},napi_get_value_uint32:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("number"!=typeof o.value)return n.setLastError(6);t>>>=0;var s=new Uint32Array([o.value])[0];return new DataView(a.buffer).setUint32(t,s,!0),n.clearLastError()},node_api_set_prototype:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);var a=d.handleStore.get(r).value;if(null==a)throw new TypeError("Cannot convert undefined or null to object");var o=typeof a,s=void 0;try{s="object"===o&&null!==a||"function"===o?a:Object(a)}catch(e){return n.setLastError(2)}var i=d.handleStore.get(t).value;return Object.setPrototypeOf(s,i),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function Y(e,r,t,n){return P.newString(e,r,t,n,function(e,r,t){var n="",o=0,s=new DataView(a.buffer);if(r)for(;;){if(!(i=s.getUint8(e,!0)))break;n+=String.fromCharCode(i),e++}else for(;o>>=0,new DataView(a.buffer).setUint32(t,i,!0),s.clearLastError()},napi_create_bigint_uint64:function(e,r,t,n){if(!e)return 1;var o,s=d.envStore.get(e);if(s.checkGCAccess(),!d.feature.supportBigInt)return s.setLastError(9);if(!t)return s.setLastError(1);o=r&(BigInt(1)<>>=0,new DataView(a.buffer).setUint32(t,i,!0),s.clearLastError()},napi_create_bigint_words:function(e,r,t,n,o){var s,i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!d.feature.supportBigInt)return u.setLastError(9);if(!o)return u.setLastError(1);if(n>>>=0,t>>>=0,(t>>>=0)>2147483647)return u.setLastError(1);if(t>16384)throw new RangeError("Maximum BigInt size exceeded");var f=BigInt(0),c=new DataView(a.buffer);for(i=0;i>>=0,s=d.addToCurrentScope(f).id,c.setUint32(o,s,!0),u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}},napi_create_double:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=d.addToCurrentScope(r).id;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_create_int32:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=d.addToCurrentScope(r).id;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_create_int64:function(e,r,t,n){if(!e)return 1;var o,s=d.envStore.get(e);if(s.checkGCAccess(),!t)return s.setLastError(1);o=Number(r);var i=d.addToCurrentScope(o).id;return t>>>=0,new DataView(a.buffer).setUint32(t,i,!0),s.clearLastError()},napi_create_string_latin1:Y,napi_create_string_utf16:X,napi_create_string_utf8:Z,napi_create_uint32:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=d.addToCurrentScope(r>>>0).id;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},node_api_create_external_string_latin1:function(e,r,t,n,a,o,s){return P.newExternalString(e,r,t,n,a,o,s,Y,void 0)},node_api_create_external_string_utf16:function(e,r,t,n,a,o,s){return P.newExternalString(e,r,t,n,a,o,s,X,void 0)},node_api_create_property_key_latin1:function(e,r,t,n){return Y(e,r,t,n)},node_api_create_property_key_utf16:function(e,r,t,n){return X(e,r,t,n)},node_api_create_property_key_utf8:function(e,r,t,n){return Z(e,r,t,n)}});function ee(e,r,t,n,a){var s,i=(r>>>=0)&&t?P.UTF8ToString(r,t):"",u=o.get(n),f=function(e){return u(e.id,e.ctx.scopeStore.currentScope.id)},c=function(e,r){return function(){var t=e.ctx.openScope(e),n=t.callbackInfo;n.data=a,n.args=arguments,n.thiz=this,n.fn=s;try{var o=e.callIntoModule(r);return o?e.ctx.handleStore.get(o).value:void 0}finally{n.data=0,n.args=void 0,n.thiz=void 0,n.fn=void 0,e.ctx.closeScope(e,t)}}};if(""===i)return{status:0,f:s=c(e,f)};if(!/^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(i))return{status:1,f:void 0};if(d.feature.supportNewFunction){var l=c(e,f);try{s=new Function("_","return function "+i+'(){"use strict";return _.apply(this,arguments);};')(l)}catch(r){s=c(e,f),d.feature.canSetFunctionName&&Object.defineProperty(s,"name",{value:i})}}else s=c(e,f),d.feature.canSetFunctionName&&Object.defineProperty(s,"name",{value:i});return{status:0,f:s}}function re(e,r,t,n,a,o,s,i,u){if(a||o){var f=void 0,c=void 0;a&&(f=ee(e,0,0,a,u).f),o&&(c=ee(e,0,0,o,u).f);var l={configurable:!!(4&i),enumerable:!!(2&i),get:f,set:c};Object.defineProperty(r,t,l)}else if(n){l={configurable:!!(4&i),enumerable:!!(2&i),writable:!!(1&i),value:ee(e,0,0,n,u).f};Object.defineProperty(r,t,l)}else{l={configurable:!!(4&i),enumerable:!!(2&i),writable:!!(1&i),value:d.handleStore.get(s).value};Object.defineProperty(r,t,l)}}function te(e){var r=d.handleStore.get(e);return r.isObject()||r.isFunction()?(void 0!==J&&ArrayBuffer.isView(r.value)&&J.wasmMemoryViewTable.has(r.value)&&(r=d.addToCurrentScope(J.wasmMemoryViewTable.get(r.value))),{status:0,handle:r}):{status:1}}function ne(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(0===n&&!t)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isObject()&&!i.isFunction())return s.setLastError(1);var u=s.getObjectBinding(i.value),f=u.wrapped,c=d.refStore.get(f);if(!c)return s.setLastError(1);if(t)t>>>=0,o=c.data(),new DataView(a.buffer).setUint32(t,o,!0);return 1===n&&(u.wrapped=0,1===c.ownership()?c.resetFinalizer():c.dispose()),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}}function ae(e,r,t,n,o,s){if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!d.feature.supportFinalizer)return i.setLastError(9);if(!r)return i.setLastError(1);if(!n)return i.setLastError(1);var u=te(r);if(0!==u.status)return i.setLastError(u.status);var f=u.handle,c=s?1:0;t>>>=0,n>>>=0,o>>>=0;var l=d.createReferenceWithFinalizer(i,f.id,0,c,n,t,o);if(s){s>>>=0;var v=l.id;new DataView(a.buffer).setUint32(s,v,!0)}return i.clearLastError()}var oe=Object.freeze({__proto__:null,napi_add_finalizer:ae,napi_check_object_type_tag:function(e,r,t,n){var o=!0;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(s.tryCatch.hasCaught()?10:1);var i=d.handleStore.get(r);if(!i.isObject()&&!i.isFunction())return s.setLastError(s.tryCatch.hasCaught()?10:2);if(!t)return s.setLastError(s.tryCatch.hasCaught()?10:1);if(!n)return s.setLastError(s.tryCatch.hasCaught()?10:1);var u=s.getObjectBinding(i.value);if(null!==u.tag){t>>>=0;var f=u.tag,c=new Uint32Array(a.buffer,t,4);o=f[0]===c[0]&&f[1]===c[1]&&f[2]===c[2]&&f[3]===c[3]}else o=!1;return n>>>=0,new DataView(a.buffer).setInt8(n,o?1:0,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_define_class:function(e,r,t,n,o,s,i,u){var f,c,l;if(!e)return 1;var v=d.envStore.get(e);if(v.checkGCAccess(),!v.tryCatch.isEmpty())return v.setLastError(10);if(!v.canCallIntoJs())return v.setLastError(v.moduleApiVersion>=10?23:10);v.clearLastError();try{if(!u)return v.setLastError(1);if(!n)return v.setLastError(1);if(t>>>=0,i>>>=0,s>>>=0,(s>>>=0)>0&&!i)return v.setLastError(1);if(!(t>=-1&&t<=2147483647||4294967295===t)||!r)return v.setLastError(1);var p=ee(v,r,t,n,o);if(0!==p.status)return v.setLastError(p.status);for(var g=p.f,y=void 0,h=new DataView(a.buffer),_=0;_>>=0;var A=h.getUint32(f+28,!0);if(E)y=P.UTF8ToString(E,-1);else{if(!w)return v.setLastError(4);if("string"!=typeof(y=d.handleStore.get(w).value)&&"symbol"!=typeof y)return v.setLastError(4)}1024&l?re(v,g,y,L,m,b,S,l,A):re(v,g.prototype,y,L,m,b,S,l,A)}return c=d.addToCurrentScope(g).id,u>>>=0,h.setUint32(u,c,!0),v.getReturnStatus()}catch(e){return v.tryCatch.setError(e),v.setLastError(10)}},napi_remove_wrap:function(e,r,t){return ne(e,r,t,1)},napi_type_tag_object:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!r)return n.setLastError(n.tryCatch.hasCaught()?10:1);var o=d.handleStore.get(r);if(!o.isObject()&&!o.isFunction())return n.setLastError(n.tryCatch.hasCaught()?10:2);if(!(t>>>=0))return n.setLastError(n.tryCatch.hasCaught()?10:1);var s=n.getObjectBinding(o.value);if(null!==s.tag)return n.setLastError(n.tryCatch.hasCaught()?10:1);var i=new Uint8Array(16);return i.set(new Uint8Array(a.buffer,t,16)),s.tag=new Uint32Array(i.buffer),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_unwrap:function(e,r,t){return ne(e,r,t,0)},napi_wrap:function(e,r,t,n,o,s){return function(e,r,t,n,o,s){var i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!d.feature.supportFinalizer){if(n)throw d.createNotSupportWeakRefError("napi_wrap",'Parameter "finalize_cb" must be 0(NULL)');if(s)throw d.createNotSupportWeakRefError("napi_wrap",'Parameter "result" must be 0(NULL)')}if(!r)return u.setLastError(1);var f=te(r);if(0!==f.status)return u.setLastError(f.status);var c=f.handle;if(0!==u.getObjectBinding(c.value).wrapped)return u.setLastError(1);var l=void 0;if(s){if(!n)return u.setLastError(1);l=d.createReferenceWithFinalizer(u,c.id,0,1,n,t,o),s>>>=0,i=l.id,new DataView(a.buffer).setUint32(s,i,!0)}else l=n?d.createReferenceWithFinalizer(u,c.id,0,0,n,t,o):d.createReferenceWithData(u,c.id,0,0,t);return u.getObjectBinding(c.value).wrapped=l.id,u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}}(e,r,t,n,o,s)},node_api_post_finalizer:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);return a.enqueueFinalizer(d.createTrackedFinalizer(a,r,t,n)),a.clearLastError()}});function se(e,r,t,n,o,s,i){var u;if(!e)return 1;var f=d.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!i)return f.setLastError(1);if(n>>>=0,i>>>=0,n>>>=0,(t>>>=0)||(n=0),n>2147483647)throw new RangeError("Cannot create a memory view larger than 2147483647 bytes");if(t+n>a.buffer.byteLength)throw new RangeError("Memory out of range");if(!d.feature.supportFinalizer&&o)throw d.createNotSupportWeakRefError("emnapi_create_memory_view",'Parameter "finalize_cb" must be 0(NULL)');var c=void 0;switch(r){case 0:c={Ctor:Int8Array,address:t,length:n,ownership:1,runtimeAllocated:0};break;case 1:c={Ctor:Uint8Array,address:t,length:n,ownership:1,runtimeAllocated:0};break;case 2:c={Ctor:Uint8ClampedArray,address:t,length:n,ownership:1,runtimeAllocated:0};break;case 3:c={Ctor:Int16Array,address:t,length:n>>1,ownership:1,runtimeAllocated:0};break;case 4:c={Ctor:Uint16Array,address:t,length:n>>1,ownership:1,runtimeAllocated:0};break;case 5:c={Ctor:Int32Array,address:t,length:n>>2,ownership:1,runtimeAllocated:0};break;case 6:c={Ctor:Uint32Array,address:t,length:n>>2,ownership:1,runtimeAllocated:0};break;case 7:c={Ctor:Float32Array,address:t,length:n>>2,ownership:1,runtimeAllocated:0};break;case 8:c={Ctor:Float64Array,address:t,length:n>>3,ownership:1,runtimeAllocated:0};break;case 9:c={Ctor:BigInt64Array,address:t,length:n>>3,ownership:1,runtimeAllocated:0};break;case 10:c={Ctor:BigUint64Array,address:t,length:n>>3,ownership:1,runtimeAllocated:0};break;case-1:c={Ctor:DataView,address:t,length:n,ownership:1,runtimeAllocated:0};break;case 11:if("function"!=typeof Float16Array)return f.setLastError(1);c={Ctor:Float16Array,address:t,length:n>>1,ownership:1,runtimeAllocated:0};break;case-2:if(!d.feature.Buffer)throw d.createNotSupportBufferError("emnapi_create_memory_view","");c={Ctor:d.feature.Buffer,address:t,length:n,ownership:1,runtimeAllocated:0};break;default:return f.setLastError(1)}var l=c.Ctor,v=-2===r?d.feature.Buffer.from(a.buffer,c.address,c.length):new l(a.buffer,c.address,c.length),p=d.addToCurrentScope(v);if(J.wasmMemoryViewTable.set(v,c),o){var g=ae(e,p.id,t,o,s,0);if(10===g){var y=f.tryCatch.extractException();throw f.clearLastError(),y}if(0!==g)return f.setLastError(g)}return u=p.id,new DataView(a.buffer).setUint32(i,u,!0),f.getReturnStatus()}catch(y){return f.tryCatch.setError(y),f.setLastError(10)}}function ie(e,r,t,n){var o;if(t=null!=t?t:0,t>>>=0,r instanceof ArrayBuffer||J.isSharedArrayBuffer(r)){if(!(i=J.getArrayBufferPointer(r,!1).address))throw new Error("Unknown ArrayBuffer address");if("number"==typeof n&&-1!==n&&4294967295!==n||(n=r.byteLength-t),0===(n>>>=0))return r;o=new Uint8Array(r,t,n);var s=new Uint8Array(a.buffer);return e?s.set(o,i):o.set(s.subarray(i,i+n)),r}if(ArrayBuffer.isView(r)){var i,u=J.getViewPointer(r,!1),f=u.view;if(!(i=u.address))throw new Error("Unknown ArrayBuffer address");if("number"==typeof n&&-1!==n&&4294967295!==n||(n=f.byteLength-t),0===(n>>>=0))return f;o=new Uint8Array(f.buffer,f.byteOffset+t,n);s=new Uint8Array(a.buffer);return e?s.set(o,i):o.set(s.subarray(i,i+n)),f}throw new TypeError("emnapiSyncMemory expect ArrayBuffer or ArrayBufferView as first parameter")}function ue(e){var r,t=e instanceof ArrayBuffer,n=e instanceof DataView,a=ArrayBuffer.isView(e)&&!n;if(!(t||a||n||J.isSharedArrayBuffer(e)))throw new TypeError("emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter");return{address:(r=t?J.getArrayBufferPointer(e,!1):J.getViewPointer(e,!1)).address,ownership:r.ownership,runtimeAllocated:r.runtimeAllocated}}var fe=Object.freeze({__proto__:null,$emnapiGetMemoryAddress:ue,$emnapiSyncMemory:ie,emnapi_create_memory_view:se,emnapi_get_memory_address:function(e,r,t,n,o){var s,i,u,f;if(!e)return 1;var c=d.envStore.get(e);if(c.checkGCAccess(),!c.tryCatch.isEmpty())return c.setLastError(10);if(!c.canCallIntoJs())return c.setLastError(c.moduleApiVersion>=10?23:10);c.clearLastError();try{if(!r)return c.setLastError(1);if(!t&&!n&&!o)return c.setLastError(1);s=(f=ue(c.ctx.handleStore.get(r).value)).address;var l=new DataView(a.buffer);return t&&(t>>>=0,l.setUint32(t,s,!0)),n&&(n>>>=0,u=f.ownership,l.setInt32(n,u,!0)),o&&(o>>>=0,i=f.runtimeAllocated,l.setInt8(o,i,!0)),c.getReturnStatus()}catch(e){return c.tryCatch.setError(e),c.setLastError(10)}},emnapi_get_runtime_version:function(e,r){if(!e)return 1;var t,n=d.envStore.get(e);if(!r)return n.setLastError(1);try{t=d.getRuntimeVersions().version}catch(e){return n.setLastError(9)}var o=t.split(".").map(function(e){return Number(e)});r>>>=0;var s=new DataView(a.buffer);return s.setUint32(r,o[0],!0),s.setUint32(r+4,o[1],!0),s.setUint32(r+8,o[2],!0),n.clearLastError()},emnapi_is_node_binding_available:function(){return v?1:0},emnapi_is_support_bigint:function(){return d.feature.supportBigInt?1:0},emnapi_is_support_weakref:function(){return d.feature.supportFinalizer?1:0},emnapi_sync_memory:function(e,r,t,n,o){var s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!t)return i.setLastError(1);t>>>=0,n>>>=0,o>>>=0;var u=new DataView(a.buffer),f=u.getUint32(t,!0),c=i.ctx.handleStore.get(f);if(!(c.isArrayBuffer()||c.isTypedArray()||c.isDataView()||J.isSharedArrayBuffer(c.value)))return i.setLastError(1);var l=ie(Boolean(r),c.value,n,o);return c.value!==l&&(t>>>=0,s=i.ensureHandleId(l),u.setUint32(t,s,!0)),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}}});function ce(e,r,t){e>>>=0,e>>>=0;var n=t?new SharedArrayBuffer(e):new ArrayBuffer(e);if(r){r>>>=0;var o=J.getArrayBufferPointer(n,!0).address;new DataView(a.buffer).setUint32(r,o,!0)}return n}var le=Object.freeze({__proto__:null,napi_create_array:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var n=d.addToCurrentScope([]).id;return new DataView(a.buffer).setUint32(r,n,!0),t.clearLastError()},napi_create_array_with_length:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);r>>>=0,t>>>=0,r>>>=0;var o=d.addToCurrentScope(new Array(r)).id;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_create_arraybuffer:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);n>>>=0;var i=ce(r,t,!1);return o=d.addToCurrentScope(i).id,new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_create_buffer:function(e,r,t,n){var o,i,u;if(!e)return 1;var f=d.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!n)return f.setLastError(1);var c=d.feature.Buffer;if(!c)throw d.createNotSupportBufferError("napi_create_buffer","");n>>>=0;var l=void 0;r>>>=0,r>>>=0;var v=new DataView(a.buffer);if(t&&0!==r){if(!(u=s(r)))throw new Error("Out of memory");u>>>=0,new Uint8Array(a.buffer).subarray(u,u+r).fill(0);var p=c.from(a.buffer,u,r),g={Ctor:c,address:u,length:r,ownership:J.registry?0:1,runtimeAllocated:1};J.wasmMemoryViewTable.set(p,g),null===(o=J.registry)||void 0===o||o.register(g,u),i=d.addToCurrentScope(p).id,v.setUint32(n,i,!0),t>>>=0,v.setUint32(t,u,!0)}else l=c.alloc(r),i=d.addToCurrentScope(l).id,v.setUint32(n,i,!0);return f.getReturnStatus()}catch(e){return f.tryCatch.setError(e),f.setLastError(10)}},napi_create_buffer_copy:function(e,r,t,n,o){var s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!o)return i.setLastError(1);var u=d.feature.Buffer;if(!u)throw d.createNotSupportBufferError("napi_create_buffer_copy","");var f=ce(r,n,!1),c=u.from(f);return t>>>=0,r>>>=0,c.set(new Uint8Array(a.buffer).subarray(t,t+r)),s=d.addToCurrentScope(c).id,o>>>=0,new DataView(a.buffer).setUint32(o,s,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_create_dataview:function(e,r,t,n,o){if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!o)return s.setLastError(1);r>>>=0,n>>>=0,r>>>=0,n>>>=0;var i=d.handleStore.get(t).value;return i instanceof ArrayBuffer||J.isSharedArrayBuffer(i)?function(e){if(r+n>e.byteLength){var t=new RangeError("byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in");throw t.code="ERR_NAPI_INVALID_DATAVIEW_ARGS",t}var i=new DataView(e,n,r);e===a.buffer&&(J.wasmMemoryViewTable.has(i)||J.wasmMemoryViewTable.set(i,{Ctor:DataView,address:n,length:r,ownership:1,runtimeAllocated:0})),o>>>=0;var u=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(o,u,!0),s.getReturnStatus()}(i):s.setLastError(1)}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_create_date:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{return t?(t>>>=0,n=d.addToCurrentScope(new Date(r)).id,new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()):o.setLastError(1)}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_create_external:function(e,r,t,n,o){var s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!o)return i.setLastError(1);if(!d.feature.supportFinalizer&&t)throw d.createNotSupportWeakRefError("napi_create_external",'Parameter "finalize_cb" must be 0(NULL)');var u=d.getCurrentScope().addExternal(r);return t&&d.createReferenceWithFinalizer(i,u.id,0,0,t,r,n),o>>>=0,s=u.id,new DataView(a.buffer).setUint32(o,s,!0),i.clearLastError()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_create_external_arraybuffer:function(e,r,t,n,o,s){var i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!s)return u.setLastError(1);if(t>>>=0,s>>>=0,t>>>=0,(r>>>=0)||(t=0),r+t>a.buffer.byteLength)throw new RangeError("Memory out of range");if(!d.feature.supportFinalizer&&n)throw d.createNotSupportWeakRefError("napi_create_external_arraybuffer",'Parameter "finalize_cb" must be 0(NULL)');var f=new ArrayBuffer(t);if(0===t)try{(new(0,d.feature.MessageChannel)).port1.postMessage(f,[f])}catch(e){}else new Uint8Array(f).set(new Uint8Array(a.buffer).subarray(r,r+t)),J.table.set(f,{address:r,ownership:1,runtimeAllocated:0});var c=d.addToCurrentScope(f);if(n){var l=ae(e,c.id,r,n,o,0);if(10===l){var v=u.tryCatch.extractException();throw u.clearLastError(),v}if(0!==l)return u.setLastError(l)}return i=c.id,new DataView(a.buffer).setUint32(s,i,!0),u.getReturnStatus()}catch(v){return u.tryCatch.setError(v),u.setLastError(10)}},napi_create_external_buffer:function(e,r,t,n,a,o){return se(e,-2,t,r,n,a,o)},napi_create_object:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var n=d.addToCurrentScope({}).id;return new DataView(a.buffer).setUint32(r,n,!0),t.clearLastError()},napi_create_symbol:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=new DataView(a.buffer);if(r){var s=d.handleStore.get(r).value;if("string"!=typeof s)return n.setLastError(3);var i=d.addToCurrentScope(Symbol(s)).id;o.setUint32(t,i,!0)}else{var u=d.addToCurrentScope(Symbol()).id;o.setUint32(t,u,!0)}return n.clearLastError()},napi_create_typedarray:function(e,r,t,n,o,s){var i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!n)return u.setLastError(1);if(!s)return u.setLastError(1);var f=d.handleStore.get(n);if(!f.isArrayBuffer())return u.setLastError(1);var c=f.value;o>>>=0,t>>>=0;var l=function(e,r,t,n,o,u){var f,c;if((o>>>=0,u>>>=0,t>1)&&o%t!==0)return(c=new RangeError("start offset of ".concat(null!==(f=r.name)&&void 0!==f?f:""," should be a multiple of ").concat(t))).code="ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT",e.tryCatch.setError(c),e.setLastError(9);if(u*t+o>n.byteLength)return(c=new RangeError("Invalid typed array length")).code="ERR_NAPI_INVALID_TYPEDARRAY_LENGTH",e.tryCatch.setError(c),e.setLastError(9);var l=new r(n,o,u);return n===a.buffer&&(J.wasmMemoryViewTable.has(l)||J.wasmMemoryViewTable.set(l,{Ctor:r,address:o,length:u,ownership:1,runtimeAllocated:0})),s>>>=0,i=d.addToCurrentScope(l).id,new DataView(a.buffer).setUint32(s,i,!0),e.getReturnStatus()};switch(r){case 0:return l(u,Int8Array,1,c,o,t);case 1:return l(u,Uint8Array,1,c,o,t);case 2:return l(u,Uint8ClampedArray,1,c,o,t);case 3:return l(u,Int16Array,2,c,o,t);case 4:return l(u,Uint16Array,2,c,o,t);case 5:return l(u,Int32Array,4,c,o,t);case 6:return l(u,Uint32Array,4,c,o,t);case 7:return l(u,Float32Array,4,c,o,t);case 8:return l(u,Float64Array,8,c,o,t);case 9:return l(u,BigInt64Array,8,c,o,t);case 10:return l(u,BigUint64Array,8,c,o,t);case 11:return"function"!=typeof Float16Array?u.setLastError(1):l(u,Float16Array,2,c,o,t);default:return u.setLastError(1)}}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}},node_api_create_buffer_from_arraybuffer:function(e,r,t,n,o){var s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(1);if(!o)return i.setLastError(1);t>>>=0,n>>>=0,t>>>=0,n>>>=0;var u=d.handleStore.get(r);if(!u.isArrayBuffer())return i.setLastError(1);var f=u.value;if(n+t>f.byteLength){var c=new RangeError("The byte offset + length is out of range");throw c.code="ERR_OUT_OF_RANGE",c}var l=d.feature.Buffer;if(!l)throw d.createNotSupportBufferError("node_api_create_buffer_from_arraybuffer","");var v=l.from(f,t,n);return f===a.buffer&&(J.wasmMemoryViewTable.has(v)||J.wasmMemoryViewTable.set(v,{Ctor:l,address:t,length:n,ownership:1,runtimeAllocated:0})),o>>>=0,s=d.addToCurrentScope(v).id,new DataView(a.buffer).setUint32(o,s,!0),i.getReturnStatus()}catch(c){return i.tryCatch.setError(c),i.setLastError(10)}},node_api_create_object_with_properties:function(e,r,t,n,o,s){if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!s)return i.setLastError(1);if(o>>>=0,(o>>>=0)>0){if(!t)return i.setLastError(1);if(!n)return i.setLastError(1)}var u=r?d.handleStore.get(r).value:null,f={};t>>>=0,n>>>=0;for(var c,l=new DataView(a.buffer),v=0;v>>=0,l.setUint32(s,g,!0),i.clearLastError()},node_api_create_sharedarraybuffer:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);n>>>=0;var i=ce(r,t,!0);return o=d.addToCurrentScope(i).id,new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},node_api_symbol_for:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!n)return o.setLastError(1);r>>>=0,n>>>=0;var s=-1===(t>>>=0)||4294967295===t,i=t>>>0;if(0!==t&&!r)return o.setLastError(1);if(!(s||i<=2147483647))return o.setLastError(1);var u=P.UTF8ToString(r,t),f=d.addToCurrentScope(Symbol.for(u)).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()}});var de=Object.freeze({__proto__:null,napi_get_boolean:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=0===r?3:4;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_get_global:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(a.buffer).setUint32(r,5,!0),t.clearLastError()):t.setLastError(1)},napi_get_null:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(a.buffer).setUint32(r,2,!0),t.clearLastError()):t.setLastError(1)},napi_get_undefined:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(a.buffer).setUint32(r,1,!0),t.clearLastError()):t.setLastError(1)}});var ve=Object.freeze({__proto__:null,napi_get_instance_data:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var n=t.getInstanceData();return new DataView(a.buffer).setUint32(r,n,!0),t.clearLastError()},napi_set_instance_data:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);return r>>>=0,t>>>=0,n>>>=0,a.setInstanceData(r,t,n),a.clearLastError()}});var pe=Object.freeze({__proto__:null,_emnapi_get_last_error_info:function(e,r,t,n){r>>>=0,t>>>=0,n>>>=0;var o=d.envStore.get(e).lastError,s=o.errorCode,i=o.engineErrorCode>>>0,u=o.engineReserved;u>>>=0;var f=new DataView(a.buffer);f.setInt32(r,s,!0),f.setUint32(t,i,!0),f.setUint32(n,u,!0)},napi_create_error:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(t).value;if("string"!=typeof s)return o.setLastError(3);var i=new Error(s);if(r){var u=d.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);i.code=u}n>>>=0;var f=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()},napi_create_range_error:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(t).value;if("string"!=typeof s)return o.setLastError(3);var i=new RangeError(s);if(r){var u=d.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);i.code=u}n>>>=0;var f=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()},napi_create_type_error:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(t).value;if("string"!=typeof s)return o.setLastError(3);var i=new TypeError(s);if(r){var u=d.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);i.code=u}n>>>=0;var f=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()},napi_fatal_error:function(e,r,t,n){e>>>=0,r>>>=0,t>>>=0,n>>>=0;var a=P.UTF8ToString(e,r),o=P.UTF8ToString(t,n);v?v.napi.fatalError(a,o):l("FATAL ERROR: "+a+" "+o)},napi_fatal_exception:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=t.ctx.handleStore.get(r);try{t.triggerFatalException(n.value)}catch(e){return t.setLastError(9)}return t.clearLastError()}catch(r){return t.tryCatch.setError(r),t.setLastError(10)}},napi_get_and_clear_last_exception:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var n=new DataView(a.buffer);if(!t.tryCatch.hasCaught())return n.setUint32(r,1,!0),t.clearLastError();var o=t.tryCatch.exception(),s=t.ensureHandleId(o);return n.setUint32(r,s,!0),t.tryCatch.reset(),t.clearLastError()},napi_is_exception_pending:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=t.tryCatch.hasCaught();return r>>>=0,new DataView(a.buffer).setInt8(r,n?1:0,!0),t.clearLastError()},napi_throw:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{return r?(t.tryCatch.setError(d.handleStore.get(r).value),t.clearLastError()):t.setLastError(1)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_throw_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new Error(P.UTF8ToString(t,-1));return r&&(a.code=P.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_throw_range_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new RangeError(P.UTF8ToString(t,-1));return r&&(a.code=P.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_throw_type_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new TypeError(P.UTF8ToString(t,-1));return r&&(a.code=P.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},node_api_create_syntax_error:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(t).value;if("string"!=typeof s)return o.setLastError(3);var i=new SyntaxError(s);if(r){var u=d.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);i.code=u}n>>>=0;var f=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()},node_api_throw_syntax_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new SyntaxError(P.UTF8ToString(t,-1));return r&&(a.code=P.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function ge(e,r,t,n,o,s){t>>>=0;var i=d.envStore.get(e),u=ee(i,r,t,n,o);if(0!==u.status)return i.setLastError(u.status);var f=u.f;s>>>=0;var c=d.addToCurrentScope(f).id;return new DataView(a.buffer).setUint32(s,c,!0),i.getReturnStatus()}var ye=Object.freeze({__proto__:null,_emnapi_create_function:ge,napi_call_function:function(e,r,t,n,o,s){var i,u=0;if(!e)return 1;var f=d.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!r)return f.setLastError(1);if(n>>>=0,o>>>=0,s>>>=0,(n>>>=0)>0&&!o)return f.setLastError(1);var c=d.handleStore.get(r).value;if(!t)return f.setLastError(1);var l=d.handleStore.get(t).value;if("function"!=typeof l)return f.setLastError(1);for(var v=[],p=new DataView(a.buffer);u=10?23:10);s.clearLastError();try{return o&&n?ge(e,r,t,n,a,o):s.setLastError(1)}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_cb_info:function(e,r,t,n,o,s){if(!e)return 1;var i=d.envStore.get(e);if(!r)return i.setLastError(1);var u=d.scopeStore.get(r).callbackInfo;t>>>=0,n>>>=0;var f=new DataView(a.buffer);if(n){if(!t)return i.setLastError(1);var c=f.getUint32(t,!0);c>>>=0;for(var l=u.args.length,v=c>>=0;var y=i.ensureHandleId(u.thiz);f.setUint32(o,y,!0)}return s&&(s>>>=0,f.setUint32(s,u.data,!0)),i.clearLastError()},napi_get_new_target:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.scopeStore.get(r).callbackInfo,s=o.thiz,i=o.fn,u=null==s||null==s.constructor?0:s instanceof i?n.ensureHandleId(s.constructor):0;return new DataView(a.buffer).setUint32(t,u,!0),n.clearLastError()},napi_new_instance:function(e,r,t,n,o){var s,i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!r)return u.setLastError(1);if(t>>>=0,n>>>=0,o>>>=0,(t>>>=0)>0&&!n)return u.setLastError(1);if(!o)return u.setLastError(1);var f=d.handleStore.get(r).value;if("function"!=typeof f)return u.setLastError(1);var c=void 0,l=new DataView(a.buffer);if(d.feature.supportReflect){var v=Array(t);for(s=0;s>>=0,t>>>=0,d.addCleanupHook(n,r,t),0):n.setLastError(1)},napi_close_escapable_handle_scope:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?0===t.openHandleScopes?13:(d.closeScope(t),t.clearLastError()):t.setLastError(1)},napi_close_handle_scope:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?0===t.openHandleScopes?13:(d.closeScope(t),t.clearLastError()):t.setLastError(1)},napi_create_reference:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(r);if(o.moduleApiVersion<10&&!(s.isObject()||s.isFunction()||s.isSymbol()))return o.setLastError(1);var i=d.createReference(o,s.id,t>>>0,1);return n>>>=0,new DataView(a.buffer).setUint32(n,i.id,!0),o.clearLastError()},napi_delete_reference:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return r?(d.refStore.get(r).dispose(),t.clearLastError()):t.setLastError(1)},napi_escape_handle:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.scopeStore.get(r);if(!s.escapeCalled()){t>>>=0,n>>>=0;var i=s.escape(t),u=i?i.id:0;return new DataView(a.buffer).setUint32(n,u,!0),o.clearLastError()}return o.setLastError(12)},napi_get_reference_value:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.refStore.get(r).get(n);return t>>>=0,new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_open_escapable_handle_scope:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=d.openScope(t);return r>>>=0,new DataView(a.buffer).setUint32(r,n.id,!0),t.clearLastError()},napi_open_handle_scope:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=d.openScope(t);return r>>>=0,new DataView(a.buffer).setUint32(r,n.id,!0),t.clearLastError()},napi_reference_ref:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);var o=d.refStore.get(r).ref();return t&&(t>>>=0,new DataView(a.buffer).setUint32(t,o,!0)),n.clearLastError()},napi_reference_unref:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);var o=d.refStore.get(r);if(0===o.refcount())return n.setLastError(9);var s=o.unref();return t&&(t>>>=0,new DataView(a.buffer).setUint32(t,s,!0)),n.clearLastError()},napi_remove_env_cleanup_hook:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);return r?(r>>>=0,t>>>=0,d.removeCleanupHook(n,r,t),0):n.setLastError(1)}});var _e=Object.freeze({__proto__:null,_emnapi_get_filename:function(e,r,t){var n=d.envStore.get(e).filename;return r?P.stringToUTF8(n,r,t):P.lengthBytesUTF8(n)}});var Ee=Object.freeze({__proto__:null,napi_create_promise:function(e,r,t){var n,o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);var i=new DataView(a.buffer),u=new Promise(function(e,t){var a=d.createDeferred({resolve:e,reject:t});n=a.id,r>>>=0,i.setUint32(r,n,!0)});return t>>>=0,o=d.addToCurrentScope(u).id,i.setUint32(t,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_is_promise:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isPromise()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_reject_deferred:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{return r&&t?(d.deferredStore.get(r).reject(d.handleStore.get(t).value),n.getReturnStatus()):n.setLastError(1)}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_resolve_deferred:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{return r&&t?(d.deferredStore.get(r).resolve(d.handleStore.get(t).value),n.getReturnStatus()):n.setLastError(1)}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function we(e,r,t,n,o,s){var i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!s)return u.setLastError(1);if(!r)return u.setLastError(1);var f=d.handleStore.get(r);if(null==f.value)throw new TypeError("Cannot convert undefined or null to object");var c=void 0;try{c=f.isObject()||f.isFunction()?f.value:Object(f.value)}catch(e){return u.setLastError(2)}if(0!==t&&1!==t)return u.setLastError(1);if(0!==o&&1!==o)return u.setLastError(1);var l=[],v=void 0,p=void 0,g=void 0,y=!0,h=/^(0|[1-9][0-9]*)$/;do{for(v=Object.getOwnPropertyNames(c),p=Object.getOwnPropertySymbols(c),g=0;g>>=0,i=d.addToCurrentScope(_).id,new DataView(a.buffer).setUint32(s,i,!0),u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}}var Le=Object.freeze({__proto__:null,napi_define_properties:function(e,r,t,n){var o,s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(n>>>=0,t>>>=0,(t>>>=0)>0&&!n)return i.setLastError(1);if(!r)return i.setLastError(1);var u=d.handleStore.get(r),f=u.value;if(!u.isObject()&&!u.isFunction())return i.setLastError(2);for(var c=void 0,l=new DataView(a.buffer),v=0;v>>=0;var w=l.getUint32(o+28,!0);if(p)c=P.UTF8ToString(p,-1);else{if(!g)return i.setLastError(4);if("string"!=typeof(c=d.handleStore.get(g).value)&&"symbol"!=typeof c)return i.setLastError(4)}re(i,f,c,y,h,_,E,s,w)}return i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_delete_element:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isObject()&&!i.isFunction())return s.setLastError(2);if(d.feature.supportReflect)o=Reflect.deleteProperty(i.value,t>>>0);else try{o=delete i.value[t>>>0]}catch(e){o=!1}if(n)n>>>=0,new DataView(a.buffer).setInt8(n,o?1:0,!0);return s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_delete_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isObject()&&!i.isFunction())return s.setLastError(2);var u=d.handleStore.get(t).value;if(d.feature.supportReflect)o=Reflect.deleteProperty(i.value,u);else try{o=delete i.value[u]}catch(e){o=!1}if(n)n>>>=0,new DataView(a.buffer).setInt8(n,o?1:0,!0);return s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_all_property_names:we,napi_get_element:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return n>>>=0,o=s.ensureHandleId(u[t>>>0]),new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_named_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return t>>>=0,n>>>=0,o=s.ensureHandleId(u[P.UTF8ToString(t,-1)]),new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return n>>>=0,o=s.ensureHandleId(u[d.handleStore.get(t).value]),new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_property_names:function(e,r,t){return we(e,r,0,18,1,t)},napi_has_element:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return n>>>=0,o=t>>>0 in u?1:0,new DataView(a.buffer).setInt8(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_has_named_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return t>>>=0,n>>>=0,o=P.UTF8ToString(t,-1)in u,new DataView(a.buffer).setInt8(n,o?1:0,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_has_own_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}var f=d.handleStore.get(t).value;return"string"!=typeof f&&"symbol"!=typeof f?s.setLastError(4):(o=Object.prototype.hasOwnProperty.call(u,d.handleStore.get(t).value),n>>>=0,new DataView(a.buffer).setInt8(n,o?1:0,!0),s.getReturnStatus())}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_has_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return n>>>=0,o=d.handleStore.get(t).value in u?1:0,new DataView(a.buffer).setInt8(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_object_freeze:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=d.handleStore.get(r),a=n.value;return n.isObject()||n.isFunction()?(Object.freeze(a),t.getReturnStatus()):t.setLastError(2)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_object_seal:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=d.handleStore.get(r),a=n.value;return n.isObject()||n.isFunction()?(Object.seal(a),t.getReturnStatus()):t.setLastError(2)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_set_element:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=d.handleStore.get(r);return o.isObject()||o.isFunction()?(o.value[t>>>0]=d.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_set_named_property:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=d.handleStore.get(r);return o.isObject()||o.isFunction()?t?(t>>>=0,d.handleStore.get(r).value[P.UTF8ToString(t,-1)]=d.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(1):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_set_property:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!t)return a.setLastError(1);if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=d.handleStore.get(r);return o.isObject()||o.isFunction()?(o.value[d.handleStore.get(t).value]=d.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}}});var me=Object.freeze({__proto__:null,napi_run_script:function(e,r,t){var n,o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isString())return s.setLastError(3);var u=d.handleStore.get(5).value.eval(i.value);t>>>=0,o=s.ensureHandleId(u),new DataView(a.buffer).setUint32(t,o,!0),n=s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}return n}});var be=Object.freeze({__proto__:null,napi_coerce_to_bool:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);return t>>>=0,n=s.value?4:3,new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_number:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);if(s.isBigInt())throw new TypeError("Cannot convert a BigInt value to a number");return t>>>=0,n=d.addToCurrentScope(Number(s.value)).id,new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_object:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");return t>>>=0,n=o.ensureHandleId(Object(s.value)),new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_string:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);if(s.isSymbol())throw new TypeError("Cannot convert a Symbol value to a string");return t>>>=0,n=d.addToCurrentScope(String(s.value)).id,new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_detach_arraybuffer:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=d.handleStore.get(r).value;if(!(n instanceof ArrayBuffer))return"function"==typeof SharedArrayBuffer&&n instanceof SharedArrayBuffer?t.setLastError(20):t.setLastError(19);try{(new(0,d.feature.MessageChannel)).port1.postMessage(n,[n])}catch(e){return t.setLastError(9)}return t.clearLastError()},napi_instanceof:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!n)return s.setLastError(1);if(!t)return s.setLastError(1);n>>>=0;var i=new DataView(a.buffer);i.setInt8(n,0,!0);var u=d.handleStore.get(t);return u.isFunction()?(o=d.handleStore.get(r).value instanceof u.value?1:0,i.setInt8(n,o,!0),s.getReturnStatus()):s.setLastError(5)}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_is_array:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isArray()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_arraybuffer:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isArrayBuffer()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_buffer:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isBuffer(d.feature.Buffer)?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_dataview:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isDataView()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_date:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isDate()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_detached_arraybuffer:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);t>>>=0;var s=new DataView(a.buffer);if(o.isArrayBuffer()&&0===o.value.byteLength)try{new Uint8Array(o.value)}catch(e){return s.setInt8(t,1,!0),n.getReturnStatus()}return s.setInt8(t,0,!0),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_is_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).value instanceof Error?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_typedarray:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isTypedArray()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_strict_equals:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);if(!n)return s.setLastError(1);var i=d.handleStore.get(r).value,u=d.handleStore.get(t).value;return n>>>=0,o=i===u?1:0,new DataView(a.buffer).setInt8(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_typeof:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o,s=d.handleStore.get(r);if(t>>>=0,s.isNumber())o=3;else if(s.isBigInt())o=9;else if(s.isString())o=4;else if(s.isFunction())o=7;else if(s.isExternal())o=8;else if(s.isObject())o=6;else if(s.isBoolean())o=2;else if(s.isUndefined())o=0;else if(s.isSymbol())o=5;else{if(!s.isNull())return n.setLastError(1);o=1}return new DataView(a.buffer).setInt32(t,o,!0),n.clearLastError()},node_api_is_sharedarraybuffer:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);t>>>=0;var s="function"==typeof SharedArrayBuffer&&o.value instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(o.value)?1:0;return new DataView(a.buffer).setInt8(t,s,!0),n.clearLastError()}});var Se=Object.freeze({__proto__:null,napi_get_version:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return r?(new DataView(a.buffer).setUint32(r,10,!0),t.clearLastError()):t.setLastError(1)}});function Ae(e){for(var r=Object.keys(e),t=0;t>>=0,u>>>=0,e>>>=0,f>>>=0,c>>>=0,l>>>=0,v>>>=0,o>>>=0,0===(u>>>=0))return g.setLastError(1);if(!p)return g.setLastError(1);var y,h=0;if(r>>>=0){if("function"!=typeof d.handleStore.get(r).value)return g.setLastError(1);h=d.createReference(g,r,1,1).id}else if(!v)return g.setLastError(1);if(t){if(null==(y=d.handleStore.get(t).value))return g.setLastError(2);y=Object(y)}else y={};var _=g.ensureHandleId(y),E=d.handleStore.get(n).value;if("symbol"==typeof E)return g.setLastError(3);E=String(E);var w=g.ensureHandleId(E),L=G.offset.__size__,m=s(L);if(!m)return g.setLastError(9);m>>>=0,new Uint8Array(a.buffer).subarray(m,m+L).fill(0);var b=d.createReference(g,_,1,1),S=b.id,A=new DataView(a.buffer);return A.setUint32(m+G.offset.resource,S,!0),G.initQueue(m)?(j(_,w,-1,m+G.offset.async_id),A.setInt8(m+G.offset.is_some,1,!0),A.setUint32(m+G.offset.thread_count,u,!0),A.setUint32(m+G.offset.context,l,!0),A.setUint32(m+G.offset.max_queue_size,o,!0),A.setUint32(m+G.offset.ref,h,!0),A.setUint32(m+G.offset.env,e,!0),A.setUint32(m+G.offset.finalize_data,f,!0),A.setUint32(m+G.offset.finalize_cb,c,!0),A.setUint32(m+G.offset.call_js_cb,v,!0),d.addCleanupHook(g,G.cleanup,m),G._liveSet.add(m),g.ref(),d.increaseWaitingRequestCounter(),A.setUint32(m+G.offset.async_ref,1,!0),p>>>=0,A.setUint32(p,m,!0),g.clearLastError()):(i(m),b.dispose(),g.setLastError(9))},g.imports.napi.napi_get_threadsafe_function_context=function(e,r){if(!e||!r)return l(),1;e>>>=0,r>>>=0;var t=G.getContext(e);return new DataView(a.buffer).setUint32(r,t,!0),0},g.imports.napi.napi_call_threadsafe_function=function(e,r,t){return e?(e>>>=0,r>>>=0,G.push(e,r,t)):(l(),1)},g.imports.napi.napi_acquire_threadsafe_function=function(e){return e?(e>>>=0,G.getMutex(e).execute(function(){return 0===G.getState(e)?(G.addThreadCount(e),0):16})):(l(),1)},g.imports.napi.napi_release_threadsafe_function=function(e,r){if(!e)return l(),1;e>>>=0;var t=G.getMutex(e),n=G.getCond(e),a=!1,o=t.execute(function(){return 0===G.getThreadCount(e)?1:(G.subThreadCount(e),0!==G.getThreadCount(e)&&1!==r||0===G.getState(e)&&(1===r&&G.setState(e,1),1===G.getState(e)&&G.getMaxQueueSize(e)>0&&n.signal(),G.send(e)),2!==G.getState(e)||0!==G.getThreadCount(e)||(a=!0),0)});return a&&G.destroy(e),o},g.imports.napi.napi_unref_threadsafe_function=function(e,r){if(!r)return l(),1;var t=(r>>>=0)+G.offset.async_ref>>>2,n=new Uint32Array(a.buffer),o=Atomics.load(n,t);return o>0&&(Atomics.store(n,t,o-1),1===o&&d.decreaseWaitingRequestCounter()),0},g.imports.napi.napi_ref_threadsafe_function=function(e,r){if(!r)return l(),1;var t=(r>>>=0)+G.offset.async_ref>>>2,n=new Uint32Array(a.buffer),o=Atomics.load(n,t);return o||d.increaseWaitingRequestCounter(),Atomics.store(n,t,o+1),0},g}();return n}function o(r,t,n,o){const i=(o=null!=o?o:{}).getMemory,u=o.getTable,f=o.beforeInit;if(null!=i&&"function"!=typeof i)throw new TypeError("options.getMemory is not a function");if(null!=u&&"function"!=typeof u)throw new TypeError("options.getTable is not a function");if(null!=f&&"function"!=typeof f)throw new TypeError("options.beforeInit is not a function");let c;const l="object"==typeof t&&null!==t;if(l){if(t.loaded)throw new Error("napiModule has already loaded");c=t}else c=a(o);const d=o.wasi;let v,p={env:c.imports.env,napi:c.imports.napi,emnapi:c.imports.emnapi};d&&(v=new e.WASIThreads(c.childThread?{wasi:d,childThread:!0,postMessage:c.postMessage}:{wasi:d,threadManager:c.PThread,waitThreadStart:c.waitThreadStart}),Object.assign(p,"function"==typeof d.getImportObject?d.getImportObject():{wasi_snapshot_preview1:d.wasiImport}),Object.assign(p,v.getImportObject()));const g=o.overwriteImports;if("function"==typeof g){const e=g(p);"object"==typeof e&&null!==e&&(p=e)}return r(n,p,(e,t)=>{if(e)throw e;const n=t.instance;let a=n;const o=n.exports,g="memory"in o,y="memory"in p.env,h=i?i(o):g?o.memory:y?p.env.memory:void 0;if(!h)throw new Error("memory is neither exported nor imported");const _=u?u(o):o.__indirect_function_table;if(d&&!g){const e=Object.create(null);Object.assign(e,o,{memory:h}),a={exports:e}}const E=t.module;d?a=v.initialize(a,E,h):c.PThread.setup(E,h);const w=()=>{f&&f({instance:n,module:E}),c.init({instance:a,module:E,memory:h,table:_});const e={instance:n,module:E,usedInstance:a};return l||(e.napiModule=c),e};if(c.PThread.shouldPreloadWorkers()){const e=c.PThread.loadWasmModuleToAllWorkers();if(r===s)return e.then(w);throw new Error("Synchronous loading is not supported with worker pool (reuseWorker.size > 0)")}return w()})}function s(e,r,t){return n(e,r).then(e=>t(null,e),e=>t(e))}function i(e,n,a){let o;try{o=function(e,n){if(!e)throw new TypeError("Invalid wasm source");let a;if(t(n),n=null!=n?n:{},e instanceof ArrayBuffer||ArrayBuffer.isView(e))a=new r.Module(e);else{if(!(e instanceof WebAssembly.Module))throw new TypeError("Invalid wasm source");a=e}return{instance:new r.Instance(a,n),module:a}}(e,n)}catch(e){return a(e)}return a(null,o)}class u extends e.ThreadMessageHandler{constructor(e){if("function"!=typeof e.onLoad)throw new TypeError("options.onLoad is not a function");const r=e.onError;super({...e,onError:(e,t)=>{var n;const a=null===(n=this.instance)||void 0===n?void 0:n.exports.emnapi_thread_crashed;if("function"==typeof a&&a(),"function"!=typeof r)throw e;r(e,t)}}),this.napiModule=void 0}instantiate(e){const r=this.onLoad(e);return"function"==typeof r.then?r.then(e=>(this.napiModule=e.napiModule,e)):(this.napiModule=r.napiModule,r)}handle(e){var r;if(super.handle(e),null===(r=null==e?void 0:e.data)||void 0===r?void 0:r.__emnapi__){const r=e.data.__emnapi__.type,t=e.data.__emnapi__.payload;try{"async-worker-init"===r&&this.handleAfterLoad(e,()=>{this.napiModule.initWorker(t.arg,t.func)})}catch(e){this.onError(e,r)}}}}exports.MessageHandler=u,exports.createNapiModule=a,exports.instantiateNapiModule=function(e,r){return o(s,void 0,e,r)},exports.instantiateNapiModuleSync=function(e,r){return o(i,void 0,e,r)},exports.loadNapiModule=function(e,r,t){if("object"!=typeof e||null===e)throw new TypeError("Invalid napiModule");return o(s,e,r,t)},exports.loadNapiModuleSync=function(e,r,t){if("object"!=typeof e||null===e)throw new TypeError("Invalid napiModule");return o(i,e,r,t)},exports.version="1.10.0",Object.keys(e).forEach(function(r){"default"===r||Object.prototype.hasOwnProperty.call(exports,r)||Object.defineProperty(exports,r,{enumerable:!0,get:function(){return e[r]}})});
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.d.mts b/node_modules/@emnapi/core/dist/emnapi-core.d.mts
new file mode 100644
index 00000000..0ec6eb84
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.d.mts
@@ -0,0 +1,420 @@
+///
+
+import type { Context } from '@emnapi/runtime';
+import type { ReferenceOwnership } from '@emnapi/runtime';
+import type { Worker as Worker_2 } from 'worker_threads';
+
+/** @public */
+export declare type BaseCreateOptions = {
+ filename?: string
+ nodeBinding?: NodeBinding
+ reuseWorker?: ThreadManagerOptionsMain['reuseWorker']
+ asyncWorkPoolSize?: number
+ waitThreadStart?: MainThreadBaseOptions['waitThreadStart']
+ onCreateWorker?: (info: CreateWorkerInfo) => any
+ print?: (str: string) => void
+ printErr?: (str: string) => void
+ postMessage?: (msg: any) => any
+}
+
+/** @public */
+export declare interface BaseOptions {
+ wasi: WASIInstance;
+ version?: 'preview1';
+ wasm64?: boolean;
+}
+
+/** @public */
+export declare interface ChildThreadOptions extends BaseOptions {
+ childThread: true;
+ postMessage?: (data: any) => void;
+}
+
+/** @public */
+export declare interface CleanupThreadPayload {
+ tid: number;
+}
+
+/** @public */
+export declare interface CommandInfo {
+ type: T;
+ payload: CommandPayloadMap[T];
+}
+
+/** @public */
+export declare interface CommandPayloadMap {
+ load: LoadPayload;
+ loaded: LoadedPayload;
+ start: StartPayload;
+ 'cleanup-thread': CleanupThreadPayload;
+ 'terminate-all-threads': TerminateAllThreadsPayload;
+ 'spawn-thread': SpawnThreadPayload;
+}
+
+/** @public */
+export declare type CommandType = keyof CommandPayloadMap;
+
+/** @public */
+export declare function createInstanceProxy(instance: WebAssembly.Instance, memory?: WebAssembly.Memory | (() => WebAssembly.Memory)): WebAssembly.Instance;
+
+/** @public */
+export declare function createNapiModule (
+options: CreateOptions
+): NapiModule
+
+/** @public */
+export declare type CreateOptions = BaseCreateOptions & ({
+ context: Context
+ childThread?: boolean
+} | {
+ context?: Context
+ childThread: true
+})
+
+/** @public */
+export declare interface CreateWorkerInfo {
+ type: 'thread' | 'async-work'
+ name: string
+}
+
+/** @public */
+export declare interface InitOptions {
+ instance: WebAssembly.Instance
+ module: WebAssembly.Module
+ memory?: WebAssembly.Memory
+ table?: WebAssembly.Table
+}
+
+export declare type InputType = string | URL | Response | BufferSource | WebAssembly.Module;
+
+/** @public */
+export declare interface InstantiatedSource extends LoadedSource {
+ napiModule: NapiModule;
+}
+
+/** @public */
+export declare function instantiateNapiModule(
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput: InputType | Promise, options: InstantiateOptions): Promise;
+
+/** @public */
+export declare function instantiateNapiModuleSync(wasmInput: BufferSource | WebAssembly.Module, options: InstantiateOptions): InstantiatedSource;
+
+/** @public */
+export declare type InstantiateOptions = CreateOptions & LoadOptions;
+
+/** @public */
+export declare function isSharedArrayBuffer(value: any): value is SharedArrayBuffer;
+
+/** @public */
+export declare function isTrapError(e: Error): e is WebAssembly.RuntimeError;
+
+/** @public */
+export declare interface LoadedPayload {
+}
+
+/** @public */
+export declare interface LoadedSource extends WebAssembly.WebAssemblyInstantiatedSource {
+ usedInstance: WebAssembly.Instance;
+}
+
+/** @public */
+export declare function loadNapiModule(napiModule: NapiModule,
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput: InputType | Promise, options?: LoadOptions): Promise;
+
+/** @public */
+export declare function loadNapiModuleSync(napiModule: NapiModule, wasmInput: BufferSource | WebAssembly.Module, options?: LoadOptions): LoadedSource;
+
+/** @public */
+export declare interface LoadOptions {
+ wasi?: WASIInstance;
+ overwriteImports?: (importObject: WebAssembly.Imports) => WebAssembly.Imports;
+ beforeInit?: (source: WebAssembly.WebAssemblyInstantiatedSource) => void;
+ getMemory?: (exports: WebAssembly.Exports) => WebAssembly.Memory;
+ getTable?: (exports: WebAssembly.Exports) => WebAssembly.Table;
+}
+
+/** @public */
+export declare interface LoadPayload {
+ wasmModule: WebAssembly.Module;
+ wasmMemory: WebAssembly.Memory;
+ sab?: Int32Array;
+}
+
+/** @public */
+export declare interface MainThreadBaseOptions extends BaseOptions {
+ waitThreadStart?: boolean | number;
+}
+
+/** @public */
+export declare type MainThreadOptions = MainThreadOptionsWithThreadManager | MainThreadOptionsCreateThreadManager;
+
+/** @public */
+export declare interface MainThreadOptionsCreateThreadManager extends MainThreadBaseOptions, ThreadManagerOptionsMain {
+}
+
+/** @public */
+export declare interface MainThreadOptionsWithThreadManager extends MainThreadBaseOptions {
+ threadManager?: ThreadManager | (() => ThreadManager);
+}
+
+/** @public */
+export declare interface MessageEventData {
+ __emnapi__: CommandInfo;
+}
+
+/** @public */
+export declare class MessageHandler extends ThreadMessageHandler {
+ napiModule: NapiModule | undefined;
+ constructor(options: MessageHandlerOptions);
+ instantiate(data: LoadPayload): InstantiatedSource | PromiseLike;
+ handle(e: WorkerMessageEvent): void;
+}
+
+/** @public */
+export declare interface MessageHandlerOptions extends ThreadMessageHandlerOptions {
+ onLoad: (data: LoadPayload) => InstantiatedSource | PromiseLike;
+}
+
+/** @public */
+export declare interface NapiModule {
+ imports: {
+ env: any
+ napi: any
+ emnapi: any
+ }
+ exports: any
+ loaded: boolean
+ filename: string
+ childThread: boolean
+ emnapi: {
+ syncMemory (
+ js_to_wasm: boolean,
+ arrayBufferOrView: T,
+ offset?: number,
+ len?: number
+ ): T
+ getMemoryAddress (arrayBufferOrView: ArrayBuffer | ArrayBufferView): PointerInfo
+ addSendListener (worker: any): boolean
+ }
+
+ init (options: InitOptions): any
+ initWorker (arg: number, func: [number, number]): void
+ postMessage?: (msg: any) => any
+
+ waitThreadStart: boolean | number
+ /* Excluded from this release type: PThread */}
+
+/** @public */
+export declare interface NodeBinding {
+ node: {
+ emitAsyncInit: Function
+ emitAsyncDestroy: Function
+ makeCallback: Function
+ }
+ napi: {
+ asyncInit: Function
+ asyncDestroy: Function
+ makeCallback: Function
+ }
+}
+
+/** @public */
+export declare interface PointerInfo {
+ address: number
+ ownership: ReferenceOwnership
+ runtimeAllocated: 0 | 1
+}
+
+/** @public */
+export declare interface ReuseWorkerOptions {
+ /**
+ * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size | PTHREAD_POOL_SIZE}
+ */
+ size: number;
+ /**
+ * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size-strict | PTHREAD_POOL_SIZE_STRICT}
+ */
+ strict?: boolean;
+}
+
+/** @public */
+export declare interface SpawnThreadPayload {
+ startArg: number;
+ errorOrTid: number;
+}
+
+/** @public */
+export declare interface StartPayload {
+ tid: number;
+ arg: number;
+ sab?: Int32Array;
+}
+
+/** @public */
+export declare interface StartResult {
+ exitCode: number;
+ instance: WebAssembly.Instance;
+}
+
+/** @public */
+export declare interface TerminateAllThreadsPayload {
+}
+
+/** @public */
+export declare class ThreadManager {
+ unusedWorkers: WorkerLike[];
+ runningWorkers: WorkerLike[];
+ pthreads: Record;
+ get nextWorkerID(): number;
+ wasmModule: WebAssembly.Module | null;
+ wasmMemory: WebAssembly.Memory | null;
+ private readonly messageEvents;
+ private readonly _childThread;
+ private readonly _onCreateWorker;
+ private readonly _reuseWorker;
+ private readonly _beforeLoad?;
+ /* Excluded from this release type: printErr */
+ threadSpawn?: ((startArg: number, errorOrTid?: number) => number);
+ constructor(options: ThreadManagerOptions);
+ init(): void;
+ initMainThread(): void;
+ private preparePool;
+ shouldPreloadWorkers(): boolean;
+ loadWasmModuleToAllWorkers(): Promise;
+ preloadWorkers(): Promise;
+ setup(wasmModule: WebAssembly.Module, wasmMemory: WebAssembly.Memory): void;
+ markId(worker: WorkerLike): number;
+ returnWorkerToPool(worker: WorkerLike): void;
+ loadWasmModuleToWorker(worker: WorkerLike, sab?: Int32Array): Promise;
+ allocateUnusedWorker(): WorkerLike;
+ getNewWorker(sab?: Int32Array): WorkerLike | undefined;
+ cleanThread(worker: WorkerLike, tid: number, force?: boolean): void;
+ terminateWorker(worker: WorkerLike): void;
+ terminateAllThreads(): void;
+ addMessageEventListener(worker: WorkerLike, onMessage: (e: WorkerMessageEvent) => void): () => void;
+ fireMessageEvent(worker: WorkerLike, e: WorkerMessageEvent): void;
+}
+
+/** @public */
+export declare type ThreadManagerOptions = ThreadManagerOptionsMain | ThreadManagerOptionsChild;
+
+/** @public */
+export declare interface ThreadManagerOptionsBase {
+ printErr?: (message: string) => void;
+ threadSpawn?: (startArg: number, errorOrTid?: number) => number;
+}
+
+/** @public */
+export declare interface ThreadManagerOptionsChild extends ThreadManagerOptionsBase {
+ childThread: true;
+}
+
+/** @public */
+export declare interface ThreadManagerOptionsMain extends ThreadManagerOptionsBase {
+ beforeLoad?: (worker: WorkerLike) => any;
+ reuseWorker?: boolean | number | ReuseWorkerOptions;
+ onCreateWorker: WorkerFactory;
+ childThread?: false;
+}
+
+/** @public */
+export declare class ThreadMessageHandler {
+ protected instance: WebAssembly.Instance | undefined;
+ private messagesBeforeLoad;
+ protected postMessage: (message: any) => void;
+ protected onLoad?: (data: LoadPayload) => WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ protected onError: (error: Error, type: WorkerMessageType) => void;
+ constructor(options?: ThreadMessageHandlerOptions);
+ /** @virtual */
+ instantiate(data: LoadPayload): WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ /** @virtual */
+ handle(e: WorkerMessageEvent>): void;
+ private _load;
+ private _start;
+ protected _loaded(err: Error | null, source: WebAssembly.WebAssemblyInstantiatedSource | null, payload: LoadPayload): void;
+ protected handleAfterLoad(e: E, f: (e: E) => void): void;
+}
+
+/** @public */
+export declare interface ThreadMessageHandlerOptions {
+ onLoad?: (data: LoadPayload) => WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ onError?: (error: Error, type: WorkerMessageType) => void;
+ postMessage?: (message: any) => void;
+}
+
+export declare const version: string;
+
+/** @public */
+export declare interface WASIInstance {
+ readonly wasiImport?: Record;
+ initialize(instance: object): void;
+ start(instance: object): number;
+ getImportObject?(): any;
+}
+
+/** @public */
+export declare class WASIThreads {
+ PThread: ThreadManager | undefined;
+ private wasmMemory;
+ private wasmInstance;
+ private readonly threadSpawn;
+ readonly childThread: boolean;
+ private readonly postMessage;
+ readonly wasi: WASIInstance;
+ constructor(options: WASIThreadsOptions);
+ getImportObject(): {
+ wasi: WASIThreadsImports;
+ };
+ setup(wasmInstance: WebAssembly.Instance, wasmModule: WebAssembly.Module, wasmMemory?: WebAssembly.Memory): void;
+ preloadWorkers(): Promise;
+ /**
+ * It's ok to call this method to a WASI command module.
+ *
+ * in child thread, must call this method instead of {@link WASIThreads.start} even if it's a WASI command module
+ *
+ * @returns A proxied WebAssembly instance if in child thread, other wise the original instance
+ */
+ initialize(instance: WebAssembly.Instance, module: WebAssembly.Module, memory?: WebAssembly.Memory): WebAssembly.Instance;
+ /**
+ * Equivalent to calling {@link WASIThreads.initialize} and then calling {@link WASIInstance.start}
+ * ```js
+ * this.initialize(instance, module, memory)
+ * this.wasi.start(instance)
+ * ```
+ */
+ start(instance: WebAssembly.Instance, module: WebAssembly.Module, memory?: WebAssembly.Memory): StartResult;
+ terminateAllThreads(): void;
+}
+
+/** @public */
+export declare interface WASIThreadsImports {
+ 'thread-spawn': (startArg: number, errorOrTid?: number) => number;
+}
+
+/** @public */
+export declare type WASIThreadsOptions = MainThreadOptions | ChildThreadOptions;
+
+/** @public */
+export declare type WorkerFactory = (ctx: {
+ type: string;
+ name: string;
+}) => WorkerLike;
+
+/** @public */
+export declare type WorkerLike = (Worker | Worker_2) & {
+ whenLoaded?: Promise;
+ loaded?: boolean;
+ __emnapi_tid?: number;
+};
+
+/** @public */
+export declare interface WorkerMessageEvent {
+ data: T;
+}
+
+/** @public */
+export declare type WorkerMessageType = 'load' | 'start';
+
+export { }
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.d.ts b/node_modules/@emnapi/core/dist/emnapi-core.d.ts
new file mode 100644
index 00000000..06df18d3
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.d.ts
@@ -0,0 +1,422 @@
+///
+
+import type { Context } from '@emnapi/runtime';
+import type { ReferenceOwnership } from '@emnapi/runtime';
+import type { Worker as Worker_2 } from 'worker_threads';
+
+/** @public */
+export declare type BaseCreateOptions = {
+ filename?: string
+ nodeBinding?: NodeBinding
+ reuseWorker?: ThreadManagerOptionsMain['reuseWorker']
+ asyncWorkPoolSize?: number
+ waitThreadStart?: MainThreadBaseOptions['waitThreadStart']
+ onCreateWorker?: (info: CreateWorkerInfo) => any
+ print?: (str: string) => void
+ printErr?: (str: string) => void
+ postMessage?: (msg: any) => any
+}
+
+/** @public */
+export declare interface BaseOptions {
+ wasi: WASIInstance;
+ version?: 'preview1';
+ wasm64?: boolean;
+}
+
+/** @public */
+export declare interface ChildThreadOptions extends BaseOptions {
+ childThread: true;
+ postMessage?: (data: any) => void;
+}
+
+/** @public */
+export declare interface CleanupThreadPayload {
+ tid: number;
+}
+
+/** @public */
+export declare interface CommandInfo {
+ type: T;
+ payload: CommandPayloadMap[T];
+}
+
+/** @public */
+export declare interface CommandPayloadMap {
+ load: LoadPayload;
+ loaded: LoadedPayload;
+ start: StartPayload;
+ 'cleanup-thread': CleanupThreadPayload;
+ 'terminate-all-threads': TerminateAllThreadsPayload;
+ 'spawn-thread': SpawnThreadPayload;
+}
+
+/** @public */
+export declare type CommandType = keyof CommandPayloadMap;
+
+/** @public */
+export declare function createInstanceProxy(instance: WebAssembly.Instance, memory?: WebAssembly.Memory | (() => WebAssembly.Memory)): WebAssembly.Instance;
+
+/** @public */
+export declare function createNapiModule (
+options: CreateOptions
+): NapiModule
+
+/** @public */
+export declare type CreateOptions = BaseCreateOptions & ({
+ context: Context
+ childThread?: boolean
+} | {
+ context?: Context
+ childThread: true
+})
+
+/** @public */
+export declare interface CreateWorkerInfo {
+ type: 'thread' | 'async-work'
+ name: string
+}
+
+/** @public */
+export declare interface InitOptions {
+ instance: WebAssembly.Instance
+ module: WebAssembly.Module
+ memory?: WebAssembly.Memory
+ table?: WebAssembly.Table
+}
+
+export declare type InputType = string | URL | Response | BufferSource | WebAssembly.Module;
+
+/** @public */
+export declare interface InstantiatedSource extends LoadedSource {
+ napiModule: NapiModule;
+}
+
+/** @public */
+export declare function instantiateNapiModule(
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput: InputType | Promise, options: InstantiateOptions): Promise;
+
+/** @public */
+export declare function instantiateNapiModuleSync(wasmInput: BufferSource | WebAssembly.Module, options: InstantiateOptions): InstantiatedSource;
+
+/** @public */
+export declare type InstantiateOptions = CreateOptions & LoadOptions;
+
+/** @public */
+export declare function isSharedArrayBuffer(value: any): value is SharedArrayBuffer;
+
+/** @public */
+export declare function isTrapError(e: Error): e is WebAssembly.RuntimeError;
+
+/** @public */
+export declare interface LoadedPayload {
+}
+
+/** @public */
+export declare interface LoadedSource extends WebAssembly.WebAssemblyInstantiatedSource {
+ usedInstance: WebAssembly.Instance;
+}
+
+/** @public */
+export declare function loadNapiModule(napiModule: NapiModule,
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput: InputType | Promise, options?: LoadOptions): Promise;
+
+/** @public */
+export declare function loadNapiModuleSync(napiModule: NapiModule, wasmInput: BufferSource | WebAssembly.Module, options?: LoadOptions): LoadedSource;
+
+/** @public */
+export declare interface LoadOptions {
+ wasi?: WASIInstance;
+ overwriteImports?: (importObject: WebAssembly.Imports) => WebAssembly.Imports;
+ beforeInit?: (source: WebAssembly.WebAssemblyInstantiatedSource) => void;
+ getMemory?: (exports: WebAssembly.Exports) => WebAssembly.Memory;
+ getTable?: (exports: WebAssembly.Exports) => WebAssembly.Table;
+}
+
+/** @public */
+export declare interface LoadPayload {
+ wasmModule: WebAssembly.Module;
+ wasmMemory: WebAssembly.Memory;
+ sab?: Int32Array;
+}
+
+/** @public */
+export declare interface MainThreadBaseOptions extends BaseOptions {
+ waitThreadStart?: boolean | number;
+}
+
+/** @public */
+export declare type MainThreadOptions = MainThreadOptionsWithThreadManager | MainThreadOptionsCreateThreadManager;
+
+/** @public */
+export declare interface MainThreadOptionsCreateThreadManager extends MainThreadBaseOptions, ThreadManagerOptionsMain {
+}
+
+/** @public */
+export declare interface MainThreadOptionsWithThreadManager extends MainThreadBaseOptions {
+ threadManager?: ThreadManager | (() => ThreadManager);
+}
+
+/** @public */
+export declare interface MessageEventData {
+ __emnapi__: CommandInfo;
+}
+
+/** @public */
+export declare class MessageHandler extends ThreadMessageHandler {
+ napiModule: NapiModule | undefined;
+ constructor(options: MessageHandlerOptions);
+ instantiate(data: LoadPayload): InstantiatedSource | PromiseLike;
+ handle(e: WorkerMessageEvent): void;
+}
+
+/** @public */
+export declare interface MessageHandlerOptions extends ThreadMessageHandlerOptions {
+ onLoad: (data: LoadPayload) => InstantiatedSource | PromiseLike;
+}
+
+/** @public */
+export declare interface NapiModule {
+ imports: {
+ env: any
+ napi: any
+ emnapi: any
+ }
+ exports: any
+ loaded: boolean
+ filename: string
+ childThread: boolean
+ emnapi: {
+ syncMemory (
+ js_to_wasm: boolean,
+ arrayBufferOrView: T,
+ offset?: number,
+ len?: number
+ ): T
+ getMemoryAddress (arrayBufferOrView: ArrayBuffer | ArrayBufferView): PointerInfo
+ addSendListener (worker: any): boolean
+ }
+
+ init (options: InitOptions): any
+ initWorker (arg: number, func: [number, number]): void
+ postMessage?: (msg: any) => any
+
+ waitThreadStart: boolean | number
+ /* Excluded from this release type: PThread */}
+
+/** @public */
+export declare interface NodeBinding {
+ node: {
+ emitAsyncInit: Function
+ emitAsyncDestroy: Function
+ makeCallback: Function
+ }
+ napi: {
+ asyncInit: Function
+ asyncDestroy: Function
+ makeCallback: Function
+ }
+}
+
+/** @public */
+export declare interface PointerInfo {
+ address: number
+ ownership: ReferenceOwnership
+ runtimeAllocated: 0 | 1
+}
+
+/** @public */
+export declare interface ReuseWorkerOptions {
+ /**
+ * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size | PTHREAD_POOL_SIZE}
+ */
+ size: number;
+ /**
+ * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size-strict | PTHREAD_POOL_SIZE_STRICT}
+ */
+ strict?: boolean;
+}
+
+/** @public */
+export declare interface SpawnThreadPayload {
+ startArg: number;
+ errorOrTid: number;
+}
+
+/** @public */
+export declare interface StartPayload {
+ tid: number;
+ arg: number;
+ sab?: Int32Array;
+}
+
+/** @public */
+export declare interface StartResult {
+ exitCode: number;
+ instance: WebAssembly.Instance;
+}
+
+/** @public */
+export declare interface TerminateAllThreadsPayload {
+}
+
+/** @public */
+export declare class ThreadManager {
+ unusedWorkers: WorkerLike[];
+ runningWorkers: WorkerLike[];
+ pthreads: Record;
+ get nextWorkerID(): number;
+ wasmModule: WebAssembly.Module | null;
+ wasmMemory: WebAssembly.Memory | null;
+ private readonly messageEvents;
+ private readonly _childThread;
+ private readonly _onCreateWorker;
+ private readonly _reuseWorker;
+ private readonly _beforeLoad?;
+ /* Excluded from this release type: printErr */
+ threadSpawn?: ((startArg: number, errorOrTid?: number) => number);
+ constructor(options: ThreadManagerOptions);
+ init(): void;
+ initMainThread(): void;
+ private preparePool;
+ shouldPreloadWorkers(): boolean;
+ loadWasmModuleToAllWorkers(): Promise;
+ preloadWorkers(): Promise;
+ setup(wasmModule: WebAssembly.Module, wasmMemory: WebAssembly.Memory): void;
+ markId(worker: WorkerLike): number;
+ returnWorkerToPool(worker: WorkerLike): void;
+ loadWasmModuleToWorker(worker: WorkerLike, sab?: Int32Array): Promise;
+ allocateUnusedWorker(): WorkerLike;
+ getNewWorker(sab?: Int32Array): WorkerLike | undefined;
+ cleanThread(worker: WorkerLike, tid: number, force?: boolean): void;
+ terminateWorker(worker: WorkerLike): void;
+ terminateAllThreads(): void;
+ addMessageEventListener(worker: WorkerLike, onMessage: (e: WorkerMessageEvent) => void): () => void;
+ fireMessageEvent(worker: WorkerLike, e: WorkerMessageEvent): void;
+}
+
+/** @public */
+export declare type ThreadManagerOptions = ThreadManagerOptionsMain | ThreadManagerOptionsChild;
+
+/** @public */
+export declare interface ThreadManagerOptionsBase {
+ printErr?: (message: string) => void;
+ threadSpawn?: (startArg: number, errorOrTid?: number) => number;
+}
+
+/** @public */
+export declare interface ThreadManagerOptionsChild extends ThreadManagerOptionsBase {
+ childThread: true;
+}
+
+/** @public */
+export declare interface ThreadManagerOptionsMain extends ThreadManagerOptionsBase {
+ beforeLoad?: (worker: WorkerLike) => any;
+ reuseWorker?: boolean | number | ReuseWorkerOptions;
+ onCreateWorker: WorkerFactory;
+ childThread?: false;
+}
+
+/** @public */
+export declare class ThreadMessageHandler {
+ protected instance: WebAssembly.Instance | undefined;
+ private messagesBeforeLoad;
+ protected postMessage: (message: any) => void;
+ protected onLoad?: (data: LoadPayload) => WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ protected onError: (error: Error, type: WorkerMessageType) => void;
+ constructor(options?: ThreadMessageHandlerOptions);
+ /** @virtual */
+ instantiate(data: LoadPayload): WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ /** @virtual */
+ handle(e: WorkerMessageEvent>): void;
+ private _load;
+ private _start;
+ protected _loaded(err: Error | null, source: WebAssembly.WebAssemblyInstantiatedSource | null, payload: LoadPayload): void;
+ protected handleAfterLoad(e: E, f: (e: E) => void): void;
+}
+
+/** @public */
+export declare interface ThreadMessageHandlerOptions {
+ onLoad?: (data: LoadPayload) => WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ onError?: (error: Error, type: WorkerMessageType) => void;
+ postMessage?: (message: any) => void;
+}
+
+export declare const version: string;
+
+/** @public */
+export declare interface WASIInstance {
+ readonly wasiImport?: Record;
+ initialize(instance: object): void;
+ start(instance: object): number;
+ getImportObject?(): any;
+}
+
+/** @public */
+export declare class WASIThreads {
+ PThread: ThreadManager | undefined;
+ private wasmMemory;
+ private wasmInstance;
+ private readonly threadSpawn;
+ readonly childThread: boolean;
+ private readonly postMessage;
+ readonly wasi: WASIInstance;
+ constructor(options: WASIThreadsOptions);
+ getImportObject(): {
+ wasi: WASIThreadsImports;
+ };
+ setup(wasmInstance: WebAssembly.Instance, wasmModule: WebAssembly.Module, wasmMemory?: WebAssembly.Memory): void;
+ preloadWorkers(): Promise;
+ /**
+ * It's ok to call this method to a WASI command module.
+ *
+ * in child thread, must call this method instead of {@link WASIThreads.start} even if it's a WASI command module
+ *
+ * @returns A proxied WebAssembly instance if in child thread, other wise the original instance
+ */
+ initialize(instance: WebAssembly.Instance, module: WebAssembly.Module, memory?: WebAssembly.Memory): WebAssembly.Instance;
+ /**
+ * Equivalent to calling {@link WASIThreads.initialize} and then calling {@link WASIInstance.start}
+ * ```js
+ * this.initialize(instance, module, memory)
+ * this.wasi.start(instance)
+ * ```
+ */
+ start(instance: WebAssembly.Instance, module: WebAssembly.Module, memory?: WebAssembly.Memory): StartResult;
+ terminateAllThreads(): void;
+}
+
+/** @public */
+export declare interface WASIThreadsImports {
+ 'thread-spawn': (startArg: number, errorOrTid?: number) => number;
+}
+
+/** @public */
+export declare type WASIThreadsOptions = MainThreadOptions | ChildThreadOptions;
+
+/** @public */
+export declare type WorkerFactory = (ctx: {
+ type: string;
+ name: string;
+}) => WorkerLike;
+
+/** @public */
+export declare type WorkerLike = (Worker | Worker_2) & {
+ whenLoaded?: Promise;
+ loaded?: boolean;
+ __emnapi_tid?: number;
+};
+
+/** @public */
+export declare interface WorkerMessageEvent {
+ data: T;
+}
+
+/** @public */
+export declare type WorkerMessageType = 'load' | 'start';
+
+export { }
+
+export as namespace emnapiCore;
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js b/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js
new file mode 100644
index 00000000..7ba54260
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.esm-bundler.js
@@ -0,0 +1,8228 @@
+import { ThreadManager, WASIThreads, ThreadMessageHandler } from '@emnapi/wasi-threads';
+export * from '@emnapi/wasi-threads';
+import { __extends, __assign } from 'tslib';
+
+/* eslint-disable no-undef */
+var _WebAssembly = typeof WebAssembly !== 'undefined'
+ ? WebAssembly
+ : typeof WXWebAssembly !== 'undefined'
+ ? WXWebAssembly
+ : undefined;
+function validateImports(imports) {
+ if (imports && typeof imports !== 'object') {
+ throw new TypeError('imports must be an object or undefined');
+ }
+ return true;
+}
+function load(wasmInput, imports) {
+ if (!wasmInput)
+ throw new TypeError('Invalid wasm source');
+ validateImports(imports);
+ imports = imports !== null && imports !== void 0 ? imports : {};
+ // Promise
+ try {
+ var then = typeof wasmInput === 'object' && wasmInput !== null && 'then' in wasmInput ? wasmInput.then : undefined;
+ if (typeof then === 'function') {
+ return then.call(wasmInput, function (input) { return load(input, imports); });
+ }
+ }
+ catch (_) { }
+ // BufferSource
+ if (wasmInput instanceof ArrayBuffer || ArrayBuffer.isView(wasmInput)) {
+ return _WebAssembly.instantiate(wasmInput, imports);
+ }
+ // WebAssembly.Module
+ if (wasmInput instanceof _WebAssembly.Module) {
+ return _WebAssembly.instantiate(wasmInput, imports).then(function (instance) {
+ return { instance: instance, module: wasmInput };
+ });
+ }
+ // Response
+ if (typeof Response !== 'undefined' && wasmInput instanceof Response) {
+ return wasmInput.arrayBuffer().then(function (buffer) {
+ return _WebAssembly.instantiate(buffer, imports);
+ });
+ }
+ // string | URL
+ var inputIsString = typeof wasmInput === 'string';
+ if (inputIsString || (typeof URL !== 'undefined' && wasmInput instanceof URL)) {
+ if (inputIsString && typeof wx !== 'undefined' && typeof __wxConfig !== 'undefined') {
+ return _WebAssembly.instantiate(wasmInput, imports);
+ }
+ if (typeof fetch !== 'function') {
+ throw new TypeError('wasm source can not be a string or URL in this environment');
+ }
+ if (typeof _WebAssembly.instantiateStreaming === 'function') {
+ try {
+ return _WebAssembly.instantiateStreaming(fetch(wasmInput), imports).catch(function () {
+ return load(fetch(wasmInput), imports);
+ });
+ }
+ catch (_) {
+ return load(fetch(wasmInput), imports);
+ }
+ }
+ else {
+ return load(fetch(wasmInput), imports);
+ }
+ }
+ throw new TypeError('Invalid wasm source');
+}
+function loadSync(wasmInput, imports) {
+ if (!wasmInput)
+ throw new TypeError('Invalid wasm source');
+ validateImports(imports);
+ imports = imports !== null && imports !== void 0 ? imports : {};
+ var module;
+ if ((wasmInput instanceof ArrayBuffer) || ArrayBuffer.isView(wasmInput)) {
+ module = new _WebAssembly.Module(wasmInput);
+ }
+ else if (wasmInput instanceof WebAssembly.Module) {
+ module = wasmInput;
+ }
+ else {
+ throw new TypeError('Invalid wasm source');
+ }
+ var instance = new _WebAssembly.Instance(module, imports);
+ var source = { instance: instance, module: module };
+ return source;
+}
+
+function createNapiModule(options) {
+ var napiModule = (function () {
+ var ENVIRONMENT_IS_NODE = typeof process === 'object' && process !== null && typeof process.versions === 'object' && process.versions !== null && typeof process.versions.node === 'string';
+ var ENVIRONMENT_IS_PTHREAD = Boolean(options.childThread);
+ var waitThreadStart = typeof options.waitThreadStart === 'number' ? options.waitThreadStart : Boolean(options.waitThreadStart);
+ var wasmInstance;
+ var wasmMemory;
+ var wasmTable;
+ var _malloc;
+ var _free;
+ function abort(msg) {
+ if (typeof _WebAssembly.RuntimeError === 'function') {
+ throw new _WebAssembly.RuntimeError(msg);
+ }
+ throw Error(msg);
+ }
+ var napiModule = {
+ imports: {
+ env: {},
+ napi: {},
+ emnapi: {}
+ },
+ exports: {},
+ emnapi: {},
+ loaded: false,
+ filename: '',
+ childThread: ENVIRONMENT_IS_PTHREAD,
+ initWorker: undefined,
+ waitThreadStart: waitThreadStart,
+ PThread: undefined,
+ init: function (options) {
+ if (napiModule.loaded)
+ return napiModule.exports;
+ if (!options)
+ throw new TypeError('Invalid napi init options');
+ var instance = options.instance;
+ if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
+ throw new TypeError('Invalid wasm instance');
+ wasmInstance = instance;
+ var exports$1 = instance.exports;
+ var module = options.module;
+ var memory = options.memory || exports$1.memory;
+ var table = options.table || exports$1.__indirect_function_table;
+ if (!(module instanceof _WebAssembly.Module))
+ throw new TypeError('Invalid wasm module');
+ if (!(memory instanceof _WebAssembly.Memory))
+ throw new TypeError('Invalid wasm memory');
+ if (!(table instanceof _WebAssembly.Table))
+ throw new TypeError('Invalid wasm table');
+ wasmMemory = memory;
+ wasmTable = table;
+ if (typeof exports$1.malloc !== 'function')
+ throw new TypeError('malloc is not exported');
+ if (typeof exports$1.free !== 'function')
+ throw new TypeError('free is not exported');
+ _malloc = exports$1.malloc;
+ _free = exports$1.free;
+ if (!napiModule.childThread) {
+ // main thread only
+ var moduleApiVersion = 8 /* Version.NODE_API_DEFAULT_MODULE_API_VERSION */;
+ var node_api_module_get_api_version_v1 = instance.exports.node_api_module_get_api_version_v1;
+ if (typeof node_api_module_get_api_version_v1 === 'function') {
+ moduleApiVersion = node_api_module_get_api_version_v1();
+ }
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
+ var envObject = napiModule.envObject || (napiModule.envObject = emnapiCtx.createEnv(napiModule.filename, moduleApiVersion, function (cb) { return (wasmTable.get(cb)); }, function (cb) { return (wasmTable.get(cb)); }, abort, emnapiNodeBinding));
+ var scope_1 = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callIntoModule(function (_envObject) {
+ var exports$1 = napiModule.exports;
+ var exportsHandle = scope_1.add(exports$1);
+ var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
+ var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
+ napiModule.exports = (!napiValue) ? exports$1 : emnapiCtx.handleStore.get(napiValue).value;
+ });
+ }
+ catch (e) {
+ if (e !== 'unwind') {
+ throw e;
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope_1);
+ }
+ napiModule.loaded = true;
+ delete napiModule.envObject;
+ return napiModule.exports;
+ }
+ }
+ };
+ var emnapiCtx;
+ var emnapiNodeBinding;
+ var onCreateWorker = undefined;
+ var err;
+ if (!ENVIRONMENT_IS_PTHREAD) {
+ var context = options.context;
+ if (typeof context !== 'object' || context === null) {
+ throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");
+ }
+ emnapiCtx = context;
+ }
+ else {
+ emnapiCtx = options === null || options === void 0 ? void 0 : options.context;
+ var postMsg = typeof options.postMessage === 'function'
+ ? options.postMessage
+ : typeof postMessage === 'function'
+ ? postMessage
+ : undefined;
+ if (typeof postMsg !== 'function') {
+ throw new TypeError('No postMessage found');
+ }
+ napiModule.postMessage = postMsg;
+ }
+ if (typeof options.filename === 'string') {
+ napiModule.filename = options.filename;
+ }
+ if (typeof options.onCreateWorker === 'function') {
+ onCreateWorker = options.onCreateWorker;
+ }
+ if (typeof options.print === 'function') {
+ options.print;
+ }
+ else {
+ console.log.bind(console);
+ }
+ if (typeof options.printErr === 'function') {
+ err = options.printErr;
+ }
+ else {
+ err = console.warn.bind(console);
+ }
+ if ('nodeBinding' in options) {
+ var nodeBinding = options.nodeBinding;
+ if (typeof nodeBinding !== 'object' || nodeBinding === null) {
+ throw new TypeError('Invalid `options.nodeBinding`. Use @emnapi/node-binding package');
+ }
+ emnapiNodeBinding = nodeBinding;
+ }
+ var emnapiAsyncWorkPoolSize = 0;
+ if ('asyncWorkPoolSize' in options) {
+ if (typeof options.asyncWorkPoolSize !== 'number') {
+ throw new TypeError('options.asyncWorkPoolSize must be a integer');
+ }
+ emnapiAsyncWorkPoolSize = options.asyncWorkPoolSize >> 0;
+ if (emnapiAsyncWorkPoolSize > 1024) {
+ emnapiAsyncWorkPoolSize = 1024;
+ }
+ else if (emnapiAsyncWorkPoolSize < -1024) {
+ emnapiAsyncWorkPoolSize = -1024;
+ }
+ }
+ var singleThreadAsyncWork = ENVIRONMENT_IS_PTHREAD ? false : (emnapiAsyncWorkPoolSize <= 0);
+ function _emnapi_async_work_pool_size() {
+ return Math.abs(emnapiAsyncWorkPoolSize);
+ }
+ napiModule.imports.env._emnapi_async_work_pool_size = _emnapi_async_work_pool_size;
+ // ------------------------------ pthread -------------------------------
+ function emnapiAddSendListener(worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiSendListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__ && __emnapi__.type === 'async-send') {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({ __emnapi__: __emnapi__ });
+ }
+ else {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var callback = __emnapi__.payload.callback;
+ (wasmTable.get(callback))(__emnapi__.payload.data);
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiSendListener;
+ };
+ worker._emnapiSendListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ }
+ napiModule.emnapi.addSendListener = emnapiAddSendListener;
+ var PThread = new ThreadManager(ENVIRONMENT_IS_PTHREAD
+ ? {
+ printErr: err,
+ childThread: true
+ }
+ : {
+ printErr: err,
+ beforeLoad: function (worker) {
+ emnapiAddSendListener(worker);
+ },
+ reuseWorker: options.reuseWorker,
+ onCreateWorker: onCreateWorker
+ });
+ napiModule.PThread = PThread;
+ /**
+ * @__sig ipiip
+ */
+ function napi_set_last_error(env, error_code, engine_error_code, engine_reserved) {
+ var envObject = emnapiCtx.envStore.get(env);
+ return envObject.setLastError(error_code, engine_error_code, engine_reserved);
+ }
+ /**
+ * @__sig ip
+ */
+ function napi_clear_last_error(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig vppp
+ */
+ function _emnapi_get_node_version(major, minor, patch) {
+ major >>>= 0;
+ minor >>>= 0;
+ patch >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var versions = (typeof process === 'object' && process !== null &&
+ typeof process.versions === 'object' && process.versions !== null &&
+ typeof process.versions.node === 'string')
+ ? process.versions.node.split('.').map(function (n) { return Number(n); })
+ : [0, 0, 0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(major, versions[0], true);
+ HEAP_DATA_VIEW.setUint32(minor, versions[1], true);
+ HEAP_DATA_VIEW.setUint32(patch, versions[2], true);
+ }
+ /**
+ * @__sig v
+ * @__deps $runtimeKeepalivePush
+ */
+ function _emnapi_runtime_keepalive_push() {
+ }
+ /**
+ * @__sig v
+ * @__deps $runtimeKeepalivePop
+ */
+ function _emnapi_runtime_keepalive_pop() {
+ }
+ /**
+ * @__sig vpp
+ */
+ function _emnapi_set_immediate(callback, data) {
+ emnapiCtx.feature.setImmediate(function () {
+ (wasmTable.get(callback))(data);
+ });
+ }
+ /**
+ * @__sig vpp
+ */
+ function _emnapi_next_tick(callback, data) {
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ Promise.resolve().then(function () {
+ (wasmTable.get(callback))(data);
+ });
+ }
+ /**
+ * @__sig vipppi
+ */
+ function _emnapi_callback_into_module(forceUncaught, env, callback, data, close_scope_if_throw) {
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callbackIntoModule(Boolean(forceUncaught), function () {
+ (wasmTable.get(callback))(env, data);
+ });
+ }
+ catch (err) {
+ emnapiCtx.closeScope(envObject, scope);
+ if (close_scope_if_throw) {
+ emnapiCtx.closeScope(envObject);
+ }
+ throw err;
+ }
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ /**
+ * @__sig vipppp
+ */
+ function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
+ var envObject = emnapiCtx.envStore.get(env);
+ callback >>>= 0;
+ envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
+ }
+ /**
+ * @__sig v
+ */
+ function _emnapi_ctx_increase_waiting_request_counter() {
+ emnapiCtx.increaseWaitingRequestCounter();
+ }
+ /**
+ * @__sig v
+ */
+ function _emnapi_ctx_decrease_waiting_request_counter() {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ /**
+ * @__sig i
+ */
+ function _emnapi_is_main_runtime_thread() {
+ return ENVIRONMENT_IS_PTHREAD ? 0 : 1;
+ }
+ /**
+ * @__sig i
+ */
+ function _emnapi_is_main_browser_thread() {
+ return (typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE) ? 1 : 0;
+ }
+ /**
+ * @__sig v
+ */
+ function _emnapi_unwind() {
+ // eslint-disable-next-line @typescript-eslint/no-throw-literal
+ throw 'unwind';
+ }
+ /**
+ * @__sig d
+ */
+ function _emnapi_get_now() {
+ return performance.timeOrigin + performance.now();
+ }
+ function $emnapiSetValueI64(result, numberValue) {
+ var tempDouble;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var tempI64 = [
+ numberValue >>> 0,
+ (tempDouble = numberValue, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)
+ ];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, tempI64[0], true);
+ HEAP_DATA_VIEW.setInt32(result + 4, tempI64[1], true);
+ }
+ /**
+ * @__deps $emnapiCtx
+ * @__sig p
+ */
+ function _emnapi_open_handle_scope() {
+ return emnapiCtx.openScope().id;
+ }
+ /**
+ * @__deps $emnapiCtx
+ * @__sig vp
+ */
+ function _emnapi_close_handle_scope(_scope) {
+ return emnapiCtx.closeScope();
+ }
+ var utilMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ $emnapiSetValueI64: $emnapiSetValueI64,
+ _emnapi_call_finalizer: _emnapi_call_finalizer,
+ _emnapi_callback_into_module: _emnapi_callback_into_module,
+ _emnapi_close_handle_scope: _emnapi_close_handle_scope,
+ _emnapi_ctx_decrease_waiting_request_counter: _emnapi_ctx_decrease_waiting_request_counter,
+ _emnapi_ctx_increase_waiting_request_counter: _emnapi_ctx_increase_waiting_request_counter,
+ _emnapi_get_node_version: _emnapi_get_node_version,
+ _emnapi_get_now: _emnapi_get_now,
+ _emnapi_is_main_browser_thread: _emnapi_is_main_browser_thread,
+ _emnapi_is_main_runtime_thread: _emnapi_is_main_runtime_thread,
+ _emnapi_next_tick: _emnapi_next_tick,
+ _emnapi_open_handle_scope: _emnapi_open_handle_scope,
+ _emnapi_runtime_keepalive_pop: _emnapi_runtime_keepalive_pop,
+ _emnapi_runtime_keepalive_push: _emnapi_runtime_keepalive_push,
+ _emnapi_set_immediate: _emnapi_set_immediate,
+ _emnapi_unwind: _emnapi_unwind,
+ napi_clear_last_error: napi_clear_last_error,
+ napi_set_last_error: napi_set_last_error
+ });
+ function emnapiGetWorkerByPthreadPtr(pthreadPtr) {
+ var view = new DataView(wasmMemory.buffer);
+ /**
+ * wasi-sdk-20.0+threads
+ *
+ * struct pthread {
+ * struct pthread *self; // 0
+ * struct pthread *prev, *next; // 4, 8
+ * uintptr_t sysinfo; // 12
+ * uintptr_t canary; // 16
+ * int tid; // 20
+ * // ...
+ * }
+ */
+ var tidOffset = 20;
+ var tid = view.getInt32(pthreadPtr + tidOffset, true);
+ var worker = PThread.pthreads[tid];
+ return worker;
+ }
+ /** @__sig vp */
+ function _emnapi_worker_ref(pthreadPtr) {
+ if (ENVIRONMENT_IS_PTHREAD)
+ return;
+ pthreadPtr >>>= 0;
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ if (worker && typeof worker.ref === 'function') {
+ worker.ref();
+ }
+ }
+ /** @__sig vp */
+ function _emnapi_worker_unref(pthreadPtr) {
+ if (ENVIRONMENT_IS_PTHREAD)
+ return;
+ pthreadPtr >>>= 0;
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ if (worker && typeof worker.unref === 'function') {
+ worker.unref();
+ }
+ }
+ /** @__sig vipp */
+ function _emnapi_async_send_js(type, callback, data) {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({
+ __emnapi__: {
+ type: 'async-send',
+ payload: {
+ callback: callback,
+ data: data
+ }
+ }
+ });
+ }
+ else {
+ switch (type) {
+ case 0:
+ _emnapi_set_immediate(callback, data);
+ break;
+ case 1:
+ _emnapi_next_tick(callback, data);
+ break;
+ }
+ }
+ }
+ // function ptrToString (ptr: number): string {
+ // return '0x' + ('00000000' + ptr.toString(16)).slice(-8)
+ // }
+ var uvThreadpoolReadyResolve;
+ var uvThreadpoolReady = new Promise(function (resolve) {
+ uvThreadpoolReadyResolve = function () {
+ uvThreadpoolReady.ready = true;
+ resolve();
+ };
+ });
+ uvThreadpoolReady.ready = false;
+ /** @__sig vppi */
+ function _emnapi_after_uvthreadpool_ready(callback, q, type) {
+ if (uvThreadpoolReady.ready) {
+ (wasmTable.get(callback))(q, type);
+ }
+ else {
+ uvThreadpoolReady.then(function () {
+ (wasmTable.get(callback))(q, type);
+ });
+ }
+ }
+ /** @__sig vpi */
+ function _emnapi_tell_js_uvthreadpool(threads, size) {
+ var p = [];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var _loop_1 = function (i) {
+ var pthreadPtr = HEAP_DATA_VIEW.getUint32(threads + i * 4, true);
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ p.push(new Promise(function (resolve) {
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__ && __emnapi__.type === 'async-thread-ready') {
+ resolve();
+ if (worker && typeof worker.unref === 'function') {
+ worker.unref();
+ }
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler);
+ }
+ }
+ };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler);
+ }
+ }));
+ };
+ for (var i = 0; i < size; i++) {
+ _loop_1(i);
+ }
+ Promise.all(p).then(uvThreadpoolReadyResolve);
+ }
+ /** @__sig v */
+ function _emnapi_emit_async_thread_ready() {
+ if (!ENVIRONMENT_IS_PTHREAD)
+ return;
+ var postMessage = napiModule.postMessage;
+ postMessage({
+ __emnapi__: {
+ type: 'async-thread-ready',
+ payload: {}
+ }
+ });
+ }
+ var asyncMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_after_uvthreadpool_ready: _emnapi_after_uvthreadpool_ready,
+ _emnapi_async_send_js: _emnapi_async_send_js,
+ _emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
+ _emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
+ _emnapi_worker_ref: _emnapi_worker_ref,
+ _emnapi_worker_unref: _emnapi_worker_unref
+ });
+ /** @__sig ipjp */
+ function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!adjusted_value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line prefer-const
+ var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
+ adjusted_value >>>= 0;
+ if (emnapiCtx.feature.supportBigInt) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
+ }
+ else {
+ $emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
+ }
+ return envObject.clearLastError();
+ }
+ var memoryMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_adjust_external_memory: napi_adjust_external_memory
+ });
+ /**
+ * @__postset
+ * ```
+ * emnapiAWST.init();
+ * ```
+ */
+ var emnapiAWST = {
+ idGen: {},
+ values: [undefined],
+ queued: new Set(),
+ pending: [],
+ init: function () {
+ var idGen = {
+ nextId: 1,
+ list: [],
+ generate: function () {
+ var id;
+ if (idGen.list.length) {
+ id = idGen.list.shift();
+ }
+ else {
+ id = idGen.nextId;
+ idGen.nextId++;
+ }
+ return id;
+ },
+ reuse: function (id) {
+ idGen.list.push(id);
+ }
+ };
+ emnapiAWST.idGen = idGen;
+ emnapiAWST.values = [undefined];
+ emnapiAWST.queued = new Set();
+ emnapiAWST.pending = [];
+ },
+ create: function (env, resource, resourceName, execute, complete, data) {
+ var asyncId = 0;
+ var triggerAsyncId = 0;
+ if (emnapiNodeBinding) {
+ var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resourceName, -1);
+ asyncId = asyncContext.asyncId;
+ triggerAsyncId = asyncContext.triggerAsyncId;
+ }
+ var id = emnapiAWST.idGen.generate();
+ emnapiAWST.values[id] = {
+ env: env,
+ id: id,
+ resource: resource,
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId,
+ status: 0,
+ execute: execute,
+ complete: complete,
+ data: data
+ };
+ return id;
+ },
+ callComplete: function (work, status) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var complete = work.complete;
+ var env = work.env;
+ var data = work.data;
+ var callback = function () {
+ if (!complete)
+ return;
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callbackIntoModule(true, function () {
+ (wasmTable.get(complete))(env, status, data);
+ });
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ };
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.node.makeCallback(work.resource, callback, [], {
+ asyncId: work.asyncId,
+ triggerAsyncId: work.triggerAsyncId
+ });
+ }
+ else {
+ callback();
+ }
+ },
+ queue: function (id) {
+ var work = emnapiAWST.values[id];
+ if (!work)
+ return;
+ if (work.status === 0) {
+ work.status = 1;
+ if (emnapiAWST.queued.size >= (Math.abs(emnapiAsyncWorkPoolSize) || 4)) {
+ emnapiAWST.pending.push(id);
+ return;
+ }
+ emnapiAWST.queued.add(id);
+ var env_1 = work.env;
+ var data_1 = work.data;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var execute = work.execute;
+ work.status = 2;
+ emnapiCtx.feature.setImmediate(function () {
+ (wasmTable.get(execute))(env_1, data_1);
+ emnapiAWST.queued.delete(id);
+ work.status = 3;
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWST.callComplete(work, 0 /* napi_status.napi_ok */);
+ });
+ if (emnapiAWST.pending.length > 0) {
+ var nextWorkId = emnapiAWST.pending.shift();
+ emnapiAWST.values[nextWorkId].status = 0;
+ emnapiAWST.queue(nextWorkId);
+ }
+ });
+ }
+ },
+ cancel: function (id) {
+ var index = emnapiAWST.pending.indexOf(id);
+ if (index !== -1) {
+ var work_1 = emnapiAWST.values[id];
+ if (work_1 && (work_1.status === 1)) {
+ work_1.status = 4;
+ emnapiAWST.pending.splice(index, 1);
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWST.callComplete(work_1, 11 /* napi_status.napi_cancelled */);
+ });
+ return 0 /* napi_status.napi_ok */;
+ }
+ else {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ }
+ return 9 /* napi_status.napi_generic_failure */;
+ },
+ remove: function (id) {
+ var work = emnapiAWST.values[id];
+ if (!work)
+ return;
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.node.emitAsyncDestroy({
+ asyncId: work.asyncId,
+ triggerAsyncId: work.triggerAsyncId
+ });
+ }
+ emnapiAWST.values[id] = undefined;
+ emnapiAWST.idGen.reuse(id);
+ }
+ };
+ /** @__sig vppdp */
+ function _emnapi_node_emit_async_init(async_resource, async_resource_name, trigger_async_id, result) {
+ if (!emnapiNodeBinding)
+ return;
+ var resource = emnapiCtx.handleStore.get(async_resource).value;
+ var resource_name = emnapiCtx.handleStore.get(async_resource_name).value;
+ var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resource_name, trigger_async_id);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var asyncId = asyncContext.asyncId;
+ var triggerAsyncId = asyncContext.triggerAsyncId;
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
+ HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
+ }
+ }
+ /** @__sig vdd */
+ function _emnapi_node_emit_async_destroy(async_id, trigger_async_id) {
+ if (!emnapiNodeBinding)
+ return;
+ emnapiNodeBinding.node.emitAsyncDestroy({
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ });
+ }
+ /* vpddp export function _emnapi_node_open_callback_scope (async_resource: napi_value, async_id: double, trigger_async_id: double, result: Pointer): void {
+ if (!emnapiNodeBinding || !result) return
+ const resource = emnapiCtx.handleStore.get(async_resource)!.value
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const nativeCallbackScopePointer = emnapiNodeBinding.node.openCallbackScope(resource, {
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ })
+
+ from64('result')
+ $_TODO_makeSetValue('result', 0, 'nativeCallbackScopePointer', 'i64')
+ }
+
+ vp
+ export function _emnapi_node_close_callback_scope (scope: Pointer): void {
+ if (!emnapiNodeBinding || !scope) return
+ from64('scope')
+ const nativeCallbackScopePointer = $_TODO_makeGetValue('scope', 0, 'i64')
+ emnapiNodeBinding.node.closeCallbackScope(BigInt(nativeCallbackScopePointer))
+ } */
+ /** @__sig ipppppddp */
+ function _emnapi_node_make_callback(env, async_resource, cb, argv, size, async_id, trigger_async_id, result) {
+ var i = 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!emnapiNodeBinding)
+ return;
+ var resource = emnapiCtx.handleStore.get(async_resource).value;
+ var callback = emnapiCtx.handleStore.get(cb).value;
+ argv >>>= 0;
+ size >>>= 0;
+ size = size >>> 0;
+ var arr = Array(size);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (; i < size; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ arr[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var ret = emnapiNodeBinding.node.makeCallback(resource, callback, arr, {
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ });
+ if (result) {
+ result >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ }
+ /** @__sig ippp */
+ function _emnapi_async_init_js(async_resource, async_resource_name, result) {
+ if (!emnapiNodeBinding) {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ var resource;
+ if (async_resource) {
+ resource = Object(emnapiCtx.handleStore.get(async_resource).value);
+ }
+ var name = emnapiCtx.handleStore.get(async_resource_name).value;
+ var ret = emnapiNodeBinding.napi.asyncInit(resource, name);
+ if (ret.status !== 0)
+ return ret.status;
+ var numberValue = ret.value;
+ if (!((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63))))) {
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ if (numberValue >= (BigInt(1) << BigInt(63))) {
+ numberValue = numberValue - (BigInt(1) << BigInt(64));
+ }
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var low = Number(numberValue & BigInt(0xffffffff));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var high = Number(numberValue >> BigInt(32));
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, low, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, high, true);
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig ip */
+ function _emnapi_async_destroy_js(async_context) {
+ if (!emnapiNodeBinding) {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ async_context >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var low = HEAP_DATA_VIEW.getInt32(async_context, true);
+ var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
+ var pointer = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
+ var ret = emnapiNodeBinding.napi.asyncDestroy(pointer);
+ if (ret.status !== 0)
+ return ret.status;
+ return 0 /* napi_status.napi_ok */;
+ }
+ // https://github.com/nodejs/node-addon-api/pull/1283
+ /** @__sig ipppp */
+ function napi_open_callback_scope(env, ignored, async_context_handle, result) {
+ throw new Error('napi_open_callback_scope has not been implemented yet');
+ }
+ /** @__sig ipp */
+ function napi_close_callback_scope(env, scope) {
+ throw new Error('napi_close_callback_scope has not been implemented yet');
+ }
+ /** @__sig ippppppp */
+ function napi_make_callback(env, async_context, recv, func, argc, argv, result) {
+ var i = 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!emnapiNodeBinding) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!recv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v8recv = Object(emnapiCtx.handleStore.get(recv).value);
+ var v8func = emnapiCtx.handleStore.get(func).value;
+ if (typeof v8func !== 'function') {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ async_context >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var low = HEAP_DATA_VIEW.getInt32(async_context, true);
+ var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
+ var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
+ argv >>>= 0;
+ argc >>>= 0;
+ argc = argc >>> 0;
+ var arr = Array(argc);
+ for (; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ arr[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var ret = emnapiNodeBinding.napi.makeCallback(ctx, v8recv, v8func, arr);
+ if (ret.error) {
+ throw ret.error;
+ }
+ if (ret.status !== 0 /* napi_status.napi_ok */)
+ return envObject.setLastError(ret.status);
+ if (result) {
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = envObject.ensureHandleId(ret.value);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig vp */
+ function _emnapi_env_check_gc_access(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ }
+ var nodeMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_async_destroy_js: _emnapi_async_destroy_js,
+ _emnapi_async_init_js: _emnapi_async_init_js,
+ _emnapi_env_check_gc_access: _emnapi_env_check_gc_access,
+ _emnapi_node_emit_async_destroy: _emnapi_node_emit_async_destroy,
+ _emnapi_node_emit_async_init: _emnapi_node_emit_async_init,
+ _emnapi_node_make_callback: _emnapi_node_make_callback,
+ napi_close_callback_scope: napi_close_callback_scope,
+ napi_make_callback: napi_make_callback,
+ napi_open_callback_scope: napi_open_callback_scope
+ });
+ /**
+ * @__deps malloc
+ * @__deps free
+ * @__postset
+ * ```
+ * emnapiTSFN.init();
+ * ```
+ */
+ var emnapiTSFN = {
+ _liveSet: {},
+ offset: {
+ __size__: 0,
+ /* napi_ref */ resource: 0,
+ /* double */ async_id: 0,
+ /* double */ trigger_async_id: 0,
+ /* size_t */ queue_size: 0,
+ /* bool */ is_some: 0,
+ /* void* */ queue: 0,
+ // Reuse uv_async_t storage as JS-side wakeup state: pending event + scheduled drain.
+ async_pending: 0,
+ async_u_fd: 0,
+ /* size_t */ thread_count: 0,
+ /* int32_t */ state: 0,
+ /* atomic_uchar */ dispatch_state: 0,
+ /* void* */ context: 0,
+ /* size_t */ max_queue_size: 0,
+ /* napi_ref */ ref: 0,
+ /* napi_env */ env: 0,
+ /* void* */ finalize_data: 0,
+ /* napi_finalize */ finalize_cb: 0,
+ /* napi_threadsafe_function_call_js */ call_js_cb: 0,
+ /* bool */ handles_closing: 0,
+ /* bool */ async_ref: 0,
+ /* int32_t */ mutex: 0,
+ /* int32_t */ cond: 0
+ },
+ init: function () {
+ emnapiTSFN._liveSet = new Set();
+ emnapiTSFN.offset.__size__ = 184 /* NapiTSFNOffset32.__size__ */;
+ emnapiTSFN.offset.resource = 0 /* NapiTSFNOffset32.async_resource_resource */;
+ emnapiTSFN.offset.async_id = 8 /* NapiTSFNOffset32.async_resource_async_context_async_id */;
+ emnapiTSFN.offset.trigger_async_id = 16 /* NapiTSFNOffset32.async_resource_async_context_trigger_async_id */;
+ emnapiTSFN.offset.queue_size = 60 /* NapiTSFNOffset32.queue_size */;
+ emnapiTSFN.offset.is_some = 24 /* NapiTSFNOffset32.async_resource_is_some */;
+ emnapiTSFN.offset.queue = 64 /* NapiTSFNOffset32.queue */;
+ emnapiTSFN.offset.async_pending = 132 /* NapiTSFNOffset32.async_pending */;
+ emnapiTSFN.offset.async_u_fd = 96 /* NapiTSFNOffset32.async_u_fd */;
+ emnapiTSFN.offset.thread_count = 136 /* NapiTSFNOffset32.thread_count */;
+ emnapiTSFN.offset.state = 140 /* NapiTSFNOffset32.state */;
+ emnapiTSFN.offset.dispatch_state = 144 /* NapiTSFNOffset32.dispatch_state */;
+ emnapiTSFN.offset.context = 148 /* NapiTSFNOffset32.context */;
+ emnapiTSFN.offset.max_queue_size = 152 /* NapiTSFNOffset32.max_queue_size */;
+ emnapiTSFN.offset.ref = 156 /* NapiTSFNOffset32.ref */;
+ emnapiTSFN.offset.env = 160 /* NapiTSFNOffset32.env */;
+ emnapiTSFN.offset.finalize_data = 164 /* NapiTSFNOffset32.finalize_data */;
+ emnapiTSFN.offset.finalize_cb = 168 /* NapiTSFNOffset32.finalize_cb */;
+ emnapiTSFN.offset.call_js_cb = 172 /* NapiTSFNOffset32.call_js_cb */;
+ emnapiTSFN.offset.handles_closing = 176 /* NapiTSFNOffset32.handles_closing */;
+ emnapiTSFN.offset.async_ref = 180 /* NapiTSFNOffset32.async_ref */;
+ emnapiTSFN.offset.mutex = 32 /* NapiTSFNOffset32.mutex */;
+ emnapiTSFN.offset.cond = 56 /* NapiTSFNOffset32.cond */;
+ emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
+ if (typeof PThread !== 'undefined') {
+ PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
+ PThread.runningWorkers.forEach(emnapiTSFN.addListener);
+ var __original_getNewWorker_1 = PThread.getNewWorker;
+ PThread.getNewWorker = function () {
+ var r = __original_getNewWorker_1.apply(this, arguments);
+ emnapiTSFN.addListener(r);
+ return r;
+ };
+ }
+ },
+ addListener: function (worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiTSFNListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__) {
+ var type = __emnapi__.type;
+ var payload = __emnapi__.payload;
+ if (type === 'tsfn-send') {
+ var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
+ emnapiTSFN.enqueue(payload.tsfn);
+ }
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiTSFNListener;
+ };
+ worker._emnapiTSFNListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ },
+ initQueue: function (func) {
+ var size = 2 * 4;
+ var queue = _malloc(size);
+ if (!queue)
+ return false;
+ queue >>>= 0;
+ new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
+ emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
+ return true;
+ },
+ destroyQueue: function (func) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ if (queue) {
+ var node = emnapiTSFN.loadSizeTypeValue(queue, false);
+ while (node !== 0) {
+ var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
+ _free(node);
+ node = next;
+ }
+ _free(queue);
+ }
+ },
+ pushQueue: function (func, data) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ var head = emnapiTSFN.loadSizeTypeValue(queue, false);
+ var tail = emnapiTSFN.loadSizeTypeValue(queue + 4, false);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var size = 2 * 4;
+ var node = _malloc(size);
+ if (!node)
+ throw new Error('OOM');
+ node >>>= 0;
+ emnapiTSFN.storeSizeTypeValue(node, data, false);
+ emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
+ if (head === 0 && tail === 0) {
+ emnapiTSFN.storeSizeTypeValue(queue, node, false);
+ emnapiTSFN.storeSizeTypeValue(queue + 4, node, false);
+ }
+ else {
+ emnapiTSFN.storeSizeTypeValue(tail + 4, node, false);
+ emnapiTSFN.storeSizeTypeValue(queue + 4, node, false);
+ }
+ emnapiTSFN.addQueueSize(func);
+ },
+ shiftQueue: function (func) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ var head = emnapiTSFN.loadSizeTypeValue(queue, false);
+ if (head === 0)
+ return 0;
+ var node = head;
+ var next = emnapiTSFN.loadSizeTypeValue(head + 4, false);
+ emnapiTSFN.storeSizeTypeValue(queue, next, false);
+ if (next === 0) {
+ emnapiTSFN.storeSizeTypeValue(queue + 4, 0, false);
+ }
+ emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
+ var value = emnapiTSFN.loadSizeTypeValue(node, false);
+ _free(node);
+ emnapiTSFN.subQueueSize(func);
+ return value;
+ },
+ push: function (func, data, mode) {
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ var waitCondition = function () {
+ var queueSize = emnapiTSFN.getQueueSize(func);
+ var maxSize = emnapiTSFN.getMaxQueueSize(func);
+ return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0 /* State.kOpen */;
+ };
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var shouldDelete = false;
+ var ret = mutex.execute(function () {
+ while (waitCondition()) {
+ if (mode === 0 /* napi_threadsafe_function_call_mode.napi_tsfn_nonblocking */) {
+ return 15 /* napi_status.napi_queue_full */;
+ }
+ /**
+ * Browser JS main thread can not use `Atomics.wait`
+ *
+ * Related:
+ * https://github.com/nodejs/node/pull/32689
+ * https://github.com/nodejs/node/pull/33453
+ */
+ if (isBrowserMain) {
+ return 21 /* napi_status.napi_would_deadlock */;
+ }
+ cond.wait();
+ }
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
+ emnapiTSFN.pushQueue(func, data);
+ emnapiTSFN.send(func);
+ return 0 /* napi_status.napi_ok */;
+ }
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ emnapiTSFN.subThreadCount(func);
+ if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
+ return 16 /* napi_status.napi_closing */;
+ }
+ shouldDelete = true;
+ return 16 /* napi_status.napi_closing */;
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ return ret;
+ },
+ getMutex: function (func) {
+ var index = func + emnapiTSFN.offset.mutex;
+ var mutex = {
+ lock: function () {
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ if (isBrowserMain) {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ }
+ }
+ else {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ Atomics.wait(i32a, 0, 10);
+ }
+ }
+ },
+ /* lockAsync () {
+ return new Promise(resolve => {
+ const again = (): void => { fn() }
+ const fn = (): void => {
+ const i32a = new Int32Array(wasmMemory.buffer, index, 1)
+ const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
+ if (oldValue === 0) {
+ resolve()
+ return
+ }
+ (Atomics as any).waitAsync(i32a, 0, 10).value.then(again)
+ }
+ fn()
+ })
+ }, */
+ unlock: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
+ if (oldValue !== 10) {
+ throw new Error('Tried to unlock while not holding the mutex');
+ }
+ Atomics.notify(i32a, 0, 1);
+ },
+ execute: function (fn) {
+ mutex.lock();
+ try {
+ return fn();
+ }
+ finally {
+ mutex.unlock();
+ }
+ } /* ,
+ executeAsync (fn: () => Promise): Promise {
+ return mutex.lockAsync().then(() => {
+ const r = fn()
+ mutex.unlock()
+ return r
+ }, (err) => {
+ mutex.unlock()
+ throw err
+ })
+ } */
+ };
+ return mutex;
+ },
+ getCond: function (func) {
+ var index = func + emnapiTSFN.offset.cond;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = {
+ wait: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var value = Atomics.load(i32a, 0);
+ mutex.unlock();
+ Atomics.wait(i32a, 0, value);
+ mutex.lock();
+ },
+ /* waitAsync () {
+ const i32a = new Int32Array(wasmMemory.buffer, index, 1)
+ const value = Atomics.load(i32a, 0)
+ mutex.unlock()
+ const lock = (): Promise => mutex.lockAsync()
+ try {
+ return (Atomics as any).waitAsync(i32a, 0, value).value.then(lock, lock)
+ } catch (err) {
+ return lock()
+ }
+ }, */
+ signal: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ Atomics.add(i32a, 0, 1);
+ Atomics.notify(i32a, 0, 1);
+ }
+ };
+ return cond;
+ },
+ getQueueSize: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue_size, true);
+ },
+ addQueueSize: function (func) {
+ var offset = emnapiTSFN.offset.queue_size;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.add(arr, index, 1);
+ },
+ subQueueSize: function (func) {
+ var offset = emnapiTSFN.offset.queue_size;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.sub(arr, index, 1);
+ },
+ getThreadCount: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.thread_count, true);
+ },
+ addThreadCount: function (func) {
+ var offset = emnapiTSFN.offset.thread_count;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.add(arr, index, 1);
+ },
+ subThreadCount: function (func) {
+ var offset = emnapiTSFN.offset.thread_count;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.sub(arr, index, 1);
+ },
+ getState: function (func) {
+ return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
+ },
+ setState: function (func, value) {
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
+ },
+ getHandlesClosing: function (func) {
+ return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
+ },
+ setHandlesClosing: function (func, value) {
+ Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
+ },
+ getDispatchState: function (func) {
+ return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
+ },
+ getContext: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
+ },
+ getMaxQueueSize: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.max_queue_size, true);
+ },
+ getEnv: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.env, false);
+ },
+ getCallJSCb: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.call_js_cb, false);
+ },
+ getRef: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.ref, false);
+ },
+ getResource: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.resource, false);
+ },
+ getFinalizeCb: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.finalize_cb, false);
+ },
+ getFinalizeData: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.finalize_data, false);
+ },
+ loadSizeTypeValue: function (offset, unsigned) {
+ var ret;
+ var arr;
+ if (unsigned) {
+ arr = new Uint32Array(wasmMemory.buffer);
+ ret = Atomics.load(arr, offset >>> 2);
+ return ret;
+ }
+ else {
+ arr = new Int32Array(wasmMemory.buffer);
+ ret = Atomics.load(arr, offset >>> 2);
+ return ret;
+ }
+ },
+ storeSizeTypeValue: function (offset, value, unsigned) {
+ var arr;
+ if (unsigned) {
+ arr = new Uint32Array(wasmMemory.buffer);
+ Atomics.store(arr, offset >>> 2, value);
+ return undefined;
+ }
+ else {
+ arr = new Int32Array(wasmMemory.buffer);
+ Atomics.store(arr, offset >>> 2, value >>> 0);
+ return undefined;
+ }
+ },
+ releaseResources: function (func) {
+ if (emnapiTSFN.getState(func) !== 2 /* State.kClosed */) {
+ emnapiTSFN.setState(func, 2 /* State.kClosed */);
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ var ref = emnapiTSFN.getRef(func);
+ if (ref) {
+ emnapiCtx.refStore.get(ref).dispose();
+ }
+ var resource = emnapiTSFN.getResource(func);
+ emnapiCtx.refStore.get(resource).dispose();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
+ emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
+ envObject.unref();
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ if (Atomics.load(arr, asyncRefOffset) > 0) {
+ Atomics.store(arr, asyncRefOffset, 0);
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ if (emnapiNodeBinding) {
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
+ }
+ }
+ },
+ destroy: function (func) {
+ emnapiTSFN._liveSet.delete(func);
+ emnapiTSFN.destroyQueue(func);
+ emnapiTSFN.releaseResources(func);
+ _free(func);
+ },
+ emptyQueue: function (func) {
+ var drainQueue = [];
+ emnapiTSFN.getMutex(func).execute(function () {
+ while (emnapiTSFN.getQueueSize(func) > 0) {
+ drainQueue.push(emnapiTSFN.shiftQueue(func));
+ }
+ });
+ var callJsCb = emnapiTSFN.getCallJSCb(func);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var context = emnapiTSFN.getContext(func);
+ var data;
+ for (var i = 0; i < drainQueue.length; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ data = drainQueue[i];
+ if (callJsCb) {
+ (wasmTable.get(callJsCb))(0, 0, context, data);
+ }
+ }
+ },
+ maybeDelete: function (func) {
+ var shouldDelete = false;
+ emnapiTSFN.getMutex(func).execute(function () {
+ if (emnapiTSFN.getThreadCount(func) > 0) {
+ emnapiTSFN.releaseResources(func);
+ }
+ else {
+ shouldDelete = true;
+ }
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ },
+ finalize: function (func) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject);
+ var finalize = emnapiTSFN.getFinalizeCb(func);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var data = emnapiTSFN.getFinalizeData(func);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var context = emnapiTSFN.getContext(func);
+ var f = function () {
+ envObject.callFinalizerInternal(0, finalize, data, context);
+ };
+ try {
+ emnapiTSFN.emptyQueue(func);
+ if (finalize) {
+ if (emnapiNodeBinding) {
+ var resource = emnapiTSFN.getResource(func);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
+ emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId
+ });
+ }
+ else {
+ f();
+ }
+ }
+ emnapiTSFN.maybeDelete(func);
+ }
+ finally {
+ emnapiCtx.closeScope(envObject);
+ }
+ },
+ cleanup: function (func) {
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 1);
+ },
+ closeHandlesAndMaybeDelete: function (func, set_closing) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject);
+ try {
+ if (set_closing) {
+ emnapiTSFN.getMutex(func).execute(function () {
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
+ if (emnapiTSFN.getMaxQueueSize(func) > 0) {
+ emnapiTSFN.getCond(func).signal();
+ }
+ });
+ }
+ if (emnapiTSFN.getHandlesClosing(func)) {
+ return;
+ }
+ emnapiTSFN.setHandlesClosing(func, 1);
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiTSFN.finalize(func);
+ });
+ }
+ finally {
+ emnapiCtx.closeScope(envObject);
+ }
+ },
+ dispatchOne: function (func) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var data = 0;
+ var popped_value = false;
+ var has_more = false;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ mutex.execute(function () {
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
+ var size = emnapiTSFN.getQueueSize(func);
+ if (size > 0) {
+ data = emnapiTSFN.shiftQueue(func);
+ popped_value = true;
+ var maxQueueSize = emnapiTSFN.getMaxQueueSize(func);
+ if (size === maxQueueSize && maxQueueSize > 0) {
+ cond.signal();
+ }
+ size--;
+ }
+ if (size === 0) {
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
+ if (emnapiTSFN.getMaxQueueSize(func) > 0) {
+ cond.signal();
+ }
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
+ }
+ }
+ else {
+ has_more = true;
+ }
+ }
+ else {
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
+ }
+ });
+ if (popped_value) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject_1 = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject_1);
+ var f = function () {
+ envObject_1.callbackIntoModule(false, function () {
+ var callJsCb = emnapiTSFN.getCallJSCb(func);
+ var ref = emnapiTSFN.getRef(func);
+ var js_callback = ref ? emnapiCtx.refStore.get(ref).get() : 0;
+ if (callJsCb) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var context = emnapiTSFN.getContext(func);
+ (wasmTable.get(callJsCb))(env, js_callback, context, data);
+ }
+ else {
+ var jsCallback = js_callback ? emnapiCtx.handleStore.get(js_callback).value : null;
+ if (typeof jsCallback === 'function') {
+ jsCallback();
+ }
+ }
+ });
+ };
+ try {
+ if (emnapiNodeBinding) {
+ var resource = emnapiTSFN.getResource(func);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
+ asyncId: view.getFloat64(func + emnapiTSFN.offset.async_id, true),
+ triggerAsyncId: view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true)
+ });
+ }
+ else {
+ f();
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject_1);
+ }
+ }
+ return has_more;
+ },
+ dispatch: function (func) {
+ var has_more = true;
+ var iterations_left = 1000;
+ var ui32a = new Uint32Array(wasmMemory.buffer);
+ var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
+ while (has_more && --iterations_left !== 0) {
+ Atomics.store(ui32a, index, 1);
+ has_more = emnapiTSFN.dispatchOne(func);
+ if (Atomics.exchange(ui32a, index, 0) !== 1) {
+ has_more = true;
+ }
+ }
+ if (has_more) {
+ emnapiTSFN.send(func);
+ }
+ },
+ enqueue: function (func) {
+ // `pending` means a worker thread has requested a wakeup that has not
+ // been drained on the main thread yet.
+ var pending = func + emnapiTSFN.offset.async_pending;
+ // `scheduled` prevents queueing the same main-thread drain chain more than
+ // once while a previous wakeup is still in flight.
+ var scheduled = func + emnapiTSFN.offset.async_u_fd;
+ var i32a = new Int32Array(wasmMemory.buffer);
+ if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
+ return;
+ }
+ // Match uv_async_send-style coalescing in JS: the first turn represents
+ // the wakeup reaching the main thread, and the second turn performs the
+ // actual TSFN drain after nearby Send/Signal calls have had a chance to
+ // collapse into the shared AsyncProgressWorker state.
+ emnapiCtx.feature.setImmediate(function () {
+ if (!emnapiTSFN._liveSet.has(func)) {
+ return;
+ }
+ if (Atomics.load(i32a, pending >>> 2) === 0) {
+ Atomics.store(i32a, scheduled >>> 2, 0);
+ return;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ try {
+ // Consume the coalesced wakeup once, then let dispatch() observe any
+ // queue mutations through dispatch_state like the C implementation.
+ if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
+ return;
+ }
+ // After destroy(), the func address is freed. Skip dispatch
+ // to avoid use-after-free (JS-side lifecycle check).
+ if (!emnapiTSFN._liveSet.has(func)) {
+ return;
+ }
+ emnapiTSFN.dispatch(func);
+ }
+ finally {
+ // Allow a later wakeup to schedule a new drain chain. If another
+ // worker-thread send raced with this drain, enqueue one more turn.
+ if (emnapiTSFN._liveSet.has(func)) {
+ Atomics.store(i32a, scheduled >>> 2, 0);
+ if (Atomics.load(i32a, pending >>> 2) !== 0) {
+ emnapiTSFN.enqueue(func);
+ }
+ }
+ }
+ });
+ });
+ },
+ send: function (func) {
+ var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
+ if ((current_state & 1) === 1) {
+ return;
+ }
+ var pendng = func + emnapiTSFN.offset.async_pending;
+ // A wakeup is already pending, so this send only needs to leave the queued
+ // work in the TSFN queue and let the existing drain pick it up.
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
+ return;
+ }
+ if (Atomics.exchange(new Int32Array(wasmMemory.buffer), pendng >>> 2, 1) === 0) {
+ if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
+ // Worker threads only post a wakeup token. Main-thread draining is
+ // serialized by enqueue() once the message is received.
+ postMessage({
+ __emnapi__: {
+ type: 'tsfn-send',
+ payload: {
+ tsfn: func
+ }
+ }
+ });
+ }
+ else {
+ // On the main thread we can skip the cross-thread hop and schedule the
+ // coalesced drain chain directly.
+ emnapiTSFN.enqueue(func);
+ }
+ }
+ }
+ };
+ /** @__sig ippppppppppp */
+ function napi_create_threadsafe_function(env, func, async_resource, async_resource_name, max_queue_size, initial_thread_count, thread_finalize_data, thread_finalize_cb, context, call_js_cb, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!async_resource_name)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ max_queue_size >>>= 0;
+ initial_thread_count >>>= 0;
+ env >>>= 0;
+ thread_finalize_data >>>= 0;
+ thread_finalize_cb >>>= 0;
+ context >>>= 0;
+ call_js_cb >>>= 0;
+ max_queue_size = max_queue_size >>> 0;
+ initial_thread_count = initial_thread_count >>> 0;
+ if (initial_thread_count === 0) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var ref = 0;
+ func >>>= 0;
+ if (!func) {
+ if (!call_js_cb)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ else {
+ var funcValue = emnapiCtx.handleStore.get(func).value;
+ if (typeof funcValue !== 'function') {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ ref = emnapiCtx.createReference(envObject, func, 1, 1 /* ReferenceOwnership.kUserland */).id;
+ }
+ var asyncResourceObject;
+ if (async_resource) {
+ asyncResourceObject = emnapiCtx.handleStore.get(async_resource).value;
+ if (asyncResourceObject == null) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ asyncResourceObject = Object(asyncResourceObject);
+ }
+ else {
+ asyncResourceObject = {};
+ }
+ var resource = envObject.ensureHandleId(asyncResourceObject);
+ var asyncResourceName = emnapiCtx.handleStore.get(async_resource_name).value;
+ if (typeof asyncResourceName === 'symbol') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ asyncResourceName = String(asyncResourceName);
+ var resource_name = envObject.ensureHandleId(asyncResourceName);
+ // tsfn create
+ var sizeofTSFN = emnapiTSFN.offset.__size__;
+ // eslint-disable-next-line prefer-const
+ var tsfn = _malloc(sizeofTSFN);
+ if (!tsfn)
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ tsfn >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
+ var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var resource_ = resourceRef.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
+ if (!emnapiTSFN.initQueue(tsfn)) {
+ _free(tsfn);
+ resourceRef.dispose();
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ _emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
+ HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.ref, ref, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.env, env, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_data, thread_finalize_data, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
+ emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
+ emnapiTSFN._liveSet.add(tsfn);
+ envObject.ref();
+ emnapiCtx.increaseWaitingRequestCounter();
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, tsfn, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_threadsafe_function_context(func, result) {
+ if (!func || !result) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var context = emnapiTSFN.getContext(func);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, context, true);
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig ippi */
+ function napi_call_threadsafe_function(func, data, mode) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ data >>>= 0;
+ return emnapiTSFN.push(func, data, mode);
+ }
+ /** @__sig ip */
+ function napi_acquire_threadsafe_function(func) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ var mutex = emnapiTSFN.getMutex(func);
+ return mutex.execute(function () {
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
+ emnapiTSFN.addThreadCount(func);
+ return 0 /* napi_status.napi_ok */;
+ }
+ return 16 /* napi_status.napi_closing */;
+ });
+ }
+ /** @__sig ipi */
+ function napi_release_threadsafe_function(func, mode) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ var shouldDelete = false;
+ var ret = mutex.execute(function () {
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ emnapiTSFN.subThreadCount(func);
+ if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
+ if (mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
+ }
+ if (emnapiTSFN.getState(func) === 1 /* State.kClosing */ && emnapiTSFN.getMaxQueueSize(func) > 0) {
+ cond.signal();
+ }
+ emnapiTSFN.send(func);
+ }
+ }
+ if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
+ return 0 /* napi_status.napi_ok */;
+ }
+ shouldDelete = true;
+ return 0 /* napi_status.napi_ok */;
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ return ret;
+ }
+ /** @__sig ipp */
+ function napi_unref_threadsafe_function(env, func) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ var currentValue = Atomics.load(arr, asyncRefOffset);
+ if (currentValue > 0) {
+ Atomics.store(arr, asyncRefOffset, currentValue - 1);
+ if (currentValue === 1) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ }
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig ipp */
+ function napi_ref_threadsafe_function(env, func) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ var currentValue = Atomics.load(arr, asyncRefOffset);
+ if (!currentValue) {
+ emnapiCtx.increaseWaitingRequestCounter();
+ }
+ Atomics.store(arr, asyncRefOffset, currentValue + 1);
+ return 0 /* napi_status.napi_ok */;
+ }
+ var emnapiAWMT = {
+ pool: [],
+ workerReady: null,
+ globalAddress: 0,
+ globalOffset: {
+ idle_threads: 0,
+ q: 1 * 4,
+ next: 1 * 4,
+ prev: 2 * 4,
+ mutex: 3 * 4,
+ cond: 4 * 4,
+ exit_message: 5 * 4,
+ end: 7 * 4
+ },
+ offset: {
+ /* napi_ref */ resource: 0,
+ /* double */ async_id: 8,
+ /* double */ trigger_async_id: 16,
+ /* napi_env */ env: 24,
+ /* int32_t */ status: 1 * 4 + 24, // 0 for pending, 1 for cancelled, 2 for completed
+ queue: 2 * 4 + 24,
+ queue_next: 2 * 4 + 24,
+ queue_prev: 3 * 4 + 24,
+ /* void* */ data: 4 * 4 + 24,
+ /* napi_async_execute_callback */ execute: 5 * 4 + 24,
+ /* napi_async_complete_callback */ complete: 6 * 4 + 24,
+ end: 7 * 4 + 24
+ },
+ init: function () {
+ emnapiAWMT.pool = [];
+ emnapiAWMT.workerReady = null;
+ if (typeof PThread !== 'undefined') {
+ PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
+ PThread.runningWorkers.forEach(emnapiAWMT.addListener);
+ var __original_getNewWorker_1 = PThread.getNewWorker;
+ PThread.getNewWorker = function () {
+ var r = __original_getNewWorker_1.apply(this, arguments);
+ emnapiAWMT.addListener(r);
+ return r;
+ };
+ }
+ },
+ addListener: function (worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiAWMTListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__) {
+ var type = __emnapi__.type;
+ var payload = __emnapi__.payload;
+ if (type === 'async-work-complete') {
+ emnapiAWMT.callComplete(payload.work, 0 /* napi_status.napi_ok */);
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiAWMTListener;
+ };
+ worker._emnapiAWMTListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ },
+ initGlobal: function () {
+ if (!emnapiAWMT.globalAddress) {
+ emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
+ emnapiAWMT.globalAddress >>>= 0;
+ var size = emnapiAWMT.globalOffset.end;
+ var addr = emnapiAWMT.globalAddress;
+ new Uint8Array(wasmMemory.buffer, addr, size).fill(0);
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
+ }
+ },
+ terminateWorkers: function () {
+ emnapiAWMT.pool.forEach(function (w) {
+ var _a, _b;
+ (_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
+ (_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
+ w.terminate();
+ });
+ emnapiAWMT.pool.length = 0;
+ },
+ initWorkers: function (n) {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
+ return emnapiAWMT.workerReady || (emnapiAWMT.workerReady = Promise.resolve());
+ }
+ if (emnapiAWMT.workerReady)
+ return emnapiAWMT.workerReady;
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
+ }
+ var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
+ var args = [];
+ emnapiAWMT.initGlobal();
+ for (var i = 0; i < n; ++i) {
+ args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
+ }
+ var promises = args.map(function (index) {
+ if (index === 0) {
+ return Promise.reject(new Error('Failed to create async worker'));
+ }
+ var worker;
+ if (index < 0) {
+ worker = emnapiAWMT.pool[-index - 1];
+ if (worker)
+ return worker.whenLoaded;
+ }
+ index >>>= 0;
+ var view = new DataView(wasmMemory.buffer);
+ var tidOffset = 20;
+ var tid = view.getInt32(index + tidOffset, true);
+ worker = PThread.pthreads[tid];
+ return worker.whenLoaded;
+ });
+ emnapiAWMT.workerReady = Promise.all(promises);
+ return emnapiAWMT.workerReady;
+ },
+ getResource: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
+ },
+ getExecute: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
+ },
+ getComplete: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
+ },
+ getEnv: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
+ },
+ getData: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
+ },
+ getMutex: function () {
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
+ var mutex = {
+ lock: function () {
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ if (isBrowserMain) {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ }
+ }
+ else {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ Atomics.wait(i32a, 0, 10);
+ }
+ }
+ },
+ unlock: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
+ if (oldValue !== 10) {
+ throw new Error('Tried to unlock while not holding the mutex');
+ }
+ Atomics.notify(i32a, 0, 1);
+ },
+ execute: function (fn) {
+ mutex.lock();
+ try {
+ return fn();
+ }
+ finally {
+ mutex.unlock();
+ }
+ }
+ };
+ return mutex;
+ },
+ getCond: function () {
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
+ var mutex = emnapiAWMT.getMutex();
+ var cond = {
+ wait: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var value = Atomics.load(i32a, 0);
+ mutex.unlock();
+ Atomics.wait(i32a, 0, value);
+ mutex.lock();
+ },
+ signal: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ Atomics.add(i32a, 0, 1);
+ Atomics.notify(i32a, 0, 1);
+ }
+ };
+ return cond;
+ },
+ queueInit: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(q, q, true);
+ HEAP_DATA_VIEW.setUint32(q + 4, q, true);
+ },
+ queueInsertTail: function (h, q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(q, h, true);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
+ HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
+ HEAP_DATA_VIEW.setUint32(qprev, q, true);
+ HEAP_DATA_VIEW.setUint32(h + 4, q, true);
+ },
+ queueRemove: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var qnext = HEAP_DATA_VIEW.getUint32(q, true);
+ HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
+ HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
+ },
+ queueEmpty: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ // eslint-disable-next-line eqeqeq
+ return q == HEAP_DATA_VIEW.getUint32(q, true);
+ },
+ scheduleWork: function (work) {
+ var _a;
+ if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
+ emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
+ emnapiAWMT.workerReady.ready = true;
+ }).catch(function (err) {
+ emnapiAWMT.workerReady = null;
+ throw err;
+ });
+ }
+ emnapiCtx.increaseWaitingRequestCounter();
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
+ Atomics.store(statusBuffer, 0, 0 /* AsyncWorkStatus.Pending */);
+ var mutex = emnapiAWMT.getMutex();
+ var cond = emnapiAWMT.getCond();
+ mutex.lock();
+ try {
+ emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
+ }
+ catch (err) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ mutex.unlock();
+ throw err;
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
+ cond.signal();
+ }
+ mutex.unlock();
+ },
+ cancelWork: function (work) {
+ var cancelled = false;
+ emnapiAWMT.getMutex().execute(function () {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2 /* AsyncWorkStatus.Completed */;
+ if (cancelled) {
+ emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
+ }
+ });
+ if (!cancelled) {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ if (Atomics.compareExchange(new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1), 0, 0 /* AsyncWorkStatus.Pending */, 1 /* AsyncWorkStatus.Cancelled */) !== 0 /* AsyncWorkStatus.Pending */) {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
+ });
+ return 0 /* napi_status.napi_ok */;
+ },
+ callComplete: function (work, status) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ var complete = emnapiAWMT.getComplete(work);
+ var env = emnapiAWMT.getEnv(work);
+ var data = emnapiAWMT.getData(work);
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ var callback = function () {
+ if (!complete)
+ return;
+ envObject.callbackIntoModule(true, function () {
+ (wasmTable.get(complete))(env, status, data);
+ });
+ };
+ try {
+ if (emnapiNodeBinding) {
+ var resource = emnapiAWMT.getResource(work);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
+ emnapiNodeBinding.node.makeCallback(resourceObject, callback, [], {
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId
+ });
+ }
+ else {
+ callback();
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ }
+ };
+ emnapiAWMT.init();
+ /** @__sig ippppppp */
+ var napi_create_async_work = singleThreadAsyncWork
+ ? function (env, resource, resource_name, execute, complete, data, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!execute)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var resourceObject;
+ if (resource) {
+ resourceObject = Object(emnapiCtx.handleStore.get(resource).value);
+ }
+ else {
+ resourceObject = {};
+ }
+ if (!resource_name)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, id, true);
+ return envObject.clearLastError();
+ }
+ : function (env, resource, resource_name, execute, complete, data, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!execute)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var resourceObject;
+ if (resource) {
+ resourceObject = Object(emnapiCtx.handleStore.get(resource).value);
+ }
+ else {
+ resourceObject = {};
+ }
+ if (!resource_name)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var sizeofAW = emnapiAWMT.offset.end;
+ var aw = _malloc(sizeofAW);
+ if (!aw)
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ aw >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(aw, aw + sizeofAW).fill(0);
+ var s = envObject.ensureHandleId(resourceObject);
+ var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1 /* ReferenceOwnership.kUserland */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var resource_ = resourceRef.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(aw, resource_, true);
+ _emnapi_node_emit_async_init(s, resource_name, -1, aw + emnapiAWMT.offset.async_id);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.env, env, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
+ emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, aw, true);
+ return envObject.clearLastError();
+ };
+ /** @__sig ipp */
+ var napi_delete_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ emnapiAWST.remove(work);
+ return envObject.clearLastError();
+ }
+ : function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ var resource = emnapiAWMT.getResource(work);
+ emnapiCtx.refStore.get(resource).dispose();
+ if (emnapiNodeBinding) {
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
+ }
+ _free(work);
+ return envObject.clearLastError();
+ };
+ /** @__sig ipp */
+ var napi_queue_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ emnapiAWST.queue(work);
+ return envObject.clearLastError();
+ }
+ : function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ emnapiAWMT.scheduleWork(work);
+ return envObject.clearLastError();
+ };
+ /** @__sig ipp */
+ var napi_cancel_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ var status = emnapiAWST.cancel(work);
+ if (status === 0 /* napi_status.napi_ok */)
+ return envObject.clearLastError();
+ return envObject.setLastError(status);
+ }
+ : function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ var status = emnapiAWMT.cancelWork(work);
+ if (status === 0 /* napi_status.napi_ok */)
+ return envObject.clearLastError();
+ return envObject.setLastError(status);
+ };
+ /** @__sig pp */
+ function _emnapi_async_worker(globalAddress) {
+ globalAddress >>>= 0;
+ emnapiAWMT.globalAddress = globalAddress;
+ var mutex = emnapiAWMT.getMutex();
+ var cond = emnapiAWMT.getCond();
+ mutex.lock();
+ var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
+ var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
+ var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (;;) {
+ while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
+ Atomics.add(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
+ cond.wait();
+ Atomics.sub(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
+ }
+ var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
+ if (q === exitMessageAddr) {
+ cond.signal();
+ mutex.unlock();
+ break;
+ }
+ var work = q - emnapiAWMT.offset.queue;
+ emnapiAWMT.queueRemove(q);
+ emnapiAWMT.queueInit(q);
+ mutex.unlock();
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
+ if (Atomics.load(statusBuffer, 0) === 1 /* AsyncWorkStatus.Cancelled */) {
+ abort('unreachable');
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var execute = emnapiAWMT.getExecute(work);
+ var env = emnapiAWMT.getEnv(work);
+ var data = emnapiAWMT.getData(work);
+ (wasmTable.get(execute))(env, data);
+ Atomics.store(statusBuffer, 0, 2 /* AsyncWorkStatus.Completed */);
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({
+ __emnapi__: {
+ type: 'async-work-complete',
+ payload: { work: work }
+ }
+ });
+ mutex.lock();
+ }
+ return 0;
+ }
+ /** @__sig ipp */
+ function _emnapi_spawn_worker(f, globalAddress) {
+ if (typeof onCreateWorker !== 'function') {
+ throw new TypeError('`options.onCreateWorker` is not a function');
+ }
+ var promises = [];
+ var args = [];
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
+ }
+ args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
+ var handleError = function (e) {
+ if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
+ emnapiAWMT.terminateWorkers();
+ }
+ };
+ var ret;
+ try {
+ var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
+ var p = PThread.loadWasmModuleToWorker(worker_1);
+ if (ENVIRONMENT_IS_NODE) {
+ worker_1.on('error', handleError);
+ }
+ else {
+ worker_1.addEventListener('error', handleError, false);
+ }
+ emnapiAWMT.addListener(worker_1);
+ emnapiTSFN.addListener(worker_1);
+ promises.push(p.then(function () {
+ if (typeof worker_1.unref === 'function') {
+ worker_1.unref();
+ }
+ }));
+ ret = emnapiAWMT.pool.push(worker_1) - 1;
+ var arg = args[0];
+ worker_1.threadBlockBase = arg;
+ worker_1.postMessage({
+ __emnapi__: {
+ type: 'async-worker-init',
+ payload: { arg: arg, func: [f, globalAddress] }
+ }
+ });
+ }
+ catch (err) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var arg = args[0];
+ _free(arg);
+ throw err;
+ }
+ return ret;
+ }
+ function initWorker(startArg, func) {
+ if (napiModule.childThread) {
+ if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
+ throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
+ }
+ wasmInstance.exports.emnapi_async_worker_init(startArg);
+ (wasmTable.get(func[0]))(func[1]);
+ }
+ else {
+ throw new Error('startThread is only available in child threads');
+ }
+ }
+ napiModule.initWorker = initWorker;
+ var asyncWorkMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_async_worker: _emnapi_async_worker,
+ _emnapi_spawn_worker: _emnapi_spawn_worker,
+ napi_cancel_async_work: napi_cancel_async_work,
+ napi_create_async_work: napi_create_async_work,
+ napi_delete_async_work: napi_delete_async_work,
+ napi_queue_async_work: napi_queue_async_work
+ });
+ /**
+ * @__deps malloc
+ * @__deps free
+ * @__postset
+ * ```
+ * emnapiExternalMemory.init();
+ * ```
+ */
+ var emnapiExternalMemory = {
+ registry: typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined,
+ table: new WeakMap(),
+ wasmMemoryViewTable: new WeakMap(),
+ init: function () {
+ emnapiExternalMemory.registry = typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined;
+ emnapiExternalMemory.table = new WeakMap();
+ emnapiExternalMemory.wasmMemoryViewTable = new WeakMap();
+ },
+ isSharedArrayBuffer: function (value) {
+ return ((typeof SharedArrayBuffer === 'function' && value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(value) === '[object SharedArrayBuffer]'));
+ },
+ isDetachedArrayBuffer: function (arrayBuffer) {
+ if (arrayBuffer.byteLength === 0) {
+ try {
+ // eslint-disable-next-line no-new
+ new Uint8Array(arrayBuffer);
+ }
+ catch (_) {
+ return true;
+ }
+ }
+ return false;
+ },
+ getArrayBufferPointer: function (arrayBuffer, shouldCopy) {
+ var _a;
+ var info = {
+ address: 0,
+ ownership: 0 /* ReferenceOwnership.kRuntime */,
+ runtimeAllocated: 0
+ };
+ if (arrayBuffer === wasmMemory.buffer) {
+ return info;
+ }
+ var isDetached = emnapiExternalMemory.isDetachedArrayBuffer(arrayBuffer);
+ if (emnapiExternalMemory.table.has(arrayBuffer)) {
+ var cachedInfo = emnapiExternalMemory.table.get(arrayBuffer);
+ if (isDetached) {
+ cachedInfo.address = 0;
+ return cachedInfo;
+ }
+ if (shouldCopy && cachedInfo.ownership === 0 /* ReferenceOwnership.kRuntime */ && cachedInfo.runtimeAllocated === 1) {
+ new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), cachedInfo.address);
+ }
+ return cachedInfo;
+ }
+ if (isDetached || (arrayBuffer.byteLength === 0)) {
+ return info;
+ }
+ if (!shouldCopy) {
+ return info;
+ }
+ var pointer = _malloc(arrayBuffer.byteLength);
+ if (!pointer)
+ throw new Error('Out of memory');
+ pointer >>>= 0;
+ new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
+ info.address = pointer;
+ info.ownership = emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
+ info.runtimeAllocated = 1;
+ emnapiExternalMemory.table.set(arrayBuffer, info);
+ (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(arrayBuffer, pointer);
+ return info;
+ },
+ getOrUpdateMemoryView: function (view) {
+ if (view.buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(view, {
+ Ctor: view.constructor,
+ address: view.byteOffset,
+ length: view instanceof DataView ? view.byteLength : view.length,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ return view;
+ }
+ var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
+ if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
+ var Ctor = info.Ctor;
+ var newView = void 0;
+ var Buffer_1 = emnapiCtx.feature.Buffer;
+ if (typeof Buffer_1 === 'function' && Ctor === Buffer_1) {
+ newView = Buffer_1.from(wasmMemory.buffer, info.address, info.length);
+ }
+ else {
+ newView = new Ctor(wasmMemory.buffer, info.address, info.length);
+ }
+ emnapiExternalMemory.wasmMemoryViewTable.set(newView, info);
+ return newView;
+ }
+ return view;
+ },
+ getViewPointer: function (view, shouldCopy) {
+ view = emnapiExternalMemory.getOrUpdateMemoryView(view);
+ if (view.buffer === wasmMemory.buffer) {
+ if (emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ var _a = emnapiExternalMemory.wasmMemoryViewTable.get(view), address_1 = _a.address, ownership_1 = _a.ownership, runtimeAllocated_1 = _a.runtimeAllocated;
+ return { address: address_1, ownership: ownership_1, runtimeAllocated: runtimeAllocated_1, view: view };
+ }
+ return { address: view.byteOffset, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0, view: view };
+ }
+ var _b = emnapiExternalMemory.getArrayBufferPointer(view.buffer, shouldCopy), address = _b.address, ownership = _b.ownership, runtimeAllocated = _b.runtimeAllocated;
+ return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
+ }
+ };
+ /* eslint-disable @typescript-eslint/indent */
+ /**
+ * @__postset
+ * ```
+ * emnapiString.init();
+ * ```
+ */
+ var emnapiString = {
+ utf8Decoder: undefined,
+ utf16Decoder: undefined,
+ init: function () {
+ var fallbackDecoder = {
+ decode: function (bytes) {
+ var inputIndex = 0;
+ var pendingSize = Math.min(0x1000, bytes.length + 1);
+ var pending = new Uint16Array(pendingSize);
+ var chunks = [];
+ var pendingIndex = 0;
+ for (;;) {
+ var more = inputIndex < bytes.length;
+ if (!more || (pendingIndex >= pendingSize - 1)) {
+ var subarray = pending.subarray(0, pendingIndex);
+ var arraylike = subarray;
+ chunks.push(String.fromCharCode.apply(null, arraylike));
+ if (!more) {
+ return chunks.join('');
+ }
+ bytes = bytes.subarray(inputIndex);
+ inputIndex = 0;
+ pendingIndex = 0;
+ }
+ var byte1 = bytes[inputIndex++];
+ if ((byte1 & 0x80) === 0) {
+ pending[pendingIndex++] = byte1;
+ }
+ else if ((byte1 & 0xe0) === 0xc0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ pending[pendingIndex++] = ((byte1 & 0x1f) << 6) | byte2;
+ }
+ else if ((byte1 & 0xf0) === 0xe0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ var byte3 = bytes[inputIndex++] & 0x3f;
+ pending[pendingIndex++] = ((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3;
+ }
+ else if ((byte1 & 0xf8) === 0xf0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ var byte3 = bytes[inputIndex++] & 0x3f;
+ var byte4 = bytes[inputIndex++] & 0x3f;
+ var codepoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;
+ if (codepoint > 0xffff) {
+ codepoint -= 0x10000;
+ pending[pendingIndex++] = (codepoint >>> 10) & 0x3ff | 0xd800;
+ codepoint = 0xdc00 | codepoint & 0x3ff;
+ }
+ pending[pendingIndex++] = codepoint;
+ }
+ else ;
+ }
+ }
+ };
+ var utf8Decoder;
+ utf8Decoder = typeof TextDecoder === 'function' ? new TextDecoder() : fallbackDecoder;
+ emnapiString.utf8Decoder = utf8Decoder;
+ var fallbackDecoder2 = {
+ decode: function (input) {
+ var bytes = new Uint16Array(input.buffer, input.byteOffset, input.byteLength / 2);
+ if (bytes.length <= 0x1000) {
+ return String.fromCharCode.apply(null, bytes);
+ }
+ var chunks = [];
+ var i = 0;
+ var len = 0;
+ for (; i < bytes.length; i += len) {
+ len = Math.min(0x1000, bytes.length - i);
+ chunks.push(String.fromCharCode.apply(null, bytes.subarray(i, i + len)));
+ }
+ return chunks.join('');
+ }
+ };
+ var utf16Decoder;
+ utf16Decoder = typeof TextDecoder === 'function' ? new TextDecoder('utf-16le') : fallbackDecoder2;
+ emnapiString.utf16Decoder = utf16Decoder;
+ },
+ lengthBytesUTF8: function (str) {
+ var c;
+ var len = 0;
+ for (var i = 0; i < str.length; ++i) {
+ c = str.charCodeAt(i);
+ if (c <= 0x7F) {
+ len++;
+ }
+ else if (c <= 0x7FF) {
+ len += 2;
+ }
+ else if (c >= 0xD800 && c <= 0xDFFF) {
+ len += 4;
+ ++i;
+ }
+ else {
+ len += 3;
+ }
+ }
+ return len;
+ },
+ UTF8ToString: function (ptr, length) {
+ if (!ptr || !length)
+ return '';
+ ptr >>>= 0;
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ var end = ptr;
+ if (length === -1 || length === 4294967295) {
+ for (; HEAPU8[end];)
+ ++end;
+ }
+ else {
+ end = ptr + (length >>> 0);
+ }
+ length = end - ptr;
+ if (length <= 16) {
+ var idx = ptr;
+ var str = '';
+ while (idx < end) {
+ var u0 = HEAPU8[idx++];
+ if (!(u0 & 0x80)) {
+ str += String.fromCharCode(u0);
+ continue;
+ }
+ var u1 = HEAPU8[idx++] & 63;
+ if ((u0 & 0xE0) === 0xC0) {
+ str += String.fromCharCode(((u0 & 31) << 6) | u1);
+ continue;
+ }
+ var u2 = HEAPU8[idx++] & 63;
+ if ((u0 & 0xF0) === 0xE0) {
+ u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
+ }
+ else {
+ u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (HEAPU8[idx++] & 63);
+ }
+ if (u0 < 0x10000) {
+ str += String.fromCharCode(u0);
+ }
+ else {
+ var ch = u0 - 0x10000;
+ str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
+ }
+ }
+ return str;
+ }
+ return emnapiString.utf8Decoder.decode(((typeof SharedArrayBuffer === "function" && HEAPU8.buffer instanceof SharedArrayBuffer) || (Object.prototype.toString.call(HEAPU8.buffer) === "[object SharedArrayBuffer]")) ? HEAPU8.slice(ptr, end) : HEAPU8.subarray(ptr, end));
+ },
+ stringToUTF8: function (str, outPtr, maxBytesToWrite) {
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ var outIdx = outPtr;
+ outIdx >>>= 0;
+ if (!(maxBytesToWrite > 0)) {
+ return 0;
+ }
+ var startIdx = outIdx;
+ var endIdx = outIdx + maxBytesToWrite - 1;
+ for (var i = 0; i < str.length; ++i) {
+ var u = str.charCodeAt(i);
+ if (u >= 0xD800 && u <= 0xDFFF) {
+ var u1 = str.charCodeAt(++i);
+ u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);
+ }
+ if (u <= 0x7F) {
+ if (outIdx >= endIdx)
+ break;
+ HEAPU8[outIdx++] = u;
+ }
+ else if (u <= 0x7FF) {
+ if (outIdx + 1 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xC0 | (u >> 6);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ else if (u <= 0xFFFF) {
+ if (outIdx + 2 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xE0 | (u >> 12);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 6) & 63);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ else {
+ if (outIdx + 3 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xF0 | (u >> 18);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 12) & 63);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 6) & 63);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ }
+ HEAPU8[outIdx] = 0;
+ return outIdx - startIdx;
+ },
+ UTF16ToString: function (ptr, length) {
+ if (!ptr || !length)
+ return '';
+ ptr >>>= 0;
+ var end = ptr;
+ if (length === -1 || length === 4294967295) {
+ var idx = end >>> 1;
+ var HEAPU16 = new Uint16Array(wasmMemory.buffer);
+ while (HEAPU16[idx])
+ ++idx;
+ end = (idx << 1) >>> 0;
+ }
+ else {
+ end = ptr + (length >>> 0) * 2;
+ }
+ length = end - ptr;
+ if (length <= 32) {
+ return String.fromCharCode.apply(null, new Uint16Array(wasmMemory.buffer, ptr, length / 2));
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ return emnapiString.utf16Decoder.decode(((typeof SharedArrayBuffer === "function" && HEAPU8.buffer instanceof SharedArrayBuffer) || (Object.prototype.toString.call(HEAPU8.buffer) === "[object SharedArrayBuffer]")) ? HEAPU8.slice(ptr, end) : HEAPU8.subarray(ptr, end));
+ },
+ stringToUTF16: function (str, outPtr, maxBytesToWrite) {
+ if (maxBytesToWrite === undefined) {
+ maxBytesToWrite = 0x7FFFFFFF;
+ }
+ if (maxBytesToWrite < 2)
+ return 0;
+ maxBytesToWrite -= 2;
+ var startPtr = outPtr;
+ var numCharsToWrite = (maxBytesToWrite < str.length * 2) ? (maxBytesToWrite / 2) : str.length;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < numCharsToWrite; ++i) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var codeUnit = str.charCodeAt(i);
+ HEAP_DATA_VIEW.setInt16(outPtr, codeUnit, true);
+ outPtr += 2;
+ }
+ HEAP_DATA_VIEW.setInt16(outPtr, 0, true);
+ return outPtr - startPtr;
+ },
+ newString: function (env, str, length, result, stringMaker) {
+ length >>>= 0;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!str)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!(autoLength || (sizelength <= 2147483647)))
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ str >>>= 0;
+ var strValue = stringMaker(str, autoLength, sizelength);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(strValue).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ },
+ newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
+ length >>>= 0;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!str)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!(autoLength || (sizelength <= 2147483647)))
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var status = createApi(env, str, length, result);
+ if (status === 0 /* napi_status.napi_ok */) {
+ if (copied) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(copied, 1, true);
+ }
+ if (finalize_callback) {
+ envObject.callFinalizer(finalize_callback, str, finalize_hint);
+ }
+ }
+ return status;
+ }
+ };
+ /**
+ * @__sig ippp
+ */
+ function napi_get_array_length(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isArray()) {
+ return envObject.setLastError(8 /* napi_status.napi_array_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = handle.value.length >>> 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_get_arraybuffer_info(env, arraybuffer, data, byte_length) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (data) {
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (byte_length) {
+ byte_length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function node_api_set_prototype(env, object, value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var obj = emnapiCtx.handleStore.get(object).value;
+ if (obj == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var type = typeof obj;
+ var v = void 0;
+ try {
+ v = (type === 'object' && obj !== null) || type === 'function' ? obj : Object(obj);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ var val = emnapiCtx.handleStore.get(value).value;
+ Object.setPrototypeOf(v, val);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_prototype(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = handle.isObject() || handle.isFunction() ? handle.value : Object(handle.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, p, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippppppp
+ */
+ function napi_get_typedarray_info(env, typedarray, type, length, data, arraybuffer, byte_offset) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!typedarray)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(typedarray);
+ if (!handle.isTypedArray()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v = handle.value;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (type) {
+ type >>>= 0;
+ var t = void 0;
+ if (v instanceof Int8Array) {
+ t = 0 /* napi_typedarray_type.napi_int8_array */;
+ }
+ else if (v instanceof Uint8Array) {
+ t = 1 /* napi_typedarray_type.napi_uint8_array */;
+ }
+ else if (v instanceof Uint8ClampedArray) {
+ t = 2 /* napi_typedarray_type.napi_uint8_clamped_array */;
+ }
+ else if (v instanceof Int16Array) {
+ t = 3 /* napi_typedarray_type.napi_int16_array */;
+ }
+ else if (v instanceof Uint16Array) {
+ t = 4 /* napi_typedarray_type.napi_uint16_array */;
+ }
+ else if (v instanceof Int32Array) {
+ t = 5 /* napi_typedarray_type.napi_int32_array */;
+ }
+ else if (v instanceof Uint32Array) {
+ t = 6 /* napi_typedarray_type.napi_uint32_array */;
+ }
+ else if (typeof Float16Array === 'function' && v instanceof Float16Array) {
+ t = 11 /* napi_typedarray_type.napi_float16_array */;
+ }
+ else if (v instanceof Float32Array) {
+ t = 7 /* napi_typedarray_type.napi_float32_array */;
+ }
+ else if (v instanceof Float64Array) {
+ t = 8 /* napi_typedarray_type.napi_float64_array */;
+ }
+ else if (v instanceof BigInt64Array) {
+ t = 9 /* napi_typedarray_type.napi_bigint64_array */;
+ }
+ else if (v instanceof BigUint64Array) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ t = 10 /* napi_typedarray_type.napi_biguint64_array */;
+ }
+ else {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ HEAP_DATA_VIEW.setInt32(type, t, true);
+ }
+ v = emnapiExternalMemory.getOrUpdateMemoryView(v);
+ if (length) {
+ length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(length, v.length, true);
+ }
+ if (data || arraybuffer) {
+ if (data) {
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = emnapiExternalMemory.getViewPointer(v, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (arraybuffer) {
+ arraybuffer >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var ab = envObject.ensureHandleId(v.buffer);
+ HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
+ }
+ }
+ if (byte_offset) {
+ byte_offset >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_get_buffer_info(env, buffer, data, length) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!buffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(buffer);
+ if (!handle.isBuffer(emnapiCtx.feature.Buffer))
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (handle.isDataView()) {
+ return napi_get_dataview_info(env, buffer, length, data, 0, 0);
+ }
+ return napi_get_typedarray_info(env, buffer, 0, length, data, 0, 0);
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_get_dataview_info(env, dataview, byte_length, data, arraybuffer, byte_offset) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!dataview)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(dataview);
+ if (!handle.isDataView()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (byte_length) {
+ byte_length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
+ }
+ if (data || arraybuffer) {
+ if (data) {
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = emnapiExternalMemory.getViewPointer(v, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (arraybuffer) {
+ arraybuffer >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var ab = envObject.ensureHandleId(v.buffer);
+ HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
+ }
+ }
+ if (byte_offset) {
+ byte_offset >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_date_value(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isDate()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ result >>>= 0;
+ v = handle.value.valueOf();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_bool(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'boolean') {
+ return envObject.setLastError(7 /* napi_status.napi_boolean_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = handle.value ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_double(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = handle.value;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, r, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_get_value_bigint_int64(env, value, result, lossless) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!lossless)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ var numberValue = handle.value;
+ if (typeof numberValue !== 'bigint') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ lossless >>>= 0;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
+ HEAP_DATA_VIEW.setInt8(lossless, 1, true);
+ }
+ else {
+ HEAP_DATA_VIEW.setInt8(lossless, 0, true);
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ if (numberValue >= (BigInt(1) << BigInt(63))) {
+ numberValue = numberValue - (BigInt(1) << BigInt(64));
+ }
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var low = Number(numberValue & BigInt(0xffffffff));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var high = Number(numberValue >> BigInt(32));
+ HEAP_DATA_VIEW.setInt32(result, low, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, high, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_get_value_bigint_uint64(env, value, result, lossless) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!lossless)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ var numberValue = handle.value;
+ if (typeof numberValue !== 'bigint') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ lossless >>>= 0;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
+ HEAP_DATA_VIEW.setInt8(lossless, 1, true);
+ }
+ else {
+ HEAP_DATA_VIEW.setInt8(lossless, 0, true);
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var low = Number(numberValue & BigInt(0xffffffff));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var high = Number(numberValue >> BigInt(32));
+ HEAP_DATA_VIEW.setUint32(result, low, true);
+ HEAP_DATA_VIEW.setUint32(result + 4, high, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_get_value_bigint_words(env, value, sign_bit, word_count, words) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!word_count)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isBigInt()) {
+ return envObject.setLastError(17 /* napi_status.napi_bigint_expected */);
+ }
+ var isMinus = handle.value < BigInt(0);
+ sign_bit >>>= 0;
+ words >>>= 0;
+ word_count >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
+ word_count_int >>>= 0;
+ var wordCount = 0;
+ var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
+ while (bigintValue !== BigInt(0)) {
+ wordCount++;
+ bigintValue = bigintValue >> BigInt(64);
+ }
+ bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
+ if (!sign_bit && !words) {
+ word_count_int = wordCount;
+ HEAP_DATA_VIEW.setUint32(word_count, word_count_int, true);
+ }
+ else {
+ if (!sign_bit)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!words)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var wordsArr = [];
+ while (bigintValue !== BigInt(0)) {
+ var uint64 = bigintValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ wordsArr.push(uint64);
+ bigintValue = bigintValue >> BigInt(64);
+ }
+ var len = Math.min(word_count_int, wordsArr.length);
+ for (var i = 0; i < len; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var low = Number(wordsArr[i] & BigInt(0xffffffff));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var high = Number(wordsArr[i] >> BigInt(32));
+ HEAP_DATA_VIEW.setUint32(words + i * 8, low, true);
+ HEAP_DATA_VIEW.setUint32(words + (i * 8 + 4), high, true);
+ }
+ HEAP_DATA_VIEW.setInt32(sign_bit, isMinus ? 1 : 0, true);
+ HEAP_DATA_VIEW.setUint32(word_count, len, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_external(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isExternal()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = handle.data();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, p, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_int32(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = new Int32Array([handle.value])[0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_int64(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ var numberValue = handle.value;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
+ HEAP_DATA_VIEW.setInt32(result, 0, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, 0, true);
+ }
+ else if (numberValue < /* INT64_RANGE_NEGATIVE */ -9223372036854776e3) {
+ HEAP_DATA_VIEW.setInt32(result, 0, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, 2147483648, true);
+ }
+ else if (numberValue >= /* INT64_RANGE_POSITIVE */ 9223372036854776000) {
+ HEAP_DATA_VIEW.setUint32(result, 4294967295, true);
+ HEAP_DATA_VIEW.setUint32(result + 4, 2147483647, true);
+ }
+ else {
+ $emnapiSetValueI64(result, Math.trunc(numberValue));
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_get_value_string_latin1(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ HEAP_DATA_VIEW.setUint32(result, handle.value.length, true);
+ }
+ else if (buf_size !== 0) {
+ var copied = 0;
+ var v = void 0;
+ for (var i = 0; i < buf_size - 1; ++i) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = handle.value.charCodeAt(i) & 0xff;
+ HEAP_DATA_VIEW.setUint8(buf + i, v, true);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ copied++;
+ }
+ HEAP_DATA_VIEW.setUint8(buf + copied, 0, true);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_get_value_string_utf8(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var strLength = emnapiString.lengthBytesUTF8(handle.value);
+ HEAP_DATA_VIEW.setUint32(result, strLength, true);
+ }
+ else if (buf_size !== 0) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var copied = emnapiString.stringToUTF8(handle.value, buf, buf_size);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_get_value_string_utf16(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ HEAP_DATA_VIEW.setUint32(result, handle.value.length, true);
+ }
+ else if (buf_size !== 0) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var copied = emnapiString.stringToUTF16(handle.value, buf, buf_size * 2);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied / 2, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_uint32(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = new Uint32Array([handle.value])[0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ var convert2cMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_get_array_length: napi_get_array_length,
+ napi_get_arraybuffer_info: napi_get_arraybuffer_info,
+ napi_get_buffer_info: napi_get_buffer_info,
+ napi_get_dataview_info: napi_get_dataview_info,
+ napi_get_date_value: napi_get_date_value,
+ napi_get_prototype: napi_get_prototype,
+ napi_get_typedarray_info: napi_get_typedarray_info,
+ napi_get_value_bigint_int64: napi_get_value_bigint_int64,
+ napi_get_value_bigint_uint64: napi_get_value_bigint_uint64,
+ napi_get_value_bigint_words: napi_get_value_bigint_words,
+ napi_get_value_bool: napi_get_value_bool,
+ napi_get_value_double: napi_get_value_double,
+ napi_get_value_external: napi_get_value_external,
+ napi_get_value_int32: napi_get_value_int32,
+ napi_get_value_int64: napi_get_value_int64,
+ napi_get_value_string_latin1: napi_get_value_string_latin1,
+ napi_get_value_string_utf16: napi_get_value_string_utf16,
+ napi_get_value_string_utf8: napi_get_value_string_utf8,
+ napi_get_value_uint32: napi_get_value_uint32,
+ node_api_set_prototype: node_api_set_prototype
+ });
+ /**
+ * @__sig ipip
+ */
+ function napi_create_int32(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(value).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipip
+ */
+ function napi_create_uint32(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipjp
+ */
+ function napi_create_int64(env, low, high, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var value;
+ if (!high)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ value = Number(low);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipdp
+ */
+ function napi_create_double(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(value).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_create_string_latin1(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str, autoLength, sizeLength) {
+ var latin1String = '';
+ var len = 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (autoLength) {
+ while (true) {
+ var ch = HEAP_DATA_VIEW.getUint8(str, true);
+ if (!ch)
+ break;
+ latin1String += String.fromCharCode(ch);
+ str++;
+ }
+ }
+ else {
+ while (len < sizeLength) {
+ var ch = HEAP_DATA_VIEW.getUint8(str, true);
+ if (!ch)
+ break;
+ latin1String += String.fromCharCode(ch);
+ len++;
+ str++;
+ }
+ }
+ return latin1String;
+ });
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_create_string_utf16(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str) {
+ return emnapiString.UTF16ToString(str, length);
+ });
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_create_string_utf8(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str) {
+ return emnapiString.UTF8ToString(str, length);
+ });
+ }
+ /**
+ * @__sig ippppppp
+ */
+ function node_api_create_external_string_latin1(env, str, length, finalize_callback, finalize_hint, result, copied) {
+ return emnapiString.newExternalString(env, str, length, finalize_callback, finalize_hint, result, copied, napi_create_string_latin1, undefined);
+ }
+ /**
+ * @__sig ippppppp
+ */
+ function node_api_create_external_string_utf16(env, str, length, finalize_callback, finalize_hint, result, copied) {
+ return emnapiString.newExternalString(env, str, length, finalize_callback, finalize_hint, result, copied, napi_create_string_utf16, undefined);
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_create_property_key_latin1(env, str, length, result) {
+ return napi_create_string_latin1(env, str, length, result);
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_create_property_key_utf8(env, str, length, result) {
+ return napi_create_string_utf8(env, str, length, result);
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_create_property_key_utf16(env, str, length, result) {
+ return napi_create_string_utf16(env, str, length, result);
+ }
+ /**
+ * @__sig ipjp
+ */
+ function napi_create_bigint_int64(env, low, high, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ var value;
+ if (!high)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ value = low;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipjp
+ */
+ function napi_create_bigint_uint64(env, low, high, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ var value;
+ if (!high)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipippp
+ */
+ function napi_create_bigint_words(env, sign_bit, word_count, words, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v, i;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ words >>>= 0;
+ word_count >>>= 0;
+ word_count = word_count >>> 0;
+ if (word_count > 2147483647) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (word_count > (1024 * 1024 / (4 * 8) / 2)) {
+ throw new RangeError('Maximum BigInt size exceeded');
+ }
+ var value = BigInt(0);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (i = 0; i < word_count; i++) {
+ var low = HEAP_DATA_VIEW.getUint32(words + i * 8, true);
+ var high = HEAP_DATA_VIEW.getUint32(words + (i * 8 + 4), true);
+ var wordi = BigInt(low) | (BigInt(high) << BigInt(32));
+ value += wordi << BigInt(64 * i);
+ }
+ value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
+ result >>>= 0;
+ v = emnapiCtx.addToCurrentScope(value).id;
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ var convert2napiMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_create_bigint_int64: napi_create_bigint_int64,
+ napi_create_bigint_uint64: napi_create_bigint_uint64,
+ napi_create_bigint_words: napi_create_bigint_words,
+ napi_create_double: napi_create_double,
+ napi_create_int32: napi_create_int32,
+ napi_create_int64: napi_create_int64,
+ napi_create_string_latin1: napi_create_string_latin1,
+ napi_create_string_utf16: napi_create_string_utf16,
+ napi_create_string_utf8: napi_create_string_utf8,
+ napi_create_uint32: napi_create_uint32,
+ node_api_create_external_string_latin1: node_api_create_external_string_latin1,
+ node_api_create_external_string_utf16: node_api_create_external_string_utf16,
+ node_api_create_property_key_latin1: node_api_create_property_key_latin1,
+ node_api_create_property_key_utf16: node_api_create_property_key_utf16,
+ node_api_create_property_key_utf8: node_api_create_property_key_utf8
+ });
+ function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
+ utf8name >>>= 0;
+ var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
+ var f;
+ var napiCallback = (wasmTable.get(cb));
+ var callback = function (envObject) {
+ return napiCallback(envObject.id, envObject.ctx.scopeStore.currentScope.id);
+ };
+ var makeFunction = function (envObject, callback) {
+ return function () {
+ var scope = envObject.ctx.openScope(envObject);
+ var callbackInfo = scope.callbackInfo;
+ callbackInfo.data = data;
+ callbackInfo.args = arguments;
+ callbackInfo.thiz = this;
+ callbackInfo.fn = f;
+ try {
+ var napiValue = envObject.callIntoModule(callback);
+ return (!napiValue) ? undefined : envObject.ctx.handleStore.get(napiValue).value;
+ }
+ finally {
+ callbackInfo.data = 0;
+ callbackInfo.args = undefined;
+ callbackInfo.thiz = undefined;
+ callbackInfo.fn = undefined;
+ envObject.ctx.closeScope(envObject, scope);
+ }
+ };
+ };
+ if (functionName === '') {
+ f = makeFunction(envObject, callback);
+ return { status: 0 /* napi_status.napi_ok */, f: f };
+ }
+ if (!(/^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(functionName))) {
+ return { status: 1 /* napi_status.napi_invalid_arg */, f: undefined };
+ }
+ if (emnapiCtx.feature.supportNewFunction) {
+ var _ = makeFunction(envObject, callback);
+ try {
+ f = (new Function('_', 'return function ' + functionName + '(){' +
+ '"use strict";' +
+ 'return _.apply(this,arguments);' +
+ '};'))(_);
+ }
+ catch (_err) {
+ f = makeFunction(envObject, callback);
+ if (emnapiCtx.feature.canSetFunctionName)
+ Object.defineProperty(f, 'name', { value: functionName });
+ }
+ }
+ else {
+ f = makeFunction(envObject, callback);
+ if (emnapiCtx.feature.canSetFunctionName)
+ Object.defineProperty(f, 'name', { value: functionName });
+ }
+ return { status: 0 /* napi_status.napi_ok */, f: f };
+ }
+ function emnapiDefineProperty(envObject, obj, propertyName, method, getter, setter, value, attributes, data) {
+ if (getter || setter) {
+ var localGetter = void 0;
+ var localSetter = void 0;
+ if (getter) {
+ localGetter = emnapiCreateFunction(envObject, 0, 0, getter, data).f;
+ }
+ if (setter) {
+ localSetter = emnapiCreateFunction(envObject, 0, 0, setter, data).f;
+ }
+ var desc = {
+ configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
+ enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
+ get: localGetter,
+ set: localSetter
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ else if (method) {
+ var localMethod = emnapiCreateFunction(envObject, 0, 0, method, data).f;
+ var desc = {
+ configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
+ enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
+ writable: (attributes & 1 /* napi_property_attributes.napi_writable */) !== 0,
+ value: localMethod
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ else {
+ var desc = {
+ configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
+ enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
+ writable: (attributes & 1 /* napi_property_attributes.napi_writable */) !== 0,
+ value: emnapiCtx.handleStore.get(value).value
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ }
+ function emnapiGetHandle(js_object) {
+ var handle = emnapiCtx.handleStore.get(js_object);
+ if (!(handle.isObject() || handle.isFunction())) {
+ return { status: 1 /* napi_status.napi_invalid_arg */ };
+ }
+ if (typeof emnapiExternalMemory !== 'undefined' && ArrayBuffer.isView(handle.value)) {
+ if (emnapiExternalMemory.wasmMemoryViewTable.has(handle.value)) {
+ handle = emnapiCtx.addToCurrentScope(emnapiExternalMemory.wasmMemoryViewTable.get(handle.value));
+ }
+ }
+ return { status: 0 /* napi_status.napi_ok */, handle: handle };
+ }
+ function emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var referenceId;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!emnapiCtx.feature.supportFinalizer) {
+ if (finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_wrap', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ if (result) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_wrap', 'Parameter "result" must be 0(NULL)');
+ }
+ }
+ if (!js_object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handleResult = emnapiGetHandle(js_object);
+ if (handleResult.status !== 0 /* napi_status.napi_ok */) {
+ return envObject.setLastError(handleResult.status);
+ }
+ var handle = handleResult.handle;
+ if (envObject.getObjectBinding(handle.value).wrapped !== 0) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var reference = void 0;
+ if (result) {
+ if (!finalize_cb)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1 /* ReferenceOwnership.kUserland */, finalize_cb, native_object, finalize_hint);
+ result >>>= 0;
+ referenceId = reference.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, referenceId, true);
+ }
+ else {
+ if (finalize_cb) {
+ reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 0 /* ReferenceOwnership.kRuntime */, finalize_cb, native_object, finalize_hint);
+ }
+ else {
+ reference = emnapiCtx.createReferenceWithData(envObject, handle.id, 0, 0 /* ReferenceOwnership.kRuntime */, native_object);
+ }
+ }
+ envObject.getObjectBinding(handle.value).wrapped = reference.id;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ function emnapiUnwrap(env, js_object, result, action) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var data;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!js_object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (action === 0 /* UnwrapAction.KeepWrap */) {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var value = emnapiCtx.handleStore.get(js_object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ var referenceId = binding.wrapped;
+ var ref = emnapiCtx.refStore.get(referenceId);
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (result) {
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ data = ref.data();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, data, true);
+ }
+ if (action === 1 /* UnwrapAction.RemoveWrap */) {
+ binding.wrapped = 0;
+ if (ref.ownership() === 1 /* ReferenceOwnership.kUserland */) {
+ // When the wrap is been removed, the finalizer should be reset.
+ ref.resetFinalizer();
+ }
+ else {
+ ref.dispose();
+ }
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppppp
+ */
+ function napi_define_class(env, utf8name, length, constructor, callback_data, property_count, properties, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var propPtr, valueHandleId, attributes;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!constructor)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ length >>>= 0;
+ properties >>>= 0;
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!properties)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
+ if (fresult.status !== 0 /* napi_status.napi_ok */)
+ return envObject.setLastError(fresult.status);
+ var F = fresult.f;
+ var propertyName = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ propPtr = properties + (i * (4 * 8));
+ var utf8Name = HEAP_DATA_VIEW.getUint32(propPtr, true);
+ var name_1 = HEAP_DATA_VIEW.getUint32(propPtr + 4, true);
+ var method = HEAP_DATA_VIEW.getUint32(propPtr + 8, true);
+ var getter = HEAP_DATA_VIEW.getUint32(propPtr + 12, true);
+ var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
+ var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
+ attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
+ attributes >>>= 0;
+ var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
+ if (utf8Name) {
+ propertyName = emnapiString.UTF8ToString(utf8Name, -1);
+ }
+ else {
+ if (!name_1) {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ propertyName = emnapiCtx.handleStore.get(name_1).value;
+ if (typeof propertyName !== 'string' && typeof propertyName !== 'symbol') {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ }
+ if ((attributes & 1024 /* napi_property_attributes.napi_static */) !== 0) {
+ emnapiDefineProperty(envObject, F, propertyName, method, getter, setter, value, attributes, data);
+ continue;
+ }
+ emnapiDefineProperty(envObject, F.prototype, propertyName, method, getter, setter, value, attributes, data);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var valueHandle = emnapiCtx.addToCurrentScope(F);
+ valueHandleId = valueHandle.id;
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_wrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
+ return emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result);
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_unwrap(env, js_object, result) {
+ return emnapiUnwrap(env, js_object, result, 0 /* UnwrapAction.KeepWrap */);
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_remove_wrap(env, js_object, result) {
+ return emnapiUnwrap(env, js_object, result, 1 /* UnwrapAction.RemoveWrap */);
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_type_tag_object(env, object, type_tag) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var value = emnapiCtx.handleStore.get(object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
+ }
+ type_tag >>>= 0;
+ if (!type_tag) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ if (binding.tag !== null) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var tag = new Uint8Array(16);
+ tag.set(new Uint8Array(wasmMemory.buffer, type_tag, 16));
+ binding.tag = new Uint32Array(tag.buffer);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_check_object_type_tag(env, object, type_tag, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, one-var
+ var ret = true;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var value = emnapiCtx.handleStore.get(object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
+ }
+ if (!type_tag) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ if (binding.tag !== null) {
+ type_tag >>>= 0;
+ var tag = binding.tag;
+ var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
+ ret = (tag[0] === typeTag[0] &&
+ tag[1] === typeTag[1] &&
+ tag[2] === typeTag[2] &&
+ tag[3] === typeTag[3]);
+ }
+ else {
+ ret = false;
+ }
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_add_finalizer(env, js_object, finalize_data, finalize_cb, finalize_hint, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportFinalizer) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!js_object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!finalize_cb)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handleResult = emnapiGetHandle(js_object);
+ if (handleResult.status !== 0 /* napi_status.napi_ok */) {
+ return envObject.setLastError(handleResult.status);
+ }
+ var handle = handleResult.handle;
+ var ownership = !result ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
+ finalize_data >>>= 0;
+ finalize_cb >>>= 0;
+ finalize_hint >>>= 0;
+ var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
+ if (result) {
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var referenceId = reference.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, referenceId, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_post_finalizer(env, finalize_cb, finalize_data, finalize_hint) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.enqueueFinalizer(emnapiCtx.createTrackedFinalizer(envObject, finalize_cb, finalize_data, finalize_hint));
+ return envObject.clearLastError();
+ }
+ var wrapMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_add_finalizer: napi_add_finalizer,
+ napi_check_object_type_tag: napi_check_object_type_tag,
+ napi_define_class: napi_define_class,
+ napi_remove_wrap: napi_remove_wrap,
+ napi_type_tag_object: napi_type_tag_object,
+ napi_unwrap: napi_unwrap,
+ napi_wrap: napi_wrap,
+ node_api_post_finalizer: node_api_post_finalizer
+ });
+ /**
+ * @__sig ipippppp
+ */
+ function emnapi_create_memory_view(env, typedarray_type, external_data, byte_length, finalize_cb, finalize_hint, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ byte_length >>>= 0;
+ external_data >>>= 0;
+ result >>>= 0;
+ byte_length = byte_length >>> 0;
+ if (!external_data) {
+ byte_length = 0;
+ }
+ if (byte_length > 2147483647) {
+ throw new RangeError('Cannot create a memory view larger than 2147483647 bytes');
+ }
+ if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
+ throw new RangeError('Memory out of range');
+ }
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('emnapi_create_memory_view', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var viewDescriptor = void 0;
+ switch (typedarray_type) {
+ case 0 /* emnapi_memory_view_type.emnapi_int8_array */:
+ viewDescriptor = { Ctor: Int8Array, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 1 /* emnapi_memory_view_type.emnapi_uint8_array */:
+ viewDescriptor = { Ctor: Uint8Array, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 2 /* emnapi_memory_view_type.emnapi_uint8_clamped_array */:
+ viewDescriptor = { Ctor: Uint8ClampedArray, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 3 /* emnapi_memory_view_type.emnapi_int16_array */:
+ viewDescriptor = { Ctor: Int16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 4 /* emnapi_memory_view_type.emnapi_uint16_array */:
+ viewDescriptor = { Ctor: Uint16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 5 /* emnapi_memory_view_type.emnapi_int32_array */:
+ viewDescriptor = { Ctor: Int32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 6 /* emnapi_memory_view_type.emnapi_uint32_array */:
+ viewDescriptor = { Ctor: Uint32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 7 /* emnapi_memory_view_type.emnapi_float32_array */:
+ viewDescriptor = { Ctor: Float32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 8 /* emnapi_memory_view_type.emnapi_float64_array */:
+ viewDescriptor = { Ctor: Float64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 9 /* emnapi_memory_view_type.emnapi_bigint64_array */:
+ viewDescriptor = { Ctor: BigInt64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 10 /* emnapi_memory_view_type.emnapi_biguint64_array */:
+ viewDescriptor = { Ctor: BigUint64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case -1 /* emnapi_memory_view_type.emnapi_data_view */:
+ viewDescriptor = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 11 /* emnapi_memory_view_type.emnapi_float16_array */:
+ if (typeof Float16Array !== 'function') {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ viewDescriptor = { Ctor: Float16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case -2 /* emnapi_memory_view_type.emnapi_buffer */: {
+ if (!emnapiCtx.feature.Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('emnapi_create_memory_view', '');
+ }
+ viewDescriptor = { Ctor: emnapiCtx.feature.Buffer, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ }
+ default: return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var Ctor = viewDescriptor.Ctor;
+ var typedArray = typedarray_type === -2 /* emnapi_memory_view_type.emnapi_buffer */
+ ? emnapiCtx.feature.Buffer.from(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length)
+ : new Ctor(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length);
+ var handle = emnapiCtx.addToCurrentScope(typedArray);
+ emnapiExternalMemory.wasmMemoryViewTable.set(typedArray, viewDescriptor);
+ if (finalize_cb) {
+ var status_1 = napi_add_finalizer(env, handle.id, external_data, finalize_cb, finalize_hint, /* NULL */ 0);
+ if (status_1 === 10 /* napi_status.napi_pending_exception */) {
+ var err = envObject.tryCatch.extractException();
+ envObject.clearLastError();
+ throw err;
+ }
+ else if (status_1 !== 0 /* napi_status.napi_ok */) {
+ return envObject.setLastError(status_1);
+ }
+ }
+ value = handle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig i
+ */
+ function emnapi_is_support_weakref() {
+ return emnapiCtx.feature.supportFinalizer ? 1 : 0;
+ }
+ /**
+ * @__sig i
+ */
+ function emnapi_is_support_bigint() {
+ return emnapiCtx.feature.supportBigInt ? 1 : 0;
+ }
+ /**
+ * @__sig i
+ */
+ function emnapi_is_node_binding_available() {
+ return emnapiNodeBinding ? 1 : 0;
+ }
+ function $emnapiSyncMemory(js_to_wasm, arrayBufferOrView, offset, len) {
+ offset = offset !== null && offset !== void 0 ? offset : 0;
+ offset = offset >>> 0;
+ var view;
+ if (arrayBufferOrView instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
+ var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
+ if (!pointer)
+ throw new Error('Unknown ArrayBuffer address');
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
+ len = arrayBufferOrView.byteLength - offset;
+ }
+ len = len >>> 0;
+ if (len === 0)
+ return arrayBufferOrView;
+ view = new Uint8Array(arrayBufferOrView, offset, len);
+ var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
+ if (!js_to_wasm) {
+ view.set(wasmMemoryU8.subarray(pointer, pointer + len));
+ }
+ else {
+ wasmMemoryU8.set(view, pointer);
+ }
+ return arrayBufferOrView;
+ }
+ if (ArrayBuffer.isView(arrayBufferOrView)) {
+ var viewPointerInfo = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
+ var latestView = viewPointerInfo.view;
+ var pointer = viewPointerInfo.address;
+ if (!pointer)
+ throw new Error('Unknown ArrayBuffer address');
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
+ len = latestView.byteLength - offset;
+ }
+ len = len >>> 0;
+ if (len === 0)
+ return latestView;
+ view = new Uint8Array(latestView.buffer, latestView.byteOffset + offset, len);
+ var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
+ if (!js_to_wasm) {
+ view.set(wasmMemoryU8.subarray(pointer, pointer + len));
+ }
+ else {
+ wasmMemoryU8.set(view, pointer);
+ }
+ return latestView;
+ }
+ throw new TypeError('emnapiSyncMemory expect ArrayBuffer or ArrayBufferView as first parameter');
+ }
+ /**
+ * @__sig ipippp
+ */
+ function emnapi_sync_memory(env, js_to_wasm, arraybuffer_or_view, offset, len) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer_or_view)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ arraybuffer_or_view >>>= 0;
+ offset >>>= 0;
+ len >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
+ var handle = envObject.ctx.handleStore.get(handleId);
+ if (!handle.isArrayBuffer() && !handle.isTypedArray() && !handle.isDataView() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
+ if (handle.value !== ret) {
+ arraybuffer_or_view >>>= 0;
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ function $emnapiGetMemoryAddress(arrayBufferOrView) {
+ var isArrayBuffer = arrayBufferOrView instanceof ArrayBuffer;
+ var isDataView = arrayBufferOrView instanceof DataView;
+ var isTypedArray = ArrayBuffer.isView(arrayBufferOrView) && !isDataView;
+ if (!isArrayBuffer && !isTypedArray && !isDataView && !emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
+ throw new TypeError('emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter');
+ }
+ var info;
+ if (isArrayBuffer) {
+ info = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false);
+ }
+ else {
+ info = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
+ }
+ return {
+ address: info.address,
+ ownership: info.ownership,
+ runtimeAllocated: info.runtimeAllocated
+ };
+ }
+ /**
+ * @__sig ipppp
+ */
+ function emnapi_get_memory_address(env, arraybuffer_or_view, address, ownership, runtime_allocated) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p, runtimeAllocated, ownershipOut;
+ var info;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer_or_view)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!address && !ownership && !runtime_allocated) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var handle = envObject.ctx.handleStore.get(arraybuffer_or_view);
+ info = $emnapiGetMemoryAddress(handle.value);
+ p = info.address;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (address) {
+ address >>>= 0;
+ HEAP_DATA_VIEW.setUint32(address, p, true);
+ }
+ if (ownership) {
+ ownership >>>= 0;
+ ownershipOut = info.ownership;
+ HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
+ }
+ if (runtime_allocated) {
+ runtime_allocated >>>= 0;
+ runtimeAllocated = info.runtimeAllocated;
+ HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipp
+ */
+ function emnapi_get_runtime_version(env, version) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!version)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var runtimeVersion;
+ try {
+ runtimeVersion = emnapiCtx.getRuntimeVersions().version;
+ }
+ catch (_) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var versions = runtimeVersion.split('.')
+ .map(function (n) { return Number(n); });
+ version >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(version, versions[0], true);
+ HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
+ HEAP_DATA_VIEW.setUint32(version + 8, versions[2], true);
+ return envObject.clearLastError();
+ }
+ var emnapiMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ $emnapiGetMemoryAddress: $emnapiGetMemoryAddress,
+ $emnapiSyncMemory: $emnapiSyncMemory,
+ emnapi_create_memory_view: emnapi_create_memory_view,
+ emnapi_get_memory_address: emnapi_get_memory_address,
+ emnapi_get_runtime_version: emnapi_get_runtime_version,
+ emnapi_is_node_binding_available: emnapi_is_node_binding_available,
+ emnapi_is_support_bigint: emnapi_is_support_bigint,
+ emnapi_is_support_weakref: emnapi_is_support_weakref,
+ emnapi_sync_memory: emnapi_sync_memory
+ });
+ /**
+ * @__sig ipp
+ */
+ function napi_create_array(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope([]).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_create_array_with_length(env, length, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ length >>>= 0;
+ result >>>= 0;
+ length = length >>> 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function emnapiCreateArrayBuffer(byte_length, data, shared) {
+ byte_length >>>= 0;
+ byte_length = byte_length >>> 0;
+ var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
+ if (data) {
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ return arrayBuffer;
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_create_arraybuffer(env, byte_length, data, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_create_sharedarraybuffer(env, byte_length, data, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipdp
+ */
+ function napi_create_date(env, time, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(new Date(time)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_create_external(env, data, finalize_cb, finalize_hint, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_create_external', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var externalHandle = emnapiCtx.getCurrentScope().addExternal(data);
+ if (finalize_cb) {
+ emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0 /* ReferenceOwnership.kRuntime */, finalize_cb, data, finalize_hint);
+ }
+ result >>>= 0;
+ value = externalHandle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_create_external_arraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ byte_length >>>= 0;
+ external_data >>>= 0;
+ result >>>= 0;
+ byte_length = byte_length >>> 0;
+ if (!external_data) {
+ byte_length = 0;
+ }
+ if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
+ throw new RangeError('Memory out of range');
+ }
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_create_external_arraybuffer', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var arrayBuffer = new ArrayBuffer(byte_length);
+ if (byte_length === 0) {
+ try {
+ var MessageChannel_1 = emnapiCtx.feature.MessageChannel;
+ var messageChannel = new MessageChannel_1();
+ messageChannel.port1.postMessage(arrayBuffer, [arrayBuffer]);
+ }
+ catch (_) { }
+ }
+ else {
+ var u8arr = new Uint8Array(arrayBuffer);
+ u8arr.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
+ emnapiExternalMemory.table.set(arrayBuffer, {
+ address: external_data,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ var handle = emnapiCtx.addToCurrentScope(arrayBuffer);
+ if (finalize_cb) {
+ var status_1 = napi_add_finalizer(env, handle.id, external_data, finalize_cb, finalize_hint, /* NULL */ 0);
+ if (status_1 === 10 /* napi_status.napi_pending_exception */) {
+ var err = envObject.tryCatch.extractException();
+ envObject.clearLastError();
+ throw err;
+ }
+ else if (status_1 !== 0 /* napi_status.napi_ok */) {
+ return envObject.setLastError(status_1);
+ }
+ }
+ value = handle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipp
+ */
+ function napi_create_object(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope({}).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!property_names)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!property_values)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v8_prototype_or_null = prototype_or_null
+ ? emnapiCtx.handleStore.get(prototype_or_null).value
+ : null;
+ var properties = {};
+ property_names >>>= 0;
+ property_values >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
+ if (!(typeof name_value === "string" || typeof name_value === "symbol"))
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ properties[name_value] = {
+ value: emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_values + i * 4, true)).value,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ };
+ }
+ var obj;
+ try {
+ obj = Object.defineProperties(Object.create(v8_prototype_or_null), properties);
+ }
+ catch (_) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(obj).id;
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_create_symbol(env, description, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!description) {
+ // eslint-disable-next-line symbol-description, @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(Symbol()).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ }
+ else {
+ var handle = emnapiCtx.handleStore.get(description);
+ var desc = handle.value;
+ if (typeof desc !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(Symbol(desc)).id;
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipipppp
+ */
+ function napi_create_typedarray(env, type, length, arraybuffer, byte_offset, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var buffer = handle.value;
+ byte_offset >>>= 0;
+ length >>>= 0;
+ var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
+ var _a;
+ byte_offset = byte_offset >>> 0;
+ length = length >>> 0;
+ if (size_of_element > 1) {
+ if ((byte_offset) % (size_of_element) !== 0) {
+ var err = new RangeError("start offset of ".concat((_a = Type.name) !== null && _a !== void 0 ? _a : '', " should be a multiple of ").concat(size_of_element));
+ err.code = 'ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT';
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ }
+ if (((length * size_of_element) + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('Invalid typed array length');
+ err.code = 'ERR_NAPI_INVALID_TYPEDARRAY_LENGTH';
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ var out = new Type(buffer, byte_offset, length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(out, {
+ Ctor: Type,
+ address: byte_offset,
+ length: length,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(out).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ };
+ switch (type) {
+ case 0 /* napi_typedarray_type.napi_int8_array */:
+ return createTypedArray(envObject, Int8Array, 1, buffer, byte_offset, length);
+ case 1 /* napi_typedarray_type.napi_uint8_array */:
+ return createTypedArray(envObject, Uint8Array, 1, buffer, byte_offset, length);
+ case 2 /* napi_typedarray_type.napi_uint8_clamped_array */:
+ return createTypedArray(envObject, Uint8ClampedArray, 1, buffer, byte_offset, length);
+ case 3 /* napi_typedarray_type.napi_int16_array */:
+ return createTypedArray(envObject, Int16Array, 2, buffer, byte_offset, length);
+ case 4 /* napi_typedarray_type.napi_uint16_array */:
+ return createTypedArray(envObject, Uint16Array, 2, buffer, byte_offset, length);
+ case 5 /* napi_typedarray_type.napi_int32_array */:
+ return createTypedArray(envObject, Int32Array, 4, buffer, byte_offset, length);
+ case 6 /* napi_typedarray_type.napi_uint32_array */:
+ return createTypedArray(envObject, Uint32Array, 4, buffer, byte_offset, length);
+ case 7 /* napi_typedarray_type.napi_float32_array */:
+ return createTypedArray(envObject, Float32Array, 4, buffer, byte_offset, length);
+ case 8 /* napi_typedarray_type.napi_float64_array */:
+ return createTypedArray(envObject, Float64Array, 8, buffer, byte_offset, length);
+ case 9 /* napi_typedarray_type.napi_bigint64_array */:
+ return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
+ case 10 /* napi_typedarray_type.napi_biguint64_array */:
+ return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
+ case 11 /* napi_typedarray_type.napi_float16_array */:
+ if (typeof Float16Array !== 'function') {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
+ default:
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__deps malloc
+ * @__sig ippp
+ */
+ function napi_create_buffer(env, size, data, result) {
+ var _a;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value, pointer;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
+ }
+ result >>>= 0;
+ var buffer = void 0;
+ size >>>= 0;
+ size = size >>> 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!data || (size === 0)) {
+ buffer = Buffer.alloc(size);
+ value = emnapiCtx.addToCurrentScope(buffer).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ }
+ else {
+ pointer = _malloc(size);
+ if (!pointer)
+ throw new Error('Out of memory');
+ pointer >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
+ var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
+ var viewDescriptor = {
+ Ctor: Buffer,
+ address: pointer,
+ length: size,
+ ownership: emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 1
+ };
+ emnapiExternalMemory.wasmMemoryViewTable.set(buffer_1, viewDescriptor);
+ (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
+ value = emnapiCtx.addToCurrentScope(buffer_1).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ data >>>= 0;
+ HEAP_DATA_VIEW.setUint32(data, pointer, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_create_buffer_copy(env, length, data, result_data, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('napi_create_buffer_copy', '');
+ }
+ var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
+ var buffer = Buffer.from(arrayBuffer);
+ data >>>= 0;
+ length >>>= 0;
+ buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
+ value = emnapiCtx.addToCurrentScope(buffer).id;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_create_external_buffer(env, length, data, finalize_cb, finalize_hint, result) {
+ return emnapi_create_memory_view(env, -2 /* emnapi_memory_view_type.emnapi_buffer */, data, length, finalize_cb, finalize_hint, result);
+ }
+ /**
+ * @__sig ippppp
+ */
+ function node_api_create_buffer_from_arraybuffer(env, arraybuffer, byte_offset, byte_length, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ byte_offset >>>= 0;
+ byte_length >>>= 0;
+ byte_offset = byte_offset >>> 0;
+ byte_length = byte_length >>> 0;
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var buffer = handle.value;
+ if ((byte_length + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('The byte offset + length is out of range');
+ err.code = 'ERR_OUT_OF_RANGE';
+ throw err;
+ }
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('node_api_create_buffer_from_arraybuffer', '');
+ }
+ var out = Buffer.from(buffer, byte_offset, byte_length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(out, {
+ Ctor: Buffer,
+ address: byte_offset,
+ length: byte_length,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(out).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_create_dataview(env, byte_length, arraybuffer, byte_offset, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ byte_length >>>= 0;
+ byte_offset >>>= 0;
+ byte_length = byte_length >>> 0;
+ byte_offset = byte_offset >>> 0;
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
+ var createDataview = function (buffer) {
+ if ((byte_length + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in');
+ err.code = 'ERR_NAPI_INVALID_DATAVIEW_ARGS';
+ throw err;
+ }
+ var dataview = new DataView(buffer, byte_offset, byte_length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(dataview)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(dataview, {
+ Ctor: DataView,
+ address: byte_offset,
+ length: byte_length,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(dataview).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ };
+ if (value instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(value)) {
+ return createDataview(value);
+ }
+ else {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_symbol_for(env, utf8description, length, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ length >>>= 0;
+ utf8description >>>= 0;
+ result >>>= 0;
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!utf8description)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!(autoLength || (sizelength <= 2147483647))) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var descriptionString = emnapiString.UTF8ToString(utf8description, length);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(Symbol.for(descriptionString)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var createMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_create_array: napi_create_array,
+ napi_create_array_with_length: napi_create_array_with_length,
+ napi_create_arraybuffer: napi_create_arraybuffer,
+ napi_create_buffer: napi_create_buffer,
+ napi_create_buffer_copy: napi_create_buffer_copy,
+ napi_create_dataview: napi_create_dataview,
+ napi_create_date: napi_create_date,
+ napi_create_external: napi_create_external,
+ napi_create_external_arraybuffer: napi_create_external_arraybuffer,
+ napi_create_external_buffer: napi_create_external_buffer,
+ napi_create_object: napi_create_object,
+ napi_create_symbol: napi_create_symbol,
+ napi_create_typedarray: napi_create_typedarray,
+ node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
+ node_api_create_object_with_properties: node_api_create_object_with_properties,
+ node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
+ node_api_symbol_for: node_api_symbol_for
+ });
+ /** @__sig ipip */
+ function napi_get_boolean(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = value === 0 ? 3 /* GlobalHandle.FALSE */ : 4 /* GlobalHandle.TRUE */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_global(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = 5 /* GlobalHandle.GLOBAL */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_null(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = 2 /* GlobalHandle.NULL */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_undefined(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = 1 /* GlobalHandle.UNDEFINED */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var globalMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_get_boolean: napi_get_boolean,
+ napi_get_global: napi_get_global,
+ napi_get_null: napi_get_null,
+ napi_get_undefined: napi_get_undefined
+ });
+ /** @__sig ipppp */
+ function napi_set_instance_data(env, data, finalize_cb, finalize_hint) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ data >>>= 0;
+ finalize_cb >>>= 0;
+ finalize_hint >>>= 0;
+ envObject.setInstanceData(data, finalize_cb, finalize_hint);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_instance_data(env, data) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!data)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = envObject.getInstanceData();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(data, value, true);
+ return envObject.clearLastError();
+ }
+ var envMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_get_instance_data: napi_get_instance_data,
+ napi_set_instance_data: napi_set_instance_data
+ });
+ /** @__sig vpppp */
+ function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
+ error_code >>>= 0;
+ engine_error_code >>>= 0;
+ engine_reserved >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ var lastError = envObject.lastError;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var errorCode = lastError.errorCode;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var engineErrorCode = lastError.engineErrorCode >>> 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var engineReserved = lastError.engineReserved;
+ engineReserved >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
+ HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
+ HEAP_DATA_VIEW.setUint32(engine_reserved, engineReserved, true);
+ }
+ /** @__sig ipp */
+ function napi_throw(env, error) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!error)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ envObject.tryCatch.setError(emnapiCtx.handleStore.get(error).value);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_throw_error(env, code, msg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new Error(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_throw_type_error(env, code, msg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_throw_range_error(env, code, msg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function node_api_throw_syntax_error(env, code, msg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipp */
+ function napi_is_exception_pending(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = envObject.tryCatch.hasCaught();
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_create_error(env, code, msg, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var error = new Error(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_create_type_error(env, code, msg, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var error = new TypeError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_create_range_error(env, code, msg, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var error = new RangeError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function node_api_create_syntax_error(env, code, msg, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var error = new SyntaxError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_and_clear_last_exception(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!envObject.tryCatch.hasCaught()) {
+ HEAP_DATA_VIEW.setUint32(result, 1, true); // ID_UNDEFINED
+ return envObject.clearLastError();
+ }
+ else {
+ var err = envObject.tryCatch.exception();
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = envObject.ensureHandleId(err);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ envObject.tryCatch.reset();
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig vpppp */
+ function napi_fatal_error(location, location_len, message, message_len) {
+ location >>>= 0;
+ location_len >>>= 0;
+ message >>>= 0;
+ message_len >>>= 0;
+ var locationStr = emnapiString.UTF8ToString(location, location_len);
+ var messageStr = emnapiString.UTF8ToString(message, message_len);
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.napi.fatalError(locationStr, messageStr);
+ }
+ else {
+ abort('FATAL ERROR: ' + locationStr + ' ' + messageStr);
+ }
+ }
+ /** @__sig ipp */
+ function napi_fatal_exception(env, err) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!err)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var error = envObject.ctx.handleStore.get(err);
+ try {
+ envObject.triggerFatalException(error.value);
+ }
+ catch (_) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ var errorMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_get_last_error_info: _emnapi_get_last_error_info,
+ napi_create_error: napi_create_error,
+ napi_create_range_error: napi_create_range_error,
+ napi_create_type_error: napi_create_type_error,
+ napi_fatal_error: napi_fatal_error,
+ napi_fatal_exception: napi_fatal_exception,
+ napi_get_and_clear_last_exception: napi_get_and_clear_last_exception,
+ napi_is_exception_pending: napi_is_exception_pending,
+ napi_throw: napi_throw,
+ napi_throw_error: napi_throw_error,
+ napi_throw_range_error: napi_throw_range_error,
+ napi_throw_type_error: napi_throw_type_error,
+ node_api_create_syntax_error: node_api_create_syntax_error,
+ node_api_throw_syntax_error: node_api_throw_syntax_error
+ });
+ /** @__sig ipppppp */
+ function _emnapi_create_function(env, utf8name, length, cb, data, result) {
+ length >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
+ if (fresult.status !== 0 /* napi_status.napi_ok */)
+ return envObject.setLastError(fresult.status);
+ var f = fresult.f;
+ var valueHandle = emnapiCtx.addToCurrentScope(f);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = valueHandle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ /** @__sig ipppppp */
+ function napi_create_function(env, utf8name, length, cb, data, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!cb)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ return _emnapi_create_function(env, utf8name, length, cb, data, result);
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppppp */
+ function napi_get_cb_info(env, cbinfo, argc, argv, this_arg, data) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!cbinfo)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
+ argc >>>= 0;
+ argv >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (argv) {
+ if (!argc)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
+ argcValue >>>= 0;
+ var len = cbinfoValue.args.length;
+ var arrlen = argcValue < len ? argcValue : len;
+ var i = 0;
+ for (; i < arrlen; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var argVal = envObject.ensureHandleId(cbinfoValue.args[i]);
+ HEAP_DATA_VIEW.setUint32(argv + i * 4, argVal, true);
+ }
+ if (i < argcValue) {
+ for (; i < argcValue; i++) {
+ HEAP_DATA_VIEW.setUint32(argv + i * 4, 1, true);
+ }
+ }
+ }
+ if (argc) {
+ HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
+ }
+ if (this_arg) {
+ this_arg >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = envObject.ensureHandleId(cbinfoValue.thiz);
+ HEAP_DATA_VIEW.setUint32(this_arg, v, true);
+ }
+ if (data) {
+ data >>>= 0;
+ HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppppp */
+ function napi_call_function(env, recv, func, argc, argv, result) {
+ var i = 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!recv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ argc >>>= 0;
+ argv >>>= 0;
+ result >>>= 0;
+ argc = argc >>> 0;
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v8recv = emnapiCtx.handleStore.get(recv).value;
+ if (!func)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var v8func = emnapiCtx.handleStore.get(func).value;
+ if (typeof v8func !== 'function')
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var args = [];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ args.push(emnapiCtx.handleStore.get(argVal).value);
+ }
+ var ret = v8func.apply(v8recv, args);
+ if (result) {
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippppp */
+ function napi_new_instance(env, constructor, argc, argv, result) {
+ var i;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!constructor)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ argc >>>= 0;
+ argv >>>= 0;
+ result >>>= 0;
+ argc = argc >>> 0;
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var Ctor = emnapiCtx.handleStore.get(constructor).value;
+ if (typeof Ctor !== 'function')
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var ret = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (emnapiCtx.feature.supportReflect) {
+ var argList = Array(argc);
+ for (i = 0; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ argList[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ ret = Reflect.construct(Ctor, argList, Ctor);
+ }
+ else {
+ var args = Array(argc + 1);
+ args[0] = undefined;
+ for (i = 0; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ args[i + 1] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var BoundCtor = Ctor.bind.apply(Ctor, args);
+ ret = new BoundCtor();
+ }
+ if (result) {
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_get_new_target(env, cbinfo, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!cbinfo)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
+ var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unused-vars
+ var value = thiz == null || thiz.constructor == null
+ ? 0
+ : thiz instanceof fn
+ ? envObject.ensureHandleId(thiz.constructor)
+ : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var functionMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_create_function: _emnapi_create_function,
+ napi_call_function: napi_call_function,
+ napi_create_function: napi_create_function,
+ napi_get_cb_info: napi_get_cb_info,
+ napi_get_new_target: napi_get_new_target,
+ napi_new_instance: napi_new_instance
+ });
+ /** @__sig ipp */
+ function napi_open_handle_scope(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var scope = emnapiCtx.openScope(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, scope.id, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_close_handle_scope(env, scope) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if ((envObject.openHandleScopes === 0)) {
+ return 13 /* napi_status.napi_handle_scope_mismatch */;
+ }
+ emnapiCtx.closeScope(envObject);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_open_escapable_handle_scope(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var scope = emnapiCtx.openScope(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, scope.id, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_close_escapable_handle_scope(env, scope) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if ((envObject.openHandleScopes === 0)) {
+ return 13 /* napi_status.napi_handle_scope_mismatch */;
+ }
+ emnapiCtx.closeScope(envObject);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_escape_handle(env, scope, escapee, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!escapee)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var scopeObject = emnapiCtx.scopeStore.get(scope);
+ if (!scopeObject.escapeCalled()) {
+ escapee >>>= 0;
+ result >>>= 0;
+ var newHandle = scopeObject.escape(escapee);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = newHandle ? newHandle.id : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ return envObject.setLastError(12 /* napi_status.napi_escape_called_twice */);
+ }
+ /** @__sig ippip */
+ function napi_create_reference(env, value, initial_refcount, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (envObject.moduleApiVersion < 10) {
+ if (!(handle.isObject() || handle.isFunction() || handle.isSymbol())) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1 /* ReferenceOwnership.kUserland */);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, ref.id, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_delete_reference(env, ref) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ emnapiCtx.refStore.get(ref).dispose();
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_reference_ref(env, ref, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var count = emnapiCtx.refStore.get(ref).ref();
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, count, true);
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_reference_unref(env, ref, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var reference = emnapiCtx.refStore.get(ref);
+ var refcount = reference.refcount();
+ if (refcount === 0) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var count = reference.unref();
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, count, true);
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_get_reference_value(env, ref, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var reference = emnapiCtx.refStore.get(ref);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var handleId = reference.get(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, handleId, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_add_env_cleanup_hook(env, fun, arg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!fun)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ fun >>>= 0;
+ arg >>>= 0;
+ emnapiCtx.addCleanupHook(envObject, fun, arg);
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig ippp */
+ function napi_remove_env_cleanup_hook(env, fun, arg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!fun)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ fun >>>= 0;
+ arg >>>= 0;
+ emnapiCtx.removeCleanupHook(envObject, fun, arg);
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig vp */
+ function _emnapi_env_ref(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.ref();
+ }
+ /** @__sig vp */
+ function _emnapi_env_unref(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.unref();
+ }
+ var lifeMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_env_ref: _emnapi_env_ref,
+ _emnapi_env_unref: _emnapi_env_unref,
+ napi_add_env_cleanup_hook: napi_add_env_cleanup_hook,
+ napi_close_escapable_handle_scope: napi_close_escapable_handle_scope,
+ napi_close_handle_scope: napi_close_handle_scope,
+ napi_create_reference: napi_create_reference,
+ napi_delete_reference: napi_delete_reference,
+ napi_escape_handle: napi_escape_handle,
+ napi_get_reference_value: napi_get_reference_value,
+ napi_open_escapable_handle_scope: napi_open_escapable_handle_scope,
+ napi_open_handle_scope: napi_open_handle_scope,
+ napi_reference_ref: napi_reference_ref,
+ napi_reference_unref: napi_reference_unref,
+ napi_remove_env_cleanup_hook: napi_remove_env_cleanup_hook
+ });
+ /** @__sig ippi */
+ function _emnapi_get_filename(env, buf, len) {
+ var envObject = emnapiCtx.envStore.get(env);
+ var filename = envObject.filename;
+ if (!buf) {
+ return emnapiString.lengthBytesUTF8(filename);
+ }
+ return emnapiString.stringToUTF8(filename, buf, len);
+ }
+ var miscellaneousMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_get_filename: _emnapi_get_filename
+ });
+ /** @__sig ippp */
+ function napi_create_promise(env, deferred, promise) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var deferredObjectId, value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!promise)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var p = new Promise(function (resolve, reject) {
+ var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
+ deferredObjectId = deferredObject.id;
+ deferred >>>= 0;
+ HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
+ });
+ promise >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(p).id;
+ HEAP_DATA_VIEW.setUint32(promise, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_resolve_deferred(env, deferred, resolution) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!resolution)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var deferredObject = emnapiCtx.deferredStore.get(deferred);
+ deferredObject.resolve(emnapiCtx.handleStore.get(resolution).value);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_reject_deferred(env, deferred, resolution) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!resolution)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var deferredObject = emnapiCtx.deferredStore.get(deferred);
+ deferredObject.reject(emnapiCtx.handleStore.get(resolution).value);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_is_promise(env, value, is_promise) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!is_promise)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ is_promise >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isPromise() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(is_promise, r, true);
+ return envObject.clearLastError();
+ }
+ var promiseMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_create_promise: napi_create_promise,
+ napi_is_promise: napi_is_promise,
+ napi_reject_deferred: napi_reject_deferred,
+ napi_resolve_deferred: napi_resolve_deferred
+ });
+ /** @__sig ippiiip */
+ function napi_get_all_property_names(env, object, key_mode, key_filter, key_conversion, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var obj = void 0;
+ try {
+ obj = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ if (key_mode !== 0 /* napi_key_collection_mode.napi_key_include_prototypes */ && key_mode !== 1 /* napi_key_collection_mode.napi_key_own_only */) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (key_conversion !== 0 /* napi_key_conversion.napi_key_keep_numbers */ && key_conversion !== 1 /* napi_key_conversion.napi_key_numbers_to_strings */) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var props = [];
+ var names = void 0;
+ var symbols = void 0;
+ var i = void 0;
+ var own = true;
+ var integerIndiceRegex = /^(0|[1-9][0-9]*)$/;
+ do {
+ names = Object.getOwnPropertyNames(obj);
+ symbols = Object.getOwnPropertySymbols(obj);
+ for (i = 0; i < names.length; i++) {
+ props.push({
+ name: integerIndiceRegex.test(names[i]) ? Number(names[i]) : names[i],
+ desc: Object.getOwnPropertyDescriptor(obj, names[i]),
+ own: own
+ });
+ }
+ for (i = 0; i < symbols.length; i++) {
+ props.push({
+ name: symbols[i],
+ desc: Object.getOwnPropertyDescriptor(obj, symbols[i]),
+ own: own
+ });
+ }
+ if (key_mode === 1 /* napi_key_collection_mode.napi_key_own_only */) {
+ break;
+ }
+ obj = Object.getPrototypeOf(obj);
+ own = false;
+ } while (obj);
+ var ret = [];
+ var addName = function (ret, name, key_filter, conversion_mode) {
+ if (ret.indexOf(name) !== -1)
+ return;
+ if (conversion_mode === 0 /* napi_key_conversion.napi_key_keep_numbers */) {
+ ret.push(name);
+ }
+ else if (conversion_mode === 1 /* napi_key_conversion.napi_key_numbers_to_strings */) {
+ var realName = typeof name === 'number' ? String(name) : name;
+ if (typeof realName === 'string') {
+ if (!(key_filter & 8 /* napi_key_filter.napi_key_skip_strings */)) {
+ ret.push(realName);
+ }
+ }
+ else {
+ ret.push(realName);
+ }
+ }
+ };
+ for (i = 0; i < props.length; i++) {
+ var prop = props[i];
+ var name_1 = prop.name;
+ var desc = prop.desc;
+ if (key_filter === 0 /* napi_key_filter.napi_key_all_properties */) {
+ addName(ret, name_1, key_filter, key_conversion);
+ }
+ else {
+ if (key_filter & 8 /* napi_key_filter.napi_key_skip_strings */ && typeof name_1 === 'string') {
+ continue;
+ }
+ if (key_filter & 16 /* napi_key_filter.napi_key_skip_symbols */ && typeof name_1 === 'symbol') {
+ continue;
+ }
+ var shouldAdd = true;
+ switch (key_filter & 7) {
+ case 1 /* napi_key_filter.napi_key_writable */: {
+ shouldAdd = Boolean(desc.writable);
+ break;
+ }
+ case 2 /* napi_key_filter.napi_key_enumerable */: {
+ shouldAdd = Boolean(desc.enumerable);
+ break;
+ }
+ case (1 /* napi_key_filter.napi_key_writable */ | 2 /* napi_key_filter.napi_key_enumerable */): {
+ shouldAdd = Boolean(desc.writable && desc.enumerable);
+ break;
+ }
+ case 4 /* napi_key_filter.napi_key_configurable */: {
+ shouldAdd = Boolean(desc.configurable);
+ break;
+ }
+ case (4 /* napi_key_filter.napi_key_configurable */ | 1 /* napi_key_filter.napi_key_writable */): {
+ shouldAdd = Boolean(desc.configurable && desc.writable);
+ break;
+ }
+ case (4 /* napi_key_filter.napi_key_configurable */ | 2 /* napi_key_filter.napi_key_enumerable */): {
+ shouldAdd = Boolean(desc.configurable && desc.enumerable);
+ break;
+ }
+ case (4 /* napi_key_filter.napi_key_configurable */ | 2 /* napi_key_filter.napi_key_enumerable */ | 1 /* napi_key_filter.napi_key_writable */): {
+ shouldAdd = Boolean(desc.configurable && desc.enumerable && desc.writable);
+ break;
+ }
+ }
+ if (shouldAdd) {
+ addName(ret, name_1, key_filter, key_conversion);
+ }
+ }
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(ret).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_get_property_names(env, object, result) {
+ return napi_get_all_property_names(env, object, 0 /* napi_key_collection_mode.napi_key_include_prototypes */, 2 /* napi_key_filter.napi_key_enumerable */ | 16 /* napi_key_filter.napi_key_skip_symbols */, 1 /* napi_key_conversion.napi_key_numbers_to_strings */, result);
+ }
+ /** @__sig ipppp */
+ function napi_set_property(env, object, key, value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ h.value[emnapiCtx.handleStore.get(key).value] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_has_property(env, object, key, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_get_property(env, object, key, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_delete_property(env, object, key, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ var propertyKey = emnapiCtx.handleStore.get(key).value;
+ if (emnapiCtx.feature.supportReflect) {
+ r = Reflect.deleteProperty(h.value, propertyKey);
+ }
+ else {
+ try {
+ r = delete h.value[propertyKey];
+ }
+ catch (_) {
+ r = false;
+ }
+ }
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_has_own_property(env, object, key, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ var prop = emnapiCtx.handleStore.get(key).value;
+ if (typeof prop !== 'string' && typeof prop !== 'symbol') {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_set_named_property(env, object, cname, value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ if (!cname) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ cname >>>= 0;
+ emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_has_named_property(env, object, utf8name, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!utf8name) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ utf8name >>>= 0;
+ result >>>= 0;
+ r = emnapiString.UTF8ToString(utf8name, -1) in v;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_get_named_property(env, object, utf8name, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!utf8name) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ utf8name >>>= 0;
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippip */
+ function napi_set_element(env, object, index, value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ h.value[index >>> 0] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippip */
+ function napi_has_element(env, object, index, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ r = ((index >>> 0) in v) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippip */
+ function napi_get_element(env, object, index, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = envObject.ensureHandleId(v[index >>> 0]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippip */
+ function napi_delete_element(env, object, index, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ if (emnapiCtx.feature.supportReflect) {
+ r = Reflect.deleteProperty(h.value, index >>> 0);
+ }
+ else {
+ try {
+ r = delete h.value[index >>> 0];
+ }
+ catch (_) {
+ r = false;
+ }
+ }
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_define_properties(env, object, property_count, properties) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var propPtr, attributes;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ properties >>>= 0;
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!properties)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ var propertyName = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ propPtr = properties + (i * (4 * 8));
+ var utf8Name = HEAP_DATA_VIEW.getUint32(propPtr, true);
+ var name_2 = HEAP_DATA_VIEW.getUint32(propPtr + 4, true);
+ var method = HEAP_DATA_VIEW.getUint32(propPtr + 8, true);
+ var getter = HEAP_DATA_VIEW.getUint32(propPtr + 12, true);
+ var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
+ var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
+ attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
+ attributes >>>= 0;
+ var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
+ if (utf8Name) {
+ propertyName = emnapiString.UTF8ToString(utf8Name, -1);
+ }
+ else {
+ if (!name_2) {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ propertyName = emnapiCtx.handleStore.get(name_2).value;
+ if (typeof propertyName !== 'string' && typeof propertyName !== 'symbol') {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ }
+ emnapiDefineProperty(envObject, maybeObject, propertyName, method, getter, setter, value, attributes, data);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipp */
+ function napi_object_freeze(env, object) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ Object.freeze(maybeObject);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipp */
+ function napi_object_seal(env, object) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ Object.seal(maybeObject);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ var propertyMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_define_properties: napi_define_properties,
+ napi_delete_element: napi_delete_element,
+ napi_delete_property: napi_delete_property,
+ napi_get_all_property_names: napi_get_all_property_names,
+ napi_get_element: napi_get_element,
+ napi_get_named_property: napi_get_named_property,
+ napi_get_property: napi_get_property,
+ napi_get_property_names: napi_get_property_names,
+ napi_has_element: napi_has_element,
+ napi_has_named_property: napi_has_named_property,
+ napi_has_own_property: napi_has_own_property,
+ napi_has_property: napi_has_property,
+ napi_object_freeze: napi_object_freeze,
+ napi_object_seal: napi_object_seal,
+ napi_set_element: napi_set_element,
+ napi_set_named_property: napi_set_named_property,
+ napi_set_property: napi_set_property
+ });
+ /** @__sig ippp */
+ function napi_run_script(env, script, result) {
+ var status;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!script)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var v8Script = emnapiCtx.handleStore.get(script);
+ if (!v8Script.isString()) {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var g = emnapiCtx.handleStore.get(5 /* GlobalHandle.GLOBAL */).value;
+ var ret = g.eval(v8Script.value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = envObject.ensureHandleId(ret);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ status = envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ return status;
+ }
+ var scriptMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_run_script: napi_run_script
+ });
+ /** @__sig ippp */
+ function napi_typeof(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var v = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r;
+ if (v.isNumber()) {
+ r = 3 /* napi_valuetype.napi_number */;
+ }
+ else if (v.isBigInt()) {
+ r = 9 /* napi_valuetype.napi_bigint */;
+ }
+ else if (v.isString()) {
+ r = 4 /* napi_valuetype.napi_string */;
+ }
+ else if (v.isFunction()) {
+ // This test has to come before IsObject because IsFunction
+ // implies IsObject
+ r = 7 /* napi_valuetype.napi_function */;
+ }
+ else if (v.isExternal()) {
+ // This test has to come before IsObject because IsExternal
+ // implies IsObject
+ r = 8 /* napi_valuetype.napi_external */;
+ }
+ else if (v.isObject()) {
+ r = 6 /* napi_valuetype.napi_object */;
+ }
+ else if (v.isBoolean()) {
+ r = 2 /* napi_valuetype.napi_boolean */;
+ }
+ else if (v.isUndefined()) {
+ r = 0 /* napi_valuetype.napi_undefined */;
+ }
+ else if (v.isSymbol()) {
+ r = 5 /* napi_valuetype.napi_symbol */;
+ }
+ else if (v.isNull()) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ r = 1 /* napi_valuetype.napi_null */;
+ }
+ else {
+ // Should not get here unless V8 has added some new kind of value.
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_coerce_to_bool(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ v = handle.value ? 4 /* GlobalHandle.TRUE */ : 3 /* GlobalHandle.FALSE */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_coerce_to_number(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.isBigInt()) {
+ throw new TypeError('Cannot convert a BigInt value to a number');
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_coerce_to_object(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = envObject.ensureHandleId(Object(handle.value));
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_coerce_to_string(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.isSymbol()) {
+ throw new TypeError('Cannot convert a Symbol value to a string');
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_instanceof(env, object, constructor, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!constructor)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, 0, true);
+ var ctor = emnapiCtx.handleStore.get(constructor);
+ if (!ctor.isFunction()) {
+ return envObject.setLastError(5 /* napi_status.napi_function_expected */);
+ }
+ var val = emnapiCtx.handleStore.get(object).value;
+ var ret = val instanceof ctor.value;
+ r = ret ? 1 : 0;
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_is_array(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isArray() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_arraybuffer(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isArrayBuffer() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function node_api_is_sharedarraybuffer(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
+ ? 1
+ : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_date(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isDate() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_error(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var val = emnapiCtx.handleStore.get(value).value;
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = (val instanceof Error) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_typedarray(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isTypedArray() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_buffer(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_dataview(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isDataView() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_strict_equals(env, lhs, rhs, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!lhs)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!rhs)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var lv = emnapiCtx.handleStore.get(lhs).value;
+ var rv = emnapiCtx.handleStore.get(rhs).value;
+ result >>>= 0;
+ r = (lv === rv) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipp */
+ function napi_detach_arraybuffer(env, arraybuffer) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
+ if (!(value instanceof ArrayBuffer)) {
+ if (typeof SharedArrayBuffer === 'function' && (value instanceof SharedArrayBuffer)) {
+ return envObject.setLastError(20 /* napi_status.napi_detachable_arraybuffer_expected */);
+ }
+ return envObject.setLastError(19 /* napi_status.napi_arraybuffer_expected */);
+ }
+ try {
+ var MessageChannel_1 = emnapiCtx.feature.MessageChannel;
+ var messageChannel = new MessageChannel_1();
+ messageChannel.port1.postMessage(value, [value]);
+ }
+ catch (_) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_detached_arraybuffer(env, arraybuffer, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(arraybuffer);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (h.isArrayBuffer() && h.value.byteLength === 0) {
+ try {
+ // eslint-disable-next-line no-new
+ new Uint8Array(h.value);
+ }
+ catch (_) {
+ HEAP_DATA_VIEW.setInt8(result, 1, true);
+ return envObject.getReturnStatus();
+ }
+ }
+ HEAP_DATA_VIEW.setInt8(result, 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ var valueOperationMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_coerce_to_bool: napi_coerce_to_bool,
+ napi_coerce_to_number: napi_coerce_to_number,
+ napi_coerce_to_object: napi_coerce_to_object,
+ napi_coerce_to_string: napi_coerce_to_string,
+ napi_detach_arraybuffer: napi_detach_arraybuffer,
+ napi_instanceof: napi_instanceof,
+ napi_is_array: napi_is_array,
+ napi_is_arraybuffer: napi_is_arraybuffer,
+ napi_is_buffer: napi_is_buffer,
+ napi_is_dataview: napi_is_dataview,
+ napi_is_date: napi_is_date,
+ napi_is_detached_arraybuffer: napi_is_detached_arraybuffer,
+ napi_is_error: napi_is_error,
+ napi_is_typedarray: napi_is_typedarray,
+ napi_strict_equals: napi_strict_equals,
+ napi_typeof: napi_typeof,
+ node_api_is_sharedarraybuffer: node_api_is_sharedarraybuffer
+ });
+ /** @__sig ipp */
+ function napi_get_version(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var NODE_API_SUPPORTED_VERSION_MAX = 10 /* Version.NODE_API_SUPPORTED_VERSION_MAX */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, NODE_API_SUPPORTED_VERSION_MAX, true);
+ return envObject.clearLastError();
+ }
+ var versionMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_get_version: napi_get_version
+ });
+ emnapiAWST.init();
+ emnapiExternalMemory.init();
+ emnapiString.init();
+ emnapiTSFN.init();
+ PThread.init();
+ napiModule.emnapi.syncMemory = $emnapiSyncMemory;
+ napiModule.emnapi.getMemoryAddress = $emnapiGetMemoryAddress;
+ function addImports(mod) {
+ var keys = Object.keys(mod);
+ for (var i = 0; i < keys.length; ++i) {
+ var k = keys[i];
+ if (k.indexOf('$') === 0)
+ continue;
+ if (k.indexOf('emnapi_') === 0) {
+ napiModule.imports.emnapi[k] = mod[k];
+ }
+ else if (k.indexOf('_emnapi_') === 0 || k === 'napi_set_last_error' || k === 'napi_clear_last_error') {
+ napiModule.imports.env[k] = mod[k];
+ }
+ else {
+ napiModule.imports.napi[k] = mod[k];
+ }
+ }
+ }
+ addImports(asyncMod);
+ addImports(memoryMod);
+ addImports(asyncWorkMod);
+ addImports(utilMod);
+ addImports(convert2cMod);
+ addImports(convert2napiMod);
+ addImports(createMod);
+ addImports(globalMod);
+ addImports(wrapMod);
+ addImports(envMod);
+ addImports(emnapiMod);
+ addImports(errorMod);
+ addImports(functionMod);
+ addImports(lifeMod);
+ addImports(miscellaneousMod);
+ addImports(nodeMod);
+ addImports(promiseMod);
+ addImports(propertyMod);
+ addImports(scriptMod);
+ addImports(valueOperationMod);
+ addImports(versionMod);
+ napiModule.imports.napi.napi_create_threadsafe_function = napi_create_threadsafe_function;
+ napiModule.imports.napi.napi_get_threadsafe_function_context = napi_get_threadsafe_function_context;
+ napiModule.imports.napi.napi_call_threadsafe_function = napi_call_threadsafe_function;
+ napiModule.imports.napi.napi_acquire_threadsafe_function = napi_acquire_threadsafe_function;
+ napiModule.imports.napi.napi_release_threadsafe_function = napi_release_threadsafe_function;
+ napiModule.imports.napi.napi_unref_threadsafe_function = napi_unref_threadsafe_function;
+ napiModule.imports.napi.napi_ref_threadsafe_function = napi_ref_threadsafe_function;
+ return napiModule;
+ })();
+ return napiModule;
+}
+
+function loadNapiModuleImpl(loadFn, userNapiModule, wasmInput, options) {
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
+ options = options !== null && options !== void 0 ? options : {};
+ var getMemory = options.getMemory;
+ var getTable = options.getTable;
+ var beforeInit = options.beforeInit;
+ if (getMemory != null && typeof getMemory !== 'function') {
+ throw new TypeError('options.getMemory is not a function');
+ }
+ if (getTable != null && typeof getTable !== 'function') {
+ throw new TypeError('options.getTable is not a function');
+ }
+ if (beforeInit != null && typeof beforeInit !== 'function') {
+ throw new TypeError('options.beforeInit is not a function');
+ }
+ var napiModule;
+ var isLoad = typeof userNapiModule === 'object' && userNapiModule !== null;
+ if (isLoad) {
+ if (userNapiModule.loaded) {
+ throw new Error('napiModule has already loaded');
+ }
+ napiModule = userNapiModule;
+ }
+ else {
+ napiModule = createNapiModule(options);
+ }
+ var wasi = options.wasi;
+ var wasiThreads;
+ var importObject = {
+ env: napiModule.imports.env,
+ napi: napiModule.imports.napi,
+ emnapi: napiModule.imports.emnapi
+ };
+ if (wasi) {
+ wasiThreads = new WASIThreads(napiModule.childThread
+ ? {
+ wasi: wasi,
+ childThread: true,
+ postMessage: napiModule.postMessage
+ }
+ : {
+ wasi: wasi,
+ threadManager: napiModule.PThread,
+ waitThreadStart: napiModule.waitThreadStart
+ });
+ Object.assign(importObject, typeof wasi.getImportObject === 'function'
+ ? wasi.getImportObject()
+ : { wasi_snapshot_preview1: wasi.wasiImport });
+ Object.assign(importObject, wasiThreads.getImportObject());
+ }
+ var overwriteImports = options.overwriteImports;
+ if (typeof overwriteImports === 'function') {
+ var newImportObject = overwriteImports(importObject);
+ if (typeof newImportObject === 'object' && newImportObject !== null) {
+ importObject = newImportObject;
+ }
+ }
+ return loadFn(wasmInput, importObject, function (err, source) {
+ if (err) {
+ throw err;
+ }
+ var originalInstance = source.instance;
+ var instance = originalInstance;
+ var originalExports = originalInstance.exports;
+ var exportMemory = 'memory' in originalExports;
+ var importMemory = 'memory' in importObject.env;
+ var memory = getMemory
+ ? getMemory(originalExports)
+ : exportMemory
+ ? originalExports.memory
+ : importMemory
+ ? importObject.env.memory
+ : undefined;
+ if (!memory) {
+ throw new Error('memory is neither exported nor imported');
+ }
+ var table = getTable ? getTable(originalExports) : originalExports.__indirect_function_table;
+ if (wasi && !exportMemory) {
+ var exports_1 = Object.create(null);
+ Object.assign(exports_1, originalExports, { memory: memory });
+ instance = { exports: exports_1 };
+ }
+ var module = source.module;
+ if (wasi) {
+ instance = wasiThreads.initialize(instance, module, memory);
+ }
+ else {
+ napiModule.PThread.setup(module, memory);
+ }
+ var emnapiInit = function () {
+ if (beforeInit) {
+ beforeInit({
+ instance: originalInstance,
+ module: module
+ });
+ }
+ napiModule.init({
+ instance: instance,
+ module: module,
+ memory: memory,
+ table: table
+ });
+ var ret = {
+ instance: originalInstance,
+ module: module,
+ usedInstance: instance
+ };
+ if (!isLoad) {
+ ret.napiModule = napiModule;
+ }
+ return ret;
+ };
+ if (napiModule.PThread.shouldPreloadWorkers()) {
+ var poolReady = napiModule.PThread.loadWasmModuleToAllWorkers();
+ if (loadFn === loadCallback) {
+ return poolReady.then(emnapiInit);
+ }
+ else {
+ throw new Error('Synchronous loading is not supported with worker pool (reuseWorker.size > 0)');
+ }
+ }
+ return emnapiInit();
+ });
+}
+function loadCallback(wasmInput, importObject, callback) {
+ return load(wasmInput, importObject).then(function (source) {
+ return callback(null, source);
+ }, function (err) {
+ return callback(err);
+ });
+}
+function loadSyncCallback(wasmInput, importObject, callback) {
+ var source;
+ try {
+ source = loadSync(wasmInput, importObject);
+ }
+ catch (err) {
+ return callback(err);
+ }
+ return callback(null, source);
+}
+/** @public */
+function loadNapiModule(napiModule,
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput, options) {
+ if (typeof napiModule !== 'object' || napiModule === null) {
+ throw new TypeError('Invalid napiModule');
+ }
+ return loadNapiModuleImpl(loadCallback, napiModule, wasmInput, options);
+}
+/** @public */
+function loadNapiModuleSync(napiModule, wasmInput, options) {
+ if (typeof napiModule !== 'object' || napiModule === null) {
+ throw new TypeError('Invalid napiModule');
+ }
+ return loadNapiModuleImpl(loadSyncCallback, napiModule, wasmInput, options);
+}
+/** @public */
+function instantiateNapiModule(
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput, options) {
+ return loadNapiModuleImpl(loadCallback, undefined, wasmInput, options);
+}
+/** @public */
+function instantiateNapiModuleSync(wasmInput, options) {
+ return loadNapiModuleImpl(loadSyncCallback, undefined, wasmInput, options);
+}
+
+/** @public */
+var MessageHandler = /*#__PURE__*/ (function (_super) {
+ __extends(MessageHandler, _super);
+ function MessageHandler(options) {
+ var _this = this;
+ if (typeof options.onLoad !== 'function') {
+ throw new TypeError('options.onLoad is not a function');
+ }
+ var userOnError = options.onError;
+ _this = _super.call(this, __assign(__assign({}, options), { onError: function (err, type) {
+ var _a;
+ var emnapi_thread_crashed = (_a = _this.instance) === null || _a === void 0 ? void 0 : _a.exports.emnapi_thread_crashed;
+ if (typeof emnapi_thread_crashed === 'function') {
+ emnapi_thread_crashed();
+ } /* else {
+ tryWakeUpPthreadJoin(this.instance!)
+ } */
+ if (typeof userOnError === 'function') {
+ userOnError(err, type);
+ }
+ else {
+ throw err;
+ }
+ } })) || this;
+ _this.napiModule = undefined;
+ return _this;
+ }
+ MessageHandler.prototype.instantiate = function (data) {
+ var _this = this;
+ var source = this.onLoad(data);
+ var then = source.then;
+ if (typeof then === 'function') {
+ return source.then(function (result) {
+ _this.napiModule = result.napiModule;
+ return result;
+ });
+ }
+ this.napiModule = source.napiModule;
+ return source;
+ };
+ MessageHandler.prototype.handle = function (e) {
+ var _this = this;
+ var _a;
+ _super.prototype.handle.call(this, e);
+ if ((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.__emnapi__) {
+ var type = e.data.__emnapi__.type;
+ var payload_1 = e.data.__emnapi__.payload;
+ try {
+ if (type === 'async-worker-init') {
+ this.handleAfterLoad(e, function () {
+ _this.napiModule.initWorker(payload_1.arg, payload_1.func);
+ });
+ }
+ }
+ catch (err) {
+ this.onError(err, type);
+ }
+ }
+ };
+ return MessageHandler;
+}(ThreadMessageHandler));
+// function tryWakeUpPthreadJoin (instance: WebAssembly.Instance): void {
+// // https://github.com/WebAssembly/wasi-libc/blob/574b88da481569b65a237cb80daf9a2d5aeaf82d/libc-top-half/musl/src/thread/pthread_join.c#L18-L21
+// const pthread_self = instance.exports.pthread_self as () => number
+// const memory = instance.exports.memory as WebAssembly.Memory
+// if (typeof pthread_self === 'function') {
+// const selfThread = pthread_self()
+// if (selfThread && memory) {
+// // https://github.com/WebAssembly/wasi-libc/blob/574b88da481569b65a237cb80daf9a2d5aeaf82d/libc-top-half/musl/src/internal/pthread_impl.h#L45
+// const detatchState = new Int32Array(memory.buffer, selfThread + 7 * 4 /** detach_state */, 1)
+// Atomics.store(detatchState, 0, 0)
+// Atomics.notify(detatchState, 0, Infinity)
+// }
+// }
+// }
+
+var version = "1.10.0";
+
+export { MessageHandler, createNapiModule, instantiateNapiModule, instantiateNapiModuleSync, loadNapiModule, loadNapiModuleSync, version };
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.js b/node_modules/@emnapi/core/dist/emnapi-core.js
new file mode 100644
index 00000000..05b90339
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.js
@@ -0,0 +1,9231 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.emnapiCore = {}));
+})(this, (function (exports) {
+ /* eslint-disable no-undef */
+ var _WebAssembly$1 = typeof WebAssembly !== 'undefined'
+ ? WebAssembly
+ : typeof WXWebAssembly !== 'undefined'
+ ? WXWebAssembly
+ : undefined;
+ function validateImports(imports) {
+ if (imports && typeof imports !== 'object') {
+ throw new TypeError('imports must be an object or undefined');
+ }
+ return true;
+ }
+ function load(wasmInput, imports) {
+ if (!wasmInput)
+ throw new TypeError('Invalid wasm source');
+ validateImports(imports);
+ imports = imports !== null && imports !== void 0 ? imports : {};
+ // Promise
+ try {
+ var then = typeof wasmInput === 'object' && wasmInput !== null && 'then' in wasmInput ? wasmInput.then : undefined;
+ if (typeof then === 'function') {
+ return then.call(wasmInput, function (input) { return load(input, imports); });
+ }
+ }
+ catch (_) { }
+ // BufferSource
+ if (wasmInput instanceof ArrayBuffer || ArrayBuffer.isView(wasmInput)) {
+ return _WebAssembly$1.instantiate(wasmInput, imports);
+ }
+ // WebAssembly.Module
+ if (wasmInput instanceof _WebAssembly$1.Module) {
+ return _WebAssembly$1.instantiate(wasmInput, imports).then(function (instance) {
+ return { instance: instance, module: wasmInput };
+ });
+ }
+ // Response
+ if (typeof Response !== 'undefined' && wasmInput instanceof Response) {
+ return wasmInput.arrayBuffer().then(function (buffer) {
+ return _WebAssembly$1.instantiate(buffer, imports);
+ });
+ }
+ // string | URL
+ var inputIsString = typeof wasmInput === 'string';
+ if (inputIsString || (typeof URL !== 'undefined' && wasmInput instanceof URL)) {
+ if (inputIsString && typeof wx !== 'undefined' && typeof __wxConfig !== 'undefined') {
+ return _WebAssembly$1.instantiate(wasmInput, imports);
+ }
+ if (typeof fetch !== 'function') {
+ throw new TypeError('wasm source can not be a string or URL in this environment');
+ }
+ if (typeof _WebAssembly$1.instantiateStreaming === 'function') {
+ try {
+ return _WebAssembly$1.instantiateStreaming(fetch(wasmInput), imports).catch(function () {
+ return load(fetch(wasmInput), imports);
+ });
+ }
+ catch (_) {
+ return load(fetch(wasmInput), imports);
+ }
+ }
+ else {
+ return load(fetch(wasmInput), imports);
+ }
+ }
+ throw new TypeError('Invalid wasm source');
+ }
+ function loadSync(wasmInput, imports) {
+ if (!wasmInput)
+ throw new TypeError('Invalid wasm source');
+ validateImports(imports);
+ imports = imports !== null && imports !== void 0 ? imports : {};
+ var module;
+ if ((wasmInput instanceof ArrayBuffer) || ArrayBuffer.isView(wasmInput)) {
+ module = new _WebAssembly$1.Module(wasmInput);
+ }
+ else if (wasmInput instanceof WebAssembly.Module) {
+ module = wasmInput;
+ }
+ else {
+ throw new TypeError('Invalid wasm source');
+ }
+ var instance = new _WebAssembly$1.Instance(module, imports);
+ var source = { instance: instance, module: module };
+ return source;
+ }
+
+ var _WebAssembly = typeof WebAssembly !== 'undefined'
+ ? WebAssembly
+ : typeof WXWebAssembly !== 'undefined'
+ ? WXWebAssembly
+ : undefined;
+ var ENVIRONMENT_IS_NODE = typeof process === 'object' && process !== null &&
+ typeof process.versions === 'object' && process.versions !== null &&
+ typeof process.versions.node === 'string';
+ function getPostMessage(options) {
+ return typeof (options === null || options === void 0 ? void 0 : options.postMessage) === 'function'
+ ? options.postMessage
+ : typeof postMessage === 'function'
+ ? postMessage
+ : undefined;
+ }
+ function serizeErrorToBuffer(sab, code, error) {
+ var i32array = new Int32Array(sab);
+ Atomics.store(i32array, 0, code);
+ if (code > 1 && error) {
+ var name_1 = error.name;
+ var message = error.message;
+ var stack = error.stack;
+ var nameBuffer = new TextEncoder().encode(name_1);
+ var messageBuffer = new TextEncoder().encode(message);
+ var stackBuffer = new TextEncoder().encode(stack);
+ Atomics.store(i32array, 1, nameBuffer.length);
+ Atomics.store(i32array, 2, messageBuffer.length);
+ Atomics.store(i32array, 3, stackBuffer.length);
+ var buffer = new Uint8Array(sab);
+ buffer.set(nameBuffer, 16);
+ buffer.set(messageBuffer, 16 + nameBuffer.length);
+ buffer.set(stackBuffer, 16 + nameBuffer.length + messageBuffer.length);
+ }
+ }
+ function deserizeErrorFromBuffer(sab) {
+ var _a, _b;
+ var i32array = new Int32Array(sab);
+ var status = Atomics.load(i32array, 0);
+ if (status <= 1) {
+ return null;
+ }
+ var nameLength = Atomics.load(i32array, 1);
+ var messageLength = Atomics.load(i32array, 2);
+ var stackLength = Atomics.load(i32array, 3);
+ var buffer = new Uint8Array(sab);
+ var nameBuffer = buffer.slice(16, 16 + nameLength);
+ var messageBuffer = buffer.slice(16 + nameLength, 16 + nameLength + messageLength);
+ var stackBuffer = buffer.slice(16 + nameLength + messageLength, 16 + nameLength + messageLength + stackLength);
+ var name = new TextDecoder().decode(nameBuffer);
+ var message = new TextDecoder().decode(messageBuffer);
+ var stack = new TextDecoder().decode(stackBuffer);
+ var ErrorConstructor = (_a = globalThis[name]) !== null && _a !== void 0 ? _a : (name === 'RuntimeError' ? ((_b = _WebAssembly.RuntimeError) !== null && _b !== void 0 ? _b : Error) : Error);
+ var error = new ErrorConstructor(message);
+ Object.defineProperty(error, 'stack', {
+ value: stack,
+ writable: true,
+ enumerable: false,
+ configurable: true
+ });
+ return error;
+ }
+ /** @public */
+ function isSharedArrayBuffer(value) {
+ return ((typeof SharedArrayBuffer === 'function' && value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(value) === '[object SharedArrayBuffer]'));
+ }
+ /** @public */
+ function isTrapError(e) {
+ try {
+ return e instanceof _WebAssembly.RuntimeError;
+ }
+ catch (_) {
+ return false;
+ }
+ }
+
+ function createMessage(type, payload) {
+ return {
+ __emnapi__: {
+ type: type,
+ payload: payload
+ }
+ };
+ }
+
+ var WASI_THREADS_MAX_TID = 0x1FFFFFFF;
+ function checkSharedWasmMemory(wasmMemory) {
+ if (wasmMemory) {
+ if (!isSharedArrayBuffer(wasmMemory.buffer)) {
+ throw new Error('Multithread features require shared wasm memory. ' +
+ 'Try to compile with `-matomics -mbulk-memory` and use `--import-memory --shared-memory` during linking, ' +
+ 'then create WebAssembly.Memory with `shared: true` option');
+ }
+ }
+ else {
+ if (typeof SharedArrayBuffer === 'undefined') {
+ throw new Error('Current environment does not support SharedArrayBuffer, threads are not available!');
+ }
+ }
+ }
+ function getReuseWorker(value) {
+ var _a;
+ if (typeof value === 'boolean') {
+ return value ? { size: 0, strict: false } : false;
+ }
+ if (typeof value === 'number') {
+ if (!(value >= 0)) {
+ throw new RangeError('reuseWorker: size must be a non-negative integer');
+ }
+ return { size: value, strict: false };
+ }
+ if (!value) {
+ return false;
+ }
+ var size = (_a = Number(value.size)) !== null && _a !== void 0 ? _a : 0;
+ var strict = Boolean(value.strict);
+ if (!(size > 0) && strict) {
+ throw new RangeError('reuseWorker: size must be set to positive integer if strict is set to true');
+ }
+ return { size: size, strict: strict };
+ }
+ var nextWorkerID = 0;
+ /** @public */
+ var ThreadManager = /*#__PURE__*/ (function () {
+ function ThreadManager(options) {
+ var _a;
+ this.unusedWorkers = [];
+ this.runningWorkers = [];
+ this.pthreads = Object.create(null);
+ this.wasmModule = null;
+ this.wasmMemory = null;
+ this.messageEvents = new WeakMap();
+ if (!options) {
+ throw new TypeError('ThreadManager(): options is not provided');
+ }
+ if ('childThread' in options) {
+ this._childThread = Boolean(options.childThread);
+ }
+ else {
+ this._childThread = false;
+ }
+ if (this._childThread) {
+ this._onCreateWorker = undefined;
+ this._reuseWorker = false;
+ this._beforeLoad = undefined;
+ }
+ else {
+ this._onCreateWorker = options.onCreateWorker;
+ this._reuseWorker = getReuseWorker(options.reuseWorker);
+ this._beforeLoad = options.beforeLoad;
+ }
+ this.printErr = (_a = options.printErr) !== null && _a !== void 0 ? _a : console.error.bind(console);
+ this.threadSpawn = options.threadSpawn;
+ }
+ Object.defineProperty(ThreadManager.prototype, "nextWorkerID", {
+ get: function () { return nextWorkerID; },
+ enumerable: false,
+ configurable: true
+ });
+ ThreadManager.prototype.init = function () {
+ if (!this._childThread) {
+ this.initMainThread();
+ }
+ };
+ ThreadManager.prototype.initMainThread = function () {
+ this.preparePool();
+ };
+ ThreadManager.prototype.preparePool = function () {
+ if (this._reuseWorker) {
+ if (this._reuseWorker.size) {
+ var pthreadPoolSize = this._reuseWorker.size;
+ while (pthreadPoolSize--) {
+ var worker = this.allocateUnusedWorker();
+ if (ENVIRONMENT_IS_NODE) {
+ // https://github.com/nodejs/node/issues/53036
+ worker.once('message', function () { });
+ worker.unref();
+ }
+ }
+ }
+ }
+ };
+ ThreadManager.prototype.shouldPreloadWorkers = function () {
+ return !this._childThread && this._reuseWorker && this._reuseWorker.size > 0;
+ };
+ ThreadManager.prototype.loadWasmModuleToAllWorkers = function () {
+ var _this_1 = this;
+ var promises = Array(this.unusedWorkers.length);
+ var _loop_1 = function (i) {
+ var worker = this_1.unusedWorkers[i];
+ if (ENVIRONMENT_IS_NODE)
+ worker.ref();
+ promises[i] = this_1.loadWasmModuleToWorker(worker).then(function (w) {
+ if (ENVIRONMENT_IS_NODE)
+ worker.unref();
+ return w;
+ }, function (e) {
+ if (ENVIRONMENT_IS_NODE)
+ worker.unref();
+ throw e;
+ });
+ };
+ var this_1 = this;
+ for (var i = 0; i < this.unusedWorkers.length; ++i) {
+ _loop_1(i);
+ }
+ return Promise.all(promises).catch(function (err) {
+ _this_1.terminateAllThreads();
+ throw err;
+ });
+ };
+ ThreadManager.prototype.preloadWorkers = function () {
+ if (this.shouldPreloadWorkers()) {
+ return this.loadWasmModuleToAllWorkers();
+ }
+ return Promise.resolve([]);
+ };
+ ThreadManager.prototype.setup = function (wasmModule, wasmMemory) {
+ this.wasmModule = wasmModule;
+ this.wasmMemory = wasmMemory;
+ };
+ ThreadManager.prototype.markId = function (worker) {
+ if (worker.__emnapi_tid)
+ return worker.__emnapi_tid;
+ var tid = nextWorkerID + 43;
+ nextWorkerID = (nextWorkerID + 1) % (WASI_THREADS_MAX_TID - 42);
+ this.pthreads[tid] = worker;
+ worker.__emnapi_tid = tid;
+ return tid;
+ };
+ ThreadManager.prototype.returnWorkerToPool = function (worker) {
+ var tid = worker.__emnapi_tid;
+ if (tid !== undefined) {
+ delete this.pthreads[tid];
+ }
+ this.unusedWorkers.push(worker);
+ this.runningWorkers.splice(this.runningWorkers.indexOf(worker), 1);
+ delete worker.__emnapi_tid;
+ if (ENVIRONMENT_IS_NODE) {
+ worker.unref();
+ }
+ };
+ ThreadManager.prototype.loadWasmModuleToWorker = function (worker, sab) {
+ var _this_1 = this;
+ if (worker.whenLoaded)
+ return worker.whenLoaded;
+ var err = this.printErr;
+ var beforeLoad = this._beforeLoad;
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
+ var _this = this;
+ worker.whenLoaded = new Promise(function (resolve, reject) {
+ var handleError = function (e) {
+ var message = 'worker sent an error!';
+ if (worker.__emnapi_tid !== undefined) {
+ message = 'worker (tid = ' + worker.__emnapi_tid + ') sent an error!';
+ }
+ if ('message' in e) {
+ err(message + ' ' + e.message);
+ if (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1) {
+ try {
+ _this.terminateAllThreads();
+ }
+ catch (_) { }
+ }
+ }
+ else {
+ err(message);
+ }
+ reject(e);
+ throw e;
+ };
+ var handleMessage = function (data) {
+ if (data.__emnapi__) {
+ var type = data.__emnapi__.type;
+ var payload = data.__emnapi__.payload;
+ if (type === 'loaded') {
+ worker.loaded = true;
+ if (ENVIRONMENT_IS_NODE && !worker.__emnapi_tid) {
+ worker.unref();
+ }
+ resolve(worker);
+ // if (payload.err) {
+ // err('failed to load in child thread: ' + (payload.err.message || payload.err))
+ // }
+ }
+ else if (type === 'cleanup-thread') {
+ if (payload.tid in _this_1.pthreads) {
+ _this_1.cleanThread(worker, payload.tid);
+ }
+ }
+ else if (type === 'spawn-thread') {
+ _this_1.threadSpawn(payload.startArg, payload.errorOrTid);
+ }
+ else if (type === 'terminate-all-threads') {
+ _this_1.terminateAllThreads();
+ }
+ }
+ };
+ worker.onmessage = function (e) {
+ handleMessage(e.data);
+ _this_1.fireMessageEvent(worker, e);
+ };
+ worker.onerror = handleError;
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', function (data) {
+ var _a, _b;
+ (_b = (_a = worker).onmessage) === null || _b === void 0 ? void 0 : _b.call(_a, {
+ data: data
+ });
+ });
+ worker.on('error', function (e) {
+ var _a, _b;
+ (_b = (_a = worker).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, e);
+ });
+ worker.on('detachedExit', function () { });
+ }
+ if (typeof beforeLoad === 'function') {
+ beforeLoad(worker);
+ }
+ try {
+ worker.postMessage(createMessage('load', {
+ wasmModule: _this_1.wasmModule,
+ wasmMemory: _this_1.wasmMemory,
+ sab: sab
+ }));
+ }
+ catch (err) {
+ checkSharedWasmMemory(_this_1.wasmMemory);
+ throw err;
+ }
+ });
+ return worker.whenLoaded;
+ };
+ ThreadManager.prototype.allocateUnusedWorker = function () {
+ var _onCreateWorker = this._onCreateWorker;
+ if (typeof _onCreateWorker !== 'function') {
+ throw new TypeError('`options.onCreateWorker` is not provided');
+ }
+ var worker = _onCreateWorker({ type: 'thread', name: 'emnapi-pthread' });
+ this.unusedWorkers.push(worker);
+ return worker;
+ };
+ ThreadManager.prototype.getNewWorker = function (sab) {
+ if (this._reuseWorker) {
+ if (this.unusedWorkers.length === 0) {
+ if (this._reuseWorker.strict) {
+ if (!ENVIRONMENT_IS_NODE) {
+ var err = this.printErr;
+ err('Tried to spawn a new thread, but the thread pool is exhausted.\n' +
+ 'This might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.');
+ return;
+ }
+ }
+ var worker_1 = this.allocateUnusedWorker();
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ this.loadWasmModuleToWorker(worker_1, sab);
+ }
+ return this.unusedWorkers.pop();
+ }
+ var worker = this.allocateUnusedWorker();
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ this.loadWasmModuleToWorker(worker, sab);
+ return this.unusedWorkers.pop();
+ };
+ ThreadManager.prototype.cleanThread = function (worker, tid, force) {
+ if (!force && this._reuseWorker) {
+ this.returnWorkerToPool(worker);
+ }
+ else {
+ delete this.pthreads[tid];
+ var index = this.runningWorkers.indexOf(worker);
+ if (index !== -1) {
+ this.runningWorkers.splice(index, 1);
+ }
+ this.terminateWorker(worker);
+ delete worker.__emnapi_tid;
+ }
+ };
+ ThreadManager.prototype.terminateWorker = function (worker) {
+ var _this_1 = this;
+ var _a;
+ var tid = worker.__emnapi_tid;
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ worker.terminate();
+ (_a = this.messageEvents.get(worker)) === null || _a === void 0 ? void 0 : _a.clear();
+ this.messageEvents.delete(worker);
+ worker.onmessage = function (e) {
+ if (e.data.__emnapi__) {
+ var err = _this_1.printErr;
+ err('received "' + e.data.__emnapi__.type + '" command from terminated worker: ' + tid);
+ }
+ };
+ };
+ ThreadManager.prototype.terminateAllThreads = function () {
+ for (var i = 0; i < this.runningWorkers.length; ++i) {
+ this.terminateWorker(this.runningWorkers[i]);
+ }
+ for (var i = 0; i < this.unusedWorkers.length; ++i) {
+ this.terminateWorker(this.unusedWorkers[i]);
+ }
+ this.unusedWorkers = [];
+ this.runningWorkers = [];
+ this.pthreads = Object.create(null);
+ this.preparePool();
+ };
+ ThreadManager.prototype.addMessageEventListener = function (worker, onMessage) {
+ var listeners = this.messageEvents.get(worker);
+ if (!listeners) {
+ listeners = new Set();
+ this.messageEvents.set(worker, listeners);
+ }
+ listeners.add(onMessage);
+ return function () {
+ listeners === null || listeners === void 0 ? void 0 : listeners.delete(onMessage);
+ };
+ };
+ ThreadManager.prototype.fireMessageEvent = function (worker, e) {
+ var listeners = this.messageEvents.get(worker);
+ if (!listeners)
+ return;
+ var err = this.printErr;
+ listeners.forEach(function (listener) {
+ try {
+ listener(e);
+ }
+ catch (e) {
+ err(e.stack);
+ }
+ });
+ };
+ return ThreadManager;
+ }());
+
+ var kIsProxy = Symbol('kIsProxy');
+ /** @public */
+ function createInstanceProxy(instance, memory) {
+ if (instance[kIsProxy])
+ return instance;
+ // https://github.com/nodejs/help/issues/4102
+ var originalExports = instance.exports;
+ var createHandler = function (target) {
+ var handlers = [
+ 'apply',
+ 'construct',
+ 'defineProperty',
+ 'deleteProperty',
+ 'get',
+ 'getOwnPropertyDescriptor',
+ 'getPrototypeOf',
+ 'has',
+ 'isExtensible',
+ 'ownKeys',
+ 'preventExtensions',
+ 'set',
+ 'setPrototypeOf'
+ ];
+ var handler = {};
+ var _loop_1 = function (i) {
+ var name_1 = handlers[i];
+ handler[name_1] = function () {
+ var args = Array.prototype.slice.call(arguments, 1);
+ args.unshift(target);
+ return Reflect[name_1].apply(Reflect, args);
+ };
+ };
+ for (var i = 0; i < handlers.length; i++) {
+ _loop_1(i);
+ }
+ return handler;
+ };
+ var handler = createHandler(originalExports);
+ var _initialize = function () { };
+ var _start = function () { return 0; };
+ handler.get = function (_target, p, receiver) {
+ var _a;
+ if (p === 'memory') {
+ return (_a = (typeof memory === 'function' ? memory() : memory)) !== null && _a !== void 0 ? _a : Reflect.get(originalExports, p, receiver);
+ }
+ if (p === '_initialize') {
+ return p in originalExports ? _initialize : undefined;
+ }
+ if (p === '_start') {
+ return p in originalExports ? _start : undefined;
+ }
+ return Reflect.get(originalExports, p, receiver);
+ };
+ handler.has = function (_target, p) {
+ if (p === 'memory')
+ return true;
+ return Reflect.has(originalExports, p);
+ };
+ var exportsProxy = new Proxy(Object.create(null), handler);
+ return new Proxy(instance, {
+ get: function (target, p, receiver) {
+ if (p === 'exports') {
+ return exportsProxy;
+ }
+ if (p === kIsProxy) {
+ return true;
+ }
+ return Reflect.get(target, p, receiver);
+ }
+ });
+ }
+
+ var patchedWasiInstances = new WeakMap();
+ /** @public */
+ var WASIThreads = /*#__PURE__*/ (function () {
+ function WASIThreads(options) {
+ var _this_1 = this;
+ if (!options) {
+ throw new TypeError('WASIThreads(): options is not provided');
+ }
+ if (!options.wasi) {
+ throw new TypeError('WASIThreads(): options.wasi is not provided');
+ }
+ patchedWasiInstances.set(this, new WeakSet());
+ var wasi = options.wasi;
+ patchWasiInstance(this, wasi);
+ this.wasi = wasi;
+ if ('childThread' in options) {
+ this.childThread = Boolean(options.childThread);
+ }
+ else {
+ this.childThread = false;
+ }
+ this.PThread = undefined;
+ if ('threadManager' in options) {
+ if (typeof options.threadManager === 'function') {
+ this.PThread = options.threadManager();
+ }
+ else {
+ this.PThread = options.threadManager;
+ }
+ }
+ else {
+ if (!this.childThread) {
+ this.PThread = new ThreadManager(options);
+ this.PThread.init();
+ }
+ }
+ var waitThreadStart = false;
+ if ('waitThreadStart' in options) {
+ waitThreadStart = typeof options.waitThreadStart === 'number' ? options.waitThreadStart : Boolean(options.waitThreadStart);
+ }
+ var postMessage = getPostMessage(options);
+ if (this.childThread && typeof postMessage !== 'function') {
+ throw new TypeError('options.postMessage is not a function');
+ }
+ this.postMessage = postMessage;
+ var wasm64 = Boolean(options.wasm64);
+ var threadSpawn = function (startArg, errorOrTid) {
+ var _a;
+ var EAGAIN = 6;
+ var isNewABI = errorOrTid !== undefined;
+ try {
+ checkSharedWasmMemory(_this_1.wasmMemory);
+ }
+ catch (err) {
+ (_a = _this_1.PThread) === null || _a === void 0 ? void 0 : _a.printErr(err.stack);
+ if (isNewABI) {
+ var struct_1 = new Int32Array(_this_1.wasmMemory.buffer, errorOrTid, 2);
+ Atomics.store(struct_1, 0, 1);
+ Atomics.store(struct_1, 1, EAGAIN);
+ Atomics.notify(struct_1, 1);
+ return 1;
+ }
+ else {
+ return -EAGAIN;
+ }
+ }
+ if (!isNewABI) {
+ var malloc = _this_1.wasmInstance.exports.malloc;
+ errorOrTid = wasm64 ? Number(malloc(BigInt(8))) : (malloc(8) >>> 0);
+ if (!errorOrTid) {
+ return -48; /* ENOMEM */
+ }
+ }
+ var _free = _this_1.wasmInstance.exports.free;
+ var free = wasm64 ? function (ptr) { _free(BigInt(ptr)); } : _free;
+ var struct = new Int32Array(_this_1.wasmMemory.buffer, errorOrTid, 2);
+ Atomics.store(struct, 0, 0);
+ Atomics.store(struct, 1, 0);
+ if (_this_1.childThread) {
+ postMessage(createMessage('spawn-thread', {
+ startArg: startArg,
+ errorOrTid: errorOrTid
+ }));
+ Atomics.wait(struct, 1, 0);
+ var isError = Atomics.load(struct, 0);
+ var result = Atomics.load(struct, 1);
+ if (isNewABI) {
+ return isError;
+ }
+ free(errorOrTid);
+ return isError ? -result : result;
+ }
+ var shouldWait = waitThreadStart || (waitThreadStart === 0);
+ var sab;
+ if (shouldWait) {
+ sab = new Int32Array(new SharedArrayBuffer(16 + 8192));
+ Atomics.store(sab, 0, 0);
+ }
+ var worker;
+ var tid;
+ var PThread = _this_1.PThread;
+ try {
+ worker = PThread.getNewWorker(sab);
+ if (!worker) {
+ throw new Error('failed to get new worker');
+ }
+ tid = PThread.markId(worker);
+ if (ENVIRONMENT_IS_NODE) {
+ worker.unref();
+ }
+ worker.postMessage(createMessage('start', {
+ tid: tid,
+ arg: startArg,
+ sab: sab
+ }));
+ if (shouldWait) {
+ if (typeof waitThreadStart === 'number') {
+ var waitResult = Atomics.wait(sab, 0, 0, waitThreadStart);
+ if (waitResult === 'timed-out') {
+ try {
+ PThread.cleanThread(worker, tid, true);
+ }
+ catch (_) { }
+ throw new Error('Spawning thread timed out. Please check if the worker is created successfully and if message is handled properly in the worker.');
+ }
+ }
+ else {
+ Atomics.wait(sab, 0, 0);
+ }
+ var r = Atomics.load(sab, 0);
+ if (r > 1) {
+ try {
+ PThread.cleanThread(worker, tid, true);
+ }
+ catch (_) { }
+ throw deserizeErrorFromBuffer(sab.buffer);
+ }
+ }
+ }
+ catch (e) {
+ Atomics.store(struct, 0, 1);
+ Atomics.store(struct, 1, EAGAIN);
+ Atomics.notify(struct, 1);
+ PThread === null || PThread === void 0 ? void 0 : PThread.printErr(e.stack);
+ if (isNewABI) {
+ return 1;
+ }
+ free(errorOrTid);
+ return -EAGAIN;
+ }
+ Atomics.store(struct, 0, 0);
+ Atomics.store(struct, 1, tid);
+ Atomics.notify(struct, 1);
+ PThread.runningWorkers.push(worker);
+ if (!shouldWait) {
+ worker.whenLoaded.catch(function (err) {
+ delete worker.whenLoaded;
+ PThread.cleanThread(worker, tid, true);
+ throw err;
+ });
+ }
+ if (isNewABI) {
+ return 0;
+ }
+ free(errorOrTid);
+ return tid;
+ };
+ this.threadSpawn = threadSpawn;
+ if (this.PThread) {
+ this.PThread.threadSpawn = threadSpawn;
+ }
+ }
+ WASIThreads.prototype.getImportObject = function () {
+ return {
+ wasi: {
+ 'thread-spawn': this.threadSpawn
+ }
+ };
+ };
+ WASIThreads.prototype.setup = function (wasmInstance, wasmModule, wasmMemory) {
+ wasmMemory !== null && wasmMemory !== void 0 ? wasmMemory : (wasmMemory = wasmInstance.exports.memory);
+ this.wasmInstance = wasmInstance;
+ this.wasmMemory = wasmMemory;
+ if (this.PThread) {
+ this.PThread.setup(wasmModule, wasmMemory);
+ }
+ };
+ WASIThreads.prototype.preloadWorkers = function () {
+ if (this.PThread) {
+ return this.PThread.preloadWorkers();
+ }
+ return Promise.resolve([]);
+ };
+ /**
+ * It's ok to call this method to a WASI command module.
+ *
+ * in child thread, must call this method instead of {@link WASIThreads.start} even if it's a WASI command module
+ *
+ * @returns A proxied WebAssembly instance if in child thread, other wise the original instance
+ */
+ WASIThreads.prototype.initialize = function (instance, module, memory) {
+ var exports$1 = instance.exports;
+ memory !== null && memory !== void 0 ? memory : (memory = exports$1.memory);
+ if (this.childThread) {
+ instance = createInstanceProxy(instance, memory);
+ }
+ this.setup(instance, module, memory);
+ var wasi = this.wasi;
+ if (('_start' in exports$1) && (typeof exports$1._start === 'function')) {
+ if (this.childThread) {
+ wasi.start(instance);
+ try {
+ var kStarted = getWasiSymbol(wasi, 'kStarted');
+ wasi[kStarted] = false;
+ }
+ catch (_) { }
+ }
+ else {
+ setupInstance(wasi, instance);
+ }
+ }
+ else {
+ wasi.initialize(instance);
+ }
+ return instance;
+ };
+ /**
+ * Equivalent to calling {@link WASIThreads.initialize} and then calling {@link WASIInstance.start}
+ * ```js
+ * this.initialize(instance, module, memory)
+ * this.wasi.start(instance)
+ * ```
+ */
+ WASIThreads.prototype.start = function (instance, module, memory) {
+ var exports$1 = instance.exports;
+ memory !== null && memory !== void 0 ? memory : (memory = exports$1.memory);
+ if (this.childThread) {
+ instance = createInstanceProxy(instance, memory);
+ }
+ this.setup(instance, module, memory);
+ var exitCode = this.wasi.start(instance);
+ return { exitCode: exitCode, instance: instance };
+ };
+ WASIThreads.prototype.terminateAllThreads = function () {
+ var _a;
+ if (!this.childThread) {
+ (_a = this.PThread) === null || _a === void 0 ? void 0 : _a.terminateAllThreads();
+ }
+ else {
+ this.postMessage(createMessage('terminate-all-threads', {}));
+ }
+ };
+ return WASIThreads;
+ }());
+ function patchWasiInstance(wasiThreads, wasi) {
+ var patched = patchedWasiInstances.get(wasiThreads);
+ if (patched.has(wasi)) {
+ return;
+ }
+ var _this = wasiThreads;
+ var wasiImport = wasi.wasiImport;
+ if (wasiImport) {
+ var proc_exit_1 = wasiImport.proc_exit;
+ wasiImport.proc_exit = function (code) {
+ _this.terminateAllThreads();
+ return proc_exit_1.call(this, code);
+ };
+ }
+ if (!_this.childThread) {
+ var start_1 = wasi.start;
+ if (typeof start_1 === 'function') {
+ wasi.start = function (instance) {
+ try {
+ return start_1.call(this, instance);
+ }
+ catch (err) {
+ if (isTrapError(err)) {
+ _this.terminateAllThreads();
+ }
+ throw err;
+ }
+ };
+ }
+ }
+ patched.add(wasi);
+ }
+ function getWasiSymbol(wasi, description) {
+ var symbols = Object.getOwnPropertySymbols(wasi);
+ var selectDescription = function (description) { return function (s) {
+ if (s.description) {
+ return s.description === description;
+ }
+ return s.toString() === "Symbol(".concat(description, ")");
+ }; };
+ if (Array.isArray(description)) {
+ return description.map(function (d) { return symbols.filter(selectDescription(d))[0]; });
+ }
+ return symbols.filter(selectDescription(description))[0];
+ }
+ function setupInstance(wasi, instance) {
+ var _a = getWasiSymbol(wasi, ['kInstance', 'kSetMemory']), kInstance = _a[0], kSetMemory = _a[1];
+ wasi[kInstance] = instance;
+ wasi[kSetMemory](instance.exports.memory);
+ }
+
+ /** @public */
+ var ThreadMessageHandler = /*#__PURE__*/ (function () {
+ function ThreadMessageHandler(options) {
+ var postMsg = getPostMessage(options);
+ if (typeof postMsg !== 'function') {
+ throw new TypeError('options.postMessage is not a function');
+ }
+ this.postMessage = postMsg;
+ this.onLoad = options === null || options === void 0 ? void 0 : options.onLoad;
+ this.onError = typeof (options === null || options === void 0 ? void 0 : options.onError) === 'function' ? options.onError : function (_type, err) { throw err; };
+ this.instance = undefined;
+ // this.module = undefined
+ this.messagesBeforeLoad = [];
+ }
+ /** @virtual */
+ ThreadMessageHandler.prototype.instantiate = function (data) {
+ if (typeof this.onLoad === 'function') {
+ return this.onLoad(data);
+ }
+ throw new Error('ThreadMessageHandler.prototype.instantiate is not implemented');
+ };
+ /** @virtual */
+ ThreadMessageHandler.prototype.handle = function (e) {
+ var _this = this;
+ var _a;
+ if ((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.__emnapi__) {
+ var type = e.data.__emnapi__.type;
+ var payload_1 = e.data.__emnapi__.payload;
+ try {
+ if (type === 'load') {
+ this._load(payload_1);
+ }
+ else if (type === 'start') {
+ this.handleAfterLoad(e, function () {
+ _this._start(payload_1);
+ });
+ }
+ }
+ catch (err) {
+ this.onError(err, type);
+ }
+ }
+ };
+ ThreadMessageHandler.prototype._load = function (payload) {
+ var _this = this;
+ if (this.instance !== undefined)
+ return;
+ var source;
+ try {
+ source = this.instantiate(payload);
+ }
+ catch (err) {
+ this._loaded(err, null, payload);
+ return;
+ }
+ var then = source && 'then' in source ? source.then : undefined;
+ if (typeof then === 'function') {
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ then.call(source, function (source) { _this._loaded(null, source, payload); }, function (err) { _this._loaded(err, null, payload); });
+ }
+ else {
+ this._loaded(null, source, payload);
+ }
+ };
+ ThreadMessageHandler.prototype._start = function (payload) {
+ var wasi_thread_start = this.instance.exports.wasi_thread_start;
+ if (typeof wasi_thread_start !== 'function') {
+ var err = new TypeError('wasi_thread_start is not exported');
+ notifyPthreadCreateResult(payload.sab, 2, err);
+ throw err;
+ }
+ var postMessage = this.postMessage;
+ var tid = payload.tid;
+ var startArg = payload.arg;
+ notifyPthreadCreateResult(payload.sab, 1);
+ try {
+ wasi_thread_start(tid, startArg);
+ }
+ catch (err) {
+ if (err !== 'unwind') {
+ throw err;
+ }
+ else {
+ return;
+ }
+ }
+ postMessage(createMessage('cleanup-thread', { tid: tid }));
+ };
+ ThreadMessageHandler.prototype._loaded = function (err, source, payload) {
+ if (err) {
+ notifyPthreadCreateResult(payload.sab, 2, err);
+ throw err;
+ }
+ if (source == null) {
+ var err_1 = new TypeError('onLoad should return an object');
+ notifyPthreadCreateResult(payload.sab, 2, err_1);
+ throw err_1;
+ }
+ var instance = source.instance;
+ if (!instance) {
+ var err_2 = new TypeError('onLoad should return an object which includes "instance"');
+ notifyPthreadCreateResult(payload.sab, 2, err_2);
+ throw err_2;
+ }
+ this.instance = instance;
+ var postMessage = this.postMessage;
+ postMessage(createMessage('loaded', {}));
+ var messages = this.messagesBeforeLoad;
+ this.messagesBeforeLoad = [];
+ for (var i = 0; i < messages.length; i++) {
+ var data = messages[i];
+ this.handle({ data: data });
+ }
+ };
+ ThreadMessageHandler.prototype.handleAfterLoad = function (e, f) {
+ if (this.instance !== undefined) {
+ f.call(this, e);
+ }
+ else {
+ this.messagesBeforeLoad.push(e.data);
+ }
+ };
+ return ThreadMessageHandler;
+ }());
+ function notifyPthreadCreateResult(sab, result, error) {
+ if (sab) {
+ serizeErrorToBuffer(sab.buffer, result, error);
+ Atomics.notify(sab, 0);
+ }
+ }
+
+ function createNapiModule(options) {
+ var napiModule = (function () {
+ var ENVIRONMENT_IS_NODE = typeof process === 'object' && process !== null && typeof process.versions === 'object' && process.versions !== null && typeof process.versions.node === 'string';
+ var ENVIRONMENT_IS_PTHREAD = Boolean(options.childThread);
+ var waitThreadStart = typeof options.waitThreadStart === 'number' ? options.waitThreadStart : Boolean(options.waitThreadStart);
+ var wasmInstance;
+ var wasmMemory;
+ var wasmTable;
+ var _malloc;
+ var _free;
+ function abort(msg) {
+ if (typeof _WebAssembly$1.RuntimeError === 'function') {
+ throw new _WebAssembly$1.RuntimeError(msg);
+ }
+ throw Error(msg);
+ }
+ var napiModule = {
+ imports: {
+ env: {},
+ napi: {},
+ emnapi: {}
+ },
+ exports: {},
+ emnapi: {},
+ loaded: false,
+ filename: '',
+ childThread: ENVIRONMENT_IS_PTHREAD,
+ initWorker: undefined,
+ waitThreadStart: waitThreadStart,
+ PThread: undefined,
+ init: function (options) {
+ if (napiModule.loaded)
+ return napiModule.exports;
+ if (!options)
+ throw new TypeError('Invalid napi init options');
+ var instance = options.instance;
+ if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
+ throw new TypeError('Invalid wasm instance');
+ wasmInstance = instance;
+ var exports$1 = instance.exports;
+ var module = options.module;
+ var memory = options.memory || exports$1.memory;
+ var table = options.table || exports$1.__indirect_function_table;
+ if (!(module instanceof _WebAssembly$1.Module))
+ throw new TypeError('Invalid wasm module');
+ if (!(memory instanceof _WebAssembly$1.Memory))
+ throw new TypeError('Invalid wasm memory');
+ if (!(table instanceof _WebAssembly$1.Table))
+ throw new TypeError('Invalid wasm table');
+ wasmMemory = memory;
+ wasmTable = table;
+ if (typeof exports$1.malloc !== 'function')
+ throw new TypeError('malloc is not exported');
+ if (typeof exports$1.free !== 'function')
+ throw new TypeError('free is not exported');
+ _malloc = exports$1.malloc;
+ _free = exports$1.free;
+ if (!napiModule.childThread) {
+ // main thread only
+ var moduleApiVersion = 8 /* Version.NODE_API_DEFAULT_MODULE_API_VERSION */;
+ var node_api_module_get_api_version_v1 = instance.exports.node_api_module_get_api_version_v1;
+ if (typeof node_api_module_get_api_version_v1 === 'function') {
+ moduleApiVersion = node_api_module_get_api_version_v1();
+ }
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
+ var envObject = napiModule.envObject || (napiModule.envObject = emnapiCtx.createEnv(napiModule.filename, moduleApiVersion, function (cb) { return (wasmTable.get(cb)); }, function (cb) { return (wasmTable.get(cb)); }, abort, emnapiNodeBinding));
+ var scope_1 = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callIntoModule(function (_envObject) {
+ var exports$1 = napiModule.exports;
+ var exportsHandle = scope_1.add(exports$1);
+ var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
+ var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
+ napiModule.exports = (!napiValue) ? exports$1 : emnapiCtx.handleStore.get(napiValue).value;
+ });
+ }
+ catch (e) {
+ if (e !== 'unwind') {
+ throw e;
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope_1);
+ }
+ napiModule.loaded = true;
+ delete napiModule.envObject;
+ return napiModule.exports;
+ }
+ }
+ };
+ var emnapiCtx;
+ var emnapiNodeBinding;
+ var onCreateWorker = undefined;
+ var err;
+ if (!ENVIRONMENT_IS_PTHREAD) {
+ var context = options.context;
+ if (typeof context !== 'object' || context === null) {
+ throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");
+ }
+ emnapiCtx = context;
+ }
+ else {
+ emnapiCtx = options === null || options === void 0 ? void 0 : options.context;
+ var postMsg = typeof options.postMessage === 'function'
+ ? options.postMessage
+ : typeof postMessage === 'function'
+ ? postMessage
+ : undefined;
+ if (typeof postMsg !== 'function') {
+ throw new TypeError('No postMessage found');
+ }
+ napiModule.postMessage = postMsg;
+ }
+ if (typeof options.filename === 'string') {
+ napiModule.filename = options.filename;
+ }
+ if (typeof options.onCreateWorker === 'function') {
+ onCreateWorker = options.onCreateWorker;
+ }
+ if (typeof options.print === 'function') {
+ options.print;
+ }
+ else {
+ console.log.bind(console);
+ }
+ if (typeof options.printErr === 'function') {
+ err = options.printErr;
+ }
+ else {
+ err = console.warn.bind(console);
+ }
+ if ('nodeBinding' in options) {
+ var nodeBinding = options.nodeBinding;
+ if (typeof nodeBinding !== 'object' || nodeBinding === null) {
+ throw new TypeError('Invalid `options.nodeBinding`. Use @emnapi/node-binding package');
+ }
+ emnapiNodeBinding = nodeBinding;
+ }
+ var emnapiAsyncWorkPoolSize = 0;
+ if ('asyncWorkPoolSize' in options) {
+ if (typeof options.asyncWorkPoolSize !== 'number') {
+ throw new TypeError('options.asyncWorkPoolSize must be a integer');
+ }
+ emnapiAsyncWorkPoolSize = options.asyncWorkPoolSize >> 0;
+ if (emnapiAsyncWorkPoolSize > 1024) {
+ emnapiAsyncWorkPoolSize = 1024;
+ }
+ else if (emnapiAsyncWorkPoolSize < -1024) {
+ emnapiAsyncWorkPoolSize = -1024;
+ }
+ }
+ var singleThreadAsyncWork = ENVIRONMENT_IS_PTHREAD ? false : (emnapiAsyncWorkPoolSize <= 0);
+ function _emnapi_async_work_pool_size() {
+ return Math.abs(emnapiAsyncWorkPoolSize);
+ }
+ napiModule.imports.env._emnapi_async_work_pool_size = _emnapi_async_work_pool_size;
+ // ------------------------------ pthread -------------------------------
+ function emnapiAddSendListener(worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiSendListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__ && __emnapi__.type === 'async-send') {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({ __emnapi__: __emnapi__ });
+ }
+ else {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var callback = __emnapi__.payload.callback;
+ (wasmTable.get(callback))(__emnapi__.payload.data);
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiSendListener;
+ };
+ worker._emnapiSendListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ }
+ napiModule.emnapi.addSendListener = emnapiAddSendListener;
+ var PThread = new ThreadManager(ENVIRONMENT_IS_PTHREAD
+ ? {
+ printErr: err,
+ childThread: true
+ }
+ : {
+ printErr: err,
+ beforeLoad: function (worker) {
+ emnapiAddSendListener(worker);
+ },
+ reuseWorker: options.reuseWorker,
+ onCreateWorker: onCreateWorker
+ });
+ napiModule.PThread = PThread;
+ /**
+ * @__sig ipiip
+ */
+ function napi_set_last_error(env, error_code, engine_error_code, engine_reserved) {
+ var envObject = emnapiCtx.envStore.get(env);
+ return envObject.setLastError(error_code, engine_error_code, engine_reserved);
+ }
+ /**
+ * @__sig ip
+ */
+ function napi_clear_last_error(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig vppp
+ */
+ function _emnapi_get_node_version(major, minor, patch) {
+ major >>>= 0;
+ minor >>>= 0;
+ patch >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var versions = (typeof process === 'object' && process !== null &&
+ typeof process.versions === 'object' && process.versions !== null &&
+ typeof process.versions.node === 'string')
+ ? process.versions.node.split('.').map(function (n) { return Number(n); })
+ : [0, 0, 0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(major, versions[0], true);
+ HEAP_DATA_VIEW.setUint32(minor, versions[1], true);
+ HEAP_DATA_VIEW.setUint32(patch, versions[2], true);
+ }
+ /**
+ * @__sig v
+ * @__deps $runtimeKeepalivePush
+ */
+ function _emnapi_runtime_keepalive_push() {
+ }
+ /**
+ * @__sig v
+ * @__deps $runtimeKeepalivePop
+ */
+ function _emnapi_runtime_keepalive_pop() {
+ }
+ /**
+ * @__sig vpp
+ */
+ function _emnapi_set_immediate(callback, data) {
+ emnapiCtx.feature.setImmediate(function () {
+ (wasmTable.get(callback))(data);
+ });
+ }
+ /**
+ * @__sig vpp
+ */
+ function _emnapi_next_tick(callback, data) {
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ Promise.resolve().then(function () {
+ (wasmTable.get(callback))(data);
+ });
+ }
+ /**
+ * @__sig vipppi
+ */
+ function _emnapi_callback_into_module(forceUncaught, env, callback, data, close_scope_if_throw) {
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callbackIntoModule(Boolean(forceUncaught), function () {
+ (wasmTable.get(callback))(env, data);
+ });
+ }
+ catch (err) {
+ emnapiCtx.closeScope(envObject, scope);
+ if (close_scope_if_throw) {
+ emnapiCtx.closeScope(envObject);
+ }
+ throw err;
+ }
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ /**
+ * @__sig vipppp
+ */
+ function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
+ var envObject = emnapiCtx.envStore.get(env);
+ callback >>>= 0;
+ envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
+ }
+ /**
+ * @__sig v
+ */
+ function _emnapi_ctx_increase_waiting_request_counter() {
+ emnapiCtx.increaseWaitingRequestCounter();
+ }
+ /**
+ * @__sig v
+ */
+ function _emnapi_ctx_decrease_waiting_request_counter() {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ /**
+ * @__sig i
+ */
+ function _emnapi_is_main_runtime_thread() {
+ return ENVIRONMENT_IS_PTHREAD ? 0 : 1;
+ }
+ /**
+ * @__sig i
+ */
+ function _emnapi_is_main_browser_thread() {
+ return (typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE) ? 1 : 0;
+ }
+ /**
+ * @__sig v
+ */
+ function _emnapi_unwind() {
+ // eslint-disable-next-line @typescript-eslint/no-throw-literal
+ throw 'unwind';
+ }
+ /**
+ * @__sig d
+ */
+ function _emnapi_get_now() {
+ return performance.timeOrigin + performance.now();
+ }
+ function $emnapiSetValueI64(result, numberValue) {
+ var tempDouble;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var tempI64 = [
+ numberValue >>> 0,
+ (tempDouble = numberValue, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)
+ ];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, tempI64[0], true);
+ HEAP_DATA_VIEW.setInt32(result + 4, tempI64[1], true);
+ }
+ /**
+ * @__deps $emnapiCtx
+ * @__sig p
+ */
+ function _emnapi_open_handle_scope() {
+ return emnapiCtx.openScope().id;
+ }
+ /**
+ * @__deps $emnapiCtx
+ * @__sig vp
+ */
+ function _emnapi_close_handle_scope(_scope) {
+ return emnapiCtx.closeScope();
+ }
+ var utilMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ $emnapiSetValueI64: $emnapiSetValueI64,
+ _emnapi_call_finalizer: _emnapi_call_finalizer,
+ _emnapi_callback_into_module: _emnapi_callback_into_module,
+ _emnapi_close_handle_scope: _emnapi_close_handle_scope,
+ _emnapi_ctx_decrease_waiting_request_counter: _emnapi_ctx_decrease_waiting_request_counter,
+ _emnapi_ctx_increase_waiting_request_counter: _emnapi_ctx_increase_waiting_request_counter,
+ _emnapi_get_node_version: _emnapi_get_node_version,
+ _emnapi_get_now: _emnapi_get_now,
+ _emnapi_is_main_browser_thread: _emnapi_is_main_browser_thread,
+ _emnapi_is_main_runtime_thread: _emnapi_is_main_runtime_thread,
+ _emnapi_next_tick: _emnapi_next_tick,
+ _emnapi_open_handle_scope: _emnapi_open_handle_scope,
+ _emnapi_runtime_keepalive_pop: _emnapi_runtime_keepalive_pop,
+ _emnapi_runtime_keepalive_push: _emnapi_runtime_keepalive_push,
+ _emnapi_set_immediate: _emnapi_set_immediate,
+ _emnapi_unwind: _emnapi_unwind,
+ napi_clear_last_error: napi_clear_last_error,
+ napi_set_last_error: napi_set_last_error
+ });
+ function emnapiGetWorkerByPthreadPtr(pthreadPtr) {
+ var view = new DataView(wasmMemory.buffer);
+ /**
+ * wasi-sdk-20.0+threads
+ *
+ * struct pthread {
+ * struct pthread *self; // 0
+ * struct pthread *prev, *next; // 4, 8
+ * uintptr_t sysinfo; // 12
+ * uintptr_t canary; // 16
+ * int tid; // 20
+ * // ...
+ * }
+ */
+ var tidOffset = 20;
+ var tid = view.getInt32(pthreadPtr + tidOffset, true);
+ var worker = PThread.pthreads[tid];
+ return worker;
+ }
+ /** @__sig vp */
+ function _emnapi_worker_ref(pthreadPtr) {
+ if (ENVIRONMENT_IS_PTHREAD)
+ return;
+ pthreadPtr >>>= 0;
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ if (worker && typeof worker.ref === 'function') {
+ worker.ref();
+ }
+ }
+ /** @__sig vp */
+ function _emnapi_worker_unref(pthreadPtr) {
+ if (ENVIRONMENT_IS_PTHREAD)
+ return;
+ pthreadPtr >>>= 0;
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ if (worker && typeof worker.unref === 'function') {
+ worker.unref();
+ }
+ }
+ /** @__sig vipp */
+ function _emnapi_async_send_js(type, callback, data) {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({
+ __emnapi__: {
+ type: 'async-send',
+ payload: {
+ callback: callback,
+ data: data
+ }
+ }
+ });
+ }
+ else {
+ switch (type) {
+ case 0:
+ _emnapi_set_immediate(callback, data);
+ break;
+ case 1:
+ _emnapi_next_tick(callback, data);
+ break;
+ }
+ }
+ }
+ // function ptrToString (ptr: number): string {
+ // return '0x' + ('00000000' + ptr.toString(16)).slice(-8)
+ // }
+ var uvThreadpoolReadyResolve;
+ var uvThreadpoolReady = new Promise(function (resolve) {
+ uvThreadpoolReadyResolve = function () {
+ uvThreadpoolReady.ready = true;
+ resolve();
+ };
+ });
+ uvThreadpoolReady.ready = false;
+ /** @__sig vppi */
+ function _emnapi_after_uvthreadpool_ready(callback, q, type) {
+ if (uvThreadpoolReady.ready) {
+ (wasmTable.get(callback))(q, type);
+ }
+ else {
+ uvThreadpoolReady.then(function () {
+ (wasmTable.get(callback))(q, type);
+ });
+ }
+ }
+ /** @__sig vpi */
+ function _emnapi_tell_js_uvthreadpool(threads, size) {
+ var p = [];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var _loop_1 = function (i) {
+ var pthreadPtr = HEAP_DATA_VIEW.getUint32(threads + i * 4, true);
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ p.push(new Promise(function (resolve) {
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__ && __emnapi__.type === 'async-thread-ready') {
+ resolve();
+ if (worker && typeof worker.unref === 'function') {
+ worker.unref();
+ }
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler);
+ }
+ }
+ };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler);
+ }
+ }));
+ };
+ for (var i = 0; i < size; i++) {
+ _loop_1(i);
+ }
+ Promise.all(p).then(uvThreadpoolReadyResolve);
+ }
+ /** @__sig v */
+ function _emnapi_emit_async_thread_ready() {
+ if (!ENVIRONMENT_IS_PTHREAD)
+ return;
+ var postMessage = napiModule.postMessage;
+ postMessage({
+ __emnapi__: {
+ type: 'async-thread-ready',
+ payload: {}
+ }
+ });
+ }
+ var asyncMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_after_uvthreadpool_ready: _emnapi_after_uvthreadpool_ready,
+ _emnapi_async_send_js: _emnapi_async_send_js,
+ _emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
+ _emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
+ _emnapi_worker_ref: _emnapi_worker_ref,
+ _emnapi_worker_unref: _emnapi_worker_unref
+ });
+ /** @__sig ipjp */
+ function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!adjusted_value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line prefer-const
+ var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
+ adjusted_value >>>= 0;
+ if (emnapiCtx.feature.supportBigInt) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
+ }
+ else {
+ $emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
+ }
+ return envObject.clearLastError();
+ }
+ var memoryMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_adjust_external_memory: napi_adjust_external_memory
+ });
+ /**
+ * @__postset
+ * ```
+ * emnapiAWST.init();
+ * ```
+ */
+ var emnapiAWST = {
+ idGen: {},
+ values: [undefined],
+ queued: new Set(),
+ pending: [],
+ init: function () {
+ var idGen = {
+ nextId: 1,
+ list: [],
+ generate: function () {
+ var id;
+ if (idGen.list.length) {
+ id = idGen.list.shift();
+ }
+ else {
+ id = idGen.nextId;
+ idGen.nextId++;
+ }
+ return id;
+ },
+ reuse: function (id) {
+ idGen.list.push(id);
+ }
+ };
+ emnapiAWST.idGen = idGen;
+ emnapiAWST.values = [undefined];
+ emnapiAWST.queued = new Set();
+ emnapiAWST.pending = [];
+ },
+ create: function (env, resource, resourceName, execute, complete, data) {
+ var asyncId = 0;
+ var triggerAsyncId = 0;
+ if (emnapiNodeBinding) {
+ var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resourceName, -1);
+ asyncId = asyncContext.asyncId;
+ triggerAsyncId = asyncContext.triggerAsyncId;
+ }
+ var id = emnapiAWST.idGen.generate();
+ emnapiAWST.values[id] = {
+ env: env,
+ id: id,
+ resource: resource,
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId,
+ status: 0,
+ execute: execute,
+ complete: complete,
+ data: data
+ };
+ return id;
+ },
+ callComplete: function (work, status) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var complete = work.complete;
+ var env = work.env;
+ var data = work.data;
+ var callback = function () {
+ if (!complete)
+ return;
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callbackIntoModule(true, function () {
+ (wasmTable.get(complete))(env, status, data);
+ });
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ };
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.node.makeCallback(work.resource, callback, [], {
+ asyncId: work.asyncId,
+ triggerAsyncId: work.triggerAsyncId
+ });
+ }
+ else {
+ callback();
+ }
+ },
+ queue: function (id) {
+ var work = emnapiAWST.values[id];
+ if (!work)
+ return;
+ if (work.status === 0) {
+ work.status = 1;
+ if (emnapiAWST.queued.size >= (Math.abs(emnapiAsyncWorkPoolSize) || 4)) {
+ emnapiAWST.pending.push(id);
+ return;
+ }
+ emnapiAWST.queued.add(id);
+ var env_1 = work.env;
+ var data_1 = work.data;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var execute = work.execute;
+ work.status = 2;
+ emnapiCtx.feature.setImmediate(function () {
+ (wasmTable.get(execute))(env_1, data_1);
+ emnapiAWST.queued.delete(id);
+ work.status = 3;
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWST.callComplete(work, 0 /* napi_status.napi_ok */);
+ });
+ if (emnapiAWST.pending.length > 0) {
+ var nextWorkId = emnapiAWST.pending.shift();
+ emnapiAWST.values[nextWorkId].status = 0;
+ emnapiAWST.queue(nextWorkId);
+ }
+ });
+ }
+ },
+ cancel: function (id) {
+ var index = emnapiAWST.pending.indexOf(id);
+ if (index !== -1) {
+ var work_1 = emnapiAWST.values[id];
+ if (work_1 && (work_1.status === 1)) {
+ work_1.status = 4;
+ emnapiAWST.pending.splice(index, 1);
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWST.callComplete(work_1, 11 /* napi_status.napi_cancelled */);
+ });
+ return 0 /* napi_status.napi_ok */;
+ }
+ else {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ }
+ return 9 /* napi_status.napi_generic_failure */;
+ },
+ remove: function (id) {
+ var work = emnapiAWST.values[id];
+ if (!work)
+ return;
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.node.emitAsyncDestroy({
+ asyncId: work.asyncId,
+ triggerAsyncId: work.triggerAsyncId
+ });
+ }
+ emnapiAWST.values[id] = undefined;
+ emnapiAWST.idGen.reuse(id);
+ }
+ };
+ /** @__sig vppdp */
+ function _emnapi_node_emit_async_init(async_resource, async_resource_name, trigger_async_id, result) {
+ if (!emnapiNodeBinding)
+ return;
+ var resource = emnapiCtx.handleStore.get(async_resource).value;
+ var resource_name = emnapiCtx.handleStore.get(async_resource_name).value;
+ var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resource_name, trigger_async_id);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var asyncId = asyncContext.asyncId;
+ var triggerAsyncId = asyncContext.triggerAsyncId;
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
+ HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
+ }
+ }
+ /** @__sig vdd */
+ function _emnapi_node_emit_async_destroy(async_id, trigger_async_id) {
+ if (!emnapiNodeBinding)
+ return;
+ emnapiNodeBinding.node.emitAsyncDestroy({
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ });
+ }
+ /* vpddp export function _emnapi_node_open_callback_scope (async_resource: napi_value, async_id: double, trigger_async_id: double, result: Pointer): void {
+ if (!emnapiNodeBinding || !result) return
+ const resource = emnapiCtx.handleStore.get(async_resource)!.value
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const nativeCallbackScopePointer = emnapiNodeBinding.node.openCallbackScope(resource, {
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ })
+
+ from64('result')
+ $_TODO_makeSetValue('result', 0, 'nativeCallbackScopePointer', 'i64')
+ }
+
+ vp
+ export function _emnapi_node_close_callback_scope (scope: Pointer): void {
+ if (!emnapiNodeBinding || !scope) return
+ from64('scope')
+ const nativeCallbackScopePointer = $_TODO_makeGetValue('scope', 0, 'i64')
+ emnapiNodeBinding.node.closeCallbackScope(BigInt(nativeCallbackScopePointer))
+ } */
+ /** @__sig ipppppddp */
+ function _emnapi_node_make_callback(env, async_resource, cb, argv, size, async_id, trigger_async_id, result) {
+ var i = 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!emnapiNodeBinding)
+ return;
+ var resource = emnapiCtx.handleStore.get(async_resource).value;
+ var callback = emnapiCtx.handleStore.get(cb).value;
+ argv >>>= 0;
+ size >>>= 0;
+ size = size >>> 0;
+ var arr = Array(size);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (; i < size; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ arr[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var ret = emnapiNodeBinding.node.makeCallback(resource, callback, arr, {
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ });
+ if (result) {
+ result >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ }
+ /** @__sig ippp */
+ function _emnapi_async_init_js(async_resource, async_resource_name, result) {
+ if (!emnapiNodeBinding) {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ var resource;
+ if (async_resource) {
+ resource = Object(emnapiCtx.handleStore.get(async_resource).value);
+ }
+ var name = emnapiCtx.handleStore.get(async_resource_name).value;
+ var ret = emnapiNodeBinding.napi.asyncInit(resource, name);
+ if (ret.status !== 0)
+ return ret.status;
+ var numberValue = ret.value;
+ if (!((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63))))) {
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ if (numberValue >= (BigInt(1) << BigInt(63))) {
+ numberValue = numberValue - (BigInt(1) << BigInt(64));
+ }
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var low = Number(numberValue & BigInt(0xffffffff));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var high = Number(numberValue >> BigInt(32));
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, low, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, high, true);
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig ip */
+ function _emnapi_async_destroy_js(async_context) {
+ if (!emnapiNodeBinding) {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ async_context >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var low = HEAP_DATA_VIEW.getInt32(async_context, true);
+ var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
+ var pointer = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
+ var ret = emnapiNodeBinding.napi.asyncDestroy(pointer);
+ if (ret.status !== 0)
+ return ret.status;
+ return 0 /* napi_status.napi_ok */;
+ }
+ // https://github.com/nodejs/node-addon-api/pull/1283
+ /** @__sig ipppp */
+ function napi_open_callback_scope(env, ignored, async_context_handle, result) {
+ throw new Error('napi_open_callback_scope has not been implemented yet');
+ }
+ /** @__sig ipp */
+ function napi_close_callback_scope(env, scope) {
+ throw new Error('napi_close_callback_scope has not been implemented yet');
+ }
+ /** @__sig ippppppp */
+ function napi_make_callback(env, async_context, recv, func, argc, argv, result) {
+ var i = 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!emnapiNodeBinding) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!recv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v8recv = Object(emnapiCtx.handleStore.get(recv).value);
+ var v8func = emnapiCtx.handleStore.get(func).value;
+ if (typeof v8func !== 'function') {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ async_context >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var low = HEAP_DATA_VIEW.getInt32(async_context, true);
+ var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
+ var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
+ argv >>>= 0;
+ argc >>>= 0;
+ argc = argc >>> 0;
+ var arr = Array(argc);
+ for (; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ arr[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var ret = emnapiNodeBinding.napi.makeCallback(ctx, v8recv, v8func, arr);
+ if (ret.error) {
+ throw ret.error;
+ }
+ if (ret.status !== 0 /* napi_status.napi_ok */)
+ return envObject.setLastError(ret.status);
+ if (result) {
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = envObject.ensureHandleId(ret.value);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig vp */
+ function _emnapi_env_check_gc_access(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ }
+ var nodeMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_async_destroy_js: _emnapi_async_destroy_js,
+ _emnapi_async_init_js: _emnapi_async_init_js,
+ _emnapi_env_check_gc_access: _emnapi_env_check_gc_access,
+ _emnapi_node_emit_async_destroy: _emnapi_node_emit_async_destroy,
+ _emnapi_node_emit_async_init: _emnapi_node_emit_async_init,
+ _emnapi_node_make_callback: _emnapi_node_make_callback,
+ napi_close_callback_scope: napi_close_callback_scope,
+ napi_make_callback: napi_make_callback,
+ napi_open_callback_scope: napi_open_callback_scope
+ });
+ /**
+ * @__deps malloc
+ * @__deps free
+ * @__postset
+ * ```
+ * emnapiTSFN.init();
+ * ```
+ */
+ var emnapiTSFN = {
+ _liveSet: {},
+ offset: {
+ __size__: 0,
+ /* napi_ref */ resource: 0,
+ /* double */ async_id: 0,
+ /* double */ trigger_async_id: 0,
+ /* size_t */ queue_size: 0,
+ /* bool */ is_some: 0,
+ /* void* */ queue: 0,
+ // Reuse uv_async_t storage as JS-side wakeup state: pending event + scheduled drain.
+ async_pending: 0,
+ async_u_fd: 0,
+ /* size_t */ thread_count: 0,
+ /* int32_t */ state: 0,
+ /* atomic_uchar */ dispatch_state: 0,
+ /* void* */ context: 0,
+ /* size_t */ max_queue_size: 0,
+ /* napi_ref */ ref: 0,
+ /* napi_env */ env: 0,
+ /* void* */ finalize_data: 0,
+ /* napi_finalize */ finalize_cb: 0,
+ /* napi_threadsafe_function_call_js */ call_js_cb: 0,
+ /* bool */ handles_closing: 0,
+ /* bool */ async_ref: 0,
+ /* int32_t */ mutex: 0,
+ /* int32_t */ cond: 0
+ },
+ init: function () {
+ emnapiTSFN._liveSet = new Set();
+ emnapiTSFN.offset.__size__ = 184 /* NapiTSFNOffset32.__size__ */;
+ emnapiTSFN.offset.resource = 0 /* NapiTSFNOffset32.async_resource_resource */;
+ emnapiTSFN.offset.async_id = 8 /* NapiTSFNOffset32.async_resource_async_context_async_id */;
+ emnapiTSFN.offset.trigger_async_id = 16 /* NapiTSFNOffset32.async_resource_async_context_trigger_async_id */;
+ emnapiTSFN.offset.queue_size = 60 /* NapiTSFNOffset32.queue_size */;
+ emnapiTSFN.offset.is_some = 24 /* NapiTSFNOffset32.async_resource_is_some */;
+ emnapiTSFN.offset.queue = 64 /* NapiTSFNOffset32.queue */;
+ emnapiTSFN.offset.async_pending = 132 /* NapiTSFNOffset32.async_pending */;
+ emnapiTSFN.offset.async_u_fd = 96 /* NapiTSFNOffset32.async_u_fd */;
+ emnapiTSFN.offset.thread_count = 136 /* NapiTSFNOffset32.thread_count */;
+ emnapiTSFN.offset.state = 140 /* NapiTSFNOffset32.state */;
+ emnapiTSFN.offset.dispatch_state = 144 /* NapiTSFNOffset32.dispatch_state */;
+ emnapiTSFN.offset.context = 148 /* NapiTSFNOffset32.context */;
+ emnapiTSFN.offset.max_queue_size = 152 /* NapiTSFNOffset32.max_queue_size */;
+ emnapiTSFN.offset.ref = 156 /* NapiTSFNOffset32.ref */;
+ emnapiTSFN.offset.env = 160 /* NapiTSFNOffset32.env */;
+ emnapiTSFN.offset.finalize_data = 164 /* NapiTSFNOffset32.finalize_data */;
+ emnapiTSFN.offset.finalize_cb = 168 /* NapiTSFNOffset32.finalize_cb */;
+ emnapiTSFN.offset.call_js_cb = 172 /* NapiTSFNOffset32.call_js_cb */;
+ emnapiTSFN.offset.handles_closing = 176 /* NapiTSFNOffset32.handles_closing */;
+ emnapiTSFN.offset.async_ref = 180 /* NapiTSFNOffset32.async_ref */;
+ emnapiTSFN.offset.mutex = 32 /* NapiTSFNOffset32.mutex */;
+ emnapiTSFN.offset.cond = 56 /* NapiTSFNOffset32.cond */;
+ emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
+ if (typeof PThread !== 'undefined') {
+ PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
+ PThread.runningWorkers.forEach(emnapiTSFN.addListener);
+ var __original_getNewWorker_1 = PThread.getNewWorker;
+ PThread.getNewWorker = function () {
+ var r = __original_getNewWorker_1.apply(this, arguments);
+ emnapiTSFN.addListener(r);
+ return r;
+ };
+ }
+ },
+ addListener: function (worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiTSFNListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__) {
+ var type = __emnapi__.type;
+ var payload = __emnapi__.payload;
+ if (type === 'tsfn-send') {
+ var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
+ emnapiTSFN.enqueue(payload.tsfn);
+ }
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiTSFNListener;
+ };
+ worker._emnapiTSFNListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ },
+ initQueue: function (func) {
+ var size = 2 * 4;
+ var queue = _malloc(size);
+ if (!queue)
+ return false;
+ queue >>>= 0;
+ new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
+ emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
+ return true;
+ },
+ destroyQueue: function (func) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ if (queue) {
+ var node = emnapiTSFN.loadSizeTypeValue(queue, false);
+ while (node !== 0) {
+ var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
+ _free(node);
+ node = next;
+ }
+ _free(queue);
+ }
+ },
+ pushQueue: function (func, data) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ var head = emnapiTSFN.loadSizeTypeValue(queue, false);
+ var tail = emnapiTSFN.loadSizeTypeValue(queue + 4, false);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var size = 2 * 4;
+ var node = _malloc(size);
+ if (!node)
+ throw new Error('OOM');
+ node >>>= 0;
+ emnapiTSFN.storeSizeTypeValue(node, data, false);
+ emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
+ if (head === 0 && tail === 0) {
+ emnapiTSFN.storeSizeTypeValue(queue, node, false);
+ emnapiTSFN.storeSizeTypeValue(queue + 4, node, false);
+ }
+ else {
+ emnapiTSFN.storeSizeTypeValue(tail + 4, node, false);
+ emnapiTSFN.storeSizeTypeValue(queue + 4, node, false);
+ }
+ emnapiTSFN.addQueueSize(func);
+ },
+ shiftQueue: function (func) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ var head = emnapiTSFN.loadSizeTypeValue(queue, false);
+ if (head === 0)
+ return 0;
+ var node = head;
+ var next = emnapiTSFN.loadSizeTypeValue(head + 4, false);
+ emnapiTSFN.storeSizeTypeValue(queue, next, false);
+ if (next === 0) {
+ emnapiTSFN.storeSizeTypeValue(queue + 4, 0, false);
+ }
+ emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
+ var value = emnapiTSFN.loadSizeTypeValue(node, false);
+ _free(node);
+ emnapiTSFN.subQueueSize(func);
+ return value;
+ },
+ push: function (func, data, mode) {
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ var waitCondition = function () {
+ var queueSize = emnapiTSFN.getQueueSize(func);
+ var maxSize = emnapiTSFN.getMaxQueueSize(func);
+ return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0 /* State.kOpen */;
+ };
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var shouldDelete = false;
+ var ret = mutex.execute(function () {
+ while (waitCondition()) {
+ if (mode === 0 /* napi_threadsafe_function_call_mode.napi_tsfn_nonblocking */) {
+ return 15 /* napi_status.napi_queue_full */;
+ }
+ /**
+ * Browser JS main thread can not use `Atomics.wait`
+ *
+ * Related:
+ * https://github.com/nodejs/node/pull/32689
+ * https://github.com/nodejs/node/pull/33453
+ */
+ if (isBrowserMain) {
+ return 21 /* napi_status.napi_would_deadlock */;
+ }
+ cond.wait();
+ }
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
+ emnapiTSFN.pushQueue(func, data);
+ emnapiTSFN.send(func);
+ return 0 /* napi_status.napi_ok */;
+ }
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ emnapiTSFN.subThreadCount(func);
+ if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
+ return 16 /* napi_status.napi_closing */;
+ }
+ shouldDelete = true;
+ return 16 /* napi_status.napi_closing */;
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ return ret;
+ },
+ getMutex: function (func) {
+ var index = func + emnapiTSFN.offset.mutex;
+ var mutex = {
+ lock: function () {
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ if (isBrowserMain) {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ }
+ }
+ else {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ Atomics.wait(i32a, 0, 10);
+ }
+ }
+ },
+ /* lockAsync () {
+ return new Promise(resolve => {
+ const again = (): void => { fn() }
+ const fn = (): void => {
+ const i32a = new Int32Array(wasmMemory.buffer, index, 1)
+ const oldValue = Atomics.compareExchange(i32a, 0, 0, 10)
+ if (oldValue === 0) {
+ resolve()
+ return
+ }
+ (Atomics as any).waitAsync(i32a, 0, 10).value.then(again)
+ }
+ fn()
+ })
+ }, */
+ unlock: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
+ if (oldValue !== 10) {
+ throw new Error('Tried to unlock while not holding the mutex');
+ }
+ Atomics.notify(i32a, 0, 1);
+ },
+ execute: function (fn) {
+ mutex.lock();
+ try {
+ return fn();
+ }
+ finally {
+ mutex.unlock();
+ }
+ } /* ,
+ executeAsync (fn: () => Promise): Promise {
+ return mutex.lockAsync().then(() => {
+ const r = fn()
+ mutex.unlock()
+ return r
+ }, (err) => {
+ mutex.unlock()
+ throw err
+ })
+ } */
+ };
+ return mutex;
+ },
+ getCond: function (func) {
+ var index = func + emnapiTSFN.offset.cond;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = {
+ wait: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var value = Atomics.load(i32a, 0);
+ mutex.unlock();
+ Atomics.wait(i32a, 0, value);
+ mutex.lock();
+ },
+ /* waitAsync () {
+ const i32a = new Int32Array(wasmMemory.buffer, index, 1)
+ const value = Atomics.load(i32a, 0)
+ mutex.unlock()
+ const lock = (): Promise => mutex.lockAsync()
+ try {
+ return (Atomics as any).waitAsync(i32a, 0, value).value.then(lock, lock)
+ } catch (err) {
+ return lock()
+ }
+ }, */
+ signal: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ Atomics.add(i32a, 0, 1);
+ Atomics.notify(i32a, 0, 1);
+ }
+ };
+ return cond;
+ },
+ getQueueSize: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue_size, true);
+ },
+ addQueueSize: function (func) {
+ var offset = emnapiTSFN.offset.queue_size;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.add(arr, index, 1);
+ },
+ subQueueSize: function (func) {
+ var offset = emnapiTSFN.offset.queue_size;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.sub(arr, index, 1);
+ },
+ getThreadCount: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.thread_count, true);
+ },
+ addThreadCount: function (func) {
+ var offset = emnapiTSFN.offset.thread_count;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.add(arr, index, 1);
+ },
+ subThreadCount: function (func) {
+ var offset = emnapiTSFN.offset.thread_count;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.sub(arr, index, 1);
+ },
+ getState: function (func) {
+ return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
+ },
+ setState: function (func, value) {
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
+ },
+ getHandlesClosing: function (func) {
+ return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
+ },
+ setHandlesClosing: function (func, value) {
+ Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
+ },
+ getDispatchState: function (func) {
+ return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
+ },
+ getContext: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
+ },
+ getMaxQueueSize: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.max_queue_size, true);
+ },
+ getEnv: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.env, false);
+ },
+ getCallJSCb: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.call_js_cb, false);
+ },
+ getRef: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.ref, false);
+ },
+ getResource: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.resource, false);
+ },
+ getFinalizeCb: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.finalize_cb, false);
+ },
+ getFinalizeData: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.finalize_data, false);
+ },
+ loadSizeTypeValue: function (offset, unsigned) {
+ var ret;
+ var arr;
+ if (unsigned) {
+ arr = new Uint32Array(wasmMemory.buffer);
+ ret = Atomics.load(arr, offset >>> 2);
+ return ret;
+ }
+ else {
+ arr = new Int32Array(wasmMemory.buffer);
+ ret = Atomics.load(arr, offset >>> 2);
+ return ret;
+ }
+ },
+ storeSizeTypeValue: function (offset, value, unsigned) {
+ var arr;
+ if (unsigned) {
+ arr = new Uint32Array(wasmMemory.buffer);
+ Atomics.store(arr, offset >>> 2, value);
+ return undefined;
+ }
+ else {
+ arr = new Int32Array(wasmMemory.buffer);
+ Atomics.store(arr, offset >>> 2, value >>> 0);
+ return undefined;
+ }
+ },
+ releaseResources: function (func) {
+ if (emnapiTSFN.getState(func) !== 2 /* State.kClosed */) {
+ emnapiTSFN.setState(func, 2 /* State.kClosed */);
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ var ref = emnapiTSFN.getRef(func);
+ if (ref) {
+ emnapiCtx.refStore.get(ref).dispose();
+ }
+ var resource = emnapiTSFN.getResource(func);
+ emnapiCtx.refStore.get(resource).dispose();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
+ emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
+ envObject.unref();
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ if (Atomics.load(arr, asyncRefOffset) > 0) {
+ Atomics.store(arr, asyncRefOffset, 0);
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ if (emnapiNodeBinding) {
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
+ }
+ }
+ },
+ destroy: function (func) {
+ emnapiTSFN._liveSet.delete(func);
+ emnapiTSFN.destroyQueue(func);
+ emnapiTSFN.releaseResources(func);
+ _free(func);
+ },
+ emptyQueue: function (func) {
+ var drainQueue = [];
+ emnapiTSFN.getMutex(func).execute(function () {
+ while (emnapiTSFN.getQueueSize(func) > 0) {
+ drainQueue.push(emnapiTSFN.shiftQueue(func));
+ }
+ });
+ var callJsCb = emnapiTSFN.getCallJSCb(func);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var context = emnapiTSFN.getContext(func);
+ var data;
+ for (var i = 0; i < drainQueue.length; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ data = drainQueue[i];
+ if (callJsCb) {
+ (wasmTable.get(callJsCb))(0, 0, context, data);
+ }
+ }
+ },
+ maybeDelete: function (func) {
+ var shouldDelete = false;
+ emnapiTSFN.getMutex(func).execute(function () {
+ if (emnapiTSFN.getThreadCount(func) > 0) {
+ emnapiTSFN.releaseResources(func);
+ }
+ else {
+ shouldDelete = true;
+ }
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ },
+ finalize: function (func) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject);
+ var finalize = emnapiTSFN.getFinalizeCb(func);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var data = emnapiTSFN.getFinalizeData(func);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var context = emnapiTSFN.getContext(func);
+ var f = function () {
+ envObject.callFinalizerInternal(0, finalize, data, context);
+ };
+ try {
+ emnapiTSFN.emptyQueue(func);
+ if (finalize) {
+ if (emnapiNodeBinding) {
+ var resource = emnapiTSFN.getResource(func);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
+ emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId
+ });
+ }
+ else {
+ f();
+ }
+ }
+ emnapiTSFN.maybeDelete(func);
+ }
+ finally {
+ emnapiCtx.closeScope(envObject);
+ }
+ },
+ cleanup: function (func) {
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 1);
+ },
+ closeHandlesAndMaybeDelete: function (func, set_closing) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject);
+ try {
+ if (set_closing) {
+ emnapiTSFN.getMutex(func).execute(function () {
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
+ if (emnapiTSFN.getMaxQueueSize(func) > 0) {
+ emnapiTSFN.getCond(func).signal();
+ }
+ });
+ }
+ if (emnapiTSFN.getHandlesClosing(func)) {
+ return;
+ }
+ emnapiTSFN.setHandlesClosing(func, 1);
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiTSFN.finalize(func);
+ });
+ }
+ finally {
+ emnapiCtx.closeScope(envObject);
+ }
+ },
+ dispatchOne: function (func) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var data = 0;
+ var popped_value = false;
+ var has_more = false;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ mutex.execute(function () {
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
+ var size = emnapiTSFN.getQueueSize(func);
+ if (size > 0) {
+ data = emnapiTSFN.shiftQueue(func);
+ popped_value = true;
+ var maxQueueSize = emnapiTSFN.getMaxQueueSize(func);
+ if (size === maxQueueSize && maxQueueSize > 0) {
+ cond.signal();
+ }
+ size--;
+ }
+ if (size === 0) {
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
+ if (emnapiTSFN.getMaxQueueSize(func) > 0) {
+ cond.signal();
+ }
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
+ }
+ }
+ else {
+ has_more = true;
+ }
+ }
+ else {
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
+ }
+ });
+ if (popped_value) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject_1 = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject_1);
+ var f = function () {
+ envObject_1.callbackIntoModule(false, function () {
+ var callJsCb = emnapiTSFN.getCallJSCb(func);
+ var ref = emnapiTSFN.getRef(func);
+ var js_callback = ref ? emnapiCtx.refStore.get(ref).get() : 0;
+ if (callJsCb) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var context = emnapiTSFN.getContext(func);
+ (wasmTable.get(callJsCb))(env, js_callback, context, data);
+ }
+ else {
+ var jsCallback = js_callback ? emnapiCtx.handleStore.get(js_callback).value : null;
+ if (typeof jsCallback === 'function') {
+ jsCallback();
+ }
+ }
+ });
+ };
+ try {
+ if (emnapiNodeBinding) {
+ var resource = emnapiTSFN.getResource(func);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
+ asyncId: view.getFloat64(func + emnapiTSFN.offset.async_id, true),
+ triggerAsyncId: view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true)
+ });
+ }
+ else {
+ f();
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject_1);
+ }
+ }
+ return has_more;
+ },
+ dispatch: function (func) {
+ var has_more = true;
+ var iterations_left = 1000;
+ var ui32a = new Uint32Array(wasmMemory.buffer);
+ var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
+ while (has_more && --iterations_left !== 0) {
+ Atomics.store(ui32a, index, 1);
+ has_more = emnapiTSFN.dispatchOne(func);
+ if (Atomics.exchange(ui32a, index, 0) !== 1) {
+ has_more = true;
+ }
+ }
+ if (has_more) {
+ emnapiTSFN.send(func);
+ }
+ },
+ enqueue: function (func) {
+ // `pending` means a worker thread has requested a wakeup that has not
+ // been drained on the main thread yet.
+ var pending = func + emnapiTSFN.offset.async_pending;
+ // `scheduled` prevents queueing the same main-thread drain chain more than
+ // once while a previous wakeup is still in flight.
+ var scheduled = func + emnapiTSFN.offset.async_u_fd;
+ var i32a = new Int32Array(wasmMemory.buffer);
+ if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
+ return;
+ }
+ // Match uv_async_send-style coalescing in JS: the first turn represents
+ // the wakeup reaching the main thread, and the second turn performs the
+ // actual TSFN drain after nearby Send/Signal calls have had a chance to
+ // collapse into the shared AsyncProgressWorker state.
+ emnapiCtx.feature.setImmediate(function () {
+ if (!emnapiTSFN._liveSet.has(func)) {
+ return;
+ }
+ if (Atomics.load(i32a, pending >>> 2) === 0) {
+ Atomics.store(i32a, scheduled >>> 2, 0);
+ return;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ try {
+ // Consume the coalesced wakeup once, then let dispatch() observe any
+ // queue mutations through dispatch_state like the C implementation.
+ if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
+ return;
+ }
+ // After destroy(), the func address is freed. Skip dispatch
+ // to avoid use-after-free (JS-side lifecycle check).
+ if (!emnapiTSFN._liveSet.has(func)) {
+ return;
+ }
+ emnapiTSFN.dispatch(func);
+ }
+ finally {
+ // Allow a later wakeup to schedule a new drain chain. If another
+ // worker-thread send raced with this drain, enqueue one more turn.
+ if (emnapiTSFN._liveSet.has(func)) {
+ Atomics.store(i32a, scheduled >>> 2, 0);
+ if (Atomics.load(i32a, pending >>> 2) !== 0) {
+ emnapiTSFN.enqueue(func);
+ }
+ }
+ }
+ });
+ });
+ },
+ send: function (func) {
+ var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
+ if ((current_state & 1) === 1) {
+ return;
+ }
+ var pendng = func + emnapiTSFN.offset.async_pending;
+ // A wakeup is already pending, so this send only needs to leave the queued
+ // work in the TSFN queue and let the existing drain pick it up.
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
+ return;
+ }
+ if (Atomics.exchange(new Int32Array(wasmMemory.buffer), pendng >>> 2, 1) === 0) {
+ if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
+ // Worker threads only post a wakeup token. Main-thread draining is
+ // serialized by enqueue() once the message is received.
+ postMessage({
+ __emnapi__: {
+ type: 'tsfn-send',
+ payload: {
+ tsfn: func
+ }
+ }
+ });
+ }
+ else {
+ // On the main thread we can skip the cross-thread hop and schedule the
+ // coalesced drain chain directly.
+ emnapiTSFN.enqueue(func);
+ }
+ }
+ }
+ };
+ /** @__sig ippppppppppp */
+ function napi_create_threadsafe_function(env, func, async_resource, async_resource_name, max_queue_size, initial_thread_count, thread_finalize_data, thread_finalize_cb, context, call_js_cb, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!async_resource_name)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ max_queue_size >>>= 0;
+ initial_thread_count >>>= 0;
+ env >>>= 0;
+ thread_finalize_data >>>= 0;
+ thread_finalize_cb >>>= 0;
+ context >>>= 0;
+ call_js_cb >>>= 0;
+ max_queue_size = max_queue_size >>> 0;
+ initial_thread_count = initial_thread_count >>> 0;
+ if (initial_thread_count === 0) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var ref = 0;
+ func >>>= 0;
+ if (!func) {
+ if (!call_js_cb)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ else {
+ var funcValue = emnapiCtx.handleStore.get(func).value;
+ if (typeof funcValue !== 'function') {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ ref = emnapiCtx.createReference(envObject, func, 1, 1 /* ReferenceOwnership.kUserland */).id;
+ }
+ var asyncResourceObject;
+ if (async_resource) {
+ asyncResourceObject = emnapiCtx.handleStore.get(async_resource).value;
+ if (asyncResourceObject == null) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ asyncResourceObject = Object(asyncResourceObject);
+ }
+ else {
+ asyncResourceObject = {};
+ }
+ var resource = envObject.ensureHandleId(asyncResourceObject);
+ var asyncResourceName = emnapiCtx.handleStore.get(async_resource_name).value;
+ if (typeof asyncResourceName === 'symbol') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ asyncResourceName = String(asyncResourceName);
+ var resource_name = envObject.ensureHandleId(asyncResourceName);
+ // tsfn create
+ var sizeofTSFN = emnapiTSFN.offset.__size__;
+ // eslint-disable-next-line prefer-const
+ var tsfn = _malloc(sizeofTSFN);
+ if (!tsfn)
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ tsfn >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
+ var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1 /* ReferenceOwnership.kUserland */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var resource_ = resourceRef.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
+ if (!emnapiTSFN.initQueue(tsfn)) {
+ _free(tsfn);
+ resourceRef.dispose();
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ _emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
+ HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.ref, ref, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.env, env, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_data, thread_finalize_data, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
+ emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
+ emnapiTSFN._liveSet.add(tsfn);
+ envObject.ref();
+ emnapiCtx.increaseWaitingRequestCounter();
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, tsfn, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_threadsafe_function_context(func, result) {
+ if (!func || !result) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var context = emnapiTSFN.getContext(func);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, context, true);
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig ippi */
+ function napi_call_threadsafe_function(func, data, mode) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ data >>>= 0;
+ return emnapiTSFN.push(func, data, mode);
+ }
+ /** @__sig ip */
+ function napi_acquire_threadsafe_function(func) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ var mutex = emnapiTSFN.getMutex(func);
+ return mutex.execute(function () {
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
+ emnapiTSFN.addThreadCount(func);
+ return 0 /* napi_status.napi_ok */;
+ }
+ return 16 /* napi_status.napi_closing */;
+ });
+ }
+ /** @__sig ipi */
+ function napi_release_threadsafe_function(func, mode) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ var shouldDelete = false;
+ var ret = mutex.execute(function () {
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ emnapiTSFN.subThreadCount(func);
+ if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
+ if (emnapiTSFN.getState(func) === 0 /* State.kOpen */) {
+ if (mode === 1 /* napi_threadsafe_function_release_mode.napi_tsfn_abort */) {
+ emnapiTSFN.setState(func, 1 /* State.kClosing */);
+ }
+ if (emnapiTSFN.getState(func) === 1 /* State.kClosing */ && emnapiTSFN.getMaxQueueSize(func) > 0) {
+ cond.signal();
+ }
+ emnapiTSFN.send(func);
+ }
+ }
+ if (!(emnapiTSFN.getState(func) === 2 /* State.kClosed */ && emnapiTSFN.getThreadCount(func) === 0)) {
+ return 0 /* napi_status.napi_ok */;
+ }
+ shouldDelete = true;
+ return 0 /* napi_status.napi_ok */;
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ return ret;
+ }
+ /** @__sig ipp */
+ function napi_unref_threadsafe_function(env, func) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ var currentValue = Atomics.load(arr, asyncRefOffset);
+ if (currentValue > 0) {
+ Atomics.store(arr, asyncRefOffset, currentValue - 1);
+ if (currentValue === 1) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ }
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig ipp */
+ function napi_ref_threadsafe_function(env, func) {
+ if (!func) {
+ abort();
+ return 1 /* napi_status.napi_invalid_arg */;
+ }
+ func >>>= 0;
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ var currentValue = Atomics.load(arr, asyncRefOffset);
+ if (!currentValue) {
+ emnapiCtx.increaseWaitingRequestCounter();
+ }
+ Atomics.store(arr, asyncRefOffset, currentValue + 1);
+ return 0 /* napi_status.napi_ok */;
+ }
+ var emnapiAWMT = {
+ pool: [],
+ workerReady: null,
+ globalAddress: 0,
+ globalOffset: {
+ idle_threads: 0,
+ q: 1 * 4,
+ next: 1 * 4,
+ prev: 2 * 4,
+ mutex: 3 * 4,
+ cond: 4 * 4,
+ exit_message: 5 * 4,
+ end: 7 * 4
+ },
+ offset: {
+ /* napi_ref */ resource: 0,
+ /* double */ async_id: 8,
+ /* double */ trigger_async_id: 16,
+ /* napi_env */ env: 24,
+ /* int32_t */ status: 1 * 4 + 24, // 0 for pending, 1 for cancelled, 2 for completed
+ queue: 2 * 4 + 24,
+ queue_next: 2 * 4 + 24,
+ queue_prev: 3 * 4 + 24,
+ /* void* */ data: 4 * 4 + 24,
+ /* napi_async_execute_callback */ execute: 5 * 4 + 24,
+ /* napi_async_complete_callback */ complete: 6 * 4 + 24,
+ end: 7 * 4 + 24
+ },
+ init: function () {
+ emnapiAWMT.pool = [];
+ emnapiAWMT.workerReady = null;
+ if (typeof PThread !== 'undefined') {
+ PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
+ PThread.runningWorkers.forEach(emnapiAWMT.addListener);
+ var __original_getNewWorker_1 = PThread.getNewWorker;
+ PThread.getNewWorker = function () {
+ var r = __original_getNewWorker_1.apply(this, arguments);
+ emnapiAWMT.addListener(r);
+ return r;
+ };
+ }
+ },
+ addListener: function (worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiAWMTListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__) {
+ var type = __emnapi__.type;
+ var payload = __emnapi__.payload;
+ if (type === 'async-work-complete') {
+ emnapiAWMT.callComplete(payload.work, 0 /* napi_status.napi_ok */);
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiAWMTListener;
+ };
+ worker._emnapiAWMTListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ },
+ initGlobal: function () {
+ if (!emnapiAWMT.globalAddress) {
+ emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
+ emnapiAWMT.globalAddress >>>= 0;
+ var size = emnapiAWMT.globalOffset.end;
+ var addr = emnapiAWMT.globalAddress;
+ new Uint8Array(wasmMemory.buffer, addr, size).fill(0);
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
+ }
+ },
+ terminateWorkers: function () {
+ emnapiAWMT.pool.forEach(function (w) {
+ var _a, _b;
+ (_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
+ (_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
+ w.terminate();
+ });
+ emnapiAWMT.pool.length = 0;
+ },
+ initWorkers: function (n) {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
+ return emnapiAWMT.workerReady || (emnapiAWMT.workerReady = Promise.resolve());
+ }
+ if (emnapiAWMT.workerReady)
+ return emnapiAWMT.workerReady;
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
+ }
+ var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
+ var args = [];
+ emnapiAWMT.initGlobal();
+ for (var i = 0; i < n; ++i) {
+ args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
+ }
+ var promises = args.map(function (index) {
+ if (index === 0) {
+ return Promise.reject(new Error('Failed to create async worker'));
+ }
+ var worker;
+ if (index < 0) {
+ worker = emnapiAWMT.pool[-index - 1];
+ if (worker)
+ return worker.whenLoaded;
+ }
+ index >>>= 0;
+ var view = new DataView(wasmMemory.buffer);
+ var tidOffset = 20;
+ var tid = view.getInt32(index + tidOffset, true);
+ worker = PThread.pthreads[tid];
+ return worker.whenLoaded;
+ });
+ emnapiAWMT.workerReady = Promise.all(promises);
+ return emnapiAWMT.workerReady;
+ },
+ getResource: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
+ },
+ getExecute: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
+ },
+ getComplete: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
+ },
+ getEnv: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
+ },
+ getData: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
+ },
+ getMutex: function () {
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
+ var mutex = {
+ lock: function () {
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ if (isBrowserMain) {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ }
+ }
+ else {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ Atomics.wait(i32a, 0, 10);
+ }
+ }
+ },
+ unlock: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
+ if (oldValue !== 10) {
+ throw new Error('Tried to unlock while not holding the mutex');
+ }
+ Atomics.notify(i32a, 0, 1);
+ },
+ execute: function (fn) {
+ mutex.lock();
+ try {
+ return fn();
+ }
+ finally {
+ mutex.unlock();
+ }
+ }
+ };
+ return mutex;
+ },
+ getCond: function () {
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
+ var mutex = emnapiAWMT.getMutex();
+ var cond = {
+ wait: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var value = Atomics.load(i32a, 0);
+ mutex.unlock();
+ Atomics.wait(i32a, 0, value);
+ mutex.lock();
+ },
+ signal: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ Atomics.add(i32a, 0, 1);
+ Atomics.notify(i32a, 0, 1);
+ }
+ };
+ return cond;
+ },
+ queueInit: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(q, q, true);
+ HEAP_DATA_VIEW.setUint32(q + 4, q, true);
+ },
+ queueInsertTail: function (h, q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(q, h, true);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
+ HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
+ HEAP_DATA_VIEW.setUint32(qprev, q, true);
+ HEAP_DATA_VIEW.setUint32(h + 4, q, true);
+ },
+ queueRemove: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var qnext = HEAP_DATA_VIEW.getUint32(q, true);
+ HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
+ HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
+ },
+ queueEmpty: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ // eslint-disable-next-line eqeqeq
+ return q == HEAP_DATA_VIEW.getUint32(q, true);
+ },
+ scheduleWork: function (work) {
+ var _a;
+ if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
+ emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
+ emnapiAWMT.workerReady.ready = true;
+ }).catch(function (err) {
+ emnapiAWMT.workerReady = null;
+ throw err;
+ });
+ }
+ emnapiCtx.increaseWaitingRequestCounter();
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
+ Atomics.store(statusBuffer, 0, 0 /* AsyncWorkStatus.Pending */);
+ var mutex = emnapiAWMT.getMutex();
+ var cond = emnapiAWMT.getCond();
+ mutex.lock();
+ try {
+ emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
+ }
+ catch (err) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ mutex.unlock();
+ throw err;
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
+ cond.signal();
+ }
+ mutex.unlock();
+ },
+ cancelWork: function (work) {
+ var cancelled = false;
+ emnapiAWMT.getMutex().execute(function () {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2 /* AsyncWorkStatus.Completed */;
+ if (cancelled) {
+ emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
+ }
+ });
+ if (!cancelled) {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ if (Atomics.compareExchange(new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1), 0, 0 /* AsyncWorkStatus.Pending */, 1 /* AsyncWorkStatus.Cancelled */) !== 0 /* AsyncWorkStatus.Pending */) {
+ return 9 /* napi_status.napi_generic_failure */;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWMT.callComplete(work, 11 /* napi_status.napi_cancelled */);
+ });
+ return 0 /* napi_status.napi_ok */;
+ },
+ callComplete: function (work, status) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ var complete = emnapiAWMT.getComplete(work);
+ var env = emnapiAWMT.getEnv(work);
+ var data = emnapiAWMT.getData(work);
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ var callback = function () {
+ if (!complete)
+ return;
+ envObject.callbackIntoModule(true, function () {
+ (wasmTable.get(complete))(env, status, data);
+ });
+ };
+ try {
+ if (emnapiNodeBinding) {
+ var resource = emnapiAWMT.getResource(work);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
+ emnapiNodeBinding.node.makeCallback(resourceObject, callback, [], {
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId
+ });
+ }
+ else {
+ callback();
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ }
+ };
+ emnapiAWMT.init();
+ /** @__sig ippppppp */
+ var napi_create_async_work = singleThreadAsyncWork
+ ? function (env, resource, resource_name, execute, complete, data, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!execute)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var resourceObject;
+ if (resource) {
+ resourceObject = Object(emnapiCtx.handleStore.get(resource).value);
+ }
+ else {
+ resourceObject = {};
+ }
+ if (!resource_name)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, id, true);
+ return envObject.clearLastError();
+ }
+ : function (env, resource, resource_name, execute, complete, data, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!execute)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var resourceObject;
+ if (resource) {
+ resourceObject = Object(emnapiCtx.handleStore.get(resource).value);
+ }
+ else {
+ resourceObject = {};
+ }
+ if (!resource_name)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var sizeofAW = emnapiAWMT.offset.end;
+ var aw = _malloc(sizeofAW);
+ if (!aw)
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ aw >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(aw, aw + sizeofAW).fill(0);
+ var s = envObject.ensureHandleId(resourceObject);
+ var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1 /* ReferenceOwnership.kUserland */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var resource_ = resourceRef.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(aw, resource_, true);
+ _emnapi_node_emit_async_init(s, resource_name, -1, aw + emnapiAWMT.offset.async_id);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.env, env, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
+ emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, aw, true);
+ return envObject.clearLastError();
+ };
+ /** @__sig ipp */
+ var napi_delete_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ emnapiAWST.remove(work);
+ return envObject.clearLastError();
+ }
+ : function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ var resource = emnapiAWMT.getResource(work);
+ emnapiCtx.refStore.get(resource).dispose();
+ if (emnapiNodeBinding) {
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
+ }
+ _free(work);
+ return envObject.clearLastError();
+ };
+ /** @__sig ipp */
+ var napi_queue_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ emnapiAWST.queue(work);
+ return envObject.clearLastError();
+ }
+ : function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ emnapiAWMT.scheduleWork(work);
+ return envObject.clearLastError();
+ };
+ /** @__sig ipp */
+ var napi_cancel_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ var status = emnapiAWST.cancel(work);
+ if (status === 0 /* napi_status.napi_ok */)
+ return envObject.clearLastError();
+ return envObject.setLastError(status);
+ }
+ : function (env, work) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ work >>>= 0;
+ var status = emnapiAWMT.cancelWork(work);
+ if (status === 0 /* napi_status.napi_ok */)
+ return envObject.clearLastError();
+ return envObject.setLastError(status);
+ };
+ /** @__sig pp */
+ function _emnapi_async_worker(globalAddress) {
+ globalAddress >>>= 0;
+ emnapiAWMT.globalAddress = globalAddress;
+ var mutex = emnapiAWMT.getMutex();
+ var cond = emnapiAWMT.getCond();
+ mutex.lock();
+ var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
+ var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
+ var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (;;) {
+ while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
+ Atomics.add(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
+ cond.wait();
+ Atomics.sub(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
+ }
+ var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
+ if (q === exitMessageAddr) {
+ cond.signal();
+ mutex.unlock();
+ break;
+ }
+ var work = q - emnapiAWMT.offset.queue;
+ emnapiAWMT.queueRemove(q);
+ emnapiAWMT.queueInit(q);
+ mutex.unlock();
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
+ if (Atomics.load(statusBuffer, 0) === 1 /* AsyncWorkStatus.Cancelled */) {
+ abort('unreachable');
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var execute = emnapiAWMT.getExecute(work);
+ var env = emnapiAWMT.getEnv(work);
+ var data = emnapiAWMT.getData(work);
+ (wasmTable.get(execute))(env, data);
+ Atomics.store(statusBuffer, 0, 2 /* AsyncWorkStatus.Completed */);
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({
+ __emnapi__: {
+ type: 'async-work-complete',
+ payload: { work: work }
+ }
+ });
+ mutex.lock();
+ }
+ return 0;
+ }
+ /** @__sig ipp */
+ function _emnapi_spawn_worker(f, globalAddress) {
+ if (typeof onCreateWorker !== 'function') {
+ throw new TypeError('`options.onCreateWorker` is not a function');
+ }
+ var promises = [];
+ var args = [];
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
+ }
+ args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
+ var handleError = function (e) {
+ if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
+ emnapiAWMT.terminateWorkers();
+ }
+ };
+ var ret;
+ try {
+ var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
+ var p = PThread.loadWasmModuleToWorker(worker_1);
+ if (ENVIRONMENT_IS_NODE) {
+ worker_1.on('error', handleError);
+ }
+ else {
+ worker_1.addEventListener('error', handleError, false);
+ }
+ emnapiAWMT.addListener(worker_1);
+ emnapiTSFN.addListener(worker_1);
+ promises.push(p.then(function () {
+ if (typeof worker_1.unref === 'function') {
+ worker_1.unref();
+ }
+ }));
+ ret = emnapiAWMT.pool.push(worker_1) - 1;
+ var arg = args[0];
+ worker_1.threadBlockBase = arg;
+ worker_1.postMessage({
+ __emnapi__: {
+ type: 'async-worker-init',
+ payload: { arg: arg, func: [f, globalAddress] }
+ }
+ });
+ }
+ catch (err) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var arg = args[0];
+ _free(arg);
+ throw err;
+ }
+ return ret;
+ }
+ function initWorker(startArg, func) {
+ if (napiModule.childThread) {
+ if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
+ throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
+ }
+ wasmInstance.exports.emnapi_async_worker_init(startArg);
+ (wasmTable.get(func[0]))(func[1]);
+ }
+ else {
+ throw new Error('startThread is only available in child threads');
+ }
+ }
+ napiModule.initWorker = initWorker;
+ var asyncWorkMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_async_worker: _emnapi_async_worker,
+ _emnapi_spawn_worker: _emnapi_spawn_worker,
+ napi_cancel_async_work: napi_cancel_async_work,
+ napi_create_async_work: napi_create_async_work,
+ napi_delete_async_work: napi_delete_async_work,
+ napi_queue_async_work: napi_queue_async_work
+ });
+ /**
+ * @__deps malloc
+ * @__deps free
+ * @__postset
+ * ```
+ * emnapiExternalMemory.init();
+ * ```
+ */
+ var emnapiExternalMemory = {
+ registry: typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined,
+ table: new WeakMap(),
+ wasmMemoryViewTable: new WeakMap(),
+ init: function () {
+ emnapiExternalMemory.registry = typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined;
+ emnapiExternalMemory.table = new WeakMap();
+ emnapiExternalMemory.wasmMemoryViewTable = new WeakMap();
+ },
+ isSharedArrayBuffer: function (value) {
+ return ((typeof SharedArrayBuffer === 'function' && value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(value) === '[object SharedArrayBuffer]'));
+ },
+ isDetachedArrayBuffer: function (arrayBuffer) {
+ if (arrayBuffer.byteLength === 0) {
+ try {
+ // eslint-disable-next-line no-new
+ new Uint8Array(arrayBuffer);
+ }
+ catch (_) {
+ return true;
+ }
+ }
+ return false;
+ },
+ getArrayBufferPointer: function (arrayBuffer, shouldCopy) {
+ var _a;
+ var info = {
+ address: 0,
+ ownership: 0 /* ReferenceOwnership.kRuntime */,
+ runtimeAllocated: 0
+ };
+ if (arrayBuffer === wasmMemory.buffer) {
+ return info;
+ }
+ var isDetached = emnapiExternalMemory.isDetachedArrayBuffer(arrayBuffer);
+ if (emnapiExternalMemory.table.has(arrayBuffer)) {
+ var cachedInfo = emnapiExternalMemory.table.get(arrayBuffer);
+ if (isDetached) {
+ cachedInfo.address = 0;
+ return cachedInfo;
+ }
+ if (shouldCopy && cachedInfo.ownership === 0 /* ReferenceOwnership.kRuntime */ && cachedInfo.runtimeAllocated === 1) {
+ new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), cachedInfo.address);
+ }
+ return cachedInfo;
+ }
+ if (isDetached || (arrayBuffer.byteLength === 0)) {
+ return info;
+ }
+ if (!shouldCopy) {
+ return info;
+ }
+ var pointer = _malloc(arrayBuffer.byteLength);
+ if (!pointer)
+ throw new Error('Out of memory');
+ pointer >>>= 0;
+ new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
+ info.address = pointer;
+ info.ownership = emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
+ info.runtimeAllocated = 1;
+ emnapiExternalMemory.table.set(arrayBuffer, info);
+ (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(arrayBuffer, pointer);
+ return info;
+ },
+ getOrUpdateMemoryView: function (view) {
+ if (view.buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(view, {
+ Ctor: view.constructor,
+ address: view.byteOffset,
+ length: view instanceof DataView ? view.byteLength : view.length,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ return view;
+ }
+ var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
+ if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
+ var Ctor = info.Ctor;
+ var newView = void 0;
+ var Buffer_1 = emnapiCtx.feature.Buffer;
+ if (typeof Buffer_1 === 'function' && Ctor === Buffer_1) {
+ newView = Buffer_1.from(wasmMemory.buffer, info.address, info.length);
+ }
+ else {
+ newView = new Ctor(wasmMemory.buffer, info.address, info.length);
+ }
+ emnapiExternalMemory.wasmMemoryViewTable.set(newView, info);
+ return newView;
+ }
+ return view;
+ },
+ getViewPointer: function (view, shouldCopy) {
+ view = emnapiExternalMemory.getOrUpdateMemoryView(view);
+ if (view.buffer === wasmMemory.buffer) {
+ if (emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ var _a = emnapiExternalMemory.wasmMemoryViewTable.get(view), address_1 = _a.address, ownership_1 = _a.ownership, runtimeAllocated_1 = _a.runtimeAllocated;
+ return { address: address_1, ownership: ownership_1, runtimeAllocated: runtimeAllocated_1, view: view };
+ }
+ return { address: view.byteOffset, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0, view: view };
+ }
+ var _b = emnapiExternalMemory.getArrayBufferPointer(view.buffer, shouldCopy), address = _b.address, ownership = _b.ownership, runtimeAllocated = _b.runtimeAllocated;
+ return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
+ }
+ };
+ /* eslint-disable @typescript-eslint/indent */
+ /**
+ * @__postset
+ * ```
+ * emnapiString.init();
+ * ```
+ */
+ var emnapiString = {
+ utf8Decoder: undefined,
+ utf16Decoder: undefined,
+ init: function () {
+ var fallbackDecoder = {
+ decode: function (bytes) {
+ var inputIndex = 0;
+ var pendingSize = Math.min(0x1000, bytes.length + 1);
+ var pending = new Uint16Array(pendingSize);
+ var chunks = [];
+ var pendingIndex = 0;
+ for (;;) {
+ var more = inputIndex < bytes.length;
+ if (!more || (pendingIndex >= pendingSize - 1)) {
+ var subarray = pending.subarray(0, pendingIndex);
+ var arraylike = subarray;
+ chunks.push(String.fromCharCode.apply(null, arraylike));
+ if (!more) {
+ return chunks.join('');
+ }
+ bytes = bytes.subarray(inputIndex);
+ inputIndex = 0;
+ pendingIndex = 0;
+ }
+ var byte1 = bytes[inputIndex++];
+ if ((byte1 & 0x80) === 0) {
+ pending[pendingIndex++] = byte1;
+ }
+ else if ((byte1 & 0xe0) === 0xc0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ pending[pendingIndex++] = ((byte1 & 0x1f) << 6) | byte2;
+ }
+ else if ((byte1 & 0xf0) === 0xe0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ var byte3 = bytes[inputIndex++] & 0x3f;
+ pending[pendingIndex++] = ((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3;
+ }
+ else if ((byte1 & 0xf8) === 0xf0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ var byte3 = bytes[inputIndex++] & 0x3f;
+ var byte4 = bytes[inputIndex++] & 0x3f;
+ var codepoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;
+ if (codepoint > 0xffff) {
+ codepoint -= 0x10000;
+ pending[pendingIndex++] = (codepoint >>> 10) & 0x3ff | 0xd800;
+ codepoint = 0xdc00 | codepoint & 0x3ff;
+ }
+ pending[pendingIndex++] = codepoint;
+ }
+ else ;
+ }
+ }
+ };
+ var utf8Decoder;
+ utf8Decoder = typeof TextDecoder === 'function' ? new TextDecoder() : fallbackDecoder;
+ emnapiString.utf8Decoder = utf8Decoder;
+ var fallbackDecoder2 = {
+ decode: function (input) {
+ var bytes = new Uint16Array(input.buffer, input.byteOffset, input.byteLength / 2);
+ if (bytes.length <= 0x1000) {
+ return String.fromCharCode.apply(null, bytes);
+ }
+ var chunks = [];
+ var i = 0;
+ var len = 0;
+ for (; i < bytes.length; i += len) {
+ len = Math.min(0x1000, bytes.length - i);
+ chunks.push(String.fromCharCode.apply(null, bytes.subarray(i, i + len)));
+ }
+ return chunks.join('');
+ }
+ };
+ var utf16Decoder;
+ utf16Decoder = typeof TextDecoder === 'function' ? new TextDecoder('utf-16le') : fallbackDecoder2;
+ emnapiString.utf16Decoder = utf16Decoder;
+ },
+ lengthBytesUTF8: function (str) {
+ var c;
+ var len = 0;
+ for (var i = 0; i < str.length; ++i) {
+ c = str.charCodeAt(i);
+ if (c <= 0x7F) {
+ len++;
+ }
+ else if (c <= 0x7FF) {
+ len += 2;
+ }
+ else if (c >= 0xD800 && c <= 0xDFFF) {
+ len += 4;
+ ++i;
+ }
+ else {
+ len += 3;
+ }
+ }
+ return len;
+ },
+ UTF8ToString: function (ptr, length) {
+ if (!ptr || !length)
+ return '';
+ ptr >>>= 0;
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ var end = ptr;
+ if (length === -1 || length === 4294967295) {
+ for (; HEAPU8[end];)
+ ++end;
+ }
+ else {
+ end = ptr + (length >>> 0);
+ }
+ length = end - ptr;
+ if (length <= 16) {
+ var idx = ptr;
+ var str = '';
+ while (idx < end) {
+ var u0 = HEAPU8[idx++];
+ if (!(u0 & 0x80)) {
+ str += String.fromCharCode(u0);
+ continue;
+ }
+ var u1 = HEAPU8[idx++] & 63;
+ if ((u0 & 0xE0) === 0xC0) {
+ str += String.fromCharCode(((u0 & 31) << 6) | u1);
+ continue;
+ }
+ var u2 = HEAPU8[idx++] & 63;
+ if ((u0 & 0xF0) === 0xE0) {
+ u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
+ }
+ else {
+ u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (HEAPU8[idx++] & 63);
+ }
+ if (u0 < 0x10000) {
+ str += String.fromCharCode(u0);
+ }
+ else {
+ var ch = u0 - 0x10000;
+ str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
+ }
+ }
+ return str;
+ }
+ return emnapiString.utf8Decoder.decode(((typeof SharedArrayBuffer === "function" && HEAPU8.buffer instanceof SharedArrayBuffer) || (Object.prototype.toString.call(HEAPU8.buffer) === "[object SharedArrayBuffer]")) ? HEAPU8.slice(ptr, end) : HEAPU8.subarray(ptr, end));
+ },
+ stringToUTF8: function (str, outPtr, maxBytesToWrite) {
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ var outIdx = outPtr;
+ outIdx >>>= 0;
+ if (!(maxBytesToWrite > 0)) {
+ return 0;
+ }
+ var startIdx = outIdx;
+ var endIdx = outIdx + maxBytesToWrite - 1;
+ for (var i = 0; i < str.length; ++i) {
+ var u = str.charCodeAt(i);
+ if (u >= 0xD800 && u <= 0xDFFF) {
+ var u1 = str.charCodeAt(++i);
+ u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);
+ }
+ if (u <= 0x7F) {
+ if (outIdx >= endIdx)
+ break;
+ HEAPU8[outIdx++] = u;
+ }
+ else if (u <= 0x7FF) {
+ if (outIdx + 1 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xC0 | (u >> 6);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ else if (u <= 0xFFFF) {
+ if (outIdx + 2 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xE0 | (u >> 12);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 6) & 63);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ else {
+ if (outIdx + 3 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xF0 | (u >> 18);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 12) & 63);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 6) & 63);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ }
+ HEAPU8[outIdx] = 0;
+ return outIdx - startIdx;
+ },
+ UTF16ToString: function (ptr, length) {
+ if (!ptr || !length)
+ return '';
+ ptr >>>= 0;
+ var end = ptr;
+ if (length === -1 || length === 4294967295) {
+ var idx = end >>> 1;
+ var HEAPU16 = new Uint16Array(wasmMemory.buffer);
+ while (HEAPU16[idx])
+ ++idx;
+ end = (idx << 1) >>> 0;
+ }
+ else {
+ end = ptr + (length >>> 0) * 2;
+ }
+ length = end - ptr;
+ if (length <= 32) {
+ return String.fromCharCode.apply(null, new Uint16Array(wasmMemory.buffer, ptr, length / 2));
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ return emnapiString.utf16Decoder.decode(((typeof SharedArrayBuffer === "function" && HEAPU8.buffer instanceof SharedArrayBuffer) || (Object.prototype.toString.call(HEAPU8.buffer) === "[object SharedArrayBuffer]")) ? HEAPU8.slice(ptr, end) : HEAPU8.subarray(ptr, end));
+ },
+ stringToUTF16: function (str, outPtr, maxBytesToWrite) {
+ if (maxBytesToWrite === undefined) {
+ maxBytesToWrite = 0x7FFFFFFF;
+ }
+ if (maxBytesToWrite < 2)
+ return 0;
+ maxBytesToWrite -= 2;
+ var startPtr = outPtr;
+ var numCharsToWrite = (maxBytesToWrite < str.length * 2) ? (maxBytesToWrite / 2) : str.length;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < numCharsToWrite; ++i) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var codeUnit = str.charCodeAt(i);
+ HEAP_DATA_VIEW.setInt16(outPtr, codeUnit, true);
+ outPtr += 2;
+ }
+ HEAP_DATA_VIEW.setInt16(outPtr, 0, true);
+ return outPtr - startPtr;
+ },
+ newString: function (env, str, length, result, stringMaker) {
+ length >>>= 0;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!str)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!(autoLength || (sizelength <= 2147483647)))
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ str >>>= 0;
+ var strValue = stringMaker(str, autoLength, sizelength);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(strValue).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ },
+ newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
+ length >>>= 0;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!str)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!(autoLength || (sizelength <= 2147483647)))
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var status = createApi(env, str, length, result);
+ if (status === 0 /* napi_status.napi_ok */) {
+ if (copied) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(copied, 1, true);
+ }
+ if (finalize_callback) {
+ envObject.callFinalizer(finalize_callback, str, finalize_hint);
+ }
+ }
+ return status;
+ }
+ };
+ /**
+ * @__sig ippp
+ */
+ function napi_get_array_length(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isArray()) {
+ return envObject.setLastError(8 /* napi_status.napi_array_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = handle.value.length >>> 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_get_arraybuffer_info(env, arraybuffer, data, byte_length) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (data) {
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (byte_length) {
+ byte_length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function node_api_set_prototype(env, object, value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var obj = emnapiCtx.handleStore.get(object).value;
+ if (obj == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var type = typeof obj;
+ var v = void 0;
+ try {
+ v = (type === 'object' && obj !== null) || type === 'function' ? obj : Object(obj);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ var val = emnapiCtx.handleStore.get(value).value;
+ Object.setPrototypeOf(v, val);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_prototype(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = handle.isObject() || handle.isFunction() ? handle.value : Object(handle.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, p, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippppppp
+ */
+ function napi_get_typedarray_info(env, typedarray, type, length, data, arraybuffer, byte_offset) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!typedarray)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(typedarray);
+ if (!handle.isTypedArray()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v = handle.value;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (type) {
+ type >>>= 0;
+ var t = void 0;
+ if (v instanceof Int8Array) {
+ t = 0 /* napi_typedarray_type.napi_int8_array */;
+ }
+ else if (v instanceof Uint8Array) {
+ t = 1 /* napi_typedarray_type.napi_uint8_array */;
+ }
+ else if (v instanceof Uint8ClampedArray) {
+ t = 2 /* napi_typedarray_type.napi_uint8_clamped_array */;
+ }
+ else if (v instanceof Int16Array) {
+ t = 3 /* napi_typedarray_type.napi_int16_array */;
+ }
+ else if (v instanceof Uint16Array) {
+ t = 4 /* napi_typedarray_type.napi_uint16_array */;
+ }
+ else if (v instanceof Int32Array) {
+ t = 5 /* napi_typedarray_type.napi_int32_array */;
+ }
+ else if (v instanceof Uint32Array) {
+ t = 6 /* napi_typedarray_type.napi_uint32_array */;
+ }
+ else if (typeof Float16Array === 'function' && v instanceof Float16Array) {
+ t = 11 /* napi_typedarray_type.napi_float16_array */;
+ }
+ else if (v instanceof Float32Array) {
+ t = 7 /* napi_typedarray_type.napi_float32_array */;
+ }
+ else if (v instanceof Float64Array) {
+ t = 8 /* napi_typedarray_type.napi_float64_array */;
+ }
+ else if (v instanceof BigInt64Array) {
+ t = 9 /* napi_typedarray_type.napi_bigint64_array */;
+ }
+ else if (v instanceof BigUint64Array) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ t = 10 /* napi_typedarray_type.napi_biguint64_array */;
+ }
+ else {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ HEAP_DATA_VIEW.setInt32(type, t, true);
+ }
+ v = emnapiExternalMemory.getOrUpdateMemoryView(v);
+ if (length) {
+ length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(length, v.length, true);
+ }
+ if (data || arraybuffer) {
+ if (data) {
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = emnapiExternalMemory.getViewPointer(v, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (arraybuffer) {
+ arraybuffer >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var ab = envObject.ensureHandleId(v.buffer);
+ HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
+ }
+ }
+ if (byte_offset) {
+ byte_offset >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_get_buffer_info(env, buffer, data, length) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!buffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(buffer);
+ if (!handle.isBuffer(emnapiCtx.feature.Buffer))
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (handle.isDataView()) {
+ return napi_get_dataview_info(env, buffer, length, data, 0, 0);
+ }
+ return napi_get_typedarray_info(env, buffer, 0, length, data, 0, 0);
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_get_dataview_info(env, dataview, byte_length, data, arraybuffer, byte_offset) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!dataview)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(dataview);
+ if (!handle.isDataView()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (byte_length) {
+ byte_length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
+ }
+ if (data || arraybuffer) {
+ if (data) {
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = emnapiExternalMemory.getViewPointer(v, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (arraybuffer) {
+ arraybuffer >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var ab = envObject.ensureHandleId(v.buffer);
+ HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
+ }
+ }
+ if (byte_offset) {
+ byte_offset >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_date_value(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isDate()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ result >>>= 0;
+ v = handle.value.valueOf();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_bool(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'boolean') {
+ return envObject.setLastError(7 /* napi_status.napi_boolean_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = handle.value ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_double(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = handle.value;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, r, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_get_value_bigint_int64(env, value, result, lossless) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!lossless)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ var numberValue = handle.value;
+ if (typeof numberValue !== 'bigint') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ lossless >>>= 0;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
+ HEAP_DATA_VIEW.setInt8(lossless, 1, true);
+ }
+ else {
+ HEAP_DATA_VIEW.setInt8(lossless, 0, true);
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ if (numberValue >= (BigInt(1) << BigInt(63))) {
+ numberValue = numberValue - (BigInt(1) << BigInt(64));
+ }
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var low = Number(numberValue & BigInt(0xffffffff));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var high = Number(numberValue >> BigInt(32));
+ HEAP_DATA_VIEW.setInt32(result, low, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, high, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_get_value_bigint_uint64(env, value, result, lossless) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!lossless)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ var numberValue = handle.value;
+ if (typeof numberValue !== 'bigint') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ lossless >>>= 0;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
+ HEAP_DATA_VIEW.setInt8(lossless, 1, true);
+ }
+ else {
+ HEAP_DATA_VIEW.setInt8(lossless, 0, true);
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var low = Number(numberValue & BigInt(0xffffffff));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var high = Number(numberValue >> BigInt(32));
+ HEAP_DATA_VIEW.setUint32(result, low, true);
+ HEAP_DATA_VIEW.setUint32(result + 4, high, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_get_value_bigint_words(env, value, sign_bit, word_count, words) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!word_count)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isBigInt()) {
+ return envObject.setLastError(17 /* napi_status.napi_bigint_expected */);
+ }
+ var isMinus = handle.value < BigInt(0);
+ sign_bit >>>= 0;
+ words >>>= 0;
+ word_count >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
+ word_count_int >>>= 0;
+ var wordCount = 0;
+ var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
+ while (bigintValue !== BigInt(0)) {
+ wordCount++;
+ bigintValue = bigintValue >> BigInt(64);
+ }
+ bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
+ if (!sign_bit && !words) {
+ word_count_int = wordCount;
+ HEAP_DATA_VIEW.setUint32(word_count, word_count_int, true);
+ }
+ else {
+ if (!sign_bit)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!words)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var wordsArr = [];
+ while (bigintValue !== BigInt(0)) {
+ var uint64 = bigintValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ wordsArr.push(uint64);
+ bigintValue = bigintValue >> BigInt(64);
+ }
+ var len = Math.min(word_count_int, wordsArr.length);
+ for (var i = 0; i < len; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var low = Number(wordsArr[i] & BigInt(0xffffffff));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var high = Number(wordsArr[i] >> BigInt(32));
+ HEAP_DATA_VIEW.setUint32(words + i * 8, low, true);
+ HEAP_DATA_VIEW.setUint32(words + (i * 8 + 4), high, true);
+ }
+ HEAP_DATA_VIEW.setInt32(sign_bit, isMinus ? 1 : 0, true);
+ HEAP_DATA_VIEW.setUint32(word_count, len, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_external(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isExternal()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = handle.data();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, p, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_int32(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = new Int32Array([handle.value])[0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_int64(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ var numberValue = handle.value;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
+ HEAP_DATA_VIEW.setInt32(result, 0, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, 0, true);
+ }
+ else if (numberValue < /* INT64_RANGE_NEGATIVE */ -9223372036854776e3) {
+ HEAP_DATA_VIEW.setInt32(result, 0, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, 2147483648, true);
+ }
+ else if (numberValue >= /* INT64_RANGE_POSITIVE */ 9223372036854776000) {
+ HEAP_DATA_VIEW.setUint32(result, 4294967295, true);
+ HEAP_DATA_VIEW.setUint32(result + 4, 2147483647, true);
+ }
+ else {
+ $emnapiSetValueI64(result, Math.trunc(numberValue));
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_get_value_string_latin1(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ HEAP_DATA_VIEW.setUint32(result, handle.value.length, true);
+ }
+ else if (buf_size !== 0) {
+ var copied = 0;
+ var v = void 0;
+ for (var i = 0; i < buf_size - 1; ++i) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = handle.value.charCodeAt(i) & 0xff;
+ HEAP_DATA_VIEW.setUint8(buf + i, v, true);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ copied++;
+ }
+ HEAP_DATA_VIEW.setUint8(buf + copied, 0, true);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_get_value_string_utf8(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var strLength = emnapiString.lengthBytesUTF8(handle.value);
+ HEAP_DATA_VIEW.setUint32(result, strLength, true);
+ }
+ else if (buf_size !== 0) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var copied = emnapiString.stringToUTF8(handle.value, buf, buf_size);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_get_value_string_utf16(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ HEAP_DATA_VIEW.setUint32(result, handle.value.length, true);
+ }
+ else if (buf_size !== 0) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var copied = emnapiString.stringToUTF16(handle.value, buf, buf_size * 2);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied / 2, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_get_value_uint32(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6 /* napi_status.napi_number_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = new Uint32Array([handle.value])[0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ var convert2cMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_get_array_length: napi_get_array_length,
+ napi_get_arraybuffer_info: napi_get_arraybuffer_info,
+ napi_get_buffer_info: napi_get_buffer_info,
+ napi_get_dataview_info: napi_get_dataview_info,
+ napi_get_date_value: napi_get_date_value,
+ napi_get_prototype: napi_get_prototype,
+ napi_get_typedarray_info: napi_get_typedarray_info,
+ napi_get_value_bigint_int64: napi_get_value_bigint_int64,
+ napi_get_value_bigint_uint64: napi_get_value_bigint_uint64,
+ napi_get_value_bigint_words: napi_get_value_bigint_words,
+ napi_get_value_bool: napi_get_value_bool,
+ napi_get_value_double: napi_get_value_double,
+ napi_get_value_external: napi_get_value_external,
+ napi_get_value_int32: napi_get_value_int32,
+ napi_get_value_int64: napi_get_value_int64,
+ napi_get_value_string_latin1: napi_get_value_string_latin1,
+ napi_get_value_string_utf16: napi_get_value_string_utf16,
+ napi_get_value_string_utf8: napi_get_value_string_utf8,
+ napi_get_value_uint32: napi_get_value_uint32,
+ node_api_set_prototype: node_api_set_prototype
+ });
+ /**
+ * @__sig ipip
+ */
+ function napi_create_int32(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(value).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipip
+ */
+ function napi_create_uint32(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipjp
+ */
+ function napi_create_int64(env, low, high, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var value;
+ if (!high)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ value = Number(low);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipdp
+ */
+ function napi_create_double(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(value).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_create_string_latin1(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str, autoLength, sizeLength) {
+ var latin1String = '';
+ var len = 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (autoLength) {
+ while (true) {
+ var ch = HEAP_DATA_VIEW.getUint8(str, true);
+ if (!ch)
+ break;
+ latin1String += String.fromCharCode(ch);
+ str++;
+ }
+ }
+ else {
+ while (len < sizeLength) {
+ var ch = HEAP_DATA_VIEW.getUint8(str, true);
+ if (!ch)
+ break;
+ latin1String += String.fromCharCode(ch);
+ len++;
+ str++;
+ }
+ }
+ return latin1String;
+ });
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_create_string_utf16(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str) {
+ return emnapiString.UTF16ToString(str, length);
+ });
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_create_string_utf8(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str) {
+ return emnapiString.UTF8ToString(str, length);
+ });
+ }
+ /**
+ * @__sig ippppppp
+ */
+ function node_api_create_external_string_latin1(env, str, length, finalize_callback, finalize_hint, result, copied) {
+ return emnapiString.newExternalString(env, str, length, finalize_callback, finalize_hint, result, copied, napi_create_string_latin1, undefined);
+ }
+ /**
+ * @__sig ippppppp
+ */
+ function node_api_create_external_string_utf16(env, str, length, finalize_callback, finalize_hint, result, copied) {
+ return emnapiString.newExternalString(env, str, length, finalize_callback, finalize_hint, result, copied, napi_create_string_utf16, undefined);
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_create_property_key_latin1(env, str, length, result) {
+ return napi_create_string_latin1(env, str, length, result);
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_create_property_key_utf8(env, str, length, result) {
+ return napi_create_string_utf8(env, str, length, result);
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_create_property_key_utf16(env, str, length, result) {
+ return napi_create_string_utf16(env, str, length, result);
+ }
+ /**
+ * @__sig ipjp
+ */
+ function napi_create_bigint_int64(env, low, high, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ var value;
+ if (!high)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ value = low;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipjp
+ */
+ function napi_create_bigint_uint64(env, low, high, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ var value;
+ if (!high)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipippp
+ */
+ function napi_create_bigint_words(env, sign_bit, word_count, words, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v, i;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ words >>>= 0;
+ word_count >>>= 0;
+ word_count = word_count >>> 0;
+ if (word_count > 2147483647) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (word_count > (1024 * 1024 / (4 * 8) / 2)) {
+ throw new RangeError('Maximum BigInt size exceeded');
+ }
+ var value = BigInt(0);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (i = 0; i < word_count; i++) {
+ var low = HEAP_DATA_VIEW.getUint32(words + i * 8, true);
+ var high = HEAP_DATA_VIEW.getUint32(words + (i * 8 + 4), true);
+ var wordi = BigInt(low) | (BigInt(high) << BigInt(32));
+ value += wordi << BigInt(64 * i);
+ }
+ value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
+ result >>>= 0;
+ v = emnapiCtx.addToCurrentScope(value).id;
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ var convert2napiMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_create_bigint_int64: napi_create_bigint_int64,
+ napi_create_bigint_uint64: napi_create_bigint_uint64,
+ napi_create_bigint_words: napi_create_bigint_words,
+ napi_create_double: napi_create_double,
+ napi_create_int32: napi_create_int32,
+ napi_create_int64: napi_create_int64,
+ napi_create_string_latin1: napi_create_string_latin1,
+ napi_create_string_utf16: napi_create_string_utf16,
+ napi_create_string_utf8: napi_create_string_utf8,
+ napi_create_uint32: napi_create_uint32,
+ node_api_create_external_string_latin1: node_api_create_external_string_latin1,
+ node_api_create_external_string_utf16: node_api_create_external_string_utf16,
+ node_api_create_property_key_latin1: node_api_create_property_key_latin1,
+ node_api_create_property_key_utf16: node_api_create_property_key_utf16,
+ node_api_create_property_key_utf8: node_api_create_property_key_utf8
+ });
+ function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
+ utf8name >>>= 0;
+ var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
+ var f;
+ var napiCallback = (wasmTable.get(cb));
+ var callback = function (envObject) {
+ return napiCallback(envObject.id, envObject.ctx.scopeStore.currentScope.id);
+ };
+ var makeFunction = function (envObject, callback) {
+ return function () {
+ var scope = envObject.ctx.openScope(envObject);
+ var callbackInfo = scope.callbackInfo;
+ callbackInfo.data = data;
+ callbackInfo.args = arguments;
+ callbackInfo.thiz = this;
+ callbackInfo.fn = f;
+ try {
+ var napiValue = envObject.callIntoModule(callback);
+ return (!napiValue) ? undefined : envObject.ctx.handleStore.get(napiValue).value;
+ }
+ finally {
+ callbackInfo.data = 0;
+ callbackInfo.args = undefined;
+ callbackInfo.thiz = undefined;
+ callbackInfo.fn = undefined;
+ envObject.ctx.closeScope(envObject, scope);
+ }
+ };
+ };
+ if (functionName === '') {
+ f = makeFunction(envObject, callback);
+ return { status: 0 /* napi_status.napi_ok */, f: f };
+ }
+ if (!(/^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(functionName))) {
+ return { status: 1 /* napi_status.napi_invalid_arg */, f: undefined };
+ }
+ if (emnapiCtx.feature.supportNewFunction) {
+ var _ = makeFunction(envObject, callback);
+ try {
+ f = (new Function('_', 'return function ' + functionName + '(){' +
+ '"use strict";' +
+ 'return _.apply(this,arguments);' +
+ '};'))(_);
+ }
+ catch (_err) {
+ f = makeFunction(envObject, callback);
+ if (emnapiCtx.feature.canSetFunctionName)
+ Object.defineProperty(f, 'name', { value: functionName });
+ }
+ }
+ else {
+ f = makeFunction(envObject, callback);
+ if (emnapiCtx.feature.canSetFunctionName)
+ Object.defineProperty(f, 'name', { value: functionName });
+ }
+ return { status: 0 /* napi_status.napi_ok */, f: f };
+ }
+ function emnapiDefineProperty(envObject, obj, propertyName, method, getter, setter, value, attributes, data) {
+ if (getter || setter) {
+ var localGetter = void 0;
+ var localSetter = void 0;
+ if (getter) {
+ localGetter = emnapiCreateFunction(envObject, 0, 0, getter, data).f;
+ }
+ if (setter) {
+ localSetter = emnapiCreateFunction(envObject, 0, 0, setter, data).f;
+ }
+ var desc = {
+ configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
+ enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
+ get: localGetter,
+ set: localSetter
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ else if (method) {
+ var localMethod = emnapiCreateFunction(envObject, 0, 0, method, data).f;
+ var desc = {
+ configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
+ enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
+ writable: (attributes & 1 /* napi_property_attributes.napi_writable */) !== 0,
+ value: localMethod
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ else {
+ var desc = {
+ configurable: (attributes & 4 /* napi_property_attributes.napi_configurable */) !== 0,
+ enumerable: (attributes & 2 /* napi_property_attributes.napi_enumerable */) !== 0,
+ writable: (attributes & 1 /* napi_property_attributes.napi_writable */) !== 0,
+ value: emnapiCtx.handleStore.get(value).value
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ }
+ function emnapiGetHandle(js_object) {
+ var handle = emnapiCtx.handleStore.get(js_object);
+ if (!(handle.isObject() || handle.isFunction())) {
+ return { status: 1 /* napi_status.napi_invalid_arg */ };
+ }
+ if (typeof emnapiExternalMemory !== 'undefined' && ArrayBuffer.isView(handle.value)) {
+ if (emnapiExternalMemory.wasmMemoryViewTable.has(handle.value)) {
+ handle = emnapiCtx.addToCurrentScope(emnapiExternalMemory.wasmMemoryViewTable.get(handle.value));
+ }
+ }
+ return { status: 0 /* napi_status.napi_ok */, handle: handle };
+ }
+ function emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var referenceId;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!emnapiCtx.feature.supportFinalizer) {
+ if (finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_wrap', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ if (result) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_wrap', 'Parameter "result" must be 0(NULL)');
+ }
+ }
+ if (!js_object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handleResult = emnapiGetHandle(js_object);
+ if (handleResult.status !== 0 /* napi_status.napi_ok */) {
+ return envObject.setLastError(handleResult.status);
+ }
+ var handle = handleResult.handle;
+ if (envObject.getObjectBinding(handle.value).wrapped !== 0) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var reference = void 0;
+ if (result) {
+ if (!finalize_cb)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1 /* ReferenceOwnership.kUserland */, finalize_cb, native_object, finalize_hint);
+ result >>>= 0;
+ referenceId = reference.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, referenceId, true);
+ }
+ else {
+ if (finalize_cb) {
+ reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 0 /* ReferenceOwnership.kRuntime */, finalize_cb, native_object, finalize_hint);
+ }
+ else {
+ reference = emnapiCtx.createReferenceWithData(envObject, handle.id, 0, 0 /* ReferenceOwnership.kRuntime */, native_object);
+ }
+ }
+ envObject.getObjectBinding(handle.value).wrapped = reference.id;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ function emnapiUnwrap(env, js_object, result, action) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var data;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!js_object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (action === 0 /* UnwrapAction.KeepWrap */) {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var value = emnapiCtx.handleStore.get(js_object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ var referenceId = binding.wrapped;
+ var ref = emnapiCtx.refStore.get(referenceId);
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (result) {
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ data = ref.data();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, data, true);
+ }
+ if (action === 1 /* UnwrapAction.RemoveWrap */) {
+ binding.wrapped = 0;
+ if (ref.ownership() === 1 /* ReferenceOwnership.kUserland */) {
+ // When the wrap is been removed, the finalizer should be reset.
+ ref.resetFinalizer();
+ }
+ else {
+ ref.dispose();
+ }
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppppp
+ */
+ function napi_define_class(env, utf8name, length, constructor, callback_data, property_count, properties, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var propPtr, valueHandleId, attributes;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!constructor)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ length >>>= 0;
+ properties >>>= 0;
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!properties)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
+ if (fresult.status !== 0 /* napi_status.napi_ok */)
+ return envObject.setLastError(fresult.status);
+ var F = fresult.f;
+ var propertyName = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ propPtr = properties + (i * (4 * 8));
+ var utf8Name = HEAP_DATA_VIEW.getUint32(propPtr, true);
+ var name_1 = HEAP_DATA_VIEW.getUint32(propPtr + 4, true);
+ var method = HEAP_DATA_VIEW.getUint32(propPtr + 8, true);
+ var getter = HEAP_DATA_VIEW.getUint32(propPtr + 12, true);
+ var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
+ var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
+ attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
+ attributes >>>= 0;
+ var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
+ if (utf8Name) {
+ propertyName = emnapiString.UTF8ToString(utf8Name, -1);
+ }
+ else {
+ if (!name_1) {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ propertyName = emnapiCtx.handleStore.get(name_1).value;
+ if (typeof propertyName !== 'string' && typeof propertyName !== 'symbol') {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ }
+ if ((attributes & 1024 /* napi_property_attributes.napi_static */) !== 0) {
+ emnapiDefineProperty(envObject, F, propertyName, method, getter, setter, value, attributes, data);
+ continue;
+ }
+ emnapiDefineProperty(envObject, F.prototype, propertyName, method, getter, setter, value, attributes, data);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var valueHandle = emnapiCtx.addToCurrentScope(F);
+ valueHandleId = valueHandle.id;
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_wrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
+ return emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result);
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_unwrap(env, js_object, result) {
+ return emnapiUnwrap(env, js_object, result, 0 /* UnwrapAction.KeepWrap */);
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_remove_wrap(env, js_object, result) {
+ return emnapiUnwrap(env, js_object, result, 1 /* UnwrapAction.RemoveWrap */);
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_type_tag_object(env, object, type_tag) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var value = emnapiCtx.handleStore.get(object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
+ }
+ type_tag >>>= 0;
+ if (!type_tag) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ if (binding.tag !== null) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var tag = new Uint8Array(16);
+ tag.set(new Uint8Array(wasmMemory.buffer, type_tag, 16));
+ binding.tag = new Uint32Array(tag.buffer);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_check_object_type_tag(env, object, type_tag, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, one-var
+ var ret = true;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var value = emnapiCtx.handleStore.get(object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 2 /* napi_status.napi_object_expected */);
+ }
+ if (!type_tag) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 /* napi_status.napi_pending_exception */ : 1 /* napi_status.napi_invalid_arg */);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ if (binding.tag !== null) {
+ type_tag >>>= 0;
+ var tag = binding.tag;
+ var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
+ ret = (tag[0] === typeTag[0] &&
+ tag[1] === typeTag[1] &&
+ tag[2] === typeTag[2] &&
+ tag[3] === typeTag[3]);
+ }
+ else {
+ ret = false;
+ }
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_add_finalizer(env, js_object, finalize_data, finalize_cb, finalize_hint, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportFinalizer) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ if (!js_object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!finalize_cb)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handleResult = emnapiGetHandle(js_object);
+ if (handleResult.status !== 0 /* napi_status.napi_ok */) {
+ return envObject.setLastError(handleResult.status);
+ }
+ var handle = handleResult.handle;
+ var ownership = !result ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */;
+ finalize_data >>>= 0;
+ finalize_cb >>>= 0;
+ finalize_hint >>>= 0;
+ var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
+ if (result) {
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var referenceId = reference.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, referenceId, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_post_finalizer(env, finalize_cb, finalize_data, finalize_hint) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.enqueueFinalizer(emnapiCtx.createTrackedFinalizer(envObject, finalize_cb, finalize_data, finalize_hint));
+ return envObject.clearLastError();
+ }
+ var wrapMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_add_finalizer: napi_add_finalizer,
+ napi_check_object_type_tag: napi_check_object_type_tag,
+ napi_define_class: napi_define_class,
+ napi_remove_wrap: napi_remove_wrap,
+ napi_type_tag_object: napi_type_tag_object,
+ napi_unwrap: napi_unwrap,
+ napi_wrap: napi_wrap,
+ node_api_post_finalizer: node_api_post_finalizer
+ });
+ /**
+ * @__sig ipippppp
+ */
+ function emnapi_create_memory_view(env, typedarray_type, external_data, byte_length, finalize_cb, finalize_hint, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ byte_length >>>= 0;
+ external_data >>>= 0;
+ result >>>= 0;
+ byte_length = byte_length >>> 0;
+ if (!external_data) {
+ byte_length = 0;
+ }
+ if (byte_length > 2147483647) {
+ throw new RangeError('Cannot create a memory view larger than 2147483647 bytes');
+ }
+ if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
+ throw new RangeError('Memory out of range');
+ }
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('emnapi_create_memory_view', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var viewDescriptor = void 0;
+ switch (typedarray_type) {
+ case 0 /* emnapi_memory_view_type.emnapi_int8_array */:
+ viewDescriptor = { Ctor: Int8Array, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 1 /* emnapi_memory_view_type.emnapi_uint8_array */:
+ viewDescriptor = { Ctor: Uint8Array, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 2 /* emnapi_memory_view_type.emnapi_uint8_clamped_array */:
+ viewDescriptor = { Ctor: Uint8ClampedArray, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 3 /* emnapi_memory_view_type.emnapi_int16_array */:
+ viewDescriptor = { Ctor: Int16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 4 /* emnapi_memory_view_type.emnapi_uint16_array */:
+ viewDescriptor = { Ctor: Uint16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 5 /* emnapi_memory_view_type.emnapi_int32_array */:
+ viewDescriptor = { Ctor: Int32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 6 /* emnapi_memory_view_type.emnapi_uint32_array */:
+ viewDescriptor = { Ctor: Uint32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 7 /* emnapi_memory_view_type.emnapi_float32_array */:
+ viewDescriptor = { Ctor: Float32Array, address: external_data, length: byte_length >> 2, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 8 /* emnapi_memory_view_type.emnapi_float64_array */:
+ viewDescriptor = { Ctor: Float64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 9 /* emnapi_memory_view_type.emnapi_bigint64_array */:
+ viewDescriptor = { Ctor: BigInt64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 10 /* emnapi_memory_view_type.emnapi_biguint64_array */:
+ viewDescriptor = { Ctor: BigUint64Array, address: external_data, length: byte_length >> 3, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case -1 /* emnapi_memory_view_type.emnapi_data_view */:
+ viewDescriptor = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case 11 /* emnapi_memory_view_type.emnapi_float16_array */:
+ if (typeof Float16Array !== 'function') {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ viewDescriptor = { Ctor: Float16Array, address: external_data, length: byte_length >> 1, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ case -2 /* emnapi_memory_view_type.emnapi_buffer */: {
+ if (!emnapiCtx.feature.Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('emnapi_create_memory_view', '');
+ }
+ viewDescriptor = { Ctor: emnapiCtx.feature.Buffer, address: external_data, length: byte_length, ownership: 1 /* ReferenceOwnership.kUserland */, runtimeAllocated: 0 };
+ break;
+ }
+ default: return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var Ctor = viewDescriptor.Ctor;
+ var typedArray = typedarray_type === -2 /* emnapi_memory_view_type.emnapi_buffer */
+ ? emnapiCtx.feature.Buffer.from(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length)
+ : new Ctor(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length);
+ var handle = emnapiCtx.addToCurrentScope(typedArray);
+ emnapiExternalMemory.wasmMemoryViewTable.set(typedArray, viewDescriptor);
+ if (finalize_cb) {
+ var status_1 = napi_add_finalizer(env, handle.id, external_data, finalize_cb, finalize_hint, /* NULL */ 0);
+ if (status_1 === 10 /* napi_status.napi_pending_exception */) {
+ var err = envObject.tryCatch.extractException();
+ envObject.clearLastError();
+ throw err;
+ }
+ else if (status_1 !== 0 /* napi_status.napi_ok */) {
+ return envObject.setLastError(status_1);
+ }
+ }
+ value = handle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig i
+ */
+ function emnapi_is_support_weakref() {
+ return emnapiCtx.feature.supportFinalizer ? 1 : 0;
+ }
+ /**
+ * @__sig i
+ */
+ function emnapi_is_support_bigint() {
+ return emnapiCtx.feature.supportBigInt ? 1 : 0;
+ }
+ /**
+ * @__sig i
+ */
+ function emnapi_is_node_binding_available() {
+ return emnapiNodeBinding ? 1 : 0;
+ }
+ function $emnapiSyncMemory(js_to_wasm, arrayBufferOrView, offset, len) {
+ offset = offset !== null && offset !== void 0 ? offset : 0;
+ offset = offset >>> 0;
+ var view;
+ if (arrayBufferOrView instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
+ var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
+ if (!pointer)
+ throw new Error('Unknown ArrayBuffer address');
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
+ len = arrayBufferOrView.byteLength - offset;
+ }
+ len = len >>> 0;
+ if (len === 0)
+ return arrayBufferOrView;
+ view = new Uint8Array(arrayBufferOrView, offset, len);
+ var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
+ if (!js_to_wasm) {
+ view.set(wasmMemoryU8.subarray(pointer, pointer + len));
+ }
+ else {
+ wasmMemoryU8.set(view, pointer);
+ }
+ return arrayBufferOrView;
+ }
+ if (ArrayBuffer.isView(arrayBufferOrView)) {
+ var viewPointerInfo = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
+ var latestView = viewPointerInfo.view;
+ var pointer = viewPointerInfo.address;
+ if (!pointer)
+ throw new Error('Unknown ArrayBuffer address');
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
+ len = latestView.byteLength - offset;
+ }
+ len = len >>> 0;
+ if (len === 0)
+ return latestView;
+ view = new Uint8Array(latestView.buffer, latestView.byteOffset + offset, len);
+ var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
+ if (!js_to_wasm) {
+ view.set(wasmMemoryU8.subarray(pointer, pointer + len));
+ }
+ else {
+ wasmMemoryU8.set(view, pointer);
+ }
+ return latestView;
+ }
+ throw new TypeError('emnapiSyncMemory expect ArrayBuffer or ArrayBufferView as first parameter');
+ }
+ /**
+ * @__sig ipippp
+ */
+ function emnapi_sync_memory(env, js_to_wasm, arraybuffer_or_view, offset, len) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer_or_view)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ arraybuffer_or_view >>>= 0;
+ offset >>>= 0;
+ len >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
+ var handle = envObject.ctx.handleStore.get(handleId);
+ if (!handle.isArrayBuffer() && !handle.isTypedArray() && !handle.isDataView() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
+ if (handle.value !== ret) {
+ arraybuffer_or_view >>>= 0;
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ function $emnapiGetMemoryAddress(arrayBufferOrView) {
+ var isArrayBuffer = arrayBufferOrView instanceof ArrayBuffer;
+ var isDataView = arrayBufferOrView instanceof DataView;
+ var isTypedArray = ArrayBuffer.isView(arrayBufferOrView) && !isDataView;
+ if (!isArrayBuffer && !isTypedArray && !isDataView && !emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
+ throw new TypeError('emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter');
+ }
+ var info;
+ if (isArrayBuffer) {
+ info = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false);
+ }
+ else {
+ info = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
+ }
+ return {
+ address: info.address,
+ ownership: info.ownership,
+ runtimeAllocated: info.runtimeAllocated
+ };
+ }
+ /**
+ * @__sig ipppp
+ */
+ function emnapi_get_memory_address(env, arraybuffer_or_view, address, ownership, runtime_allocated) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p, runtimeAllocated, ownershipOut;
+ var info;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer_or_view)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!address && !ownership && !runtime_allocated) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var handle = envObject.ctx.handleStore.get(arraybuffer_or_view);
+ info = $emnapiGetMemoryAddress(handle.value);
+ p = info.address;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (address) {
+ address >>>= 0;
+ HEAP_DATA_VIEW.setUint32(address, p, true);
+ }
+ if (ownership) {
+ ownership >>>= 0;
+ ownershipOut = info.ownership;
+ HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
+ }
+ if (runtime_allocated) {
+ runtime_allocated >>>= 0;
+ runtimeAllocated = info.runtimeAllocated;
+ HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipp
+ */
+ function emnapi_get_runtime_version(env, version) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!version)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var runtimeVersion;
+ try {
+ runtimeVersion = emnapiCtx.getRuntimeVersions().version;
+ }
+ catch (_) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var versions = runtimeVersion.split('.')
+ .map(function (n) { return Number(n); });
+ version >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(version, versions[0], true);
+ HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
+ HEAP_DATA_VIEW.setUint32(version + 8, versions[2], true);
+ return envObject.clearLastError();
+ }
+ var emnapiMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ $emnapiGetMemoryAddress: $emnapiGetMemoryAddress,
+ $emnapiSyncMemory: $emnapiSyncMemory,
+ emnapi_create_memory_view: emnapi_create_memory_view,
+ emnapi_get_memory_address: emnapi_get_memory_address,
+ emnapi_get_runtime_version: emnapi_get_runtime_version,
+ emnapi_is_node_binding_available: emnapi_is_node_binding_available,
+ emnapi_is_support_bigint: emnapi_is_support_bigint,
+ emnapi_is_support_weakref: emnapi_is_support_weakref,
+ emnapi_sync_memory: emnapi_sync_memory
+ });
+ /**
+ * @__sig ipp
+ */
+ function napi_create_array(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope([]).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_create_array_with_length(env, length, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ length >>>= 0;
+ result >>>= 0;
+ length = length >>> 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function emnapiCreateArrayBuffer(byte_length, data, shared) {
+ byte_length >>>= 0;
+ byte_length = byte_length >>> 0;
+ var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
+ if (data) {
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ return arrayBuffer;
+ }
+ /**
+ * @__sig ipppp
+ */
+ function napi_create_arraybuffer(env, byte_length, data, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_create_sharedarraybuffer(env, byte_length, data, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipdp
+ */
+ function napi_create_date(env, time, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(new Date(time)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_create_external(env, data, finalize_cb, finalize_hint, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_create_external', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var externalHandle = emnapiCtx.getCurrentScope().addExternal(data);
+ if (finalize_cb) {
+ emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0 /* ReferenceOwnership.kRuntime */, finalize_cb, data, finalize_hint);
+ }
+ result >>>= 0;
+ value = externalHandle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_create_external_arraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ byte_length >>>= 0;
+ external_data >>>= 0;
+ result >>>= 0;
+ byte_length = byte_length >>> 0;
+ if (!external_data) {
+ byte_length = 0;
+ }
+ if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
+ throw new RangeError('Memory out of range');
+ }
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_create_external_arraybuffer', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var arrayBuffer = new ArrayBuffer(byte_length);
+ if (byte_length === 0) {
+ try {
+ var MessageChannel_1 = emnapiCtx.feature.MessageChannel;
+ var messageChannel = new MessageChannel_1();
+ messageChannel.port1.postMessage(arrayBuffer, [arrayBuffer]);
+ }
+ catch (_) { }
+ }
+ else {
+ var u8arr = new Uint8Array(arrayBuffer);
+ u8arr.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
+ emnapiExternalMemory.table.set(arrayBuffer, {
+ address: external_data,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ var handle = emnapiCtx.addToCurrentScope(arrayBuffer);
+ if (finalize_cb) {
+ var status_1 = napi_add_finalizer(env, handle.id, external_data, finalize_cb, finalize_hint, /* NULL */ 0);
+ if (status_1 === 10 /* napi_status.napi_pending_exception */) {
+ var err = envObject.tryCatch.extractException();
+ envObject.clearLastError();
+ throw err;
+ }
+ else if (status_1 !== 0 /* napi_status.napi_ok */) {
+ return envObject.setLastError(status_1);
+ }
+ }
+ value = handle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipp
+ */
+ function napi_create_object(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope({}).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!property_names)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!property_values)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v8_prototype_or_null = prototype_or_null
+ ? emnapiCtx.handleStore.get(prototype_or_null).value
+ : null;
+ var properties = {};
+ property_names >>>= 0;
+ property_values >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
+ if (!(typeof name_value === "string" || typeof name_value === "symbol"))
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ properties[name_value] = {
+ value: emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_values + i * 4, true)).value,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ };
+ }
+ var obj;
+ try {
+ obj = Object.defineProperties(Object.create(v8_prototype_or_null), properties);
+ }
+ catch (_) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(obj).id;
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ippp
+ */
+ function napi_create_symbol(env, description, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!description) {
+ // eslint-disable-next-line symbol-description, @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(Symbol()).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ }
+ else {
+ var handle = emnapiCtx.handleStore.get(description);
+ var desc = handle.value;
+ if (typeof desc !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(Symbol(desc)).id;
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.clearLastError();
+ }
+ /**
+ * @__sig ipipppp
+ */
+ function napi_create_typedarray(env, type, length, arraybuffer, byte_offset, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var buffer = handle.value;
+ byte_offset >>>= 0;
+ length >>>= 0;
+ var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
+ var _a;
+ byte_offset = byte_offset >>> 0;
+ length = length >>> 0;
+ if (size_of_element > 1) {
+ if ((byte_offset) % (size_of_element) !== 0) {
+ var err = new RangeError("start offset of ".concat((_a = Type.name) !== null && _a !== void 0 ? _a : '', " should be a multiple of ").concat(size_of_element));
+ err.code = 'ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT';
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ }
+ if (((length * size_of_element) + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('Invalid typed array length');
+ err.code = 'ERR_NAPI_INVALID_TYPEDARRAY_LENGTH';
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ var out = new Type(buffer, byte_offset, length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(out, {
+ Ctor: Type,
+ address: byte_offset,
+ length: length,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(out).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ };
+ switch (type) {
+ case 0 /* napi_typedarray_type.napi_int8_array */:
+ return createTypedArray(envObject, Int8Array, 1, buffer, byte_offset, length);
+ case 1 /* napi_typedarray_type.napi_uint8_array */:
+ return createTypedArray(envObject, Uint8Array, 1, buffer, byte_offset, length);
+ case 2 /* napi_typedarray_type.napi_uint8_clamped_array */:
+ return createTypedArray(envObject, Uint8ClampedArray, 1, buffer, byte_offset, length);
+ case 3 /* napi_typedarray_type.napi_int16_array */:
+ return createTypedArray(envObject, Int16Array, 2, buffer, byte_offset, length);
+ case 4 /* napi_typedarray_type.napi_uint16_array */:
+ return createTypedArray(envObject, Uint16Array, 2, buffer, byte_offset, length);
+ case 5 /* napi_typedarray_type.napi_int32_array */:
+ return createTypedArray(envObject, Int32Array, 4, buffer, byte_offset, length);
+ case 6 /* napi_typedarray_type.napi_uint32_array */:
+ return createTypedArray(envObject, Uint32Array, 4, buffer, byte_offset, length);
+ case 7 /* napi_typedarray_type.napi_float32_array */:
+ return createTypedArray(envObject, Float32Array, 4, buffer, byte_offset, length);
+ case 8 /* napi_typedarray_type.napi_float64_array */:
+ return createTypedArray(envObject, Float64Array, 8, buffer, byte_offset, length);
+ case 9 /* napi_typedarray_type.napi_bigint64_array */:
+ return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
+ case 10 /* napi_typedarray_type.napi_biguint64_array */:
+ return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
+ case 11 /* napi_typedarray_type.napi_float16_array */:
+ if (typeof Float16Array !== 'function') {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
+ default:
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__deps malloc
+ * @__sig ippp
+ */
+ function napi_create_buffer(env, size, data, result) {
+ var _a;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value, pointer;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
+ }
+ result >>>= 0;
+ var buffer = void 0;
+ size >>>= 0;
+ size = size >>> 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!data || (size === 0)) {
+ buffer = Buffer.alloc(size);
+ value = emnapiCtx.addToCurrentScope(buffer).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ }
+ else {
+ pointer = _malloc(size);
+ if (!pointer)
+ throw new Error('Out of memory');
+ pointer >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
+ var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
+ var viewDescriptor = {
+ Ctor: Buffer,
+ address: pointer,
+ length: size,
+ ownership: emnapiExternalMemory.registry ? 0 /* ReferenceOwnership.kRuntime */ : 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 1
+ };
+ emnapiExternalMemory.wasmMemoryViewTable.set(buffer_1, viewDescriptor);
+ (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
+ value = emnapiCtx.addToCurrentScope(buffer_1).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ data >>>= 0;
+ HEAP_DATA_VIEW.setUint32(data, pointer, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_create_buffer_copy(env, length, data, result_data, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('napi_create_buffer_copy', '');
+ }
+ var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
+ var buffer = Buffer.from(arrayBuffer);
+ data >>>= 0;
+ length >>>= 0;
+ buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
+ value = emnapiCtx.addToCurrentScope(buffer).id;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppppp
+ */
+ function napi_create_external_buffer(env, length, data, finalize_cb, finalize_hint, result) {
+ return emnapi_create_memory_view(env, -2 /* emnapi_memory_view_type.emnapi_buffer */, data, length, finalize_cb, finalize_hint, result);
+ }
+ /**
+ * @__sig ippppp
+ */
+ function node_api_create_buffer_from_arraybuffer(env, arraybuffer, byte_offset, byte_length, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ byte_offset >>>= 0;
+ byte_length >>>= 0;
+ byte_offset = byte_offset >>> 0;
+ byte_length = byte_length >>> 0;
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer()) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var buffer = handle.value;
+ if ((byte_length + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('The byte offset + length is out of range');
+ err.code = 'ERR_OUT_OF_RANGE';
+ throw err;
+ }
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('node_api_create_buffer_from_arraybuffer', '');
+ }
+ var out = Buffer.from(buffer, byte_offset, byte_length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(out, {
+ Ctor: Buffer,
+ address: byte_offset,
+ length: byte_length,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(out).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ippppp
+ */
+ function napi_create_dataview(env, byte_length, arraybuffer, byte_offset, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ byte_length >>>= 0;
+ byte_offset >>>= 0;
+ byte_length = byte_length >>> 0;
+ byte_offset = byte_offset >>> 0;
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
+ var createDataview = function (buffer) {
+ if ((byte_length + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in');
+ err.code = 'ERR_NAPI_INVALID_DATAVIEW_ARGS';
+ throw err;
+ }
+ var dataview = new DataView(buffer, byte_offset, byte_length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(dataview)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(dataview, {
+ Ctor: DataView,
+ address: byte_offset,
+ length: byte_length,
+ ownership: 1 /* ReferenceOwnership.kUserland */,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = emnapiCtx.addToCurrentScope(dataview).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ };
+ if (value instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(value)) {
+ return createDataview(value);
+ }
+ else {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /**
+ * @__sig ipppp
+ */
+ function node_api_symbol_for(env, utf8description, length, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ length >>>= 0;
+ utf8description >>>= 0;
+ result >>>= 0;
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!utf8description)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!(autoLength || (sizelength <= 2147483647))) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var descriptionString = emnapiString.UTF8ToString(utf8description, length);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(Symbol.for(descriptionString)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var createMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_create_array: napi_create_array,
+ napi_create_array_with_length: napi_create_array_with_length,
+ napi_create_arraybuffer: napi_create_arraybuffer,
+ napi_create_buffer: napi_create_buffer,
+ napi_create_buffer_copy: napi_create_buffer_copy,
+ napi_create_dataview: napi_create_dataview,
+ napi_create_date: napi_create_date,
+ napi_create_external: napi_create_external,
+ napi_create_external_arraybuffer: napi_create_external_arraybuffer,
+ napi_create_external_buffer: napi_create_external_buffer,
+ napi_create_object: napi_create_object,
+ napi_create_symbol: napi_create_symbol,
+ napi_create_typedarray: napi_create_typedarray,
+ node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
+ node_api_create_object_with_properties: node_api_create_object_with_properties,
+ node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
+ node_api_symbol_for: node_api_symbol_for
+ });
+ /** @__sig ipip */
+ function napi_get_boolean(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = value === 0 ? 3 /* GlobalHandle.FALSE */ : 4 /* GlobalHandle.TRUE */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_global(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = 5 /* GlobalHandle.GLOBAL */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_null(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = 2 /* GlobalHandle.NULL */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_undefined(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = 1 /* GlobalHandle.UNDEFINED */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var globalMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_get_boolean: napi_get_boolean,
+ napi_get_global: napi_get_global,
+ napi_get_null: napi_get_null,
+ napi_get_undefined: napi_get_undefined
+ });
+ /** @__sig ipppp */
+ function napi_set_instance_data(env, data, finalize_cb, finalize_hint) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ data >>>= 0;
+ finalize_cb >>>= 0;
+ finalize_hint >>>= 0;
+ envObject.setInstanceData(data, finalize_cb, finalize_hint);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_instance_data(env, data) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!data)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ data >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = envObject.getInstanceData();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(data, value, true);
+ return envObject.clearLastError();
+ }
+ var envMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_get_instance_data: napi_get_instance_data,
+ napi_set_instance_data: napi_set_instance_data
+ });
+ /** @__sig vpppp */
+ function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
+ error_code >>>= 0;
+ engine_error_code >>>= 0;
+ engine_reserved >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ var lastError = envObject.lastError;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var errorCode = lastError.errorCode;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var engineErrorCode = lastError.engineErrorCode >>> 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var engineReserved = lastError.engineReserved;
+ engineReserved >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
+ HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
+ HEAP_DATA_VIEW.setUint32(engine_reserved, engineReserved, true);
+ }
+ /** @__sig ipp */
+ function napi_throw(env, error) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!error)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ envObject.tryCatch.setError(emnapiCtx.handleStore.get(error).value);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_throw_error(env, code, msg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new Error(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_throw_type_error(env, code, msg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_throw_range_error(env, code, msg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function node_api_throw_syntax_error(env, code, msg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipp */
+ function napi_is_exception_pending(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = envObject.tryCatch.hasCaught();
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_create_error(env, code, msg, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var error = new Error(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_create_type_error(env, code, msg, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var error = new TypeError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_create_range_error(env, code, msg, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var error = new RangeError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function node_api_create_syntax_error(env, code, msg, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var error = new SyntaxError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_get_and_clear_last_exception(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!envObject.tryCatch.hasCaught()) {
+ HEAP_DATA_VIEW.setUint32(result, 1, true); // ID_UNDEFINED
+ return envObject.clearLastError();
+ }
+ else {
+ var err = envObject.tryCatch.exception();
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = envObject.ensureHandleId(err);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ envObject.tryCatch.reset();
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig vpppp */
+ function napi_fatal_error(location, location_len, message, message_len) {
+ location >>>= 0;
+ location_len >>>= 0;
+ message >>>= 0;
+ message_len >>>= 0;
+ var locationStr = emnapiString.UTF8ToString(location, location_len);
+ var messageStr = emnapiString.UTF8ToString(message, message_len);
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.napi.fatalError(locationStr, messageStr);
+ }
+ else {
+ abort('FATAL ERROR: ' + locationStr + ' ' + messageStr);
+ }
+ }
+ /** @__sig ipp */
+ function napi_fatal_exception(env, err) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!err)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var error = envObject.ctx.handleStore.get(err);
+ try {
+ envObject.triggerFatalException(error.value);
+ }
+ catch (_) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ var errorMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_get_last_error_info: _emnapi_get_last_error_info,
+ napi_create_error: napi_create_error,
+ napi_create_range_error: napi_create_range_error,
+ napi_create_type_error: napi_create_type_error,
+ napi_fatal_error: napi_fatal_error,
+ napi_fatal_exception: napi_fatal_exception,
+ napi_get_and_clear_last_exception: napi_get_and_clear_last_exception,
+ napi_is_exception_pending: napi_is_exception_pending,
+ napi_throw: napi_throw,
+ napi_throw_error: napi_throw_error,
+ napi_throw_range_error: napi_throw_range_error,
+ napi_throw_type_error: napi_throw_type_error,
+ node_api_create_syntax_error: node_api_create_syntax_error,
+ node_api_throw_syntax_error: node_api_throw_syntax_error
+ });
+ /** @__sig ipppppp */
+ function _emnapi_create_function(env, utf8name, length, cb, data, result) {
+ length >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
+ if (fresult.status !== 0 /* napi_status.napi_ok */)
+ return envObject.setLastError(fresult.status);
+ var f = fresult.f;
+ var valueHandle = emnapiCtx.addToCurrentScope(f);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = valueHandle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ /** @__sig ipppppp */
+ function napi_create_function(env, utf8name, length, cb, data, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!cb)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ return _emnapi_create_function(env, utf8name, length, cb, data, result);
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppppp */
+ function napi_get_cb_info(env, cbinfo, argc, argv, this_arg, data) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!cbinfo)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
+ argc >>>= 0;
+ argv >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (argv) {
+ if (!argc)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
+ argcValue >>>= 0;
+ var len = cbinfoValue.args.length;
+ var arrlen = argcValue < len ? argcValue : len;
+ var i = 0;
+ for (; i < arrlen; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var argVal = envObject.ensureHandleId(cbinfoValue.args[i]);
+ HEAP_DATA_VIEW.setUint32(argv + i * 4, argVal, true);
+ }
+ if (i < argcValue) {
+ for (; i < argcValue; i++) {
+ HEAP_DATA_VIEW.setUint32(argv + i * 4, 1, true);
+ }
+ }
+ }
+ if (argc) {
+ HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
+ }
+ if (this_arg) {
+ this_arg >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v = envObject.ensureHandleId(cbinfoValue.thiz);
+ HEAP_DATA_VIEW.setUint32(this_arg, v, true);
+ }
+ if (data) {
+ data >>>= 0;
+ HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppppp */
+ function napi_call_function(env, recv, func, argc, argv, result) {
+ var i = 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!recv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ argc >>>= 0;
+ argv >>>= 0;
+ result >>>= 0;
+ argc = argc >>> 0;
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var v8recv = emnapiCtx.handleStore.get(recv).value;
+ if (!func)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var v8func = emnapiCtx.handleStore.get(func).value;
+ if (typeof v8func !== 'function')
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var args = [];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ args.push(emnapiCtx.handleStore.get(argVal).value);
+ }
+ var ret = v8func.apply(v8recv, args);
+ if (result) {
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippppp */
+ function napi_new_instance(env, constructor, argc, argv, result) {
+ var i;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!constructor)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ argc >>>= 0;
+ argv >>>= 0;
+ result >>>= 0;
+ argc = argc >>> 0;
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var Ctor = emnapiCtx.handleStore.get(constructor).value;
+ if (typeof Ctor !== 'function')
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var ret = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (emnapiCtx.feature.supportReflect) {
+ var argList = Array(argc);
+ for (i = 0; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ argList[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ ret = Reflect.construct(Ctor, argList, Ctor);
+ }
+ else {
+ var args = Array(argc + 1);
+ args[0] = undefined;
+ for (i = 0; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ args[i + 1] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var BoundCtor = Ctor.bind.apply(Ctor, args);
+ ret = new BoundCtor();
+ }
+ if (result) {
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_get_new_target(env, cbinfo, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!cbinfo)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
+ var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unused-vars
+ var value = thiz == null || thiz.constructor == null
+ ? 0
+ : thiz instanceof fn
+ ? envObject.ensureHandleId(thiz.constructor)
+ : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var functionMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_create_function: _emnapi_create_function,
+ napi_call_function: napi_call_function,
+ napi_create_function: napi_create_function,
+ napi_get_cb_info: napi_get_cb_info,
+ napi_get_new_target: napi_get_new_target,
+ napi_new_instance: napi_new_instance
+ });
+ /** @__sig ipp */
+ function napi_open_handle_scope(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var scope = emnapiCtx.openScope(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, scope.id, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_close_handle_scope(env, scope) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if ((envObject.openHandleScopes === 0)) {
+ return 13 /* napi_status.napi_handle_scope_mismatch */;
+ }
+ emnapiCtx.closeScope(envObject);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_open_escapable_handle_scope(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var scope = emnapiCtx.openScope(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, scope.id, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_close_escapable_handle_scope(env, scope) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if ((envObject.openHandleScopes === 0)) {
+ return 13 /* napi_status.napi_handle_scope_mismatch */;
+ }
+ emnapiCtx.closeScope(envObject);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_escape_handle(env, scope, escapee, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!escapee)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var scopeObject = emnapiCtx.scopeStore.get(scope);
+ if (!scopeObject.escapeCalled()) {
+ escapee >>>= 0;
+ result >>>= 0;
+ var newHandle = scopeObject.escape(escapee);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value = newHandle ? newHandle.id : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ return envObject.setLastError(12 /* napi_status.napi_escape_called_twice */);
+ }
+ /** @__sig ippip */
+ function napi_create_reference(env, value, initial_refcount, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (envObject.moduleApiVersion < 10) {
+ if (!(handle.isObject() || handle.isFunction() || handle.isSymbol())) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1 /* ReferenceOwnership.kUserland */);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, ref.id, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipp */
+ function napi_delete_reference(env, ref) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ emnapiCtx.refStore.get(ref).dispose();
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_reference_ref(env, ref, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var count = emnapiCtx.refStore.get(ref).ref();
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, count, true);
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_reference_unref(env, ref, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var reference = emnapiCtx.refStore.get(ref);
+ var refcount = reference.refcount();
+ if (refcount === 0) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var count = reference.unref();
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, count, true);
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_get_reference_value(env, ref, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var reference = emnapiCtx.refStore.get(ref);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var handleId = reference.get(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, handleId, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_add_env_cleanup_hook(env, fun, arg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!fun)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ fun >>>= 0;
+ arg >>>= 0;
+ emnapiCtx.addCleanupHook(envObject, fun, arg);
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig ippp */
+ function napi_remove_env_cleanup_hook(env, fun, arg) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!fun)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ fun >>>= 0;
+ arg >>>= 0;
+ emnapiCtx.removeCleanupHook(envObject, fun, arg);
+ return 0 /* napi_status.napi_ok */;
+ }
+ /** @__sig vp */
+ function _emnapi_env_ref(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.ref();
+ }
+ /** @__sig vp */
+ function _emnapi_env_unref(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.unref();
+ }
+ var lifeMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_env_ref: _emnapi_env_ref,
+ _emnapi_env_unref: _emnapi_env_unref,
+ napi_add_env_cleanup_hook: napi_add_env_cleanup_hook,
+ napi_close_escapable_handle_scope: napi_close_escapable_handle_scope,
+ napi_close_handle_scope: napi_close_handle_scope,
+ napi_create_reference: napi_create_reference,
+ napi_delete_reference: napi_delete_reference,
+ napi_escape_handle: napi_escape_handle,
+ napi_get_reference_value: napi_get_reference_value,
+ napi_open_escapable_handle_scope: napi_open_escapable_handle_scope,
+ napi_open_handle_scope: napi_open_handle_scope,
+ napi_reference_ref: napi_reference_ref,
+ napi_reference_unref: napi_reference_unref,
+ napi_remove_env_cleanup_hook: napi_remove_env_cleanup_hook
+ });
+ /** @__sig ippi */
+ function _emnapi_get_filename(env, buf, len) {
+ var envObject = emnapiCtx.envStore.get(env);
+ var filename = envObject.filename;
+ if (!buf) {
+ return emnapiString.lengthBytesUTF8(filename);
+ }
+ return emnapiString.stringToUTF8(filename, buf, len);
+ }
+ var miscellaneousMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ _emnapi_get_filename: _emnapi_get_filename
+ });
+ /** @__sig ippp */
+ function napi_create_promise(env, deferred, promise) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var deferredObjectId, value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!promise)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var p = new Promise(function (resolve, reject) {
+ var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
+ deferredObjectId = deferredObject.id;
+ deferred >>>= 0;
+ HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
+ });
+ promise >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(p).id;
+ HEAP_DATA_VIEW.setUint32(promise, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_resolve_deferred(env, deferred, resolution) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!resolution)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var deferredObject = emnapiCtx.deferredStore.get(deferred);
+ deferredObject.resolve(emnapiCtx.handleStore.get(resolution).value);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_reject_deferred(env, deferred, resolution) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!resolution)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var deferredObject = emnapiCtx.deferredStore.get(deferred);
+ deferredObject.reject(emnapiCtx.handleStore.get(resolution).value);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_is_promise(env, value, is_promise) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!is_promise)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ is_promise >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isPromise() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(is_promise, r, true);
+ return envObject.clearLastError();
+ }
+ var promiseMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_create_promise: napi_create_promise,
+ napi_is_promise: napi_is_promise,
+ napi_reject_deferred: napi_reject_deferred,
+ napi_resolve_deferred: napi_resolve_deferred
+ });
+ /** @__sig ippiiip */
+ function napi_get_all_property_names(env, object, key_mode, key_filter, key_conversion, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var obj = void 0;
+ try {
+ obj = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ if (key_mode !== 0 /* napi_key_collection_mode.napi_key_include_prototypes */ && key_mode !== 1 /* napi_key_collection_mode.napi_key_own_only */) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (key_conversion !== 0 /* napi_key_conversion.napi_key_keep_numbers */ && key_conversion !== 1 /* napi_key_conversion.napi_key_numbers_to_strings */) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var props = [];
+ var names = void 0;
+ var symbols = void 0;
+ var i = void 0;
+ var own = true;
+ var integerIndiceRegex = /^(0|[1-9][0-9]*)$/;
+ do {
+ names = Object.getOwnPropertyNames(obj);
+ symbols = Object.getOwnPropertySymbols(obj);
+ for (i = 0; i < names.length; i++) {
+ props.push({
+ name: integerIndiceRegex.test(names[i]) ? Number(names[i]) : names[i],
+ desc: Object.getOwnPropertyDescriptor(obj, names[i]),
+ own: own
+ });
+ }
+ for (i = 0; i < symbols.length; i++) {
+ props.push({
+ name: symbols[i],
+ desc: Object.getOwnPropertyDescriptor(obj, symbols[i]),
+ own: own
+ });
+ }
+ if (key_mode === 1 /* napi_key_collection_mode.napi_key_own_only */) {
+ break;
+ }
+ obj = Object.getPrototypeOf(obj);
+ own = false;
+ } while (obj);
+ var ret = [];
+ var addName = function (ret, name, key_filter, conversion_mode) {
+ if (ret.indexOf(name) !== -1)
+ return;
+ if (conversion_mode === 0 /* napi_key_conversion.napi_key_keep_numbers */) {
+ ret.push(name);
+ }
+ else if (conversion_mode === 1 /* napi_key_conversion.napi_key_numbers_to_strings */) {
+ var realName = typeof name === 'number' ? String(name) : name;
+ if (typeof realName === 'string') {
+ if (!(key_filter & 8 /* napi_key_filter.napi_key_skip_strings */)) {
+ ret.push(realName);
+ }
+ }
+ else {
+ ret.push(realName);
+ }
+ }
+ };
+ for (i = 0; i < props.length; i++) {
+ var prop = props[i];
+ var name_1 = prop.name;
+ var desc = prop.desc;
+ if (key_filter === 0 /* napi_key_filter.napi_key_all_properties */) {
+ addName(ret, name_1, key_filter, key_conversion);
+ }
+ else {
+ if (key_filter & 8 /* napi_key_filter.napi_key_skip_strings */ && typeof name_1 === 'string') {
+ continue;
+ }
+ if (key_filter & 16 /* napi_key_filter.napi_key_skip_symbols */ && typeof name_1 === 'symbol') {
+ continue;
+ }
+ var shouldAdd = true;
+ switch (key_filter & 7) {
+ case 1 /* napi_key_filter.napi_key_writable */: {
+ shouldAdd = Boolean(desc.writable);
+ break;
+ }
+ case 2 /* napi_key_filter.napi_key_enumerable */: {
+ shouldAdd = Boolean(desc.enumerable);
+ break;
+ }
+ case (1 /* napi_key_filter.napi_key_writable */ | 2 /* napi_key_filter.napi_key_enumerable */): {
+ shouldAdd = Boolean(desc.writable && desc.enumerable);
+ break;
+ }
+ case 4 /* napi_key_filter.napi_key_configurable */: {
+ shouldAdd = Boolean(desc.configurable);
+ break;
+ }
+ case (4 /* napi_key_filter.napi_key_configurable */ | 1 /* napi_key_filter.napi_key_writable */): {
+ shouldAdd = Boolean(desc.configurable && desc.writable);
+ break;
+ }
+ case (4 /* napi_key_filter.napi_key_configurable */ | 2 /* napi_key_filter.napi_key_enumerable */): {
+ shouldAdd = Boolean(desc.configurable && desc.enumerable);
+ break;
+ }
+ case (4 /* napi_key_filter.napi_key_configurable */ | 2 /* napi_key_filter.napi_key_enumerable */ | 1 /* napi_key_filter.napi_key_writable */): {
+ shouldAdd = Boolean(desc.configurable && desc.enumerable && desc.writable);
+ break;
+ }
+ }
+ if (shouldAdd) {
+ addName(ret, name_1, key_filter, key_conversion);
+ }
+ }
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = emnapiCtx.addToCurrentScope(ret).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_get_property_names(env, object, result) {
+ return napi_get_all_property_names(env, object, 0 /* napi_key_collection_mode.napi_key_include_prototypes */, 2 /* napi_key_filter.napi_key_enumerable */ | 16 /* napi_key_filter.napi_key_skip_symbols */, 1 /* napi_key_conversion.napi_key_numbers_to_strings */, result);
+ }
+ /** @__sig ipppp */
+ function napi_set_property(env, object, key, value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ h.value[emnapiCtx.handleStore.get(key).value] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_has_property(env, object, key, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_get_property(env, object, key, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_delete_property(env, object, key, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ var propertyKey = emnapiCtx.handleStore.get(key).value;
+ if (emnapiCtx.feature.supportReflect) {
+ r = Reflect.deleteProperty(h.value, propertyKey);
+ }
+ else {
+ try {
+ r = delete h.value[propertyKey];
+ }
+ catch (_) {
+ r = false;
+ }
+ }
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_has_own_property(env, object, key, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ var prop = emnapiCtx.handleStore.get(key).value;
+ if (typeof prop !== 'string' && typeof prop !== 'symbol') {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_set_named_property(env, object, cname, value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ if (!cname) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ cname >>>= 0;
+ emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_has_named_property(env, object, utf8name, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!utf8name) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ utf8name >>>= 0;
+ result >>>= 0;
+ r = emnapiString.UTF8ToString(utf8name, -1) in v;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_get_named_property(env, object, utf8name, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!utf8name) {
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ utf8name >>>= 0;
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippip */
+ function napi_set_element(env, object, index, value) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ h.value[index >>> 0] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippip */
+ function napi_has_element(env, object, index, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ r = ((index >>> 0) in v) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippip */
+ function napi_get_element(env, object, index, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = envObject.ensureHandleId(v[index >>> 0]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippip */
+ function napi_delete_element(env, object, index, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ if (emnapiCtx.feature.supportReflect) {
+ r = Reflect.deleteProperty(h.value, index >>> 0);
+ }
+ else {
+ try {
+ r = delete h.value[index >>> 0];
+ }
+ catch (_) {
+ r = false;
+ }
+ }
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_define_properties(env, object, property_count, properties) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var propPtr, attributes;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ properties >>>= 0;
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!properties)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ var propertyName = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ propPtr = properties + (i * (4 * 8));
+ var utf8Name = HEAP_DATA_VIEW.getUint32(propPtr, true);
+ var name_2 = HEAP_DATA_VIEW.getUint32(propPtr + 4, true);
+ var method = HEAP_DATA_VIEW.getUint32(propPtr + 8, true);
+ var getter = HEAP_DATA_VIEW.getUint32(propPtr + 12, true);
+ var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
+ var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
+ attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
+ attributes >>>= 0;
+ var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
+ if (utf8Name) {
+ propertyName = emnapiString.UTF8ToString(utf8Name, -1);
+ }
+ else {
+ if (!name_2) {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ propertyName = emnapiCtx.handleStore.get(name_2).value;
+ if (typeof propertyName !== 'string' && typeof propertyName !== 'symbol') {
+ return envObject.setLastError(4 /* napi_status.napi_name_expected */);
+ }
+ }
+ emnapiDefineProperty(envObject, maybeObject, propertyName, method, getter, setter, value, attributes, data);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipp */
+ function napi_object_freeze(env, object) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ Object.freeze(maybeObject);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipp */
+ function napi_object_seal(env, object) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2 /* napi_status.napi_object_expected */);
+ }
+ Object.seal(maybeObject);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ var propertyMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_define_properties: napi_define_properties,
+ napi_delete_element: napi_delete_element,
+ napi_delete_property: napi_delete_property,
+ napi_get_all_property_names: napi_get_all_property_names,
+ napi_get_element: napi_get_element,
+ napi_get_named_property: napi_get_named_property,
+ napi_get_property: napi_get_property,
+ napi_get_property_names: napi_get_property_names,
+ napi_has_element: napi_has_element,
+ napi_has_named_property: napi_has_named_property,
+ napi_has_own_property: napi_has_own_property,
+ napi_has_property: napi_has_property,
+ napi_object_freeze: napi_object_freeze,
+ napi_object_seal: napi_object_seal,
+ napi_set_element: napi_set_element,
+ napi_set_named_property: napi_set_named_property,
+ napi_set_property: napi_set_property
+ });
+ /** @__sig ippp */
+ function napi_run_script(env, script, result) {
+ var status;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var value;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!script)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var v8Script = emnapiCtx.handleStore.get(script);
+ if (!v8Script.isString()) {
+ return envObject.setLastError(3 /* napi_status.napi_string_expected */);
+ }
+ var g = emnapiCtx.handleStore.get(5 /* GlobalHandle.GLOBAL */).value;
+ var ret = g.eval(v8Script.value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ value = envObject.ensureHandleId(ret);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ status = envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ return status;
+ }
+ var scriptMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_run_script: napi_run_script
+ });
+ /** @__sig ippp */
+ function napi_typeof(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var v = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r;
+ if (v.isNumber()) {
+ r = 3 /* napi_valuetype.napi_number */;
+ }
+ else if (v.isBigInt()) {
+ r = 9 /* napi_valuetype.napi_bigint */;
+ }
+ else if (v.isString()) {
+ r = 4 /* napi_valuetype.napi_string */;
+ }
+ else if (v.isFunction()) {
+ // This test has to come before IsObject because IsFunction
+ // implies IsObject
+ r = 7 /* napi_valuetype.napi_function */;
+ }
+ else if (v.isExternal()) {
+ // This test has to come before IsObject because IsExternal
+ // implies IsObject
+ r = 8 /* napi_valuetype.napi_external */;
+ }
+ else if (v.isObject()) {
+ r = 6 /* napi_valuetype.napi_object */;
+ }
+ else if (v.isBoolean()) {
+ r = 2 /* napi_valuetype.napi_boolean */;
+ }
+ else if (v.isUndefined()) {
+ r = 0 /* napi_valuetype.napi_undefined */;
+ }
+ else if (v.isSymbol()) {
+ r = 5 /* napi_valuetype.napi_symbol */;
+ }
+ else if (v.isNull()) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ r = 1 /* napi_valuetype.napi_null */;
+ }
+ else {
+ // Should not get here unless V8 has added some new kind of value.
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_coerce_to_bool(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ v = handle.value ? 4 /* GlobalHandle.TRUE */ : 3 /* GlobalHandle.FALSE */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_coerce_to_number(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.isBigInt()) {
+ throw new TypeError('Cannot convert a BigInt value to a number');
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_coerce_to_object(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = envObject.ensureHandleId(Object(handle.value));
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_coerce_to_string(env, value, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var v;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.isSymbol()) {
+ throw new TypeError('Cannot convert a Symbol value to a string');
+ }
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipppp */
+ function napi_instanceof(env, object, constructor, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!constructor)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, 0, true);
+ var ctor = emnapiCtx.handleStore.get(constructor);
+ if (!ctor.isFunction()) {
+ return envObject.setLastError(5 /* napi_status.napi_function_expected */);
+ }
+ var val = emnapiCtx.handleStore.get(object).value;
+ var ret = val instanceof ctor.value;
+ r = ret ? 1 : 0;
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ippp */
+ function napi_is_array(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isArray() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_arraybuffer(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isArrayBuffer() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function node_api_is_sharedarraybuffer(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
+ ? 1
+ : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_date(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isDate() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_error(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var val = emnapiCtx.handleStore.get(value).value;
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = (val instanceof Error) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_typedarray(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isTypedArray() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_buffer(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_dataview(env, value, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r = h.isDataView() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ /** @__sig ipppp */
+ function napi_strict_equals(env, lhs, rhs, result) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var r;
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!lhs)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!rhs)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var lv = emnapiCtx.handleStore.get(lhs).value;
+ var rv = emnapiCtx.handleStore.get(rhs).value;
+ result >>>= 0;
+ r = (lv === rv) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ /** @__sig ipp */
+ function napi_detach_arraybuffer(env, arraybuffer) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
+ if (!(value instanceof ArrayBuffer)) {
+ if (typeof SharedArrayBuffer === 'function' && (value instanceof SharedArrayBuffer)) {
+ return envObject.setLastError(20 /* napi_status.napi_detachable_arraybuffer_expected */);
+ }
+ return envObject.setLastError(19 /* napi_status.napi_arraybuffer_expected */);
+ }
+ try {
+ var MessageChannel_1 = emnapiCtx.feature.MessageChannel;
+ var messageChannel = new MessageChannel_1();
+ messageChannel.port1.postMessage(value, [value]);
+ }
+ catch (_) {
+ return envObject.setLastError(9 /* napi_status.napi_generic_failure */);
+ }
+ return envObject.clearLastError();
+ }
+ /** @__sig ippp */
+ function napi_is_detached_arraybuffer(env, arraybuffer, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ // @ts-expect-error
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 /* napi_status.napi_cannot_run_js */ : 10 /* napi_status.napi_pending_exception */);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ var h = emnapiCtx.handleStore.get(arraybuffer);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (h.isArrayBuffer() && h.value.byteLength === 0) {
+ try {
+ // eslint-disable-next-line no-new
+ new Uint8Array(h.value);
+ }
+ catch (_) {
+ HEAP_DATA_VIEW.setInt8(result, 1, true);
+ return envObject.getReturnStatus();
+ }
+ }
+ HEAP_DATA_VIEW.setInt8(result, 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10 /* napi_status.napi_pending_exception */);
+ }
+ }
+ var valueOperationMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_coerce_to_bool: napi_coerce_to_bool,
+ napi_coerce_to_number: napi_coerce_to_number,
+ napi_coerce_to_object: napi_coerce_to_object,
+ napi_coerce_to_string: napi_coerce_to_string,
+ napi_detach_arraybuffer: napi_detach_arraybuffer,
+ napi_instanceof: napi_instanceof,
+ napi_is_array: napi_is_array,
+ napi_is_arraybuffer: napi_is_arraybuffer,
+ napi_is_buffer: napi_is_buffer,
+ napi_is_dataview: napi_is_dataview,
+ napi_is_date: napi_is_date,
+ napi_is_detached_arraybuffer: napi_is_detached_arraybuffer,
+ napi_is_error: napi_is_error,
+ napi_is_typedarray: napi_is_typedarray,
+ napi_strict_equals: napi_strict_equals,
+ napi_typeof: napi_typeof,
+ node_api_is_sharedarraybuffer: node_api_is_sharedarraybuffer
+ });
+ /** @__sig ipp */
+ function napi_get_version(env, result) {
+ if (!env)
+ return 1 /* napi_status.napi_invalid_arg */;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!result)
+ return envObject.setLastError(1 /* napi_status.napi_invalid_arg */);
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ var NODE_API_SUPPORTED_VERSION_MAX = 10 /* Version.NODE_API_SUPPORTED_VERSION_MAX */;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, NODE_API_SUPPORTED_VERSION_MAX, true);
+ return envObject.clearLastError();
+ }
+ var versionMod = /*#__PURE__*/ Object.freeze({
+ __proto__: null,
+ napi_get_version: napi_get_version
+ });
+ emnapiAWST.init();
+ emnapiExternalMemory.init();
+ emnapiString.init();
+ emnapiTSFN.init();
+ PThread.init();
+ napiModule.emnapi.syncMemory = $emnapiSyncMemory;
+ napiModule.emnapi.getMemoryAddress = $emnapiGetMemoryAddress;
+ function addImports(mod) {
+ var keys = Object.keys(mod);
+ for (var i = 0; i < keys.length; ++i) {
+ var k = keys[i];
+ if (k.indexOf('$') === 0)
+ continue;
+ if (k.indexOf('emnapi_') === 0) {
+ napiModule.imports.emnapi[k] = mod[k];
+ }
+ else if (k.indexOf('_emnapi_') === 0 || k === 'napi_set_last_error' || k === 'napi_clear_last_error') {
+ napiModule.imports.env[k] = mod[k];
+ }
+ else {
+ napiModule.imports.napi[k] = mod[k];
+ }
+ }
+ }
+ addImports(asyncMod);
+ addImports(memoryMod);
+ addImports(asyncWorkMod);
+ addImports(utilMod);
+ addImports(convert2cMod);
+ addImports(convert2napiMod);
+ addImports(createMod);
+ addImports(globalMod);
+ addImports(wrapMod);
+ addImports(envMod);
+ addImports(emnapiMod);
+ addImports(errorMod);
+ addImports(functionMod);
+ addImports(lifeMod);
+ addImports(miscellaneousMod);
+ addImports(nodeMod);
+ addImports(promiseMod);
+ addImports(propertyMod);
+ addImports(scriptMod);
+ addImports(valueOperationMod);
+ addImports(versionMod);
+ napiModule.imports.napi.napi_create_threadsafe_function = napi_create_threadsafe_function;
+ napiModule.imports.napi.napi_get_threadsafe_function_context = napi_get_threadsafe_function_context;
+ napiModule.imports.napi.napi_call_threadsafe_function = napi_call_threadsafe_function;
+ napiModule.imports.napi.napi_acquire_threadsafe_function = napi_acquire_threadsafe_function;
+ napiModule.imports.napi.napi_release_threadsafe_function = napi_release_threadsafe_function;
+ napiModule.imports.napi.napi_unref_threadsafe_function = napi_unref_threadsafe_function;
+ napiModule.imports.napi.napi_ref_threadsafe_function = napi_ref_threadsafe_function;
+ return napiModule;
+ })();
+ return napiModule;
+ }
+
+ function loadNapiModuleImpl(loadFn, userNapiModule, wasmInput, options) {
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
+ options = options !== null && options !== void 0 ? options : {};
+ var getMemory = options.getMemory;
+ var getTable = options.getTable;
+ var beforeInit = options.beforeInit;
+ if (getMemory != null && typeof getMemory !== 'function') {
+ throw new TypeError('options.getMemory is not a function');
+ }
+ if (getTable != null && typeof getTable !== 'function') {
+ throw new TypeError('options.getTable is not a function');
+ }
+ if (beforeInit != null && typeof beforeInit !== 'function') {
+ throw new TypeError('options.beforeInit is not a function');
+ }
+ var napiModule;
+ var isLoad = typeof userNapiModule === 'object' && userNapiModule !== null;
+ if (isLoad) {
+ if (userNapiModule.loaded) {
+ throw new Error('napiModule has already loaded');
+ }
+ napiModule = userNapiModule;
+ }
+ else {
+ napiModule = createNapiModule(options);
+ }
+ var wasi = options.wasi;
+ var wasiThreads;
+ var importObject = {
+ env: napiModule.imports.env,
+ napi: napiModule.imports.napi,
+ emnapi: napiModule.imports.emnapi
+ };
+ if (wasi) {
+ wasiThreads = new WASIThreads(napiModule.childThread
+ ? {
+ wasi: wasi,
+ childThread: true,
+ postMessage: napiModule.postMessage
+ }
+ : {
+ wasi: wasi,
+ threadManager: napiModule.PThread,
+ waitThreadStart: napiModule.waitThreadStart
+ });
+ Object.assign(importObject, typeof wasi.getImportObject === 'function'
+ ? wasi.getImportObject()
+ : { wasi_snapshot_preview1: wasi.wasiImport });
+ Object.assign(importObject, wasiThreads.getImportObject());
+ }
+ var overwriteImports = options.overwriteImports;
+ if (typeof overwriteImports === 'function') {
+ var newImportObject = overwriteImports(importObject);
+ if (typeof newImportObject === 'object' && newImportObject !== null) {
+ importObject = newImportObject;
+ }
+ }
+ return loadFn(wasmInput, importObject, function (err, source) {
+ if (err) {
+ throw err;
+ }
+ var originalInstance = source.instance;
+ var instance = originalInstance;
+ var originalExports = originalInstance.exports;
+ var exportMemory = 'memory' in originalExports;
+ var importMemory = 'memory' in importObject.env;
+ var memory = getMemory
+ ? getMemory(originalExports)
+ : exportMemory
+ ? originalExports.memory
+ : importMemory
+ ? importObject.env.memory
+ : undefined;
+ if (!memory) {
+ throw new Error('memory is neither exported nor imported');
+ }
+ var table = getTable ? getTable(originalExports) : originalExports.__indirect_function_table;
+ if (wasi && !exportMemory) {
+ var exports_1 = Object.create(null);
+ Object.assign(exports_1, originalExports, { memory: memory });
+ instance = { exports: exports_1 };
+ }
+ var module = source.module;
+ if (wasi) {
+ instance = wasiThreads.initialize(instance, module, memory);
+ }
+ else {
+ napiModule.PThread.setup(module, memory);
+ }
+ var emnapiInit = function () {
+ if (beforeInit) {
+ beforeInit({
+ instance: originalInstance,
+ module: module
+ });
+ }
+ napiModule.init({
+ instance: instance,
+ module: module,
+ memory: memory,
+ table: table
+ });
+ var ret = {
+ instance: originalInstance,
+ module: module,
+ usedInstance: instance
+ };
+ if (!isLoad) {
+ ret.napiModule = napiModule;
+ }
+ return ret;
+ };
+ if (napiModule.PThread.shouldPreloadWorkers()) {
+ var poolReady = napiModule.PThread.loadWasmModuleToAllWorkers();
+ if (loadFn === loadCallback) {
+ return poolReady.then(emnapiInit);
+ }
+ else {
+ throw new Error('Synchronous loading is not supported with worker pool (reuseWorker.size > 0)');
+ }
+ }
+ return emnapiInit();
+ });
+ }
+ function loadCallback(wasmInput, importObject, callback) {
+ return load(wasmInput, importObject).then(function (source) {
+ return callback(null, source);
+ }, function (err) {
+ return callback(err);
+ });
+ }
+ function loadSyncCallback(wasmInput, importObject, callback) {
+ var source;
+ try {
+ source = loadSync(wasmInput, importObject);
+ }
+ catch (err) {
+ return callback(err);
+ }
+ return callback(null, source);
+ }
+ /** @public */
+ function loadNapiModule(napiModule,
+ /** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+ wasmInput, options) {
+ if (typeof napiModule !== 'object' || napiModule === null) {
+ throw new TypeError('Invalid napiModule');
+ }
+ return loadNapiModuleImpl(loadCallback, napiModule, wasmInput, options);
+ }
+ /** @public */
+ function loadNapiModuleSync(napiModule, wasmInput, options) {
+ if (typeof napiModule !== 'object' || napiModule === null) {
+ throw new TypeError('Invalid napiModule');
+ }
+ return loadNapiModuleImpl(loadSyncCallback, napiModule, wasmInput, options);
+ }
+ /** @public */
+ function instantiateNapiModule(
+ /** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+ wasmInput, options) {
+ return loadNapiModuleImpl(loadCallback, undefined, wasmInput, options);
+ }
+ /** @public */
+ function instantiateNapiModuleSync(wasmInput, options) {
+ return loadNapiModuleImpl(loadSyncCallback, undefined, wasmInput, options);
+ }
+
+ /******************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** */
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
+
+ var extendStatics = function(d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+
+ function __extends(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ }
+
+ var __assign = function() {
+ __assign = Object.assign || function __assign(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+ };
+
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
+ var e = new Error(message);
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
+ };
+
+ /** @public */
+ var MessageHandler = /*#__PURE__*/ (function (_super) {
+ __extends(MessageHandler, _super);
+ function MessageHandler(options) {
+ var _this = this;
+ if (typeof options.onLoad !== 'function') {
+ throw new TypeError('options.onLoad is not a function');
+ }
+ var userOnError = options.onError;
+ _this = _super.call(this, __assign(__assign({}, options), { onError: function (err, type) {
+ var _a;
+ var emnapi_thread_crashed = (_a = _this.instance) === null || _a === void 0 ? void 0 : _a.exports.emnapi_thread_crashed;
+ if (typeof emnapi_thread_crashed === 'function') {
+ emnapi_thread_crashed();
+ } /* else {
+ tryWakeUpPthreadJoin(this.instance!)
+ } */
+ if (typeof userOnError === 'function') {
+ userOnError(err, type);
+ }
+ else {
+ throw err;
+ }
+ } })) || this;
+ _this.napiModule = undefined;
+ return _this;
+ }
+ MessageHandler.prototype.instantiate = function (data) {
+ var _this = this;
+ var source = this.onLoad(data);
+ var then = source.then;
+ if (typeof then === 'function') {
+ return source.then(function (result) {
+ _this.napiModule = result.napiModule;
+ return result;
+ });
+ }
+ this.napiModule = source.napiModule;
+ return source;
+ };
+ MessageHandler.prototype.handle = function (e) {
+ var _this = this;
+ var _a;
+ _super.prototype.handle.call(this, e);
+ if ((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.__emnapi__) {
+ var type = e.data.__emnapi__.type;
+ var payload_1 = e.data.__emnapi__.payload;
+ try {
+ if (type === 'async-worker-init') {
+ this.handleAfterLoad(e, function () {
+ _this.napiModule.initWorker(payload_1.arg, payload_1.func);
+ });
+ }
+ }
+ catch (err) {
+ this.onError(err, type);
+ }
+ }
+ };
+ return MessageHandler;
+ }(ThreadMessageHandler));
+ // function tryWakeUpPthreadJoin (instance: WebAssembly.Instance): void {
+ // // https://github.com/WebAssembly/wasi-libc/blob/574b88da481569b65a237cb80daf9a2d5aeaf82d/libc-top-half/musl/src/thread/pthread_join.c#L18-L21
+ // const pthread_self = instance.exports.pthread_self as () => number
+ // const memory = instance.exports.memory as WebAssembly.Memory
+ // if (typeof pthread_self === 'function') {
+ // const selfThread = pthread_self()
+ // if (selfThread && memory) {
+ // // https://github.com/WebAssembly/wasi-libc/blob/574b88da481569b65a237cb80daf9a2d5aeaf82d/libc-top-half/musl/src/internal/pthread_impl.h#L45
+ // const detatchState = new Int32Array(memory.buffer, selfThread + 7 * 4 /** detach_state */, 1)
+ // Atomics.store(detatchState, 0, 0)
+ // Atomics.notify(detatchState, 0, Infinity)
+ // }
+ // }
+ // }
+
+ var version = "1.10.0";
+
+ exports.MessageHandler = MessageHandler;
+ exports.ThreadManager = ThreadManager;
+ exports.ThreadMessageHandler = ThreadMessageHandler;
+ exports.WASIThreads = WASIThreads;
+ exports.createInstanceProxy = createInstanceProxy;
+ exports.createNapiModule = createNapiModule;
+ exports.instantiateNapiModule = instantiateNapiModule;
+ exports.instantiateNapiModuleSync = instantiateNapiModuleSync;
+ exports.isSharedArrayBuffer = isSharedArrayBuffer;
+ exports.isTrapError = isTrapError;
+ exports.loadNapiModule = loadNapiModule;
+ exports.loadNapiModuleSync = loadNapiModuleSync;
+ exports.version = version;
+
+}));
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts b/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts
new file mode 100644
index 00000000..0ec6eb84
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.min.d.mts
@@ -0,0 +1,420 @@
+///
+
+import type { Context } from '@emnapi/runtime';
+import type { ReferenceOwnership } from '@emnapi/runtime';
+import type { Worker as Worker_2 } from 'worker_threads';
+
+/** @public */
+export declare type BaseCreateOptions = {
+ filename?: string
+ nodeBinding?: NodeBinding
+ reuseWorker?: ThreadManagerOptionsMain['reuseWorker']
+ asyncWorkPoolSize?: number
+ waitThreadStart?: MainThreadBaseOptions['waitThreadStart']
+ onCreateWorker?: (info: CreateWorkerInfo) => any
+ print?: (str: string) => void
+ printErr?: (str: string) => void
+ postMessage?: (msg: any) => any
+}
+
+/** @public */
+export declare interface BaseOptions {
+ wasi: WASIInstance;
+ version?: 'preview1';
+ wasm64?: boolean;
+}
+
+/** @public */
+export declare interface ChildThreadOptions extends BaseOptions {
+ childThread: true;
+ postMessage?: (data: any) => void;
+}
+
+/** @public */
+export declare interface CleanupThreadPayload {
+ tid: number;
+}
+
+/** @public */
+export declare interface CommandInfo {
+ type: T;
+ payload: CommandPayloadMap[T];
+}
+
+/** @public */
+export declare interface CommandPayloadMap {
+ load: LoadPayload;
+ loaded: LoadedPayload;
+ start: StartPayload;
+ 'cleanup-thread': CleanupThreadPayload;
+ 'terminate-all-threads': TerminateAllThreadsPayload;
+ 'spawn-thread': SpawnThreadPayload;
+}
+
+/** @public */
+export declare type CommandType = keyof CommandPayloadMap;
+
+/** @public */
+export declare function createInstanceProxy(instance: WebAssembly.Instance, memory?: WebAssembly.Memory | (() => WebAssembly.Memory)): WebAssembly.Instance;
+
+/** @public */
+export declare function createNapiModule (
+options: CreateOptions
+): NapiModule
+
+/** @public */
+export declare type CreateOptions = BaseCreateOptions & ({
+ context: Context
+ childThread?: boolean
+} | {
+ context?: Context
+ childThread: true
+})
+
+/** @public */
+export declare interface CreateWorkerInfo {
+ type: 'thread' | 'async-work'
+ name: string
+}
+
+/** @public */
+export declare interface InitOptions {
+ instance: WebAssembly.Instance
+ module: WebAssembly.Module
+ memory?: WebAssembly.Memory
+ table?: WebAssembly.Table
+}
+
+export declare type InputType = string | URL | Response | BufferSource | WebAssembly.Module;
+
+/** @public */
+export declare interface InstantiatedSource extends LoadedSource {
+ napiModule: NapiModule;
+}
+
+/** @public */
+export declare function instantiateNapiModule(
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput: InputType | Promise, options: InstantiateOptions): Promise;
+
+/** @public */
+export declare function instantiateNapiModuleSync(wasmInput: BufferSource | WebAssembly.Module, options: InstantiateOptions): InstantiatedSource;
+
+/** @public */
+export declare type InstantiateOptions = CreateOptions & LoadOptions;
+
+/** @public */
+export declare function isSharedArrayBuffer(value: any): value is SharedArrayBuffer;
+
+/** @public */
+export declare function isTrapError(e: Error): e is WebAssembly.RuntimeError;
+
+/** @public */
+export declare interface LoadedPayload {
+}
+
+/** @public */
+export declare interface LoadedSource extends WebAssembly.WebAssemblyInstantiatedSource {
+ usedInstance: WebAssembly.Instance;
+}
+
+/** @public */
+export declare function loadNapiModule(napiModule: NapiModule,
+/** Only support `BufferSource` or `WebAssembly.Module` on Node.js */
+wasmInput: InputType | Promise, options?: LoadOptions): Promise;
+
+/** @public */
+export declare function loadNapiModuleSync(napiModule: NapiModule, wasmInput: BufferSource | WebAssembly.Module, options?: LoadOptions): LoadedSource;
+
+/** @public */
+export declare interface LoadOptions {
+ wasi?: WASIInstance;
+ overwriteImports?: (importObject: WebAssembly.Imports) => WebAssembly.Imports;
+ beforeInit?: (source: WebAssembly.WebAssemblyInstantiatedSource) => void;
+ getMemory?: (exports: WebAssembly.Exports) => WebAssembly.Memory;
+ getTable?: (exports: WebAssembly.Exports) => WebAssembly.Table;
+}
+
+/** @public */
+export declare interface LoadPayload {
+ wasmModule: WebAssembly.Module;
+ wasmMemory: WebAssembly.Memory;
+ sab?: Int32Array;
+}
+
+/** @public */
+export declare interface MainThreadBaseOptions extends BaseOptions {
+ waitThreadStart?: boolean | number;
+}
+
+/** @public */
+export declare type MainThreadOptions = MainThreadOptionsWithThreadManager | MainThreadOptionsCreateThreadManager;
+
+/** @public */
+export declare interface MainThreadOptionsCreateThreadManager extends MainThreadBaseOptions, ThreadManagerOptionsMain {
+}
+
+/** @public */
+export declare interface MainThreadOptionsWithThreadManager extends MainThreadBaseOptions {
+ threadManager?: ThreadManager | (() => ThreadManager);
+}
+
+/** @public */
+export declare interface MessageEventData {
+ __emnapi__: CommandInfo;
+}
+
+/** @public */
+export declare class MessageHandler extends ThreadMessageHandler {
+ napiModule: NapiModule | undefined;
+ constructor(options: MessageHandlerOptions);
+ instantiate(data: LoadPayload): InstantiatedSource | PromiseLike;
+ handle(e: WorkerMessageEvent): void;
+}
+
+/** @public */
+export declare interface MessageHandlerOptions extends ThreadMessageHandlerOptions {
+ onLoad: (data: LoadPayload) => InstantiatedSource | PromiseLike;
+}
+
+/** @public */
+export declare interface NapiModule {
+ imports: {
+ env: any
+ napi: any
+ emnapi: any
+ }
+ exports: any
+ loaded: boolean
+ filename: string
+ childThread: boolean
+ emnapi: {
+ syncMemory (
+ js_to_wasm: boolean,
+ arrayBufferOrView: T,
+ offset?: number,
+ len?: number
+ ): T
+ getMemoryAddress (arrayBufferOrView: ArrayBuffer | ArrayBufferView): PointerInfo
+ addSendListener (worker: any): boolean
+ }
+
+ init (options: InitOptions): any
+ initWorker (arg: number, func: [number, number]): void
+ postMessage?: (msg: any) => any
+
+ waitThreadStart: boolean | number
+ /* Excluded from this release type: PThread */}
+
+/** @public */
+export declare interface NodeBinding {
+ node: {
+ emitAsyncInit: Function
+ emitAsyncDestroy: Function
+ makeCallback: Function
+ }
+ napi: {
+ asyncInit: Function
+ asyncDestroy: Function
+ makeCallback: Function
+ }
+}
+
+/** @public */
+export declare interface PointerInfo {
+ address: number
+ ownership: ReferenceOwnership
+ runtimeAllocated: 0 | 1
+}
+
+/** @public */
+export declare interface ReuseWorkerOptions {
+ /**
+ * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size | PTHREAD_POOL_SIZE}
+ */
+ size: number;
+ /**
+ * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size-strict | PTHREAD_POOL_SIZE_STRICT}
+ */
+ strict?: boolean;
+}
+
+/** @public */
+export declare interface SpawnThreadPayload {
+ startArg: number;
+ errorOrTid: number;
+}
+
+/** @public */
+export declare interface StartPayload {
+ tid: number;
+ arg: number;
+ sab?: Int32Array;
+}
+
+/** @public */
+export declare interface StartResult {
+ exitCode: number;
+ instance: WebAssembly.Instance;
+}
+
+/** @public */
+export declare interface TerminateAllThreadsPayload {
+}
+
+/** @public */
+export declare class ThreadManager {
+ unusedWorkers: WorkerLike[];
+ runningWorkers: WorkerLike[];
+ pthreads: Record;
+ get nextWorkerID(): number;
+ wasmModule: WebAssembly.Module | null;
+ wasmMemory: WebAssembly.Memory | null;
+ private readonly messageEvents;
+ private readonly _childThread;
+ private readonly _onCreateWorker;
+ private readonly _reuseWorker;
+ private readonly _beforeLoad?;
+ /* Excluded from this release type: printErr */
+ threadSpawn?: ((startArg: number, errorOrTid?: number) => number);
+ constructor(options: ThreadManagerOptions);
+ init(): void;
+ initMainThread(): void;
+ private preparePool;
+ shouldPreloadWorkers(): boolean;
+ loadWasmModuleToAllWorkers(): Promise;
+ preloadWorkers(): Promise;
+ setup(wasmModule: WebAssembly.Module, wasmMemory: WebAssembly.Memory): void;
+ markId(worker: WorkerLike): number;
+ returnWorkerToPool(worker: WorkerLike): void;
+ loadWasmModuleToWorker(worker: WorkerLike, sab?: Int32Array): Promise;
+ allocateUnusedWorker(): WorkerLike;
+ getNewWorker(sab?: Int32Array): WorkerLike | undefined;
+ cleanThread(worker: WorkerLike, tid: number, force?: boolean): void;
+ terminateWorker(worker: WorkerLike): void;
+ terminateAllThreads(): void;
+ addMessageEventListener(worker: WorkerLike, onMessage: (e: WorkerMessageEvent) => void): () => void;
+ fireMessageEvent(worker: WorkerLike, e: WorkerMessageEvent): void;
+}
+
+/** @public */
+export declare type ThreadManagerOptions = ThreadManagerOptionsMain | ThreadManagerOptionsChild;
+
+/** @public */
+export declare interface ThreadManagerOptionsBase {
+ printErr?: (message: string) => void;
+ threadSpawn?: (startArg: number, errorOrTid?: number) => number;
+}
+
+/** @public */
+export declare interface ThreadManagerOptionsChild extends ThreadManagerOptionsBase {
+ childThread: true;
+}
+
+/** @public */
+export declare interface ThreadManagerOptionsMain extends ThreadManagerOptionsBase {
+ beforeLoad?: (worker: WorkerLike) => any;
+ reuseWorker?: boolean | number | ReuseWorkerOptions;
+ onCreateWorker: WorkerFactory;
+ childThread?: false;
+}
+
+/** @public */
+export declare class ThreadMessageHandler {
+ protected instance: WebAssembly.Instance | undefined;
+ private messagesBeforeLoad;
+ protected postMessage: (message: any) => void;
+ protected onLoad?: (data: LoadPayload) => WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ protected onError: (error: Error, type: WorkerMessageType) => void;
+ constructor(options?: ThreadMessageHandlerOptions);
+ /** @virtual */
+ instantiate(data: LoadPayload): WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ /** @virtual */
+ handle(e: WorkerMessageEvent>): void;
+ private _load;
+ private _start;
+ protected _loaded(err: Error | null, source: WebAssembly.WebAssemblyInstantiatedSource | null, payload: LoadPayload): void;
+ protected handleAfterLoad(e: E, f: (e: E) => void): void;
+}
+
+/** @public */
+export declare interface ThreadMessageHandlerOptions {
+ onLoad?: (data: LoadPayload) => WebAssembly.WebAssemblyInstantiatedSource | PromiseLike;
+ onError?: (error: Error, type: WorkerMessageType) => void;
+ postMessage?: (message: any) => void;
+}
+
+export declare const version: string;
+
+/** @public */
+export declare interface WASIInstance {
+ readonly wasiImport?: Record;
+ initialize(instance: object): void;
+ start(instance: object): number;
+ getImportObject?(): any;
+}
+
+/** @public */
+export declare class WASIThreads {
+ PThread: ThreadManager | undefined;
+ private wasmMemory;
+ private wasmInstance;
+ private readonly threadSpawn;
+ readonly childThread: boolean;
+ private readonly postMessage;
+ readonly wasi: WASIInstance;
+ constructor(options: WASIThreadsOptions);
+ getImportObject(): {
+ wasi: WASIThreadsImports;
+ };
+ setup(wasmInstance: WebAssembly.Instance, wasmModule: WebAssembly.Module, wasmMemory?: WebAssembly.Memory): void;
+ preloadWorkers(): Promise;
+ /**
+ * It's ok to call this method to a WASI command module.
+ *
+ * in child thread, must call this method instead of {@link WASIThreads.start} even if it's a WASI command module
+ *
+ * @returns A proxied WebAssembly instance if in child thread, other wise the original instance
+ */
+ initialize(instance: WebAssembly.Instance, module: WebAssembly.Module, memory?: WebAssembly.Memory): WebAssembly.Instance;
+ /**
+ * Equivalent to calling {@link WASIThreads.initialize} and then calling {@link WASIInstance.start}
+ * ```js
+ * this.initialize(instance, module, memory)
+ * this.wasi.start(instance)
+ * ```
+ */
+ start(instance: WebAssembly.Instance, module: WebAssembly.Module, memory?: WebAssembly.Memory): StartResult;
+ terminateAllThreads(): void;
+}
+
+/** @public */
+export declare interface WASIThreadsImports {
+ 'thread-spawn': (startArg: number, errorOrTid?: number) => number;
+}
+
+/** @public */
+export declare type WASIThreadsOptions = MainThreadOptions | ChildThreadOptions;
+
+/** @public */
+export declare type WorkerFactory = (ctx: {
+ type: string;
+ name: string;
+}) => WorkerLike;
+
+/** @public */
+export declare type WorkerLike = (Worker | Worker_2) & {
+ whenLoaded?: Promise;
+ loaded?: boolean;
+ __emnapi_tid?: number;
+};
+
+/** @public */
+export declare interface WorkerMessageEvent {
+ data: T;
+}
+
+/** @public */
+export declare type WorkerMessageType = 'load' | 'start';
+
+export { }
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.min.js b/node_modules/@emnapi/core/dist/emnapi-core.min.js
new file mode 100644
index 00000000..d04d97de
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.min.js
@@ -0,0 +1 @@
+!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).emnapiCore={})}(this,function(e){var r="undefined"!=typeof WebAssembly?WebAssembly:"undefined"!=typeof WXWebAssembly?WXWebAssembly:void 0;function t(e){if(e&&"object"!=typeof e)throw new TypeError("imports must be an object or undefined");return!0}function n(e,a){if(!e)throw new TypeError("Invalid wasm source");t(a),a=null!=a?a:{};try{var o="object"==typeof e&&null!==e&&"then"in e?e.then:void 0;if("function"==typeof o)return o.call(e,function(e){return n(e,a)})}catch(e){}if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return r.instantiate(e,a);if(e instanceof r.Module)return r.instantiate(e,a).then(function(r){return{instance:r,module:e}});if("undefined"!=typeof Response&&e instanceof Response)return e.arrayBuffer().then(function(e){return r.instantiate(e,a)});var i="string"==typeof e;if(i||"undefined"!=typeof URL&&e instanceof URL){if(i&&"undefined"!=typeof wx&&"undefined"!=typeof __wxConfig)return r.instantiate(e,a);if("function"!=typeof fetch)throw new TypeError("wasm source can not be a string or URL in this environment");if("function"!=typeof r.instantiateStreaming)return n(fetch(e),a);try{return r.instantiateStreaming(fetch(e),a).catch(function(){return n(fetch(e),a)})}catch(r){return n(fetch(e),a)}}throw new TypeError("Invalid wasm source")}var a="undefined"!=typeof WebAssembly?WebAssembly:"undefined"!=typeof WXWebAssembly?WXWebAssembly:void 0,o="object"==typeof process&&null!==process&&"object"==typeof process.versions&&null!==process.versions&&"string"==typeof process.versions.node;function i(e){return"function"==typeof(null==e?void 0:e.postMessage)?e.postMessage:"function"==typeof postMessage?postMessage:void 0}function s(e){return"function"==typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(e)}function u(e){try{return e instanceof a.RuntimeError}catch(e){return!1}}function f(e,r){return{__emnapi__:{type:e,payload:r}}}function c(e){if(e){if(!s(e.buffer))throw new Error("Multithread features require shared wasm memory. Try to compile with `-matomics -mbulk-memory` and use `--import-memory --shared-memory` during linking, then create WebAssembly.Memory with `shared: true` option")}else if("undefined"==typeof SharedArrayBuffer)throw new Error("Current environment does not support SharedArrayBuffer, threads are not available!")}var l=0,d=function(){function e(e){var r;if(this.unusedWorkers=[],this.runningWorkers=[],this.pthreads=Object.create(null),this.wasmModule=null,this.wasmMemory=null,this.messageEvents=new WeakMap,!e)throw new TypeError("ThreadManager(): options is not provided");this._childThread="childThread"in e&&Boolean(e.childThread),this._childThread?(this._onCreateWorker=void 0,this._reuseWorker=!1,this._beforeLoad=void 0):(this._onCreateWorker=e.onCreateWorker,this._reuseWorker=function(e){var r;if("boolean"==typeof e)return!!e&&{size:0,strict:!1};if("number"==typeof e){if(!(e>=0))throw new RangeError("reuseWorker: size must be a non-negative integer");return{size:e,strict:!1}}if(!e)return!1;var t=null!==(r=Number(e.size))&&void 0!==r?r:0,n=Boolean(e.strict);if(!(t>0)&&n)throw new RangeError("reuseWorker: size must be set to positive integer if strict is set to true");return{size:t,strict:n}}(e.reuseWorker),this._beforeLoad=e.beforeLoad),this.printErr=null!==(r=e.printErr)&&void 0!==r?r:console.error.bind(console),this.threadSpawn=e.threadSpawn}return Object.defineProperty(e.prototype,"nextWorkerID",{get:function(){return l},enumerable:!1,configurable:!0}),e.prototype.init=function(){this._childThread||this.initMainThread()},e.prototype.initMainThread=function(){this.preparePool()},e.prototype.preparePool=function(){if(this._reuseWorker&&this._reuseWorker.size)for(var e=this._reuseWorker.size;e--;){var r=this.allocateUnusedWorker();o&&(r.once("message",function(){}),r.unref())}},e.prototype.shouldPreloadWorkers=function(){return!this._childThread&&this._reuseWorker&&this._reuseWorker.size>0},e.prototype.loadWasmModuleToAllWorkers=function(){for(var e=this,r=Array(this.unusedWorkers.length),t=function(e){var t=n.unusedWorkers[e];o&&t.ref(),r[e]=n.loadWasmModuleToWorker(t).then(function(e){return o&&t.unref(),e},function(e){throw o&&t.unref(),e})},n=this,a=0;a>>0))return-48}var v=r.wasmInstance.exports.free,h=l?function(e){v(BigInt(e))}:v,y=new Int32Array(r.wasmMemory.buffer,t,2);if(Atomics.store(y,0,0),Atomics.store(y,1,0),r.childThread){s(f("spawn-thread",{startArg:e,errorOrTid:t})),Atomics.wait(y,1,0);var g=Atomics.load(y,0),_=Atomics.load(y,1);return u?g:(h(t),g?-_:_)}var E,w,m,L=n||0===n;L&&(E=new Int32Array(new SharedArrayBuffer(8208)),Atomics.store(E,0,0));var b=r.PThread;try{if(!(w=b.getNewWorker(E)))throw new Error("failed to get new worker");if(m=b.markId(w),o&&w.unref(),w.postMessage(f("start",{tid:m,arg:e,sab:E})),L){if("number"==typeof n){if("timed-out"===Atomics.wait(E,0,0,n)){try{b.cleanThread(w,m,!0)}catch(e){}throw new Error("Spawning thread timed out. Please check if the worker is created successfully and if message is handled properly in the worker.")}}else Atomics.wait(E,0,0);if(Atomics.load(E,0)>1){try{b.cleanThread(w,m,!0)}catch(e){}throw function(e){var r,t,n=new Int32Array(e);if(Atomics.load(n,0)<=1)return null;var o=Atomics.load(n,1),i=Atomics.load(n,2),s=Atomics.load(n,3),u=new Uint8Array(e),f=u.slice(16,16+o),c=u.slice(16+o,16+o+i),l=u.slice(16+o+i,16+o+i+s),d=(new TextDecoder).decode(f),p=(new TextDecoder).decode(c),v=(new TextDecoder).decode(l),h=new(null!==(r=globalThis[d])&&void 0!==r?r:"RuntimeError"===d&&null!==(t=a.RuntimeError)&&void 0!==t?t:Error)(p);return Object.defineProperty(h,"stack",{value:v,writable:!0,enumerable:!1,configurable:!0}),h}(E.buffer)}}}catch(e){return Atomics.store(y,0,1),Atomics.store(y,1,6),Atomics.notify(y,1),null==b||b.printErr(e.stack),u?1:(h(t),-6)}return Atomics.store(y,0,0),Atomics.store(y,1,m),Atomics.notify(y,1),b.runningWorkers.push(w),L||w.whenLoaded.catch(function(e){throw delete w.whenLoaded,b.cleanThread(w,m,!0),e}),u?0:(h(t),m)};this.threadSpawn=p,this.PThread&&(this.PThread.threadSpawn=p)}return e.prototype.getImportObject=function(){return{wasi:{"thread-spawn":this.threadSpawn}}},e.prototype.setup=function(e,r,t){null!=t||(t=e.exports.memory),this.wasmInstance=e,this.wasmMemory=t,this.PThread&&this.PThread.setup(r,t)},e.prototype.preloadWorkers=function(){return this.PThread?this.PThread.preloadWorkers():Promise.resolve([])},e.prototype.initialize=function(e,r,t){var n=e.exports;null!=t||(t=n.memory),this.childThread&&(e=v(e,t)),this.setup(e,r,t);var a=this.wasi;if("_start"in n&&"function"==typeof n._start)if(this.childThread){a.start(e);try{a[g(a,"kStarted")]=!1}catch(e){}}else!function(e,r){var t=g(e,["kInstance","kSetMemory"]),n=t[0],a=t[1];e[n]=r,e[a](r.exports.memory)}(a,e);else a.initialize(e);return e},e.prototype.start=function(e,r,t){var n=e.exports;return null!=t||(t=n.memory),this.childThread&&(e=v(e,t)),this.setup(e,r,t),{exitCode:this.wasi.start(e),instance:e}},e.prototype.terminateAllThreads=function(){var e;this.childThread?this.postMessage(f("terminate-all-threads",{})):null===(e=this.PThread)||void 0===e||e.terminateAllThreads()},e}();function g(e,r){var t=Object.getOwnPropertySymbols(e),n=function(e){return function(r){return r.description?r.description===e:r.toString()==="Symbol(".concat(e,")")}};return Array.isArray(r)?r.map(function(e){return t.filter(n(e))[0]}):t.filter(n(r))[0]}var _=function(){function e(e){var r=i(e);if("function"!=typeof r)throw new TypeError("options.postMessage is not a function");this.postMessage=r,this.onLoad=null==e?void 0:e.onLoad,this.onError="function"==typeof(null==e?void 0:e.onError)?e.onError:function(e,r){throw r},this.instance=void 0,this.messagesBeforeLoad=[]}return e.prototype.instantiate=function(e){if("function"==typeof this.onLoad)return this.onLoad(e);throw new Error("ThreadMessageHandler.prototype.instantiate is not implemented")},e.prototype.handle=function(e){var r,t=this;if(null===(r=null==e?void 0:e.data)||void 0===r?void 0:r.__emnapi__){var n=e.data.__emnapi__.type,a=e.data.__emnapi__.payload;try{"load"===n?this._load(a):"start"===n&&this.handleAfterLoad(e,function(){t._start(a)})}catch(e){this.onError(e,n)}}},e.prototype._load=function(e){var r=this;if(void 0===this.instance){var t;try{t=this.instantiate(e)}catch(r){return void this._loaded(r,null,e)}var n=t&&"then"in t?t.then:void 0;"function"==typeof n?n.call(t,function(t){r._loaded(null,t,e)},function(t){r._loaded(t,null,e)}):this._loaded(null,t,e)}},e.prototype._start=function(e){var r=this.instance.exports.wasi_thread_start;if("function"!=typeof r){var t=new TypeError("wasi_thread_start is not exported");throw E(e.sab,2,t),t}var n=this.postMessage,a=e.tid,o=e.arg;E(e.sab,1);try{r(a,o)}catch(t){if("unwind"!==t)throw t;return}n(f("cleanup-thread",{tid:a}))},e.prototype._loaded=function(e,r,t){if(e)throw E(t.sab,2,e),e;if(null==r){var n=new TypeError("onLoad should return an object");throw E(t.sab,2,n),n}var a=r.instance;if(!a){var o=new TypeError('onLoad should return an object which includes "instance"');throw E(t.sab,2,o),o}this.instance=a,(0,this.postMessage)(f("loaded",{}));var i=this.messagesBeforeLoad;this.messagesBeforeLoad=[];for(var s=0;s1&&t){var a=t.name,o=t.message,i=t.stack,s=(new TextEncoder).encode(a),u=(new TextEncoder).encode(o),f=(new TextEncoder).encode(i);Atomics.store(n,1,s.length),Atomics.store(n,2,u.length),Atomics.store(n,3,f.length);var c=new Uint8Array(e);c.set(s,16),c.set(u,16+s.length),c.set(f,16+s.length+u.length)}}(e.buffer,r,t),Atomics.notify(e,0))}function w(e){var t=function(){var t,n,a,o,i,s="object"==typeof process&&null!==process&&"object"==typeof process.versions&&null!==process.versions&&"string"==typeof process.versions.node,u=Boolean(e.childThread),f="number"==typeof e.waitThreadStart?e.waitThreadStart:Boolean(e.waitThreadStart);function c(e){if("function"==typeof r.RuntimeError)throw new r.RuntimeError(e);throw Error(e)}var l,p,v,h={imports:{env:{},napi:{},emnapi:{}},exports:{},emnapi:{},loaded:!1,filename:"",childThread:u,initWorker:void 0,waitThreadStart:f,PThread:void 0,init:function(e){if(h.loaded)return h.exports;if(!e)throw new TypeError("Invalid napi init options");var s=e.instance;if(!(null==s?void 0:s.exports))throw new TypeError("Invalid wasm instance");t=s;var u=s.exports,f=e.module,d=e.memory||u.memory,v=e.table||u.__indirect_function_table;if(!(f instanceof r.Module))throw new TypeError("Invalid wasm module");if(!(d instanceof r.Memory))throw new TypeError("Invalid wasm memory");if(!(v instanceof r.Table))throw new TypeError("Invalid wasm table");if(n=d,a=v,"function"!=typeof u.malloc)throw new TypeError("malloc is not exported");if("function"!=typeof u.free)throw new TypeError("free is not exported");if(o=u.malloc,i=u.free,!h.childThread){var y=8,g=s.exports.node_api_module_get_api_version_v1;"function"==typeof g&&(y=g());var _=h.envObject||(h.envObject=l.createEnv(h.filename,y,function(e){return a.get(e)},function(e){return a.get(e)},c,p)),E=l.openScope(_);try{_.callIntoModule(function(e){var r=h.exports,t=E.add(r),n=(0,s.exports.napi_register_wasm_v1)(e.id,t.id);h.exports=n?l.handleStore.get(n).value:r})}catch(e){if("unwind"!==e)throw e}finally{l.closeScope(_,E)}return h.loaded=!0,delete h.envObject,h.exports}}},y=void 0;if(u){l=null==e?void 0:e.context;var g="function"==typeof e.postMessage?e.postMessage:"function"==typeof postMessage?postMessage:void 0;if("function"!=typeof g)throw new TypeError("No postMessage found");h.postMessage=g}else{var _=e.context;if("object"!=typeof _||null===_)throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");l=_}if("string"==typeof e.filename&&(h.filename=e.filename),"function"==typeof e.onCreateWorker&&(y=e.onCreateWorker),"function"==typeof e.print?e.print:console.log.bind(console),v="function"==typeof e.printErr?e.printErr:console.warn.bind(console),"nodeBinding"in e){var E=e.nodeBinding;if("object"!=typeof E||null===E)throw new TypeError("Invalid `options.nodeBinding`. Use @emnapi/node-binding package");p=E}var w=0;if("asyncWorkPoolSize"in e){if("number"!=typeof e.asyncWorkPoolSize)throw new TypeError("options.asyncWorkPoolSize must be a integer");(w=e.asyncWorkPoolSize|0)>1024?w=1024:w<-1024&&(w=-1024)}var m=!u&&w<=0;function L(){return Math.abs(w)}function b(e){if(!e)return!1;if(e._emnapiSendListener)return!0;var r=function(e){var r=(s?e:e.data).__emnapi__;if(r&&"async-send"===r.type)if(u){(0,h.postMessage)({__emnapi__:r})}else{var t=r.payload.callback;a.get(t)(r.payload.data)}};return e._emnapiSendListener={handler:r,dispose:function(){s?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiSendListener}},s?e.on("message",r):e.addEventListener("message",r,!1),!0}h.imports.env._emnapi_async_work_pool_size=L,h.emnapi.addSendListener=b;var S=new d(u?{printErr:v,childThread:!0}:{printErr:v,beforeLoad:function(e){b(e)},reuseWorker:e.reuseWorker,onCreateWorker:y});function A(e,r){l.feature.setImmediate(function(){a.get(e)(r)})}function C(e,r){Promise.resolve().then(function(){a.get(e)(r)})}function k(e,r){var t,a=[r>>>0,(t=r,+Math.abs(t)>=1?t>0?(0|Math.min(+Math.floor(t/4294967296),4294967295))>>>0:~~+Math.ceil((t-+(~~t>>>0))/4294967296)>>>0:0)],o=new DataView(n.buffer);o.setInt32(e,a[0],!0),o.setInt32(e+4,a[1],!0)}h.PThread=S;var I,T=Object.freeze({__proto__:null,$emnapiSetValueI64:k,_emnapi_call_finalizer:function(e,r,t,n,a){t>>>=0,l.envStore.get(r).callFinalizerInternal(e,t,n,a)},_emnapi_callback_into_module:function(e,r,t,n,o){var i=l.envStore.get(r),s=l.openScope(i);try{i.callbackIntoModule(Boolean(e),function(){a.get(t)(r,n)})}catch(e){throw l.closeScope(i,s),o&&l.closeScope(i),e}l.closeScope(i,s)},_emnapi_close_handle_scope:function(e){return l.closeScope()},_emnapi_ctx_decrease_waiting_request_counter:function(){l.decreaseWaitingRequestCounter()},_emnapi_ctx_increase_waiting_request_counter:function(){l.increaseWaitingRequestCounter()},_emnapi_get_node_version:function(e,r,t){e>>>=0,r>>>=0,t>>>=0;var a="object"==typeof process&&null!==process&&"object"==typeof process.versions&&null!==process.versions&&"string"==typeof process.versions.node?process.versions.node.split(".").map(function(e){return Number(e)}):[0,0,0],o=new DataView(n.buffer);o.setUint32(e,a[0],!0),o.setUint32(r,a[1],!0),o.setUint32(t,a[2],!0)},_emnapi_get_now:function(){return performance.timeOrigin+performance.now()},_emnapi_is_main_browser_thread:function(){return"undefined"==typeof window||"undefined"==typeof document||s?0:1},_emnapi_is_main_runtime_thread:function(){return u?0:1},_emnapi_next_tick:C,_emnapi_open_handle_scope:function(){return l.openScope().id},_emnapi_runtime_keepalive_pop:function(){},_emnapi_runtime_keepalive_push:function(){},_emnapi_set_immediate:A,_emnapi_unwind:function(){throw"unwind"},napi_clear_last_error:function(e){return l.envStore.get(e).clearLastError()},napi_set_last_error:function(e,r,t,n){return l.envStore.get(e).setLastError(r,t,n)}});function U(e){var r=new DataView(n.buffer).getInt32(e+20,!0);return S.pthreads[r]}var V=new Promise(function(e){I=function(){V.ready=!0,e()}});V.ready=!1;var x=Object.freeze({__proto__:null,_emnapi_after_uvthreadpool_ready:function(e,r,t){V.ready?a.get(e)(r,t):V.then(function(){a.get(e)(r,t)})},_emnapi_async_send_js:function(e,r,t){if(u)(0,h.postMessage)({__emnapi__:{type:"async-send",payload:{callback:r,data:t}}});else switch(e){case 0:A(r,t);break;case 1:C(r,t)}},_emnapi_emit_async_thread_ready:function(){u&&(0,h.postMessage)({__emnapi__:{type:"async-thread-ready",payload:{}}})},_emnapi_tell_js_uvthreadpool:function(e,r){for(var t=[],a=new DataView(n.buffer),o=function(r){var n=U(a.getUint32(e+4*r,!0));t.push(new Promise(function(e){var r=function(t){var a=(s?t:t.data).__emnapi__;a&&"async-thread-ready"===a.type&&(e(),n&&"function"==typeof n.unref&&n.unref(),s?n.off("message",r):n.removeEventListener("message",r))};s?n.on("message",r):n.addEventListener("message",r)}))},i=0;i>>=0);r&&"function"==typeof r.ref&&r.ref()}},_emnapi_worker_unref:function(e){if(!u){var r=U(e>>>=0);r&&"function"==typeof r.unref&&r.unref()}}});var B=Object.freeze({__proto__:null,napi_adjust_external_memory:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(!t)return a.setLastError(1);var o=l.adjustAmountOfExternalAllocatedMemory(r);return t>>>=0,l.feature.supportBigInt?new DataView(n.buffer).setBigInt64(t,BigInt(o),!0):k(t,Number(o)),a.clearLastError()}}),D={idGen:{},values:[void 0],queued:new Set,pending:[],init:function(){var e={nextId:1,list:[],generate:function(){var r;return e.list.length?r=e.list.shift():(r=e.nextId,e.nextId++),r},reuse:function(r){e.list.push(r)}};D.idGen=e,D.values=[void 0],D.queued=new Set,D.pending=[]},create:function(e,r,t,n,a,o){var i=0,s=0;if(p){var u=p.node.emitAsyncInit(r,t,-1);i=u.asyncId,s=u.triggerAsyncId}var f=D.idGen.generate();return D.values[f]={env:e,id:f,resource:r,asyncId:i,triggerAsyncId:s,status:0,execute:n,complete:a,data:o},f},callComplete:function(e,r){var t=e.complete,n=e.env,o=e.data,i=function(){if(t){var e=l.envStore.get(n),i=l.openScope(e);try{e.callbackIntoModule(!0,function(){a.get(t)(n,r,o)})}finally{l.closeScope(e,i)}}};p?p.node.makeCallback(e.resource,i,[],{asyncId:e.asyncId,triggerAsyncId:e.triggerAsyncId}):i()},queue:function(e){var r=D.values[e];if(r&&0===r.status){if(r.status=1,D.queued.size>=(Math.abs(w)||4))return void D.pending.push(e);D.queued.add(e);var t=r.env,n=r.data,o=r.execute;r.status=2,l.feature.setImmediate(function(){if(a.get(o)(t,n),D.queued.delete(e),r.status=3,l.feature.setImmediate(function(){D.callComplete(r,0)}),D.pending.length>0){var i=D.pending.shift();D.values[i].status=0,D.queue(i)}})}},cancel:function(e){var r=D.pending.indexOf(e);if(-1!==r){var t=D.values[e];return t&&1===t.status?(t.status=4,D.pending.splice(r,1),l.feature.setImmediate(function(){D.callComplete(t,11)}),0):9}return 9},remove:function(e){var r=D.values[e];r&&(p&&p.node.emitAsyncDestroy({asyncId:r.asyncId,triggerAsyncId:r.triggerAsyncId}),D.values[e]=void 0,D.idGen.reuse(e))}};function M(e,r,t,a){if(p){var o=l.handleStore.get(e).value,i=l.handleStore.get(r).value,s=p.node.emitAsyncInit(o,i,t),u=s.asyncId,f=s.triggerAsyncId;if(a){a>>>=0;var c=new DataView(n.buffer);c.setFloat64(a,u,!0),c.setFloat64(a+8,f,!0)}}}function O(e,r){p&&p.node.emitAsyncDestroy({asyncId:e,triggerAsyncId:r})}var j=Object.freeze({__proto__:null,_emnapi_async_destroy_js:function(e){if(!p)return 9;e>>>=0;var r=new DataView(n.buffer),t=r.getInt32(e,!0),a=r.getInt32(e+4,!0),o=BigInt(t>>>0)|BigInt(a)<=BigInt(-1)*(BigInt(1)<=BigInt(1)<>BigInt(32));t>>>=0;var c=new DataView(n.buffer);return c.setInt32(t,u,!0),c.setInt32(t+4,f,!0),0},_emnapi_env_check_gc_access:function(e){l.envStore.get(e).checkGCAccess()},_emnapi_node_emit_async_destroy:O,_emnapi_node_emit_async_init:M,_emnapi_node_make_callback:function(e,r,t,a,o,i,s,u){var f,c=0;if(p){var d=l.handleStore.get(r).value,v=l.handleStore.get(t).value;a>>>=0,o>>>=0,o>>>=0;for(var h=Array(o),y=new DataView(n.buffer);c>>=0,f=l.envStore.get(e).ensureHandleId(_),y.setUint32(u,f,!0)}},napi_close_callback_scope:function(e,r){throw new Error("napi_close_callback_scope has not been implemented yet")},napi_make_callback:function(e,r,t,a,o,i,s){var u,f=0;if(!e)return 1;var c=l.envStore.get(e);if(c.checkGCAccess(),!c.tryCatch.isEmpty())return c.setLastError(10);if(!c.canCallIntoJs())return c.setLastError(c.moduleApiVersion>=10?23:10);c.clearLastError();try{if(!p)return c.setLastError(9);if(!t)return c.setLastError(1);if(o>0&&!i)return c.setLastError(1);var d=Object(l.handleStore.get(t).value),v=l.handleStore.get(a).value;if("function"!=typeof v)return c.setLastError(1);r>>>=0;var h=new DataView(n.buffer),y=h.getInt32(r,!0),g=h.getInt32(r+4,!0),_=BigInt(y>>>0)|BigInt(g)<>>=0,o>>>=0,o>>>=0;for(var E=Array(o);f>>=0,u=c.ensureHandleId(m.value),h.setUint32(s,u,!0)),c.getReturnStatus())}catch(e){return c.tryCatch.setError(e),c.setLastError(10)}},napi_open_callback_scope:function(e,r,t,n){throw new Error("napi_open_callback_scope has not been implemented yet")}}),R={_liveSet:{},offset:{__size__:0,resource:0,async_id:0,trigger_async_id:0,queue_size:0,is_some:0,queue:0,async_pending:0,async_u_fd:0,thread_count:0,state:0,dispatch_state:0,context:0,max_queue_size:0,ref:0,env:0,finalize_data:0,finalize_cb:0,call_js_cb:0,handles_closing:0,async_ref:0,mutex:0,cond:0},init:function(){if(R._liveSet=new Set,R.offset.__size__=184,R.offset.resource=0,R.offset.async_id=8,R.offset.trigger_async_id=16,R.offset.queue_size=60,R.offset.is_some=24,R.offset.queue=64,R.offset.async_pending=132,R.offset.async_u_fd=96,R.offset.thread_count=136,R.offset.state=140,R.offset.dispatch_state=144,R.offset.context=148,R.offset.max_queue_size=152,R.offset.ref=156,R.offset.env=160,R.offset.finalize_data=164,R.offset.finalize_cb=168,R.offset.call_js_cb=172,R.offset.handles_closing=176,R.offset.async_ref=180,R.offset.mutex=32,R.offset.cond=56,R.offset.mutex=R.offset.mutex+4,void 0!==S){S.unusedWorkers.forEach(R.addListener),S.runningWorkers.forEach(R.addListener);var e=S.getNewWorker;S.getNewWorker=function(){var r=e.apply(this,arguments);return R.addListener(r),r}}},addListener:function(e){if(!e)return!1;if(e._emnapiTSFNListener)return!0;var r=function(e){var r=(s?e:e.data).__emnapi__;if(r){var t=r.type,a=r.payload;if("tsfn-send"===t){var o=a.tsfn+R.offset.async_pending;0!==Atomics.load(new Int32Array(n.buffer),o>>>2)&&R.enqueue(a.tsfn)}}};return e._emnapiTSFNListener={handler:r,dispose:function(){s?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiTSFNListener}},s?e.on("message",r):e.addEventListener("message",r,!1),!0},initQueue:function(e){var r=o(8);return!!r&&(r>>>=0,new Uint8Array(n.buffer,r,8).fill(0),R.storeSizeTypeValue(e+R.offset.queue,r,!1),!0)},destroyQueue:function(e){var r=R.loadSizeTypeValue(e+R.offset.queue,!1);if(r){for(var t=R.loadSizeTypeValue(r,!1);0!==t;){var n=R.loadSizeTypeValue(t+4,!1);i(t),t=n}i(r)}},pushQueue:function(e,r){var t=R.loadSizeTypeValue(e+R.offset.queue,!1),n=R.loadSizeTypeValue(t,!1),a=R.loadSizeTypeValue(t+4,!1),i=o(8);if(!i)throw new Error("OOM");i>>>=0,R.storeSizeTypeValue(i,r,!1),R.storeSizeTypeValue(i+4,0,!1),0===n&&0===a?(R.storeSizeTypeValue(t,i,!1),R.storeSizeTypeValue(t+4,i,!1)):(R.storeSizeTypeValue(a+4,i,!1),R.storeSizeTypeValue(t+4,i,!1)),R.addQueueSize(e)},shiftQueue:function(e){var r=R.loadSizeTypeValue(e+R.offset.queue,!1),t=R.loadSizeTypeValue(r,!1);if(0===t)return 0;var n=t,a=R.loadSizeTypeValue(t+4,!1);R.storeSizeTypeValue(r,a,!1),0===a&&R.storeSizeTypeValue(r+4,0,!1),R.storeSizeTypeValue(n+4,0,!1);var o=R.loadSizeTypeValue(n,!1);return i(n),R.subQueueSize(e),o},push:function(e,r,t){var n=R.getMutex(e),a=R.getCond(e),o=function(){var r=R.getQueueSize(e),t=R.getMaxQueueSize(e);return r>=t&&t>0&&0===R.getState(e)},i="undefined"!=typeof window&&"undefined"!=typeof document&&!s,u=!1,f=n.execute(function(){for(;o();){if(0===t)return 15;if(i)return 21;a.wait()}return 0===R.getState(e)?(R.pushQueue(e,r),R.send(e),0):0===R.getThreadCount(e)?1:(R.subThreadCount(e),2!==R.getState(e)||0!==R.getThreadCount(e)||(u=!0),16)});return u&&R.destroy(e),f},getMutex:function(e){var r=e+R.offset.mutex,t={lock:function(){var e="undefined"!=typeof window&&"undefined"!=typeof document&&!s,t=new Int32Array(n.buffer,r,1);if(e)for(;;){if(0===Atomics.compareExchange(t,0,0,10))return}else for(;;){if(0===Atomics.compareExchange(t,0,0,10))return;Atomics.wait(t,0,10)}},unlock:function(){var e=new Int32Array(n.buffer,r,1);if(10!==Atomics.compareExchange(e,0,10,0))throw new Error("Tried to unlock while not holding the mutex");Atomics.notify(e,0,1)},execute:function(e){t.lock();try{return e()}finally{t.unlock()}}};return t},getCond:function(e){var r=e+R.offset.cond,t=R.getMutex(e);return{wait:function(){var e=new Int32Array(n.buffer,r,1),a=Atomics.load(e,0);t.unlock(),Atomics.wait(e,0,a),t.lock()},signal:function(){var e=new Int32Array(n.buffer,r,1);Atomics.add(e,0,1),Atomics.notify(e,0,1)}}},getQueueSize:function(e){return R.loadSizeTypeValue(e+R.offset.queue_size,!0)},addQueueSize:function(e){var r,t,a=R.offset.queue_size;r=new Uint32Array(n.buffer),t=e+a>>>2,Atomics.add(r,t,1)},subQueueSize:function(e){var r,t,a=R.offset.queue_size;r=new Uint32Array(n.buffer),t=e+a>>>2,Atomics.sub(r,t,1)},getThreadCount:function(e){return R.loadSizeTypeValue(e+R.offset.thread_count,!0)},addThreadCount:function(e){var r,t,a=R.offset.thread_count;r=new Uint32Array(n.buffer),t=e+a>>>2,Atomics.add(r,t,1)},subThreadCount:function(e){var r,t,a=R.offset.thread_count;r=new Uint32Array(n.buffer),t=e+a>>>2,Atomics.sub(r,t,1)},getState:function(e){return Atomics.load(new Int32Array(n.buffer),e+R.offset.state>>>2)},setState:function(e,r){Atomics.store(new Int32Array(n.buffer),e+R.offset.state>>>2,r)},getHandlesClosing:function(e){return Atomics.load(new Int8Array(n.buffer),e+R.offset.handles_closing)},setHandlesClosing:function(e,r){Atomics.store(new Int8Array(n.buffer),e+R.offset.handles_closing,r)},getDispatchState:function(e){return Atomics.load(new Uint32Array(n.buffer),e+R.offset.dispatch_state>>>2)},getContext:function(e){return R.loadSizeTypeValue(e+R.offset.context,!1)},getMaxQueueSize:function(e){return R.loadSizeTypeValue(e+R.offset.max_queue_size,!0)},getEnv:function(e){return R.loadSizeTypeValue(e+R.offset.env,!1)},getCallJSCb:function(e){return R.loadSizeTypeValue(e+R.offset.call_js_cb,!1)},getRef:function(e){return R.loadSizeTypeValue(e+R.offset.ref,!1)},getResource:function(e){return R.loadSizeTypeValue(e+R.offset.resource,!1)},getFinalizeCb:function(e){return R.loadSizeTypeValue(e+R.offset.finalize_cb,!1)},getFinalizeData:function(e){return R.loadSizeTypeValue(e+R.offset.finalize_data,!1)},loadSizeTypeValue:function(e,r){var t;return r?(t=new Uint32Array(n.buffer),Atomics.load(t,e>>>2)):(t=new Int32Array(n.buffer),Atomics.load(t,e>>>2))},storeSizeTypeValue:function(e,r,t){var a;return t?(a=new Uint32Array(n.buffer),void Atomics.store(a,e>>>2,r)):(a=new Int32Array(n.buffer),void Atomics.store(a,e>>>2,r>>>0))},releaseResources:function(e){if(2!==R.getState(e)){R.setState(e,2);var r=R.getEnv(e),t=l.envStore.get(r),a=R.getRef(e);a&&l.refStore.get(a).dispose();var o=R.getResource(e);l.refStore.get(o).dispose(),new DataView(n.buffer).setInt8(e+R.offset.is_some,0,!0),l.removeCleanupHook(t,R.cleanup,e),t.unref();var i=e+R.offset.async_ref>>>2,s=new Uint32Array(n.buffer);if(Atomics.load(s,i)>0&&(Atomics.store(s,i,0),l.decreaseWaitingRequestCounter()),p){var u=new DataView(n.buffer);O(u.getFloat64(e+R.offset.async_id,!0),u.getFloat64(e+R.offset.trigger_async_id,!0))}}},destroy:function(e){R._liveSet.delete(e),R.destroyQueue(e),R.releaseResources(e),i(e)},emptyQueue:function(e){var r=[];R.getMutex(e).execute(function(){for(;R.getQueueSize(e)>0;)r.push(R.shiftQueue(e))});for(var t,n=R.getCallJSCb(e),o=R.getContext(e),i=0;i0?R.releaseResources(e):r=!0}),r&&R.destroy(e)},finalize:function(e){var r=R.getEnv(e),t=l.envStore.get(r);l.openScope(t);var a=R.getFinalizeCb(e),o=R.getFinalizeData(e),i=R.getContext(e),s=function(){t.callFinalizerInternal(0,a,o,i)};try{if(R.emptyQueue(e),a)if(p){var u=R.getResource(e),f=l.refStore.get(u).get(),c=l.handleStore.get(f).value,d=new DataView(n.buffer),v=d.getFloat64(e+R.offset.async_id,!0),h=d.getFloat64(e+R.offset.trigger_async_id,!0);p.node.makeCallback(c,s,[],{asyncId:v,triggerAsyncId:h})}else s();R.maybeDelete(e)}finally{l.closeScope(t)}},cleanup:function(e){R.closeHandlesAndMaybeDelete(e,1)},closeHandlesAndMaybeDelete:function(e,r){var t=R.getEnv(e),a=l.envStore.get(t);l.openScope(a);try{if(r&&R.getMutex(e).execute(function(){R.setState(e,1),R.getMaxQueueSize(e)>0&&R.getCond(e).signal()}),R.getHandlesClosing(e))return;R.setHandlesClosing(e,1),Atomics.store(new Int32Array(n.buffer),e+R.offset.async_pending>>>2,1),l.feature.setImmediate(function(){R.finalize(e)})}finally{l.closeScope(a)}},dispatchOne:function(e){var r=0,t=!1,o=!1,i=R.getMutex(e),s=R.getCond(e);if(i.execute(function(){if(0===R.getState(e)){var n=R.getQueueSize(e);if(n>0){r=R.shiftQueue(e),t=!0;var a=R.getMaxQueueSize(e);n===a&&a>0&&s.signal(),n--}0===n?0===R.getThreadCount(e)&&(R.setState(e,1),R.getMaxQueueSize(e)>0&&s.signal(),R.closeHandlesAndMaybeDelete(e,0)):o=!0}else R.closeHandlesAndMaybeDelete(e,0)}),t){var u=R.getEnv(e),f=l.envStore.get(u);l.openScope(f);var c=function(){f.callbackIntoModule(!1,function(){var t=R.getCallJSCb(e),n=R.getRef(e),o=n?l.refStore.get(n).get():0;if(t){var i=R.getContext(e);a.get(t)(u,o,i,r)}else{var s=o?l.handleStore.get(o).value:null;"function"==typeof s&&s()}})};try{if(p){var d=R.getResource(e),v=l.refStore.get(d).get(),h=l.handleStore.get(v).value,y=new DataView(n.buffer);p.node.makeCallback(h,c,[],{asyncId:y.getFloat64(e+R.offset.async_id,!0),triggerAsyncId:y.getFloat64(e+R.offset.trigger_async_id,!0)})}else c()}finally{l.closeScope(f)}}return o},dispatch:function(e){for(var r=!0,t=1e3,a=new Uint32Array(n.buffer),o=e+R.offset.dispatch_state>>>2;r&&0!==--t;)Atomics.store(a,o,1),r=R.dispatchOne(e),1!==Atomics.exchange(a,o,0)&&(r=!0);r&&R.send(e)},enqueue:function(e){var r=e+R.offset.async_pending,t=e+R.offset.async_u_fd,a=new Int32Array(n.buffer);0===Atomics.exchange(a,t>>>2,1)&&l.feature.setImmediate(function(){R._liveSet.has(e)&&(0!==Atomics.load(a,r>>>2)?l.feature.setImmediate(function(){try{if(0===Atomics.exchange(a,r>>>2,0))return;if(!R._liveSet.has(e))return;R.dispatch(e)}finally{R._liveSet.has(e)&&(Atomics.store(a,t>>>2,0),0!==Atomics.load(a,r>>>2)&&R.enqueue(e))}}):Atomics.store(a,t>>>2,0))})},send:function(e){if(1&~Atomics.or(new Uint32Array(n.buffer),e+R.offset.dispatch_state>>>2,2)){var r=e+R.offset.async_pending;0===Atomics.load(new Int32Array(n.buffer),r>>>2)&&0===Atomics.exchange(new Int32Array(n.buffer),r>>>2,1)&&(void 0!==u&&u?postMessage({__emnapi__:{type:"tsfn-send",payload:{tsfn:e}}}):R.enqueue(e))}}};var W={pool:[],workerReady:null,globalAddress:0,globalOffset:{idle_threads:0,q:4,next:4,prev:8,mutex:12,cond:16,exit_message:20,end:28},offset:{resource:0,async_id:8,trigger_async_id:16,env:24,status:28,queue:32,queue_next:32,queue_prev:36,data:40,execute:44,complete:48,end:52},init:function(){if(W.pool=[],W.workerReady=null,void 0!==S){S.unusedWorkers.forEach(W.addListener),S.runningWorkers.forEach(W.addListener);var e=S.getNewWorker;S.getNewWorker=function(){var r=e.apply(this,arguments);return W.addListener(r),r}}},addListener:function(e){if(!e)return!1;if(e._emnapiAWMTListener)return!0;var r=function(e){var r=(s?e:e.data).__emnapi__;if(r){var t=r.type,n=r.payload;"async-work-complete"===t&&W.callComplete(n.work,0)}};return e._emnapiAWMTListener={handler:r,dispose:function(){s?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiAWMTListener}},s?e.on("message",r):e.addEventListener("message",r,!1),!0},initGlobal:function(){if(!W.globalAddress){W.globalAddress=o(W.globalOffset.end),W.globalAddress>>>=0;var e=W.globalOffset.end,r=W.globalAddress;new Uint8Array(n.buffer,r,e).fill(0),W.queueInit(W.globalAddress+W.globalOffset.q),W.queueInit(W.globalAddress+W.globalOffset.exit_message)}},terminateWorkers:function(){W.pool.forEach(function(e){var r,t;null===(r=e._emnapiAWMTListener)||void 0===r||r.dispose(),null===(t=e._emnapiTSFNListener)||void 0===t||t.dispose(),e.terminate()}),W.pool.length=0},initWorkers:function(e){if(u)return W.workerReady||(W.workerReady=Promise.resolve());if(W.workerReady)return W.workerReady;if(!("emnapi_async_worker_create"in t.exports))throw new TypeError("`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags");var r=t.exports.emnapi_async_worker_create,a=[];W.initGlobal();for(var o=0;o>>=0;var t=new DataView(n.buffer).getInt32(e+20,!0);return(r=S.pthreads[t]).whenLoaded});return W.workerReady=Promise.all(i),W.workerReady},getResource:function(e){return new DataView(n.buffer).getUint32(e+W.offset.resource,!0)},getExecute:function(e){return new DataView(n.buffer).getUint32(e+W.offset.execute,!0)},getComplete:function(e){return new DataView(n.buffer).getUint32(e+W.offset.complete,!0)},getEnv:function(e){return new DataView(n.buffer).getUint32(e+W.offset.env,!0)},getData:function(e){return new DataView(n.buffer).getUint32(e+W.offset.data,!0)},getMutex:function(){var e=W.globalAddress+W.globalOffset.mutex,r={lock:function(){var r="undefined"!=typeof window&&"undefined"!=typeof document&&!s,t=new Int32Array(n.buffer,e,1);if(r)for(;;){if(0===Atomics.compareExchange(t,0,0,10))return}else for(;;){if(0===Atomics.compareExchange(t,0,0,10))return;Atomics.wait(t,0,10)}},unlock:function(){var r=new Int32Array(n.buffer,e,1);if(10!==Atomics.compareExchange(r,0,10,0))throw new Error("Tried to unlock while not holding the mutex");Atomics.notify(r,0,1)},execute:function(e){r.lock();try{return e()}finally{r.unlock()}}};return r},getCond:function(){var e=W.globalAddress+W.globalOffset.cond,r=W.getMutex();return{wait:function(){var t=new Int32Array(n.buffer,e,1),a=Atomics.load(t,0);r.unlock(),Atomics.wait(t,0,a),r.lock()},signal:function(){var r=new Int32Array(n.buffer,e,1);Atomics.add(r,0,1),Atomics.notify(r,0,1)}}},queueInit:function(e){var r=new DataView(n.buffer);r.setUint32(e,e,!0),r.setUint32(e+4,e,!0)},queueInsertTail:function(e,r){var t=new DataView(n.buffer);t.setUint32(r,e,!0);var a=t.getUint32(e+4,!0);t.setUint32(r+4,a,!0);var o=t.getUint32(r+4,!0);t.setUint32(o,r,!0),t.setUint32(e+4,r,!0)},queueRemove:function(e){var r=new DataView(n.buffer),t=r.getUint32(e+4,!0),a=r.getUint32(e,!0);r.setUint32(t,a,!0),r.setUint32(a+4,t,!0)},queueEmpty:function(e){return e==new DataView(n.buffer).getUint32(e,!0)},scheduleWork:function(e){var r;(null===(r=W.workerReady)||void 0===r?void 0:r.ready)||W.initWorkers(L()).then(function(){W.workerReady.ready=!0}).catch(function(e){throw W.workerReady=null,e}),l.increaseWaitingRequestCounter();var t=new Int32Array(n.buffer,e+W.offset.status,1);Atomics.store(t,0,0);var a=W.getMutex(),o=W.getCond();a.lock();try{W.queueInsertTail(W.globalAddress+W.globalOffset.q,e+W.offset.queue)}catch(e){throw l.decreaseWaitingRequestCounter(),a.unlock(),e}new DataView(n.buffer).getUint32(W.globalAddress+W.globalOffset.idle_threads,!0)>0&&o.signal(),a.unlock()},cancelWork:function(e){var r=!1;return W.getMutex().execute(function(){var t=new DataView(n.buffer);(r=!W.queueEmpty(e+W.offset.queue)&&2!==t.getInt32(e+W.offset.status,!0))&&W.queueRemove(e+W.offset.queue)}),r?0!==Atomics.compareExchange(new Int32Array(n.buffer,e+W.offset.status,1),0,0,1)?9:(l.feature.setImmediate(function(){W.callComplete(e,11)}),0):9},callComplete:function(e,r){l.decreaseWaitingRequestCounter();var t=W.getComplete(e),o=W.getEnv(e),i=W.getData(e),s=l.envStore.get(o),u=l.openScope(s),f=function(){t&&s.callbackIntoModule(!0,function(){a.get(t)(o,r,i)})};try{if(p){var c=W.getResource(e),d=l.refStore.get(c).get(),v=l.handleStore.get(d).value,h=new DataView(n.buffer),y=h.getFloat64(e+W.offset.async_id,!0),g=h.getFloat64(e+W.offset.trigger_async_id,!0);p.node.makeCallback(v,f,[],{asyncId:y,triggerAsyncId:g})}else f()}finally{l.closeScope(s,u)}}};W.init();var z=m?function(e,r,t,a,o,i,s){if(!e)return 1;var u,f=l.envStore.get(e);if(f.checkGCAccess(),!a)return f.setLastError(1);if(!s)return f.setLastError(1);if(u=r?Object(l.handleStore.get(r).value):{},!t)return f.setLastError(1);var c=String(l.handleStore.get(t).value),d=D.create(e,u,c,a,o,i);return s>>>=0,new DataView(n.buffer).setUint32(s,d,!0),f.clearLastError()}:function(e,r,t,a,i,s,u){if(!e)return 1;var f,c=l.envStore.get(e);if(c.checkGCAccess(),!a)return c.setLastError(1);if(!u)return c.setLastError(1);if(f=r?Object(l.handleStore.get(r).value):{},!t)return c.setLastError(1);var d=W.offset.end,p=o(d);if(!p)return c.setLastError(9);p>>>=0,new Uint8Array(n.buffer).subarray(p,p+d).fill(0);var v=c.ensureHandleId(f),h=l.createReference(c,v,1,1).id,y=new DataView(n.buffer);return y.setUint32(p,h,!0),M(v,t,-1,p+W.offset.async_id),y.setUint32(p+W.offset.env,e,!0),y.setUint32(p+W.offset.execute,a,!0),y.setUint32(p+W.offset.complete,i,!0),y.setUint32(p+W.offset.data,s,!0),W.queueInit(p+W.offset.queue),u>>>=0,y.setUint32(u,p,!0),c.clearLastError()},G=m?function(e,r){if(!e)return 1;var t=l.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,D.remove(r),t.clearLastError()):t.setLastError(1)}:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var a=W.getResource(r);if(l.refStore.get(a).dispose(),p){var o=new DataView(n.buffer);O(o.getFloat64(r+W.offset.async_id,!0),o.getFloat64(r+W.offset.trigger_async_id,!0))}return i(r),t.clearLastError()},F=m?function(e,r){if(!e)return 1;var t=l.envStore.get(e);return r?(r>>>=0,D.queue(r),t.clearLastError()):t.setLastError(1)}:function(e,r){if(!e)return 1;var t=l.envStore.get(e);return r?(r>>>=0,W.scheduleWork(r),t.clearLastError()):t.setLastError(1)},P=m?function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var n=D.cancel(r);return 0===n?t.clearLastError():t.setLastError(n)}:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var n=W.cancelWork(r);return 0===n?t.clearLastError():t.setLastError(n)};h.initWorker=function(e,r){if(!h.childThread)throw new Error("startThread is only available in child threads");if("function"!=typeof t.exports.emnapi_async_worker_init)throw new TypeError("`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags");t.exports.emnapi_async_worker_init(e),a.get(r[0])(r[1])};var N=Object.freeze({__proto__:null,_emnapi_async_worker:function(e){e>>>=0,W.globalAddress=e;var r=W.getMutex(),t=W.getCond();r.lock();for(var o=e+W.globalOffset.exit_message,i=e+W.globalOffset.idle_threads,s=e+W.globalOffset.q,u=new DataView(n.buffer);;){for(;W.queueEmpty(s);)Atomics.add(new Int32Array(n.buffer,i,1),0,1),t.wait(),Atomics.sub(new Int32Array(n.buffer,i,1),0,1);var f=u.getUint32(s,!0);if(f===o){t.signal(),r.unlock();break}var l=f-W.offset.queue;W.queueRemove(f),W.queueInit(f),r.unlock();var d=new Int32Array(n.buffer,l+W.offset.status,1);1===Atomics.load(d,0)&&c("unreachable");var p=W.getExecute(l),v=W.getEnv(l),y=W.getData(l);a.get(p)(v,y),Atomics.store(d,0,2),(0,h.postMessage)({__emnapi__:{type:"async-work-complete",payload:{work:l}}}),r.lock()}return 0},_emnapi_spawn_worker:function(e,r){if("function"!=typeof y)throw new TypeError("`options.onCreateWorker` is not a function");var n=[];if(!("emnapi_async_worker_create"in t.exports))throw new TypeError("`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags");n.push(t.exports.emnapi_async_worker_create(0,0));var a,o=function(e){!("message"in e)||-1===e.message.indexOf("RuntimeError")&&-1===e.message.indexOf("unreachable")||W.terminateWorkers()};try{var u=y({type:"async-work",name:"emnapi-async-worker"}),f=S.loadWasmModuleToWorker(u);s?u.on("error",o):u.addEventListener("error",o,!1),W.addListener(u),R.addListener(u),[].push(f.then(function(){"function"==typeof u.unref&&u.unref()})),a=W.pool.push(u)-1;var c=n[0];u.threadBlockBase=c,u.postMessage({__emnapi__:{type:"async-worker-init",payload:{arg:c,func:[e,r]}}})}catch(e){c=n[0];throw i(c),e}return a},napi_cancel_async_work:P,napi_create_async_work:z,napi_delete_async_work:G,napi_queue_async_work:F}),q={registry:"function"==typeof FinalizationRegistry?new FinalizationRegistry(function(e){i(e)}):void 0,table:new WeakMap,wasmMemoryViewTable:new WeakMap,init:function(){q.registry="function"==typeof FinalizationRegistry?new FinalizationRegistry(function(e){i(e)}):void 0,q.table=new WeakMap,q.wasmMemoryViewTable=new WeakMap},isSharedArrayBuffer:function(e){return"function"==typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(e)},isDetachedArrayBuffer:function(e){if(0===e.byteLength)try{new Uint8Array(e)}catch(e){return!0}return!1},getArrayBufferPointer:function(e,r){var t,a={address:0,ownership:0,runtimeAllocated:0};if(e===n.buffer)return a;var i=q.isDetachedArrayBuffer(e);if(q.table.has(e)){var s=q.table.get(e);return i?(s.address=0,s):(r&&0===s.ownership&&1===s.runtimeAllocated&&new Uint8Array(n.buffer).set(new Uint8Array(e),s.address),s)}if(i||0===e.byteLength)return a;if(!r)return a;var u=o(e.byteLength);if(!u)throw new Error("Out of memory");return u>>>=0,new Uint8Array(n.buffer).set(new Uint8Array(e),u),a.address=u,a.ownership=q.registry?0:1,a.runtimeAllocated=1,q.table.set(e,a),null===(t=q.registry)||void 0===t||t.register(e,u),a},getOrUpdateMemoryView:function(e){if(e.buffer===n.buffer)return q.wasmMemoryViewTable.has(e)||q.wasmMemoryViewTable.set(e,{Ctor:e.constructor,address:e.byteOffset,length:e instanceof DataView?e.byteLength:e.length,ownership:1,runtimeAllocated:0}),e;if((q.isDetachedArrayBuffer(e.buffer)||q.isSharedArrayBuffer(e.buffer))&&q.wasmMemoryViewTable.has(e)){var r=q.wasmMemoryViewTable.get(e),t=r.Ctor,a=void 0,o=l.feature.Buffer;return a="function"==typeof o&&t===o?o.from(n.buffer,r.address,r.length):new t(n.buffer,r.address,r.length),q.wasmMemoryViewTable.set(a,r),a}return e},getViewPointer:function(e,r){if((e=q.getOrUpdateMemoryView(e)).buffer===n.buffer){if(q.wasmMemoryViewTable.has(e)){var t=q.wasmMemoryViewTable.get(e);return{address:t.address,ownership:t.ownership,runtimeAllocated:t.runtimeAllocated,view:e}}return{address:e.byteOffset,ownership:1,runtimeAllocated:0,view:e}}var a=q.getArrayBufferPointer(e.buffer,r),o=a.address,i=a.ownership,s=a.runtimeAllocated;return{address:0===o?0:o+e.byteOffset,ownership:i,runtimeAllocated:s,view:e}}},J={utf8Decoder:void 0,utf16Decoder:void 0,init:function(){var e,r={decode:function(e){for(var r=0,t=Math.min(4096,e.length+1),n=new Uint16Array(t),a=[],o=0;;){var i=r=t-1){var s=n.subarray(0,o);if(a.push(String.fromCharCode.apply(null,s)),!i)return a.join("");e=e.subarray(r),r=0,o=0}var u=e[r++];if(128&u){if(192==(224&u)){var f=63&e[r++];n[o++]=(31&u)<<6|f}else if(224==(240&u)){f=63&e[r++];var c=63&e[r++];n[o++]=(31&u)<<12|f<<6|c}else if(240==(248&u)){var l=(7&u)<<18|(f=63&e[r++])<<12|(c=63&e[r++])<<6|63&e[r++];l>65535&&(l-=65536,n[o++]=l>>>10&1023|55296,l=56320|1023&l),n[o++]=l}}else n[o++]=u}}};e="function"==typeof TextDecoder?new TextDecoder:r,J.utf8Decoder=e;var t,n={decode:function(e){var r=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2);if(r.length<=4096)return String.fromCharCode.apply(null,r);for(var t=[],n=0,a=0;n=55296&&r<=57343?(t+=4,++n):t+=3;return t},UTF8ToString:function(e,r){if(!e||!r)return"";e>>>=0;var t=new Uint8Array(n.buffer),a=e;if(-1===r||4294967295===r)for(;t[a];)++a;else a=e+(r>>>0);if((r=a-e)<=16){for(var o=e,i="";o>10,56320|1023&c)}}else i+=String.fromCharCode((31&s)<<6|u)}else i+=String.fromCharCode(s)}return i}return J.utf8Decoder.decode("function"==typeof SharedArrayBuffer&&t.buffer instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(t.buffer)?t.slice(e,a):t.subarray(e,a))},stringToUTF8:function(e,r,t){var a=new Uint8Array(n.buffer),o=r;if(!(t>0))return 0;for(var i=o>>>=0,s=o+t-1,u=0;u=55296&&f<=57343)f=65536+((1023&f)<<10)|1023&e.charCodeAt(++u);if(f<=127){if(o>=s)break;a[o++]=f}else if(f<=2047){if(o+1>=s)break;a[o++]=192|f>>6,a[o++]=128|63&f}else if(f<=65535){if(o+2>=s)break;a[o++]=224|f>>12,a[o++]=128|f>>6&63,a[o++]=128|63&f}else{if(o+3>=s)break;a[o++]=240|f>>18,a[o++]=128|f>>12&63,a[o++]=128|f>>6&63,a[o++]=128|63&f}}return a[o]=0,o-i},UTF16ToString:function(e,r){if(!e||!r)return"";var t=e>>>=0;if(-1===r||4294967295===r){for(var a=t>>>1,o=new Uint16Array(n.buffer);o[a];)++a;t=a<<1>>>0}else t=e+2*(r>>>0);if((r=t-e)<=32)return String.fromCharCode.apply(null,new Uint16Array(n.buffer,e,r/2));var i=new Uint8Array(n.buffer);return J.utf16Decoder.decode("function"==typeof SharedArrayBuffer&&i.buffer instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(i.buffer)?i.slice(e,t):i.subarray(e,t))},stringToUTF16:function(e,r,t){if(void 0===t&&(t=2147483647),t<2)return 0;for(var a=r,o=(t-=2)<2*e.length?t/2:e.length,i=new DataView(n.buffer),s=0;s>>=0,!e)return 1;var i=l.envStore.get(e);i.checkGCAccess();var s=-1===t||4294967295===t,u=t>>>0;if(0!==t&&!r)return i.setLastError(1);if(!a)return i.setLastError(1);if(!(s||u<=2147483647))return i.setLastError(1);var f=o(r>>>=0,s,u);a>>>=0;var c=l.addToCurrentScope(f).id;return new DataView(n.buffer).setUint32(a,c,!0),i.clearLastError()},newExternalString:function(e,r,t,a,o,i,s,u,f){if(t>>>=0,!e)return 1;var c=l.envStore.get(e);c.checkGCAccess();var d=-1===t||4294967295===t,p=t>>>0;if(0!==t&&!r)return c.setLastError(1);if(!i)return c.setLastError(1);if(!(d||p<=2147483647))return c.setLastError(1);var v=u(e,r,t,i);if(0===v){if(s)new DataView(n.buffer).setInt8(s,1,!0);a&&c.callFinalizer(a,r,o)}return v}};function H(e,r,t,a,o,i,s){if(!e)return 1;var u=l.envStore.get(e);if(u.checkGCAccess(),!r)return u.setLastError(1);var f=l.handleStore.get(r);if(!f.isTypedArray())return u.setLastError(1);var c=f.value,d=new DataView(n.buffer);if(t){t>>>=0;var p=void 0;if(c instanceof Int8Array)p=0;else if(c instanceof Uint8Array)p=1;else if(c instanceof Uint8ClampedArray)p=2;else if(c instanceof Int16Array)p=3;else if(c instanceof Uint16Array)p=4;else if(c instanceof Int32Array)p=5;else if(c instanceof Uint32Array)p=6;else if("function"==typeof Float16Array&&c instanceof Float16Array)p=11;else if(c instanceof Float32Array)p=7;else if(c instanceof Float64Array)p=8;else if(c instanceof BigInt64Array)p=9;else{if(!(c instanceof BigUint64Array))return u.setLastError(9);p=10}d.setInt32(t,p,!0)}if(c=q.getOrUpdateMemoryView(c),a&&(a>>>=0,d.setUint32(a,c.length,!0)),o||i){if(o){o>>>=0;var v=q.getViewPointer(c,!0).address;d.setUint32(o,v,!0)}if(i){i>>>=0;var h=u.ensureHandleId(c.buffer);d.setUint32(i,h,!0)}}return s&&(s>>>=0,d.setUint32(s,c.byteOffset,!0)),u.clearLastError()}function Q(e,r,t,a,o,i){if(!e)return 1;var s=l.envStore.get(e);if(s.checkGCAccess(),!r)return s.setLastError(1);var u=l.handleStore.get(r);if(!u.isDataView())return s.setLastError(1);var f=q.getOrUpdateMemoryView(u.value),c=new DataView(n.buffer);if(t&&(t>>>=0,c.setUint32(t,f.byteLength,!0)),a||o){if(a){a>>>=0;var d=q.getViewPointer(f,!0).address;c.setUint32(a,d,!0)}if(o){o>>>=0;var p=s.ensureHandleId(f.buffer);c.setUint32(o,p,!0)}}return i&&(i>>>=0,c.setUint32(i,f.byteOffset,!0)),s.clearLastError()}var $=Object.freeze({__proto__:null,napi_get_array_length:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);if(!o.isArray())return a.setLastError(8);t>>>=0;var i=o.value.length>>>0;return new DataView(n.buffer).setUint32(t,i,!0),a.getReturnStatus()}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_get_arraybuffer_info:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);var i=l.handleStore.get(r);if(!i.isArrayBuffer()&&!q.isSharedArrayBuffer(i.value))return o.setLastError(1);var s=new DataView(n.buffer);if(t){t>>>=0;var u=q.getArrayBufferPointer(i.value,!0).address;s.setUint32(t,u,!0)}return a&&(a>>>=0,s.setUint32(a,i.value.byteLength,!0)),o.clearLastError()},napi_get_buffer_info:function(e,r,t,n){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);var o=l.handleStore.get(r);return o.isBuffer(l.feature.Buffer)?o.isDataView()?Q(e,r,n,t,0,0):H(e,r,0,n,t,0,0):a.setLastError(1)},napi_get_dataview_info:Q,napi_get_date_value:function(e,r,t){var a;if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var i=l.handleStore.get(r);return i.isDate()?(t>>>=0,a=i.value.valueOf(),new DataView(n.buffer).setFloat64(t,a,!0),o.getReturnStatus()):o.setLastError(1)}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_get_prototype:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);if(null==o.value)throw new TypeError("Cannot convert undefined or null to object");var i=void 0;try{i=o.isObject()||o.isFunction()?o.value:Object(o.value)}catch(e){return a.setLastError(2)}t>>>=0;var s=a.ensureHandleId(Object.getPrototypeOf(i));return new DataView(n.buffer).setUint32(t,s,!0),a.getReturnStatus()}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_get_typedarray_info:H,napi_get_value_bigint_int64:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!l.feature.supportBigInt)return o.setLastError(9);if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!a)return o.setLastError(1);var i=l.handleStore.get(r).value;if("bigint"!=typeof i)return o.setLastError(6);a>>>=0,t>>>=0;var s=new DataView(n.buffer);i>=BigInt(-1)*(BigInt(1)<=BigInt(1)<>BigInt(32));return s.setInt32(t,u,!0),s.setInt32(t+4,f,!0),o.clearLastError()},napi_get_value_bigint_uint64:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!l.feature.supportBigInt)return o.setLastError(9);if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!a)return o.setLastError(1);var i=l.handleStore.get(r).value;if("bigint"!=typeof i)return o.setLastError(6);a>>>=0,t>>>=0;var s=new DataView(n.buffer);i>=BigInt(0)&&i>BigInt(32));return s.setUint32(t,u,!0),s.setUint32(t+4,f,!0),o.clearLastError()},napi_get_value_bigint_words:function(e,r,t,a,o){if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!l.feature.supportBigInt)return i.setLastError(9);if(!r)return i.setLastError(1);if(!a)return i.setLastError(1);var s=l.handleStore.get(r);if(!s.isBigInt())return i.setLastError(17);var u=s.value>>=0,o>>>=0,a>>>=0;var f=new DataView(n.buffer),c=f.getUint32(a,!0);c>>>=0;for(var d=0,p=u?s.value*BigInt(-1):s.value;p!==BigInt(0);)d++,p>>=BigInt(64);if(p=u?s.value*BigInt(-1):s.value,t||o){if(!t)return i.setLastError(1);if(!o)return i.setLastError(1);for(var v=[];p!==BigInt(0);){var h=p&(BigInt(1)<>=BigInt(64)}for(var y=Math.min(c,v.length),g=0;g>BigInt(32));f.setUint32(o+8*g,_,!0),f.setUint32(o+(8*g+4),E,!0)}f.setInt32(t,u?1:0,!0),f.setUint32(a,y,!0)}else c=d,f.setUint32(a,c,!0);return i.clearLastError()},napi_get_value_bool:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);if("boolean"!=typeof o.value)return a.setLastError(7);t>>>=0;var i=o.value?1:0;return new DataView(n.buffer).setInt8(t,i,!0),a.clearLastError()},napi_get_value_double:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);if("number"!=typeof o.value)return a.setLastError(6);t>>>=0;var i=o.value;return new DataView(n.buffer).setFloat64(t,i,!0),a.clearLastError()},napi_get_value_external:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);if(!o.isExternal())return a.setLastError(1);t>>>=0;var i=o.data();return new DataView(n.buffer).setUint32(t,i,!0),a.clearLastError()},napi_get_value_int32:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);if("number"!=typeof o.value)return a.setLastError(6);t>>>=0;var i=new Int32Array([o.value])[0];return new DataView(n.buffer).setInt32(t,i,!0),a.clearLastError()},napi_get_value_int64:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);if("number"!=typeof o.value)return a.setLastError(6);var i=o.value;t>>>=0;var s=new DataView(n.buffer);return i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY||isNaN(i)?(s.setInt32(t,0,!0),s.setInt32(t+4,0,!0)):i<-0x8000000000000000?(s.setInt32(t,0,!0),s.setInt32(t+4,2147483648,!0)):i>=0x8000000000000000?(s.setUint32(t,4294967295,!0),s.setUint32(t+4,2147483647,!0)):k(t,Math.trunc(i)),a.clearLastError()},napi_get_value_string_latin1:function(e,r,t,a,o){if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!r)return i.setLastError(1);o>>>=0,t>>>=0,a>>>=0,a>>>=0;var s=l.handleStore.get(r);if("string"!=typeof s.value)return i.setLastError(3);var u=new DataView(n.buffer);if(t)if(0!==a){for(var f=0,c=void 0,d=0;d>>=0,t>>>=0,a>>>=0,a>>>=0;var s=l.handleStore.get(r);if("string"!=typeof s.value)return i.setLastError(3);var u=new DataView(n.buffer);if(t)if(0!==a){var f=J.stringToUTF16(s.value,t,2*a);o&&u.setUint32(o,f/2,!0)}else o&&u.setUint32(o,0,!0);else{if(!o)return i.setLastError(1);u.setUint32(o,s.value.length,!0)}return i.clearLastError()},napi_get_value_string_utf8:function(e,r,t,a,o){if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!r)return i.setLastError(1);o>>>=0,t>>>=0,a>>>=0,a>>>=0;var s=l.handleStore.get(r);if("string"!=typeof s.value)return i.setLastError(3);var u=new DataView(n.buffer);if(t)if(0!==a){var f=J.stringToUTF8(s.value,t,a);o&&u.setUint32(o,f,!0)}else o&&u.setUint32(o,0,!0);else{if(!o)return i.setLastError(1);var c=J.lengthBytesUTF8(s.value);u.setUint32(o,c,!0)}return i.clearLastError()},napi_get_value_uint32:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);if("number"!=typeof o.value)return a.setLastError(6);t>>>=0;var i=new Uint32Array([o.value])[0];return new DataView(n.buffer).setUint32(t,i,!0),a.clearLastError()},node_api_set_prototype:function(e,r,t){if(!e)return 1;var n=l.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);var a=l.handleStore.get(r).value;if(null==a)throw new TypeError("Cannot convert undefined or null to object");var o=typeof a,i=void 0;try{i="object"===o&&null!==a||"function"===o?a:Object(a)}catch(e){return n.setLastError(2)}var s=l.handleStore.get(t).value;return Object.setPrototypeOf(i,s),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function Y(e,r,t,a){return J.newString(e,r,t,a,function(e,r,t){var a="",o=0,i=new DataView(n.buffer);if(r)for(;;){if(!(s=i.getUint8(e,!0)))break;a+=String.fromCharCode(s),e++}else for(;o>>=0,new DataView(n.buffer).setUint32(t,s,!0),i.clearLastError()},napi_create_bigint_uint64:function(e,r,t,a){if(!e)return 1;var o,i=l.envStore.get(e);if(i.checkGCAccess(),!l.feature.supportBigInt)return i.setLastError(9);if(!t)return i.setLastError(1);o=r&(BigInt(1)<>>=0,new DataView(n.buffer).setUint32(t,s,!0),i.clearLastError()},napi_create_bigint_words:function(e,r,t,a,o){var i,s;if(!e)return 1;var u=l.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!l.feature.supportBigInt)return u.setLastError(9);if(!o)return u.setLastError(1);if(a>>>=0,t>>>=0,(t>>>=0)>2147483647)return u.setLastError(1);if(t>16384)throw new RangeError("Maximum BigInt size exceeded");var f=BigInt(0),c=new DataView(n.buffer);for(s=0;s>>=0,i=l.addToCurrentScope(f).id,c.setUint32(o,i,!0),u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}},napi_create_double:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!t)return a.setLastError(1);t>>>=0;var o=l.addToCurrentScope(r).id;return new DataView(n.buffer).setUint32(t,o,!0),a.clearLastError()},napi_create_int32:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!t)return a.setLastError(1);t>>>=0;var o=l.addToCurrentScope(r).id;return new DataView(n.buffer).setUint32(t,o,!0),a.clearLastError()},napi_create_int64:function(e,r,t,a){if(!e)return 1;var o,i=l.envStore.get(e);if(i.checkGCAccess(),!t)return i.setLastError(1);o=Number(r);var s=l.addToCurrentScope(o).id;return t>>>=0,new DataView(n.buffer).setUint32(t,s,!0),i.clearLastError()},napi_create_string_latin1:Y,napi_create_string_utf16:X,napi_create_string_utf8:Z,napi_create_uint32:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!t)return a.setLastError(1);t>>>=0;var o=l.addToCurrentScope(r>>>0).id;return new DataView(n.buffer).setUint32(t,o,!0),a.clearLastError()},node_api_create_external_string_latin1:function(e,r,t,n,a,o,i){return J.newExternalString(e,r,t,n,a,o,i,Y,void 0)},node_api_create_external_string_utf16:function(e,r,t,n,a,o,i){return J.newExternalString(e,r,t,n,a,o,i,X,void 0)},node_api_create_property_key_latin1:function(e,r,t,n){return Y(e,r,t,n)},node_api_create_property_key_utf16:function(e,r,t,n){return X(e,r,t,n)},node_api_create_property_key_utf8:function(e,r,t,n){return Z(e,r,t,n)}});function ee(e,r,t,n,o){var i,s=(r>>>=0)&&t?J.UTF8ToString(r,t):"",u=a.get(n),f=function(e){return u(e.id,e.ctx.scopeStore.currentScope.id)},c=function(e,r){return function(){var t=e.ctx.openScope(e),n=t.callbackInfo;n.data=o,n.args=arguments,n.thiz=this,n.fn=i;try{var a=e.callIntoModule(r);return a?e.ctx.handleStore.get(a).value:void 0}finally{n.data=0,n.args=void 0,n.thiz=void 0,n.fn=void 0,e.ctx.closeScope(e,t)}}};if(""===s)return{status:0,f:i=c(e,f)};if(!/^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(s))return{status:1,f:void 0};if(l.feature.supportNewFunction){var d=c(e,f);try{i=new Function("_","return function "+s+'(){"use strict";return _.apply(this,arguments);};')(d)}catch(r){i=c(e,f),l.feature.canSetFunctionName&&Object.defineProperty(i,"name",{value:s})}}else i=c(e,f),l.feature.canSetFunctionName&&Object.defineProperty(i,"name",{value:s});return{status:0,f:i}}function re(e,r,t,n,a,o,i,s,u){if(a||o){var f=void 0,c=void 0;a&&(f=ee(e,0,0,a,u).f),o&&(c=ee(e,0,0,o,u).f);var d={configurable:!!(4&s),enumerable:!!(2&s),get:f,set:c};Object.defineProperty(r,t,d)}else if(n){d={configurable:!!(4&s),enumerable:!!(2&s),writable:!!(1&s),value:ee(e,0,0,n,u).f};Object.defineProperty(r,t,d)}else{d={configurable:!!(4&s),enumerable:!!(2&s),writable:!!(1&s),value:l.handleStore.get(i).value};Object.defineProperty(r,t,d)}}function te(e){var r=l.handleStore.get(e);return r.isObject()||r.isFunction()?(void 0!==q&&ArrayBuffer.isView(r.value)&&q.wasmMemoryViewTable.has(r.value)&&(r=l.addToCurrentScope(q.wasmMemoryViewTable.get(r.value))),{status:0,handle:r}):{status:1}}function ne(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(1);if(0===a&&!t)return i.setLastError(1);var s=l.handleStore.get(r);if(!s.isObject()&&!s.isFunction())return i.setLastError(1);var u=i.getObjectBinding(s.value),f=u.wrapped,c=l.refStore.get(f);if(!c)return i.setLastError(1);if(t)t>>>=0,o=c.data(),new DataView(n.buffer).setUint32(t,o,!0);return 1===a&&(u.wrapped=0,1===c.ownership()?c.resetFinalizer():c.dispose()),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}}function ae(e,r,t,a,o,i){if(!e)return 1;var s=l.envStore.get(e);if(s.checkGCAccess(),!l.feature.supportFinalizer)return s.setLastError(9);if(!r)return s.setLastError(1);if(!a)return s.setLastError(1);var u=te(r);if(0!==u.status)return s.setLastError(u.status);var f=u.handle,c=i?1:0;t>>>=0,a>>>=0,o>>>=0;var d=l.createReferenceWithFinalizer(s,f.id,0,c,a,t,o);if(i){i>>>=0;var p=d.id;new DataView(n.buffer).setUint32(i,p,!0)}return s.clearLastError()}var oe=Object.freeze({__proto__:null,napi_add_finalizer:ae,napi_check_object_type_tag:function(e,r,t,a){var o=!0;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(i.tryCatch.hasCaught()?10:1);var s=l.handleStore.get(r);if(!s.isObject()&&!s.isFunction())return i.setLastError(i.tryCatch.hasCaught()?10:2);if(!t)return i.setLastError(i.tryCatch.hasCaught()?10:1);if(!a)return i.setLastError(i.tryCatch.hasCaught()?10:1);var u=i.getObjectBinding(s.value);if(null!==u.tag){t>>>=0;var f=u.tag,c=new Uint32Array(n.buffer,t,4);o=f[0]===c[0]&&f[1]===c[1]&&f[2]===c[2]&&f[3]===c[3]}else o=!1;return a>>>=0,new DataView(n.buffer).setInt8(a,o?1:0,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_define_class:function(e,r,t,a,o,i,s,u){var f,c,d;if(!e)return 1;var p=l.envStore.get(e);if(p.checkGCAccess(),!p.tryCatch.isEmpty())return p.setLastError(10);if(!p.canCallIntoJs())return p.setLastError(p.moduleApiVersion>=10?23:10);p.clearLastError();try{if(!u)return p.setLastError(1);if(!a)return p.setLastError(1);if(t>>>=0,s>>>=0,i>>>=0,(i>>>=0)>0&&!s)return p.setLastError(1);if(!(t>=-1&&t<=2147483647||4294967295===t)||!r)return p.setLastError(1);var v=ee(p,r,t,a,o);if(0!==v.status)return p.setLastError(v.status);for(var h=v.f,y=void 0,g=new DataView(n.buffer),_=0;_>>=0;var A=g.getUint32(f+28,!0);if(E)y=J.UTF8ToString(E,-1);else{if(!w)return p.setLastError(4);if("string"!=typeof(y=l.handleStore.get(w).value)&&"symbol"!=typeof y)return p.setLastError(4)}1024&d?re(p,h,y,m,L,b,S,d,A):re(p,h.prototype,y,m,L,b,S,d,A)}return c=l.addToCurrentScope(h).id,u>>>=0,g.setUint32(u,c,!0),p.getReturnStatus()}catch(e){return p.tryCatch.setError(e),p.setLastError(10)}},napi_remove_wrap:function(e,r,t){return ne(e,r,t,1)},napi_type_tag_object:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!r)return a.setLastError(a.tryCatch.hasCaught()?10:1);var o=l.handleStore.get(r);if(!o.isObject()&&!o.isFunction())return a.setLastError(a.tryCatch.hasCaught()?10:2);if(!(t>>>=0))return a.setLastError(a.tryCatch.hasCaught()?10:1);var i=a.getObjectBinding(o.value);if(null!==i.tag)return a.setLastError(a.tryCatch.hasCaught()?10:1);var s=new Uint8Array(16);return s.set(new Uint8Array(n.buffer,t,16)),i.tag=new Uint32Array(s.buffer),a.getReturnStatus()}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_unwrap:function(e,r,t){return ne(e,r,t,0)},napi_wrap:function(e,r,t,a,o,i){return function(e,r,t,a,o,i){var s;if(!e)return 1;var u=l.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!l.feature.supportFinalizer){if(a)throw l.createNotSupportWeakRefError("napi_wrap",'Parameter "finalize_cb" must be 0(NULL)');if(i)throw l.createNotSupportWeakRefError("napi_wrap",'Parameter "result" must be 0(NULL)')}if(!r)return u.setLastError(1);var f=te(r);if(0!==f.status)return u.setLastError(f.status);var c=f.handle;if(0!==u.getObjectBinding(c.value).wrapped)return u.setLastError(1);var d=void 0;if(i){if(!a)return u.setLastError(1);d=l.createReferenceWithFinalizer(u,c.id,0,1,a,t,o),i>>>=0,s=d.id,new DataView(n.buffer).setUint32(i,s,!0)}else d=a?l.createReferenceWithFinalizer(u,c.id,0,0,a,t,o):l.createReferenceWithData(u,c.id,0,0,t);return u.getObjectBinding(c.value).wrapped=d.id,u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}}(e,r,t,a,o,i)},node_api_post_finalizer:function(e,r,t,n){if(!e)return 1;var a=l.envStore.get(e);return a.enqueueFinalizer(l.createTrackedFinalizer(a,r,t,n)),a.clearLastError()}});function ie(e,r,t,a,o,i,s){var u;if(!e)return 1;var f=l.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!s)return f.setLastError(1);if(a>>>=0,s>>>=0,a>>>=0,(t>>>=0)||(a=0),a>2147483647)throw new RangeError("Cannot create a memory view larger than 2147483647 bytes");if(t+a>n.buffer.byteLength)throw new RangeError("Memory out of range");if(!l.feature.supportFinalizer&&o)throw l.createNotSupportWeakRefError("emnapi_create_memory_view",'Parameter "finalize_cb" must be 0(NULL)');var c=void 0;switch(r){case 0:c={Ctor:Int8Array,address:t,length:a,ownership:1,runtimeAllocated:0};break;case 1:c={Ctor:Uint8Array,address:t,length:a,ownership:1,runtimeAllocated:0};break;case 2:c={Ctor:Uint8ClampedArray,address:t,length:a,ownership:1,runtimeAllocated:0};break;case 3:c={Ctor:Int16Array,address:t,length:a>>1,ownership:1,runtimeAllocated:0};break;case 4:c={Ctor:Uint16Array,address:t,length:a>>1,ownership:1,runtimeAllocated:0};break;case 5:c={Ctor:Int32Array,address:t,length:a>>2,ownership:1,runtimeAllocated:0};break;case 6:c={Ctor:Uint32Array,address:t,length:a>>2,ownership:1,runtimeAllocated:0};break;case 7:c={Ctor:Float32Array,address:t,length:a>>2,ownership:1,runtimeAllocated:0};break;case 8:c={Ctor:Float64Array,address:t,length:a>>3,ownership:1,runtimeAllocated:0};break;case 9:c={Ctor:BigInt64Array,address:t,length:a>>3,ownership:1,runtimeAllocated:0};break;case 10:c={Ctor:BigUint64Array,address:t,length:a>>3,ownership:1,runtimeAllocated:0};break;case-1:c={Ctor:DataView,address:t,length:a,ownership:1,runtimeAllocated:0};break;case 11:if("function"!=typeof Float16Array)return f.setLastError(1);c={Ctor:Float16Array,address:t,length:a>>1,ownership:1,runtimeAllocated:0};break;case-2:if(!l.feature.Buffer)throw l.createNotSupportBufferError("emnapi_create_memory_view","");c={Ctor:l.feature.Buffer,address:t,length:a,ownership:1,runtimeAllocated:0};break;default:return f.setLastError(1)}var d=c.Ctor,p=-2===r?l.feature.Buffer.from(n.buffer,c.address,c.length):new d(n.buffer,c.address,c.length),v=l.addToCurrentScope(p);if(q.wasmMemoryViewTable.set(p,c),o){var h=ae(e,v.id,t,o,i,0);if(10===h){var y=f.tryCatch.extractException();throw f.clearLastError(),y}if(0!==h)return f.setLastError(h)}return u=v.id,new DataView(n.buffer).setUint32(s,u,!0),f.getReturnStatus()}catch(y){return f.tryCatch.setError(y),f.setLastError(10)}}function se(e,r,t,a){var o;if(t=null!=t?t:0,t>>>=0,r instanceof ArrayBuffer||q.isSharedArrayBuffer(r)){if(!(s=q.getArrayBufferPointer(r,!1).address))throw new Error("Unknown ArrayBuffer address");if("number"==typeof a&&-1!==a&&4294967295!==a||(a=r.byteLength-t),0===(a>>>=0))return r;o=new Uint8Array(r,t,a);var i=new Uint8Array(n.buffer);return e?i.set(o,s):o.set(i.subarray(s,s+a)),r}if(ArrayBuffer.isView(r)){var s,u=q.getViewPointer(r,!1),f=u.view;if(!(s=u.address))throw new Error("Unknown ArrayBuffer address");if("number"==typeof a&&-1!==a&&4294967295!==a||(a=f.byteLength-t),0===(a>>>=0))return f;o=new Uint8Array(f.buffer,f.byteOffset+t,a);i=new Uint8Array(n.buffer);return e?i.set(o,s):o.set(i.subarray(s,s+a)),f}throw new TypeError("emnapiSyncMemory expect ArrayBuffer or ArrayBufferView as first parameter")}function ue(e){var r,t=e instanceof ArrayBuffer,n=e instanceof DataView,a=ArrayBuffer.isView(e)&&!n;if(!(t||a||n||q.isSharedArrayBuffer(e)))throw new TypeError("emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter");return{address:(r=t?q.getArrayBufferPointer(e,!1):q.getViewPointer(e,!1)).address,ownership:r.ownership,runtimeAllocated:r.runtimeAllocated}}var fe=Object.freeze({__proto__:null,$emnapiGetMemoryAddress:ue,$emnapiSyncMemory:se,emnapi_create_memory_view:ie,emnapi_get_memory_address:function(e,r,t,a,o){var i,s,u,f;if(!e)return 1;var c=l.envStore.get(e);if(c.checkGCAccess(),!c.tryCatch.isEmpty())return c.setLastError(10);if(!c.canCallIntoJs())return c.setLastError(c.moduleApiVersion>=10?23:10);c.clearLastError();try{if(!r)return c.setLastError(1);if(!t&&!a&&!o)return c.setLastError(1);i=(f=ue(c.ctx.handleStore.get(r).value)).address;var d=new DataView(n.buffer);return t&&(t>>>=0,d.setUint32(t,i,!0)),a&&(a>>>=0,u=f.ownership,d.setInt32(a,u,!0)),o&&(o>>>=0,s=f.runtimeAllocated,d.setInt8(o,s,!0)),c.getReturnStatus()}catch(e){return c.tryCatch.setError(e),c.setLastError(10)}},emnapi_get_runtime_version:function(e,r){if(!e)return 1;var t,a=l.envStore.get(e);if(!r)return a.setLastError(1);try{t=l.getRuntimeVersions().version}catch(e){return a.setLastError(9)}var o=t.split(".").map(function(e){return Number(e)});r>>>=0;var i=new DataView(n.buffer);return i.setUint32(r,o[0],!0),i.setUint32(r+4,o[1],!0),i.setUint32(r+8,o[2],!0),a.clearLastError()},emnapi_is_node_binding_available:function(){return p?1:0},emnapi_is_support_bigint:function(){return l.feature.supportBigInt?1:0},emnapi_is_support_weakref:function(){return l.feature.supportFinalizer?1:0},emnapi_sync_memory:function(e,r,t,a,o){var i;if(!e)return 1;var s=l.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);t>>>=0,a>>>=0,o>>>=0;var u=new DataView(n.buffer),f=u.getUint32(t,!0),c=s.ctx.handleStore.get(f);if(!(c.isArrayBuffer()||c.isTypedArray()||c.isDataView()||q.isSharedArrayBuffer(c.value)))return s.setLastError(1);var d=se(Boolean(r),c.value,a,o);return c.value!==d&&(t>>>=0,i=s.ensureHandleId(d),u.setUint32(t,i,!0)),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}}});function ce(e,r,t){e>>>=0,e>>>=0;var a=t?new SharedArrayBuffer(e):new ArrayBuffer(e);if(r){r>>>=0;var o=q.getArrayBufferPointer(a,!0).address;new DataView(n.buffer).setUint32(r,o,!0)}return a}var le=Object.freeze({__proto__:null,napi_create_array:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var a=l.addToCurrentScope([]).id;return new DataView(n.buffer).setUint32(r,a,!0),t.clearLastError()},napi_create_array_with_length:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!t)return a.setLastError(1);r>>>=0,t>>>=0,r>>>=0;var o=l.addToCurrentScope(new Array(r)).id;return new DataView(n.buffer).setUint32(t,o,!0),a.clearLastError()},napi_create_arraybuffer:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!a)return i.setLastError(1);a>>>=0;var s=ce(r,t,!1);return o=l.addToCurrentScope(s).id,new DataView(n.buffer).setUint32(a,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_create_buffer:function(e,r,t,a){var i,s,u;if(!e)return 1;var f=l.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!a)return f.setLastError(1);var c=l.feature.Buffer;if(!c)throw l.createNotSupportBufferError("napi_create_buffer","");a>>>=0;var d=void 0;r>>>=0,r>>>=0;var p=new DataView(n.buffer);if(t&&0!==r){if(!(u=o(r)))throw new Error("Out of memory");u>>>=0,new Uint8Array(n.buffer).subarray(u,u+r).fill(0);var v=c.from(n.buffer,u,r),h={Ctor:c,address:u,length:r,ownership:q.registry?0:1,runtimeAllocated:1};q.wasmMemoryViewTable.set(v,h),null===(i=q.registry)||void 0===i||i.register(h,u),s=l.addToCurrentScope(v).id,p.setUint32(a,s,!0),t>>>=0,p.setUint32(t,u,!0)}else d=c.alloc(r),s=l.addToCurrentScope(d).id,p.setUint32(a,s,!0);return f.getReturnStatus()}catch(e){return f.tryCatch.setError(e),f.setLastError(10)}},napi_create_buffer_copy:function(e,r,t,a,o){var i;if(!e)return 1;var s=l.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!o)return s.setLastError(1);var u=l.feature.Buffer;if(!u)throw l.createNotSupportBufferError("napi_create_buffer_copy","");var f=ce(r,a,!1),c=u.from(f);return t>>>=0,r>>>=0,c.set(new Uint8Array(n.buffer).subarray(t,t+r)),i=l.addToCurrentScope(c).id,o>>>=0,new DataView(n.buffer).setUint32(o,i,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_create_dataview:function(e,r,t,a,o){if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!t)return i.setLastError(1);if(!o)return i.setLastError(1);r>>>=0,a>>>=0,r>>>=0,a>>>=0;var s=l.handleStore.get(t).value;return s instanceof ArrayBuffer||q.isSharedArrayBuffer(s)?function(e){if(r+a>e.byteLength){var t=new RangeError("byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in");throw t.code="ERR_NAPI_INVALID_DATAVIEW_ARGS",t}var s=new DataView(e,a,r);e===n.buffer&&(q.wasmMemoryViewTable.has(s)||q.wasmMemoryViewTable.set(s,{Ctor:DataView,address:a,length:r,ownership:1,runtimeAllocated:0})),o>>>=0;var u=l.addToCurrentScope(s).id;return new DataView(n.buffer).setUint32(o,u,!0),i.getReturnStatus()}(s):i.setLastError(1)}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_create_date:function(e,r,t){var a;if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{return t?(t>>>=0,a=l.addToCurrentScope(new Date(r)).id,new DataView(n.buffer).setUint32(t,a,!0),o.getReturnStatus()):o.setLastError(1)}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_create_external:function(e,r,t,a,o){var i;if(!e)return 1;var s=l.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!o)return s.setLastError(1);if(!l.feature.supportFinalizer&&t)throw l.createNotSupportWeakRefError("napi_create_external",'Parameter "finalize_cb" must be 0(NULL)');var u=l.getCurrentScope().addExternal(r);return t&&l.createReferenceWithFinalizer(s,u.id,0,0,t,r,a),o>>>=0,i=u.id,new DataView(n.buffer).setUint32(o,i,!0),s.clearLastError()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_create_external_arraybuffer:function(e,r,t,a,o,i){var s;if(!e)return 1;var u=l.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!i)return u.setLastError(1);if(t>>>=0,i>>>=0,t>>>=0,(r>>>=0)||(t=0),r+t>n.buffer.byteLength)throw new RangeError("Memory out of range");if(!l.feature.supportFinalizer&&a)throw l.createNotSupportWeakRefError("napi_create_external_arraybuffer",'Parameter "finalize_cb" must be 0(NULL)');var f=new ArrayBuffer(t);if(0===t)try{(new(0,l.feature.MessageChannel)).port1.postMessage(f,[f])}catch(e){}else new Uint8Array(f).set(new Uint8Array(n.buffer).subarray(r,r+t)),q.table.set(f,{address:r,ownership:1,runtimeAllocated:0});var c=l.addToCurrentScope(f);if(a){var d=ae(e,c.id,r,a,o,0);if(10===d){var p=u.tryCatch.extractException();throw u.clearLastError(),p}if(0!==d)return u.setLastError(d)}return s=c.id,new DataView(n.buffer).setUint32(i,s,!0),u.getReturnStatus()}catch(p){return u.tryCatch.setError(p),u.setLastError(10)}},napi_create_external_buffer:function(e,r,t,n,a,o){return ie(e,-2,t,r,n,a,o)},napi_create_object:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var a=l.addToCurrentScope({}).id;return new DataView(n.buffer).setUint32(r,a,!0),t.clearLastError()},napi_create_symbol:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!t)return a.setLastError(1);t>>>=0;var o=new DataView(n.buffer);if(r){var i=l.handleStore.get(r).value;if("string"!=typeof i)return a.setLastError(3);var s=l.addToCurrentScope(Symbol(i)).id;o.setUint32(t,s,!0)}else{var u=l.addToCurrentScope(Symbol()).id;o.setUint32(t,u,!0)}return a.clearLastError()},napi_create_typedarray:function(e,r,t,a,o,i){var s;if(!e)return 1;var u=l.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!a)return u.setLastError(1);if(!i)return u.setLastError(1);var f=l.handleStore.get(a);if(!f.isArrayBuffer())return u.setLastError(1);var c=f.value;o>>>=0,t>>>=0;var d=function(e,r,t,a,o,u){var f,c;if((o>>>=0,u>>>=0,t>1)&&o%t!==0)return(c=new RangeError("start offset of ".concat(null!==(f=r.name)&&void 0!==f?f:""," should be a multiple of ").concat(t))).code="ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT",e.tryCatch.setError(c),e.setLastError(9);if(u*t+o>a.byteLength)return(c=new RangeError("Invalid typed array length")).code="ERR_NAPI_INVALID_TYPEDARRAY_LENGTH",e.tryCatch.setError(c),e.setLastError(9);var d=new r(a,o,u);return a===n.buffer&&(q.wasmMemoryViewTable.has(d)||q.wasmMemoryViewTable.set(d,{Ctor:r,address:o,length:u,ownership:1,runtimeAllocated:0})),i>>>=0,s=l.addToCurrentScope(d).id,new DataView(n.buffer).setUint32(i,s,!0),e.getReturnStatus()};switch(r){case 0:return d(u,Int8Array,1,c,o,t);case 1:return d(u,Uint8Array,1,c,o,t);case 2:return d(u,Uint8ClampedArray,1,c,o,t);case 3:return d(u,Int16Array,2,c,o,t);case 4:return d(u,Uint16Array,2,c,o,t);case 5:return d(u,Int32Array,4,c,o,t);case 6:return d(u,Uint32Array,4,c,o,t);case 7:return d(u,Float32Array,4,c,o,t);case 8:return d(u,Float64Array,8,c,o,t);case 9:return d(u,BigInt64Array,8,c,o,t);case 10:return d(u,BigUint64Array,8,c,o,t);case 11:return"function"!=typeof Float16Array?u.setLastError(1):d(u,Float16Array,2,c,o,t);default:return u.setLastError(1)}}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}},node_api_create_buffer_from_arraybuffer:function(e,r,t,a,o){var i;if(!e)return 1;var s=l.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!o)return s.setLastError(1);t>>>=0,a>>>=0,t>>>=0,a>>>=0;var u=l.handleStore.get(r);if(!u.isArrayBuffer())return s.setLastError(1);var f=u.value;if(a+t>f.byteLength){var c=new RangeError("The byte offset + length is out of range");throw c.code="ERR_OUT_OF_RANGE",c}var d=l.feature.Buffer;if(!d)throw l.createNotSupportBufferError("node_api_create_buffer_from_arraybuffer","");var p=d.from(f,t,a);return f===n.buffer&&(q.wasmMemoryViewTable.has(p)||q.wasmMemoryViewTable.set(p,{Ctor:d,address:t,length:a,ownership:1,runtimeAllocated:0})),o>>>=0,i=l.addToCurrentScope(p).id,new DataView(n.buffer).setUint32(o,i,!0),s.getReturnStatus()}catch(c){return s.tryCatch.setError(c),s.setLastError(10)}},node_api_create_object_with_properties:function(e,r,t,a,o,i){if(!e)return 1;var s=l.envStore.get(e);if(s.checkGCAccess(),!i)return s.setLastError(1);if(o>>>=0,(o>>>=0)>0){if(!t)return s.setLastError(1);if(!a)return s.setLastError(1)}var u=r?l.handleStore.get(r).value:null,f={};t>>>=0,a>>>=0;for(var c,d=new DataView(n.buffer),p=0;p>>=0,d.setUint32(i,h,!0),s.clearLastError()},node_api_create_sharedarraybuffer:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!a)return i.setLastError(1);a>>>=0;var s=ce(r,t,!0);return o=l.addToCurrentScope(s).id,new DataView(n.buffer).setUint32(a,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},node_api_symbol_for:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!a)return o.setLastError(1);r>>>=0,a>>>=0;var i=-1===(t>>>=0)||4294967295===t,s=t>>>0;if(0!==t&&!r)return o.setLastError(1);if(!(i||s<=2147483647))return o.setLastError(1);var u=J.UTF8ToString(r,t),f=l.addToCurrentScope(Symbol.for(u)).id;return new DataView(n.buffer).setUint32(a,f,!0),o.clearLastError()}});var de=Object.freeze({__proto__:null,napi_get_boolean:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!t)return a.setLastError(1);t>>>=0;var o=0===r?3:4;return new DataView(n.buffer).setUint32(t,o,!0),a.clearLastError()},napi_get_global:function(e,r){if(!e)return 1;var t=l.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(n.buffer).setUint32(r,5,!0),t.clearLastError()):t.setLastError(1)},napi_get_null:function(e,r){if(!e)return 1;var t=l.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(n.buffer).setUint32(r,2,!0),t.clearLastError()):t.setLastError(1)},napi_get_undefined:function(e,r){if(!e)return 1;var t=l.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(n.buffer).setUint32(r,1,!0),t.clearLastError()):t.setLastError(1)}});var pe=Object.freeze({__proto__:null,napi_get_instance_data:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var a=t.getInstanceData();return new DataView(n.buffer).setUint32(r,a,!0),t.clearLastError()},napi_set_instance_data:function(e,r,t,n){if(!e)return 1;var a=l.envStore.get(e);return r>>>=0,t>>>=0,n>>>=0,a.setInstanceData(r,t,n),a.clearLastError()}});var ve=Object.freeze({__proto__:null,_emnapi_get_last_error_info:function(e,r,t,a){r>>>=0,t>>>=0,a>>>=0;var o=l.envStore.get(e).lastError,i=o.errorCode,s=o.engineErrorCode>>>0,u=o.engineReserved;u>>>=0;var f=new DataView(n.buffer);f.setInt32(r,i,!0),f.setUint32(t,s,!0),f.setUint32(a,u,!0)},napi_create_error:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!a)return o.setLastError(1);var i=l.handleStore.get(t).value;if("string"!=typeof i)return o.setLastError(3);var s=new Error(i);if(r){var u=l.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);s.code=u}a>>>=0;var f=l.addToCurrentScope(s).id;return new DataView(n.buffer).setUint32(a,f,!0),o.clearLastError()},napi_create_range_error:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!a)return o.setLastError(1);var i=l.handleStore.get(t).value;if("string"!=typeof i)return o.setLastError(3);var s=new RangeError(i);if(r){var u=l.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);s.code=u}a>>>=0;var f=l.addToCurrentScope(s).id;return new DataView(n.buffer).setUint32(a,f,!0),o.clearLastError()},napi_create_type_error:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!a)return o.setLastError(1);var i=l.handleStore.get(t).value;if("string"!=typeof i)return o.setLastError(3);var s=new TypeError(i);if(r){var u=l.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);s.code=u}a>>>=0;var f=l.addToCurrentScope(s).id;return new DataView(n.buffer).setUint32(a,f,!0),o.clearLastError()},napi_fatal_error:function(e,r,t,n){e>>>=0,r>>>=0,t>>>=0,n>>>=0;var a=J.UTF8ToString(e,r),o=J.UTF8ToString(t,n);p?p.napi.fatalError(a,o):c("FATAL ERROR: "+a+" "+o)},napi_fatal_exception:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=t.ctx.handleStore.get(r);try{t.triggerFatalException(n.value)}catch(e){return t.setLastError(9)}return t.clearLastError()}catch(r){return t.tryCatch.setError(r),t.setLastError(10)}},napi_get_and_clear_last_exception:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var a=new DataView(n.buffer);if(!t.tryCatch.hasCaught())return a.setUint32(r,1,!0),t.clearLastError();var o=t.tryCatch.exception(),i=t.ensureHandleId(o);return a.setUint32(r,i,!0),t.tryCatch.reset(),t.clearLastError()},napi_is_exception_pending:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var a=t.tryCatch.hasCaught();return r>>>=0,new DataView(n.buffer).setInt8(r,a?1:0,!0),t.clearLastError()},napi_throw:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{return r?(t.tryCatch.setError(l.handleStore.get(r).value),t.clearLastError()):t.setLastError(1)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_throw_error:function(e,r,t){if(!e)return 1;var n=l.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new Error(J.UTF8ToString(t,-1));return r&&(a.code=J.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_throw_range_error:function(e,r,t){if(!e)return 1;var n=l.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new RangeError(J.UTF8ToString(t,-1));return r&&(a.code=J.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_throw_type_error:function(e,r,t){if(!e)return 1;var n=l.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new TypeError(J.UTF8ToString(t,-1));return r&&(a.code=J.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},node_api_create_syntax_error:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!a)return o.setLastError(1);var i=l.handleStore.get(t).value;if("string"!=typeof i)return o.setLastError(3);var s=new SyntaxError(i);if(r){var u=l.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);s.code=u}a>>>=0;var f=l.addToCurrentScope(s).id;return new DataView(n.buffer).setUint32(a,f,!0),o.clearLastError()},node_api_throw_syntax_error:function(e,r,t){if(!e)return 1;var n=l.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new SyntaxError(J.UTF8ToString(t,-1));return r&&(a.code=J.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function he(e,r,t,a,o,i){t>>>=0;var s=l.envStore.get(e),u=ee(s,r,t,a,o);if(0!==u.status)return s.setLastError(u.status);var f=u.f;i>>>=0;var c=l.addToCurrentScope(f).id;return new DataView(n.buffer).setUint32(i,c,!0),s.getReturnStatus()}var ye=Object.freeze({__proto__:null,_emnapi_create_function:he,napi_call_function:function(e,r,t,a,o,i){var s,u=0;if(!e)return 1;var f=l.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!r)return f.setLastError(1);if(a>>>=0,o>>>=0,i>>>=0,(a>>>=0)>0&&!o)return f.setLastError(1);var c=l.handleStore.get(r).value;if(!t)return f.setLastError(1);var d=l.handleStore.get(t).value;if("function"!=typeof d)return f.setLastError(1);for(var p=[],v=new DataView(n.buffer);u=10?23:10);i.clearLastError();try{return o&&n?he(e,r,t,n,a,o):i.setLastError(1)}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_get_cb_info:function(e,r,t,a,o,i){if(!e)return 1;var s=l.envStore.get(e);if(!r)return s.setLastError(1);var u=l.scopeStore.get(r).callbackInfo;t>>>=0,a>>>=0;var f=new DataView(n.buffer);if(a){if(!t)return s.setLastError(1);var c=f.getUint32(t,!0);c>>>=0;for(var d=u.args.length,p=c>>=0;var y=s.ensureHandleId(u.thiz);f.setUint32(o,y,!0)}return i&&(i>>>=0,f.setUint32(i,u.data,!0)),s.clearLastError()},napi_get_new_target:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.scopeStore.get(r).callbackInfo,i=o.thiz,s=o.fn,u=null==i||null==i.constructor?0:i instanceof s?a.ensureHandleId(i.constructor):0;return new DataView(n.buffer).setUint32(t,u,!0),a.clearLastError()},napi_new_instance:function(e,r,t,a,o){var i,s;if(!e)return 1;var u=l.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!r)return u.setLastError(1);if(t>>>=0,a>>>=0,o>>>=0,(t>>>=0)>0&&!a)return u.setLastError(1);if(!o)return u.setLastError(1);var f=l.handleStore.get(r).value;if("function"!=typeof f)return u.setLastError(1);var c=void 0,d=new DataView(n.buffer);if(l.feature.supportReflect){var p=Array(t);for(i=0;i>>=0,t>>>=0,l.addCleanupHook(n,r,t),0):n.setLastError(1)},napi_close_escapable_handle_scope:function(e,r){if(!e)return 1;var t=l.envStore.get(e);return t.checkGCAccess(),r?0===t.openHandleScopes?13:(l.closeScope(t),t.clearLastError()):t.setLastError(1)},napi_close_handle_scope:function(e,r){if(!e)return 1;var t=l.envStore.get(e);return t.checkGCAccess(),r?0===t.openHandleScopes?13:(l.closeScope(t),t.clearLastError()):t.setLastError(1)},napi_create_reference:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);if(!a)return o.setLastError(1);var i=l.handleStore.get(r);if(o.moduleApiVersion<10&&!(i.isObject()||i.isFunction()||i.isSymbol()))return o.setLastError(1);var s=l.createReference(o,i.id,t>>>0,1);return a>>>=0,new DataView(n.buffer).setUint32(a,s.id,!0),o.clearLastError()},napi_delete_reference:function(e,r){if(!e)return 1;var t=l.envStore.get(e);return r?(l.refStore.get(r).dispose(),t.clearLastError()):t.setLastError(1)},napi_escape_handle:function(e,r,t,a){if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!a)return o.setLastError(1);var i=l.scopeStore.get(r);if(!i.escapeCalled()){t>>>=0,a>>>=0;var s=i.escape(t),u=s?s.id:0;return new DataView(n.buffer).setUint32(a,u,!0),o.clearLastError()}return o.setLastError(12)},napi_get_reference_value:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.refStore.get(r).get(a);return t>>>=0,new DataView(n.buffer).setUint32(t,o,!0),a.clearLastError()},napi_open_escapable_handle_scope:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var a=l.openScope(t);return r>>>=0,new DataView(n.buffer).setUint32(r,a.id,!0),t.clearLastError()},napi_open_handle_scope:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var a=l.openScope(t);return r>>>=0,new DataView(n.buffer).setUint32(r,a.id,!0),t.clearLastError()},napi_reference_ref:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);var o=l.refStore.get(r).ref();return t&&(t>>>=0,new DataView(n.buffer).setUint32(t,o,!0)),a.clearLastError()},napi_reference_unref:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);var o=l.refStore.get(r);if(0===o.refcount())return a.setLastError(9);var i=o.unref();return t&&(t>>>=0,new DataView(n.buffer).setUint32(t,i,!0)),a.clearLastError()},napi_remove_env_cleanup_hook:function(e,r,t){if(!e)return 1;var n=l.envStore.get(e);return r?(r>>>=0,t>>>=0,l.removeCleanupHook(n,r,t),0):n.setLastError(1)}});var _e=Object.freeze({__proto__:null,_emnapi_get_filename:function(e,r,t){var n=l.envStore.get(e).filename;return r?J.stringToUTF8(n,r,t):J.lengthBytesUTF8(n)}});var Ee=Object.freeze({__proto__:null,napi_create_promise:function(e,r,t){var a,o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(1);if(!t)return i.setLastError(1);var s=new DataView(n.buffer),u=new Promise(function(e,t){var n=l.createDeferred({resolve:e,reject:t});a=n.id,r>>>=0,s.setUint32(r,a,!0)});return t>>>=0,o=l.addToCurrentScope(u).id,s.setUint32(t,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_is_promise:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.handleStore.get(r).isPromise()?1:0;return new DataView(n.buffer).setInt8(t,o,!0),a.clearLastError()},napi_reject_deferred:function(e,r,t){if(!e)return 1;var n=l.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{return r&&t?(l.deferredStore.get(r).reject(l.handleStore.get(t).value),n.getReturnStatus()):n.setLastError(1)}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_resolve_deferred:function(e,r,t){if(!e)return 1;var n=l.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{return r&&t?(l.deferredStore.get(r).resolve(l.handleStore.get(t).value),n.getReturnStatus()):n.setLastError(1)}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function we(e,r,t,a,o,i){var s;if(!e)return 1;var u=l.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!i)return u.setLastError(1);if(!r)return u.setLastError(1);var f=l.handleStore.get(r);if(null==f.value)throw new TypeError("Cannot convert undefined or null to object");var c=void 0;try{c=f.isObject()||f.isFunction()?f.value:Object(f.value)}catch(e){return u.setLastError(2)}if(0!==t&&1!==t)return u.setLastError(1);if(0!==o&&1!==o)return u.setLastError(1);var d=[],p=void 0,v=void 0,h=void 0,y=!0,g=/^(0|[1-9][0-9]*)$/;do{for(p=Object.getOwnPropertyNames(c),v=Object.getOwnPropertySymbols(c),h=0;h>>=0,s=l.addToCurrentScope(_).id,new DataView(n.buffer).setUint32(i,s,!0),u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}}var me=Object.freeze({__proto__:null,napi_define_properties:function(e,r,t,a){var o,i;if(!e)return 1;var s=l.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(a>>>=0,t>>>=0,(t>>>=0)>0&&!a)return s.setLastError(1);if(!r)return s.setLastError(1);var u=l.handleStore.get(r),f=u.value;if(!u.isObject()&&!u.isFunction())return s.setLastError(2);for(var c=void 0,d=new DataView(n.buffer),p=0;p>>=0;var w=d.getUint32(o+28,!0);if(v)c=J.UTF8ToString(v,-1);else{if(!h)return s.setLastError(4);if("string"!=typeof(c=l.handleStore.get(h).value)&&"symbol"!=typeof c)return s.setLastError(4)}re(s,f,c,y,g,_,E,i,w)}return s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_delete_element:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(1);var s=l.handleStore.get(r);if(!s.isObject()&&!s.isFunction())return i.setLastError(2);if(l.feature.supportReflect)o=Reflect.deleteProperty(s.value,t>>>0);else try{o=delete s.value[t>>>0]}catch(e){o=!1}if(a)a>>>=0,new DataView(n.buffer).setInt8(a,o?1:0,!0);return i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_delete_property:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!t)return i.setLastError(1);if(!r)return i.setLastError(1);var s=l.handleStore.get(r);if(!s.isObject()&&!s.isFunction())return i.setLastError(2);var u=l.handleStore.get(t).value;if(l.feature.supportReflect)o=Reflect.deleteProperty(s.value,u);else try{o=delete s.value[u]}catch(e){o=!1}if(a)a>>>=0,new DataView(n.buffer).setInt8(a,o?1:0,!0);return i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_get_all_property_names:we,napi_get_element:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!a)return i.setLastError(1);if(!r)return i.setLastError(1);var s=l.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=s.isObject()||s.isFunction()?s.value:Object(s.value)}catch(e){return i.setLastError(2)}return a>>>=0,o=i.ensureHandleId(u[t>>>0]),new DataView(n.buffer).setUint32(a,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_get_named_property:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!a)return i.setLastError(1);if(!r)return i.setLastError(1);if(!t)return i.setLastError(1);var s=l.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=s.isObject()||s.isFunction()?s.value:Object(s.value)}catch(e){return i.setLastError(2)}return t>>>=0,a>>>=0,o=i.ensureHandleId(u[J.UTF8ToString(t,-1)]),new DataView(n.buffer).setUint32(a,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_get_property:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!t)return i.setLastError(1);if(!a)return i.setLastError(1);if(!r)return i.setLastError(1);var s=l.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=s.isObject()||s.isFunction()?s.value:Object(s.value)}catch(e){return i.setLastError(2)}return a>>>=0,o=i.ensureHandleId(u[l.handleStore.get(t).value]),new DataView(n.buffer).setUint32(a,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_get_property_names:function(e,r,t){return we(e,r,0,18,1,t)},napi_has_element:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!a)return i.setLastError(1);if(!r)return i.setLastError(1);var s=l.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=s.isObject()||s.isFunction()?s.value:Object(s.value)}catch(e){return i.setLastError(2)}return a>>>=0,o=t>>>0 in u?1:0,new DataView(n.buffer).setInt8(a,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_has_named_property:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!a)return i.setLastError(1);if(!r)return i.setLastError(1);if(!t)return i.setLastError(1);var s=l.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=s.isObject()||s.isFunction()?s.value:Object(s.value)}catch(e){return i.setLastError(2)}return t>>>=0,a>>>=0,o=J.UTF8ToString(t,-1)in u,new DataView(n.buffer).setInt8(a,o?1:0,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_has_own_property:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!t)return i.setLastError(1);if(!a)return i.setLastError(1);if(!r)return i.setLastError(1);var s=l.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=s.isObject()||s.isFunction()?s.value:Object(s.value)}catch(e){return i.setLastError(2)}var f=l.handleStore.get(t).value;return"string"!=typeof f&&"symbol"!=typeof f?i.setLastError(4):(o=Object.prototype.hasOwnProperty.call(u,l.handleStore.get(t).value),a>>>=0,new DataView(n.buffer).setInt8(a,o?1:0,!0),i.getReturnStatus())}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_has_property:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!t)return i.setLastError(1);if(!a)return i.setLastError(1);if(!r)return i.setLastError(1);var s=l.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=s.isObject()||s.isFunction()?s.value:Object(s.value)}catch(e){return i.setLastError(2)}return a>>>=0,o=l.handleStore.get(t).value in u?1:0,new DataView(n.buffer).setInt8(a,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_object_freeze:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=l.handleStore.get(r),a=n.value;return n.isObject()||n.isFunction()?(Object.freeze(a),t.getReturnStatus()):t.setLastError(2)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_object_seal:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=l.handleStore.get(r),a=n.value;return n.isObject()||n.isFunction()?(Object.seal(a),t.getReturnStatus()):t.setLastError(2)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_set_element:function(e,r,t,n){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=l.handleStore.get(r);return o.isObject()||o.isFunction()?(o.value[t>>>0]=l.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_set_named_property:function(e,r,t,n){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=l.handleStore.get(r);return o.isObject()||o.isFunction()?t?(t>>>=0,l.handleStore.get(r).value[J.UTF8ToString(t,-1)]=l.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(1):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_set_property:function(e,r,t,n){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!t)return a.setLastError(1);if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=l.handleStore.get(r);return o.isObject()||o.isFunction()?(o.value[l.handleStore.get(t).value]=l.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}}});var Le=Object.freeze({__proto__:null,napi_run_script:function(e,r,t){var a,o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(1);if(!t)return i.setLastError(1);var s=l.handleStore.get(r);if(!s.isString())return i.setLastError(3);var u=l.handleStore.get(5).value.eval(s.value);t>>>=0,o=i.ensureHandleId(u),new DataView(n.buffer).setUint32(t,o,!0),a=i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}return a}});var be=Object.freeze({__proto__:null,napi_coerce_to_bool:function(e,r,t){var a;if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var i=l.handleStore.get(r);return t>>>=0,a=i.value?4:3,new DataView(n.buffer).setUint32(t,a,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_number:function(e,r,t){var a;if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var i=l.handleStore.get(r);if(i.isBigInt())throw new TypeError("Cannot convert a BigInt value to a number");return t>>>=0,a=l.addToCurrentScope(Number(i.value)).id,new DataView(n.buffer).setUint32(t,a,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_object:function(e,r,t){var a;if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var i=l.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");return t>>>=0,a=o.ensureHandleId(Object(i.value)),new DataView(n.buffer).setUint32(t,a,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_string:function(e,r,t){var a;if(!e)return 1;var o=l.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var i=l.handleStore.get(r);if(i.isSymbol())throw new TypeError("Cannot convert a Symbol value to a string");return t>>>=0,a=l.addToCurrentScope(String(i.value)).id,new DataView(n.buffer).setUint32(t,a,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_detach_arraybuffer:function(e,r){if(!e)return 1;var t=l.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=l.handleStore.get(r).value;if(!(n instanceof ArrayBuffer))return"function"==typeof SharedArrayBuffer&&n instanceof SharedArrayBuffer?t.setLastError(20):t.setLastError(19);try{(new(0,l.feature.MessageChannel)).port1.postMessage(n,[n])}catch(e){return t.setLastError(9)}return t.clearLastError()},napi_instanceof:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(1);if(!a)return i.setLastError(1);if(!t)return i.setLastError(1);a>>>=0;var s=new DataView(n.buffer);s.setInt8(a,0,!0);var u=l.handleStore.get(t);return u.isFunction()?(o=l.handleStore.get(r).value instanceof u.value?1:0,s.setInt8(a,o,!0),i.getReturnStatus()):i.setLastError(5)}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_is_array:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.handleStore.get(r).isArray()?1:0;return new DataView(n.buffer).setInt8(t,o,!0),a.clearLastError()},napi_is_arraybuffer:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.handleStore.get(r).isArrayBuffer()?1:0;return new DataView(n.buffer).setInt8(t,o,!0),a.clearLastError()},napi_is_buffer:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.handleStore.get(r).isBuffer(l.feature.Buffer)?1:0;return new DataView(n.buffer).setInt8(t,o,!0),a.clearLastError()},napi_is_dataview:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.handleStore.get(r).isDataView()?1:0;return new DataView(n.buffer).setInt8(t,o,!0),a.clearLastError()},napi_is_date:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.handleStore.get(r).isDate()?1:0;return new DataView(n.buffer).setInt8(t,o,!0),a.clearLastError()},napi_is_detached_arraybuffer:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);t>>>=0;var i=new DataView(n.buffer);if(o.isArrayBuffer()&&0===o.value.byteLength)try{new Uint8Array(o.value)}catch(e){return i.setInt8(t,1,!0),a.getReturnStatus()}return i.setInt8(t,0,!0),a.getReturnStatus()}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_is_error:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.handleStore.get(r).value instanceof Error?1:0;return new DataView(n.buffer).setInt8(t,o,!0),a.clearLastError()},napi_is_typedarray:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);t>>>=0;var o=l.handleStore.get(r).isTypedArray()?1:0;return new DataView(n.buffer).setInt8(t,o,!0),a.clearLastError()},napi_strict_equals:function(e,r,t,a){var o;if(!e)return 1;var i=l.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(1);if(!t)return i.setLastError(1);if(!a)return i.setLastError(1);var s=l.handleStore.get(r).value,u=l.handleStore.get(t).value;return a>>>=0,o=s===u?1:0,new DataView(n.buffer).setInt8(a,o,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_typeof:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o,i=l.handleStore.get(r);if(t>>>=0,i.isNumber())o=3;else if(i.isBigInt())o=9;else if(i.isString())o=4;else if(i.isFunction())o=7;else if(i.isExternal())o=8;else if(i.isObject())o=6;else if(i.isBoolean())o=2;else if(i.isUndefined())o=0;else if(i.isSymbol())o=5;else{if(!i.isNull())return a.setLastError(1);o=1}return new DataView(n.buffer).setInt32(t,o,!0),a.clearLastError()},node_api_is_sharedarraybuffer:function(e,r,t){if(!e)return 1;var a=l.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);if(!t)return a.setLastError(1);var o=l.handleStore.get(r);t>>>=0;var i="function"==typeof SharedArrayBuffer&&o.value instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(o.value)?1:0;return new DataView(n.buffer).setInt8(t,i,!0),a.clearLastError()}});var Se=Object.freeze({__proto__:null,napi_get_version:function(e,r){if(!e)return 1;var t=l.envStore.get(e);return r?(new DataView(n.buffer).setUint32(r,10,!0),t.clearLastError()):t.setLastError(1)}});function Ae(e){for(var r=Object.keys(e),t=0;t>>=0,u>>>=0,e>>>=0,f>>>=0,c>>>=0,d>>>=0,p>>>=0,s>>>=0,0===(u>>>=0))return h.setLastError(1);if(!v)return h.setLastError(1);var y,g=0;if(r>>>=0){if("function"!=typeof l.handleStore.get(r).value)return h.setLastError(1);g=l.createReference(h,r,1,1).id}else if(!p)return h.setLastError(1);if(t){if(null==(y=l.handleStore.get(t).value))return h.setLastError(2);y=Object(y)}else y={};var _=h.ensureHandleId(y),E=l.handleStore.get(a).value;if("symbol"==typeof E)return h.setLastError(3);E=String(E);var w=h.ensureHandleId(E),m=R.offset.__size__,L=o(m);if(!L)return h.setLastError(9);L>>>=0,new Uint8Array(n.buffer).subarray(L,L+m).fill(0);var b=l.createReference(h,_,1,1),S=b.id,A=new DataView(n.buffer);return A.setUint32(L+R.offset.resource,S,!0),R.initQueue(L)?(M(_,w,-1,L+R.offset.async_id),A.setInt8(L+R.offset.is_some,1,!0),A.setUint32(L+R.offset.thread_count,u,!0),A.setUint32(L+R.offset.context,d,!0),A.setUint32(L+R.offset.max_queue_size,s,!0),A.setUint32(L+R.offset.ref,g,!0),A.setUint32(L+R.offset.env,e,!0),A.setUint32(L+R.offset.finalize_data,f,!0),A.setUint32(L+R.offset.finalize_cb,c,!0),A.setUint32(L+R.offset.call_js_cb,p,!0),l.addCleanupHook(h,R.cleanup,L),R._liveSet.add(L),h.ref(),l.increaseWaitingRequestCounter(),A.setUint32(L+R.offset.async_ref,1,!0),v>>>=0,A.setUint32(v,L,!0),h.clearLastError()):(i(L),b.dispose(),h.setLastError(9))},h.imports.napi.napi_get_threadsafe_function_context=function(e,r){if(!e||!r)return c(),1;e>>>=0,r>>>=0;var t=R.getContext(e);return new DataView(n.buffer).setUint32(r,t,!0),0},h.imports.napi.napi_call_threadsafe_function=function(e,r,t){return e?(e>>>=0,r>>>=0,R.push(e,r,t)):(c(),1)},h.imports.napi.napi_acquire_threadsafe_function=function(e){return e?(e>>>=0,R.getMutex(e).execute(function(){return 0===R.getState(e)?(R.addThreadCount(e),0):16})):(c(),1)},h.imports.napi.napi_release_threadsafe_function=function(e,r){if(!e)return c(),1;e>>>=0;var t=R.getMutex(e),n=R.getCond(e),a=!1,o=t.execute(function(){return 0===R.getThreadCount(e)?1:(R.subThreadCount(e),0!==R.getThreadCount(e)&&1!==r||0===R.getState(e)&&(1===r&&R.setState(e,1),1===R.getState(e)&&R.getMaxQueueSize(e)>0&&n.signal(),R.send(e)),2!==R.getState(e)||0!==R.getThreadCount(e)||(a=!0),0)});return a&&R.destroy(e),o},h.imports.napi.napi_unref_threadsafe_function=function(e,r){if(!r)return c(),1;var t=(r>>>=0)+R.offset.async_ref>>>2,a=new Uint32Array(n.buffer),o=Atomics.load(a,t);return o>0&&(Atomics.store(a,t,o-1),1===o&&l.decreaseWaitingRequestCounter()),0},h.imports.napi.napi_ref_threadsafe_function=function(e,r){if(!r)return c(),1;var t=(r>>>=0)+R.offset.async_ref>>>2,a=new Uint32Array(n.buffer),o=Atomics.load(a,t);return o||l.increaseWaitingRequestCounter(),Atomics.store(a,t,o+1),0},h}();return t}function m(e,r,t,n){var a,o=(n=null!=n?n:{}).getMemory,i=n.getTable,s=n.beforeInit;if(null!=o&&"function"!=typeof o)throw new TypeError("options.getMemory is not a function");if(null!=i&&"function"!=typeof i)throw new TypeError("options.getTable is not a function");if(null!=s&&"function"!=typeof s)throw new TypeError("options.beforeInit is not a function");var u="object"==typeof r&&null!==r;if(u){if(r.loaded)throw new Error("napiModule has already loaded");a=r}else a=w(n);var f,c=n.wasi,l={env:a.imports.env,napi:a.imports.napi,emnapi:a.imports.emnapi};c&&(f=new y(a.childThread?{wasi:c,childThread:!0,postMessage:a.postMessage}:{wasi:c,threadManager:a.PThread,waitThreadStart:a.waitThreadStart}),Object.assign(l,"function"==typeof c.getImportObject?c.getImportObject():{wasi_snapshot_preview1:c.wasiImport}),Object.assign(l,f.getImportObject()));var d=n.overwriteImports;if("function"==typeof d){var p=d(l);"object"==typeof p&&null!==p&&(l=p)}return e(t,l,function(r,t){if(r)throw r;var n=t.instance,d=n,p=n.exports,v="memory"in p,h="memory"in l.env,y=o?o(p):v?p.memory:h?l.env.memory:void 0;if(!y)throw new Error("memory is neither exported nor imported");var g=i?i(p):p.__indirect_function_table;if(c&&!v){var _=Object.create(null);Object.assign(_,p,{memory:y}),d={exports:_}}var E=t.module;c?d=f.initialize(d,E,y):a.PThread.setup(E,y);var w=function(){s&&s({instance:n,module:E}),a.init({instance:d,module:E,memory:y,table:g});var e={instance:n,module:E,usedInstance:d};return u||(e.napiModule=a),e};if(a.PThread.shouldPreloadWorkers()){var m=a.PThread.loadWasmModuleToAllWorkers();if(e===L)return m.then(w);throw new Error("Synchronous loading is not supported with worker pool (reuseWorker.size > 0)")}return w()})}function L(e,r,t){return n(e,r).then(function(e){return t(null,e)},function(e){return t(e)})}function b(e,n,a){var o;try{o=function(e,n){if(!e)throw new TypeError("Invalid wasm source");var a;if(t(n),n=null!=n?n:{},e instanceof ArrayBuffer||ArrayBuffer.isView(e))a=new r.Module(e);else{if(!(e instanceof WebAssembly.Module))throw new TypeError("Invalid wasm source");a=e}return{instance:new r.Instance(a,n),module:a}}(e,n)}catch(e){return a(e)}return a(null,o)}var S=function(e,r){return S=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])},S(e,r)};var A=function(){return A=Object.assign||function(e){for(var r,t=1,n=arguments.length;to(e,r))}catch(e){}if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return n.instantiate(e,r);if(e instanceof n.Module)return n.instantiate(e,r).then(r=>({instance:r,module:e}));if("undefined"!=typeof Response&&e instanceof Response)return e.arrayBuffer().then(e=>n.instantiate(e,r));const t="string"==typeof e;if(t||"undefined"!=typeof URL&&e instanceof URL){if(t&&"undefined"!=typeof wx&&"undefined"!=typeof __wxConfig)return n.instantiate(e,r);if("function"!=typeof fetch)throw new TypeError("wasm source can not be a string or URL in this environment");if("function"!=typeof n.instantiateStreaming)return o(fetch(e),r);try{return n.instantiateStreaming(fetch(e),r).catch(()=>o(fetch(e),r))}catch(t){return o(fetch(e),r)}}throw new TypeError("Invalid wasm source")}function s(r){var t=function(){var t,a,o,s,i,u="object"==typeof process&&null!==process&&"object"==typeof process.versions&&null!==process.versions&&"string"==typeof process.versions.node,f=Boolean(r.childThread),c="number"==typeof r.waitThreadStart?r.waitThreadStart:Boolean(r.waitThreadStart);function l(e){if("function"==typeof n.RuntimeError)throw new n.RuntimeError(e);throw Error(e)}var d,v,p,g={imports:{env:{},napi:{},emnapi:{}},exports:{},emnapi:{},loaded:!1,filename:"",childThread:f,initWorker:void 0,waitThreadStart:c,PThread:void 0,init:function(e){if(g.loaded)return g.exports;if(!e)throw new TypeError("Invalid napi init options");var r=e.instance;if(!(null==r?void 0:r.exports))throw new TypeError("Invalid wasm instance");t=r;var u=r.exports,f=e.module,c=e.memory||u.memory,p=e.table||u.__indirect_function_table;if(!(f instanceof n.Module))throw new TypeError("Invalid wasm module");if(!(c instanceof n.Memory))throw new TypeError("Invalid wasm memory");if(!(p instanceof n.Table))throw new TypeError("Invalid wasm table");if(a=c,o=p,"function"!=typeof u.malloc)throw new TypeError("malloc is not exported");if("function"!=typeof u.free)throw new TypeError("free is not exported");if(s=u.malloc,i=u.free,!g.childThread){var y=8,h=r.exports.node_api_module_get_api_version_v1;"function"==typeof h&&(y=h());var _=g.envObject||(g.envObject=d.createEnv(g.filename,y,function(e){return o.get(e)},function(e){return o.get(e)},l,v)),E=d.openScope(_);try{_.callIntoModule(function(e){var t=g.exports,n=E.add(t),a=(0,r.exports.napi_register_wasm_v1)(e.id,n.id);g.exports=a?d.handleStore.get(a).value:t})}catch(e){if("unwind"!==e)throw e}finally{d.closeScope(_,E)}return g.loaded=!0,delete g.envObject,g.exports}}},y=void 0;if(f){d=null==r?void 0:r.context;var h="function"==typeof r.postMessage?r.postMessage:"function"==typeof postMessage?postMessage:void 0;if("function"!=typeof h)throw new TypeError("No postMessage found");g.postMessage=h}else{var _=r.context;if("object"!=typeof _||null===_)throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");d=_}if("string"==typeof r.filename&&(g.filename=r.filename),"function"==typeof r.onCreateWorker&&(y=r.onCreateWorker),"function"==typeof r.print?r.print:console.log.bind(console),p="function"==typeof r.printErr?r.printErr:console.warn.bind(console),"nodeBinding"in r){var E=r.nodeBinding;if("object"!=typeof E||null===E)throw new TypeError("Invalid `options.nodeBinding`. Use @emnapi/node-binding package");v=E}var w=0;if("asyncWorkPoolSize"in r){if("number"!=typeof r.asyncWorkPoolSize)throw new TypeError("options.asyncWorkPoolSize must be a integer");(w=r.asyncWorkPoolSize|0)>1024?w=1024:w<-1024&&(w=-1024)}var L=!f&&w<=0;function m(){return Math.abs(w)}function b(e){if(!e)return!1;if(e._emnapiSendListener)return!0;var r=function(e){var r=(u?e:e.data).__emnapi__;if(r&&"async-send"===r.type)if(f){(0,g.postMessage)({__emnapi__:r})}else{var t=r.payload.callback;o.get(t)(r.payload.data)}};return e._emnapiSendListener={handler:r,dispose:function(){u?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiSendListener}},u?e.on("message",r):e.addEventListener("message",r,!1),!0}g.imports.env._emnapi_async_work_pool_size=m,g.emnapi.addSendListener=b;var S=new e(f?{printErr:p,childThread:!0}:{printErr:p,beforeLoad:function(e){b(e)},reuseWorker:r.reuseWorker,onCreateWorker:y});function A(e,r){d.feature.setImmediate(function(){o.get(e)(r)})}function C(e,r){Promise.resolve().then(function(){o.get(e)(r)})}function I(e,r){var t,n=[r>>>0,(t=r,+Math.abs(t)>=1?t>0?(0|Math.min(+Math.floor(t/4294967296),4294967295))>>>0:~~+Math.ceil((t-+(~~t>>>0))/4294967296)>>>0:0)],o=new DataView(a.buffer);o.setInt32(e,n[0],!0),o.setInt32(e+4,n[1],!0)}g.PThread=S;var k,U=Object.freeze({__proto__:null,$emnapiSetValueI64:I,_emnapi_call_finalizer:function(e,r,t,n,a){t>>>=0,d.envStore.get(r).callFinalizerInternal(e,t,n,a)},_emnapi_callback_into_module:function(e,r,t,n,a){var s=d.envStore.get(r),i=d.openScope(s);try{s.callbackIntoModule(Boolean(e),function(){o.get(t)(r,n)})}catch(e){throw d.closeScope(s,i),a&&d.closeScope(s),e}d.closeScope(s,i)},_emnapi_close_handle_scope:function(e){return d.closeScope()},_emnapi_ctx_decrease_waiting_request_counter:function(){d.decreaseWaitingRequestCounter()},_emnapi_ctx_increase_waiting_request_counter:function(){d.increaseWaitingRequestCounter()},_emnapi_get_node_version:function(e,r,t){e>>>=0,r>>>=0,t>>>=0;var n="object"==typeof process&&null!==process&&"object"==typeof process.versions&&null!==process.versions&&"string"==typeof process.versions.node?process.versions.node.split(".").map(function(e){return Number(e)}):[0,0,0],o=new DataView(a.buffer);o.setUint32(e,n[0],!0),o.setUint32(r,n[1],!0),o.setUint32(t,n[2],!0)},_emnapi_get_now:function(){return performance.timeOrigin+performance.now()},_emnapi_is_main_browser_thread:function(){return"undefined"==typeof window||"undefined"==typeof document||u?0:1},_emnapi_is_main_runtime_thread:function(){return f?0:1},_emnapi_next_tick:C,_emnapi_open_handle_scope:function(){return d.openScope().id},_emnapi_runtime_keepalive_pop:function(){},_emnapi_runtime_keepalive_push:function(){},_emnapi_set_immediate:A,_emnapi_unwind:function(){throw"unwind"},napi_clear_last_error:function(e){return d.envStore.get(e).clearLastError()},napi_set_last_error:function(e,r,t,n){return d.envStore.get(e).setLastError(r,t,n)}});function V(e){var r=new DataView(a.buffer).getInt32(e+20,!0);return S.pthreads[r]}var T=new Promise(function(e){k=function(){T.ready=!0,e()}});T.ready=!1;var D=Object.freeze({__proto__:null,_emnapi_after_uvthreadpool_ready:function(e,r,t){T.ready?o.get(e)(r,t):T.then(function(){o.get(e)(r,t)})},_emnapi_async_send_js:function(e,r,t){if(f)(0,g.postMessage)({__emnapi__:{type:"async-send",payload:{callback:r,data:t}}});else switch(e){case 0:A(r,t);break;case 1:C(r,t)}},_emnapi_emit_async_thread_ready:function(){f&&(0,g.postMessage)({__emnapi__:{type:"async-thread-ready",payload:{}}})},_emnapi_tell_js_uvthreadpool:function(e,r){for(var t=[],n=new DataView(a.buffer),o=function(r){var a=V(n.getUint32(e+4*r,!0));t.push(new Promise(function(e){var r=function(t){var n=(u?t:t.data).__emnapi__;n&&"async-thread-ready"===n.type&&(e(),a&&"function"==typeof a.unref&&a.unref(),u?a.off("message",r):a.removeEventListener("message",r))};u?a.on("message",r):a.addEventListener("message",r)}))},s=0;s>>=0);r&&"function"==typeof r.ref&&r.ref()}},_emnapi_worker_unref:function(e){if(!f){var r=V(e>>>=0);r&&"function"==typeof r.unref&&r.unref()}}});var B=Object.freeze({__proto__:null,napi_adjust_external_memory:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(!t)return n.setLastError(1);var o=d.adjustAmountOfExternalAllocatedMemory(r);return t>>>=0,d.feature.supportBigInt?new DataView(a.buffer).setBigInt64(t,BigInt(o),!0):I(t,Number(o)),n.clearLastError()}}),x={idGen:{},values:[void 0],queued:new Set,pending:[],init:function(){var e={nextId:1,list:[],generate:function(){var r;return e.list.length?r=e.list.shift():(r=e.nextId,e.nextId++),r},reuse:function(r){e.list.push(r)}};x.idGen=e,x.values=[void 0],x.queued=new Set,x.pending=[]},create:function(e,r,t,n,a,o){var s=0,i=0;if(v){var u=v.node.emitAsyncInit(r,t,-1);s=u.asyncId,i=u.triggerAsyncId}var f=x.idGen.generate();return x.values[f]={env:e,id:f,resource:r,asyncId:s,triggerAsyncId:i,status:0,execute:n,complete:a,data:o},f},callComplete:function(e,r){var t=e.complete,n=e.env,a=e.data,s=function(){if(t){var e=d.envStore.get(n),s=d.openScope(e);try{e.callbackIntoModule(!0,function(){o.get(t)(n,r,a)})}finally{d.closeScope(e,s)}}};v?v.node.makeCallback(e.resource,s,[],{asyncId:e.asyncId,triggerAsyncId:e.triggerAsyncId}):s()},queue:function(e){var r=x.values[e];if(r&&0===r.status){if(r.status=1,x.queued.size>=(Math.abs(w)||4))return void x.pending.push(e);x.queued.add(e);var t=r.env,n=r.data,a=r.execute;r.status=2,d.feature.setImmediate(function(){if(o.get(a)(t,n),x.queued.delete(e),r.status=3,d.feature.setImmediate(function(){x.callComplete(r,0)}),x.pending.length>0){var s=x.pending.shift();x.values[s].status=0,x.queue(s)}})}},cancel:function(e){var r=x.pending.indexOf(e);if(-1!==r){var t=x.values[e];return t&&1===t.status?(t.status=4,x.pending.splice(r,1),d.feature.setImmediate(function(){x.callComplete(t,11)}),0):9}return 9},remove:function(e){var r=x.values[e];r&&(v&&v.node.emitAsyncDestroy({asyncId:r.asyncId,triggerAsyncId:r.triggerAsyncId}),x.values[e]=void 0,x.idGen.reuse(e))}};function R(e,r,t,n){if(v){var o=d.handleStore.get(e).value,s=d.handleStore.get(r).value,i=v.node.emitAsyncInit(o,s,t),u=i.asyncId,f=i.triggerAsyncId;if(n){n>>>=0;var c=new DataView(a.buffer);c.setFloat64(n,u,!0),c.setFloat64(n+8,f,!0)}}}function j(e,r){v&&v.node.emitAsyncDestroy({asyncId:e,triggerAsyncId:r})}var O=Object.freeze({__proto__:null,_emnapi_async_destroy_js:function(e){if(!v)return 9;e>>>=0;var r=new DataView(a.buffer),t=r.getInt32(e,!0),n=r.getInt32(e+4,!0),o=BigInt(t>>>0)|BigInt(n)<=BigInt(-1)*(BigInt(1)<=BigInt(1)<>BigInt(32));t>>>=0;var c=new DataView(a.buffer);return c.setInt32(t,u,!0),c.setInt32(t+4,f,!0),0},_emnapi_env_check_gc_access:function(e){d.envStore.get(e).checkGCAccess()},_emnapi_node_emit_async_destroy:j,_emnapi_node_emit_async_init:R,_emnapi_node_make_callback:function(e,r,t,n,o,s,i,u){var f,c=0;if(v){var l=d.handleStore.get(r).value,p=d.handleStore.get(t).value;n>>>=0,o>>>=0,o>>>=0;for(var g=Array(o),y=new DataView(a.buffer);c>>=0,f=d.envStore.get(e).ensureHandleId(_),y.setUint32(u,f,!0)}},napi_close_callback_scope:function(e,r){throw new Error("napi_close_callback_scope has not been implemented yet")},napi_make_callback:function(e,r,t,n,o,s,i){var u,f=0;if(!e)return 1;var c=d.envStore.get(e);if(c.checkGCAccess(),!c.tryCatch.isEmpty())return c.setLastError(10);if(!c.canCallIntoJs())return c.setLastError(c.moduleApiVersion>=10?23:10);c.clearLastError();try{if(!v)return c.setLastError(9);if(!t)return c.setLastError(1);if(o>0&&!s)return c.setLastError(1);var l=Object(d.handleStore.get(t).value),p=d.handleStore.get(n).value;if("function"!=typeof p)return c.setLastError(1);r>>>=0;var g=new DataView(a.buffer),y=g.getInt32(r,!0),h=g.getInt32(r+4,!0),_=BigInt(y>>>0)|BigInt(h)<>>=0,o>>>=0,o>>>=0;for(var E=Array(o);f>>=0,u=c.ensureHandleId(L.value),g.setUint32(i,u,!0)),c.getReturnStatus())}catch(e){return c.tryCatch.setError(e),c.setLastError(10)}},napi_open_callback_scope:function(e,r,t,n){throw new Error("napi_open_callback_scope has not been implemented yet")}}),G={_liveSet:{},offset:{__size__:0,resource:0,async_id:0,trigger_async_id:0,queue_size:0,is_some:0,queue:0,async_pending:0,async_u_fd:0,thread_count:0,state:0,dispatch_state:0,context:0,max_queue_size:0,ref:0,env:0,finalize_data:0,finalize_cb:0,call_js_cb:0,handles_closing:0,async_ref:0,mutex:0,cond:0},init:function(){if(G._liveSet=new Set,G.offset.__size__=184,G.offset.resource=0,G.offset.async_id=8,G.offset.trigger_async_id=16,G.offset.queue_size=60,G.offset.is_some=24,G.offset.queue=64,G.offset.async_pending=132,G.offset.async_u_fd=96,G.offset.thread_count=136,G.offset.state=140,G.offset.dispatch_state=144,G.offset.context=148,G.offset.max_queue_size=152,G.offset.ref=156,G.offset.env=160,G.offset.finalize_data=164,G.offset.finalize_cb=168,G.offset.call_js_cb=172,G.offset.handles_closing=176,G.offset.async_ref=180,G.offset.mutex=32,G.offset.cond=56,G.offset.mutex=G.offset.mutex+4,void 0!==S){S.unusedWorkers.forEach(G.addListener),S.runningWorkers.forEach(G.addListener);var e=S.getNewWorker;S.getNewWorker=function(){var r=e.apply(this,arguments);return G.addListener(r),r}}},addListener:function(e){if(!e)return!1;if(e._emnapiTSFNListener)return!0;var r=function(e){var r=(u?e:e.data).__emnapi__;if(r){var t=r.type,n=r.payload;if("tsfn-send"===t){var o=n.tsfn+G.offset.async_pending;0!==Atomics.load(new Int32Array(a.buffer),o>>>2)&&G.enqueue(n.tsfn)}}};return e._emnapiTSFNListener={handler:r,dispose:function(){u?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiTSFNListener}},u?e.on("message",r):e.addEventListener("message",r,!1),!0},initQueue:function(e){var r=s(8);return!!r&&(r>>>=0,new Uint8Array(a.buffer,r,8).fill(0),G.storeSizeTypeValue(e+G.offset.queue,r,!1),!0)},destroyQueue:function(e){var r=G.loadSizeTypeValue(e+G.offset.queue,!1);if(r){for(var t=G.loadSizeTypeValue(r,!1);0!==t;){var n=G.loadSizeTypeValue(t+4,!1);i(t),t=n}i(r)}},pushQueue:function(e,r){var t=G.loadSizeTypeValue(e+G.offset.queue,!1),n=G.loadSizeTypeValue(t,!1),a=G.loadSizeTypeValue(t+4,!1),o=s(8);if(!o)throw new Error("OOM");o>>>=0,G.storeSizeTypeValue(o,r,!1),G.storeSizeTypeValue(o+4,0,!1),0===n&&0===a?(G.storeSizeTypeValue(t,o,!1),G.storeSizeTypeValue(t+4,o,!1)):(G.storeSizeTypeValue(a+4,o,!1),G.storeSizeTypeValue(t+4,o,!1)),G.addQueueSize(e)},shiftQueue:function(e){var r=G.loadSizeTypeValue(e+G.offset.queue,!1),t=G.loadSizeTypeValue(r,!1);if(0===t)return 0;var n=t,a=G.loadSizeTypeValue(t+4,!1);G.storeSizeTypeValue(r,a,!1),0===a&&G.storeSizeTypeValue(r+4,0,!1),G.storeSizeTypeValue(n+4,0,!1);var o=G.loadSizeTypeValue(n,!1);return i(n),G.subQueueSize(e),o},push:function(e,r,t){var n=G.getMutex(e),a=G.getCond(e),o=function(){var r=G.getQueueSize(e),t=G.getMaxQueueSize(e);return r>=t&&t>0&&0===G.getState(e)},s="undefined"!=typeof window&&"undefined"!=typeof document&&!u,i=!1,f=n.execute(function(){for(;o();){if(0===t)return 15;if(s)return 21;a.wait()}return 0===G.getState(e)?(G.pushQueue(e,r),G.send(e),0):0===G.getThreadCount(e)?1:(G.subThreadCount(e),2!==G.getState(e)||0!==G.getThreadCount(e)||(i=!0),16)});return i&&G.destroy(e),f},getMutex:function(e){var r=e+G.offset.mutex,t={lock:function(){var e="undefined"!=typeof window&&"undefined"!=typeof document&&!u,t=new Int32Array(a.buffer,r,1);if(e)for(;;){if(0===Atomics.compareExchange(t,0,0,10))return}else for(;;){if(0===Atomics.compareExchange(t,0,0,10))return;Atomics.wait(t,0,10)}},unlock:function(){var e=new Int32Array(a.buffer,r,1);if(10!==Atomics.compareExchange(e,0,10,0))throw new Error("Tried to unlock while not holding the mutex");Atomics.notify(e,0,1)},execute:function(e){t.lock();try{return e()}finally{t.unlock()}}};return t},getCond:function(e){var r=e+G.offset.cond,t=G.getMutex(e);return{wait:function(){var e=new Int32Array(a.buffer,r,1),n=Atomics.load(e,0);t.unlock(),Atomics.wait(e,0,n),t.lock()},signal:function(){var e=new Int32Array(a.buffer,r,1);Atomics.add(e,0,1),Atomics.notify(e,0,1)}}},getQueueSize:function(e){return G.loadSizeTypeValue(e+G.offset.queue_size,!0)},addQueueSize:function(e){var r,t,n=G.offset.queue_size;r=new Uint32Array(a.buffer),t=e+n>>>2,Atomics.add(r,t,1)},subQueueSize:function(e){var r,t,n=G.offset.queue_size;r=new Uint32Array(a.buffer),t=e+n>>>2,Atomics.sub(r,t,1)},getThreadCount:function(e){return G.loadSizeTypeValue(e+G.offset.thread_count,!0)},addThreadCount:function(e){var r,t,n=G.offset.thread_count;r=new Uint32Array(a.buffer),t=e+n>>>2,Atomics.add(r,t,1)},subThreadCount:function(e){var r,t,n=G.offset.thread_count;r=new Uint32Array(a.buffer),t=e+n>>>2,Atomics.sub(r,t,1)},getState:function(e){return Atomics.load(new Int32Array(a.buffer),e+G.offset.state>>>2)},setState:function(e,r){Atomics.store(new Int32Array(a.buffer),e+G.offset.state>>>2,r)},getHandlesClosing:function(e){return Atomics.load(new Int8Array(a.buffer),e+G.offset.handles_closing)},setHandlesClosing:function(e,r){Atomics.store(new Int8Array(a.buffer),e+G.offset.handles_closing,r)},getDispatchState:function(e){return Atomics.load(new Uint32Array(a.buffer),e+G.offset.dispatch_state>>>2)},getContext:function(e){return G.loadSizeTypeValue(e+G.offset.context,!1)},getMaxQueueSize:function(e){return G.loadSizeTypeValue(e+G.offset.max_queue_size,!0)},getEnv:function(e){return G.loadSizeTypeValue(e+G.offset.env,!1)},getCallJSCb:function(e){return G.loadSizeTypeValue(e+G.offset.call_js_cb,!1)},getRef:function(e){return G.loadSizeTypeValue(e+G.offset.ref,!1)},getResource:function(e){return G.loadSizeTypeValue(e+G.offset.resource,!1)},getFinalizeCb:function(e){return G.loadSizeTypeValue(e+G.offset.finalize_cb,!1)},getFinalizeData:function(e){return G.loadSizeTypeValue(e+G.offset.finalize_data,!1)},loadSizeTypeValue:function(e,r){var t;return r?(t=new Uint32Array(a.buffer),Atomics.load(t,e>>>2)):(t=new Int32Array(a.buffer),Atomics.load(t,e>>>2))},storeSizeTypeValue:function(e,r,t){var n;return t?(n=new Uint32Array(a.buffer),void Atomics.store(n,e>>>2,r)):(n=new Int32Array(a.buffer),void Atomics.store(n,e>>>2,r>>>0))},releaseResources:function(e){if(2!==G.getState(e)){G.setState(e,2);var r=G.getEnv(e),t=d.envStore.get(r),n=G.getRef(e);n&&d.refStore.get(n).dispose();var o=G.getResource(e);d.refStore.get(o).dispose(),new DataView(a.buffer).setInt8(e+G.offset.is_some,0,!0),d.removeCleanupHook(t,G.cleanup,e),t.unref();var s=e+G.offset.async_ref>>>2,i=new Uint32Array(a.buffer);if(Atomics.load(i,s)>0&&(Atomics.store(i,s,0),d.decreaseWaitingRequestCounter()),v){var u=new DataView(a.buffer);j(u.getFloat64(e+G.offset.async_id,!0),u.getFloat64(e+G.offset.trigger_async_id,!0))}}},destroy:function(e){G._liveSet.delete(e),G.destroyQueue(e),G.releaseResources(e),i(e)},emptyQueue:function(e){var r=[];G.getMutex(e).execute(function(){for(;G.getQueueSize(e)>0;)r.push(G.shiftQueue(e))});for(var t,n=G.getCallJSCb(e),a=G.getContext(e),s=0;s0?G.releaseResources(e):r=!0}),r&&G.destroy(e)},finalize:function(e){var r=G.getEnv(e),t=d.envStore.get(r);d.openScope(t);var n=G.getFinalizeCb(e),o=G.getFinalizeData(e),s=G.getContext(e),i=function(){t.callFinalizerInternal(0,n,o,s)};try{if(G.emptyQueue(e),n)if(v){var u=G.getResource(e),f=d.refStore.get(u).get(),c=d.handleStore.get(f).value,l=new DataView(a.buffer),p=l.getFloat64(e+G.offset.async_id,!0),g=l.getFloat64(e+G.offset.trigger_async_id,!0);v.node.makeCallback(c,i,[],{asyncId:p,triggerAsyncId:g})}else i();G.maybeDelete(e)}finally{d.closeScope(t)}},cleanup:function(e){G.closeHandlesAndMaybeDelete(e,1)},closeHandlesAndMaybeDelete:function(e,r){var t=G.getEnv(e),n=d.envStore.get(t);d.openScope(n);try{if(r&&G.getMutex(e).execute(function(){G.setState(e,1),G.getMaxQueueSize(e)>0&&G.getCond(e).signal()}),G.getHandlesClosing(e))return;G.setHandlesClosing(e,1),Atomics.store(new Int32Array(a.buffer),e+G.offset.async_pending>>>2,1),d.feature.setImmediate(function(){G.finalize(e)})}finally{d.closeScope(n)}},dispatchOne:function(e){var r=0,t=!1,n=!1,s=G.getMutex(e),i=G.getCond(e);if(s.execute(function(){if(0===G.getState(e)){var a=G.getQueueSize(e);if(a>0){r=G.shiftQueue(e),t=!0;var o=G.getMaxQueueSize(e);a===o&&o>0&&i.signal(),a--}0===a?0===G.getThreadCount(e)&&(G.setState(e,1),G.getMaxQueueSize(e)>0&&i.signal(),G.closeHandlesAndMaybeDelete(e,0)):n=!0}else G.closeHandlesAndMaybeDelete(e,0)}),t){var u=G.getEnv(e),f=d.envStore.get(u);d.openScope(f);var c=function(){f.callbackIntoModule(!1,function(){var t=G.getCallJSCb(e),n=G.getRef(e),a=n?d.refStore.get(n).get():0;if(t){var s=G.getContext(e);o.get(t)(u,a,s,r)}else{var i=a?d.handleStore.get(a).value:null;"function"==typeof i&&i()}})};try{if(v){var l=G.getResource(e),p=d.refStore.get(l).get(),g=d.handleStore.get(p).value,y=new DataView(a.buffer);v.node.makeCallback(g,c,[],{asyncId:y.getFloat64(e+G.offset.async_id,!0),triggerAsyncId:y.getFloat64(e+G.offset.trigger_async_id,!0)})}else c()}finally{d.closeScope(f)}}return n},dispatch:function(e){for(var r=!0,t=1e3,n=new Uint32Array(a.buffer),o=e+G.offset.dispatch_state>>>2;r&&0!==--t;)Atomics.store(n,o,1),r=G.dispatchOne(e),1!==Atomics.exchange(n,o,0)&&(r=!0);r&&G.send(e)},enqueue:function(e){var r=e+G.offset.async_pending,t=e+G.offset.async_u_fd,n=new Int32Array(a.buffer);0===Atomics.exchange(n,t>>>2,1)&&d.feature.setImmediate(function(){G._liveSet.has(e)&&(0!==Atomics.load(n,r>>>2)?d.feature.setImmediate(function(){try{if(0===Atomics.exchange(n,r>>>2,0))return;if(!G._liveSet.has(e))return;G.dispatch(e)}finally{G._liveSet.has(e)&&(Atomics.store(n,t>>>2,0),0!==Atomics.load(n,r>>>2)&&G.enqueue(e))}}):Atomics.store(n,t>>>2,0))})},send:function(e){if(1&~Atomics.or(new Uint32Array(a.buffer),e+G.offset.dispatch_state>>>2,2)){var r=e+G.offset.async_pending;0===Atomics.load(new Int32Array(a.buffer),r>>>2)&&0===Atomics.exchange(new Int32Array(a.buffer),r>>>2,1)&&(void 0!==f&&f?postMessage({__emnapi__:{type:"tsfn-send",payload:{tsfn:e}}}):G.enqueue(e))}}};var z={pool:[],workerReady:null,globalAddress:0,globalOffset:{idle_threads:0,q:4,next:4,prev:8,mutex:12,cond:16,exit_message:20,end:28},offset:{resource:0,async_id:8,trigger_async_id:16,env:24,status:28,queue:32,queue_next:32,queue_prev:36,data:40,execute:44,complete:48,end:52},init:function(){if(z.pool=[],z.workerReady=null,void 0!==S){S.unusedWorkers.forEach(z.addListener),S.runningWorkers.forEach(z.addListener);var e=S.getNewWorker;S.getNewWorker=function(){var r=e.apply(this,arguments);return z.addListener(r),r}}},addListener:function(e){if(!e)return!1;if(e._emnapiAWMTListener)return!0;var r=function(e){var r=(u?e:e.data).__emnapi__;if(r){var t=r.type,n=r.payload;"async-work-complete"===t&&z.callComplete(n.work,0)}};return e._emnapiAWMTListener={handler:r,dispose:function(){u?e.off("message",r):e.removeEventListener("message",r,!1),delete e._emnapiAWMTListener}},u?e.on("message",r):e.addEventListener("message",r,!1),!0},initGlobal:function(){if(!z.globalAddress){z.globalAddress=s(z.globalOffset.end),z.globalAddress>>>=0;var e=z.globalOffset.end,r=z.globalAddress;new Uint8Array(a.buffer,r,e).fill(0),z.queueInit(z.globalAddress+z.globalOffset.q),z.queueInit(z.globalAddress+z.globalOffset.exit_message)}},terminateWorkers:function(){z.pool.forEach(function(e){var r,t;null===(r=e._emnapiAWMTListener)||void 0===r||r.dispose(),null===(t=e._emnapiTSFNListener)||void 0===t||t.dispose(),e.terminate()}),z.pool.length=0},initWorkers:function(e){if(f)return z.workerReady||(z.workerReady=Promise.resolve());if(z.workerReady)return z.workerReady;if(!("emnapi_async_worker_create"in t.exports))throw new TypeError("`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags");var r=t.exports.emnapi_async_worker_create,n=[];z.initGlobal();for(var o=0;o>>=0;var t=new DataView(a.buffer).getInt32(e+20,!0);return(r=S.pthreads[t]).whenLoaded});return z.workerReady=Promise.all(s),z.workerReady},getResource:function(e){return new DataView(a.buffer).getUint32(e+z.offset.resource,!0)},getExecute:function(e){return new DataView(a.buffer).getUint32(e+z.offset.execute,!0)},getComplete:function(e){return new DataView(a.buffer).getUint32(e+z.offset.complete,!0)},getEnv:function(e){return new DataView(a.buffer).getUint32(e+z.offset.env,!0)},getData:function(e){return new DataView(a.buffer).getUint32(e+z.offset.data,!0)},getMutex:function(){var e=z.globalAddress+z.globalOffset.mutex,r={lock:function(){var r="undefined"!=typeof window&&"undefined"!=typeof document&&!u,t=new Int32Array(a.buffer,e,1);if(r)for(;;){if(0===Atomics.compareExchange(t,0,0,10))return}else for(;;){if(0===Atomics.compareExchange(t,0,0,10))return;Atomics.wait(t,0,10)}},unlock:function(){var r=new Int32Array(a.buffer,e,1);if(10!==Atomics.compareExchange(r,0,10,0))throw new Error("Tried to unlock while not holding the mutex");Atomics.notify(r,0,1)},execute:function(e){r.lock();try{return e()}finally{r.unlock()}}};return r},getCond:function(){var e=z.globalAddress+z.globalOffset.cond,r=z.getMutex();return{wait:function(){var t=new Int32Array(a.buffer,e,1),n=Atomics.load(t,0);r.unlock(),Atomics.wait(t,0,n),r.lock()},signal:function(){var r=new Int32Array(a.buffer,e,1);Atomics.add(r,0,1),Atomics.notify(r,0,1)}}},queueInit:function(e){var r=new DataView(a.buffer);r.setUint32(e,e,!0),r.setUint32(e+4,e,!0)},queueInsertTail:function(e,r){var t=new DataView(a.buffer);t.setUint32(r,e,!0);var n=t.getUint32(e+4,!0);t.setUint32(r+4,n,!0);var o=t.getUint32(r+4,!0);t.setUint32(o,r,!0),t.setUint32(e+4,r,!0)},queueRemove:function(e){var r=new DataView(a.buffer),t=r.getUint32(e+4,!0),n=r.getUint32(e,!0);r.setUint32(t,n,!0),r.setUint32(n+4,t,!0)},queueEmpty:function(e){return e==new DataView(a.buffer).getUint32(e,!0)},scheduleWork:function(e){var r;(null===(r=z.workerReady)||void 0===r?void 0:r.ready)||z.initWorkers(m()).then(function(){z.workerReady.ready=!0}).catch(function(e){throw z.workerReady=null,e}),d.increaseWaitingRequestCounter();var t=new Int32Array(a.buffer,e+z.offset.status,1);Atomics.store(t,0,0);var n=z.getMutex(),o=z.getCond();n.lock();try{z.queueInsertTail(z.globalAddress+z.globalOffset.q,e+z.offset.queue)}catch(e){throw d.decreaseWaitingRequestCounter(),n.unlock(),e}new DataView(a.buffer).getUint32(z.globalAddress+z.globalOffset.idle_threads,!0)>0&&o.signal(),n.unlock()},cancelWork:function(e){var r=!1;return z.getMutex().execute(function(){var t=new DataView(a.buffer);(r=!z.queueEmpty(e+z.offset.queue)&&2!==t.getInt32(e+z.offset.status,!0))&&z.queueRemove(e+z.offset.queue)}),r?0!==Atomics.compareExchange(new Int32Array(a.buffer,e+z.offset.status,1),0,0,1)?9:(d.feature.setImmediate(function(){z.callComplete(e,11)}),0):9},callComplete:function(e,r){d.decreaseWaitingRequestCounter();var t=z.getComplete(e),n=z.getEnv(e),s=z.getData(e),i=d.envStore.get(n),u=d.openScope(i),f=function(){t&&i.callbackIntoModule(!0,function(){o.get(t)(n,r,s)})};try{if(v){var c=z.getResource(e),l=d.refStore.get(c).get(),p=d.handleStore.get(l).value,g=new DataView(a.buffer),y=g.getFloat64(e+z.offset.async_id,!0),h=g.getFloat64(e+z.offset.trigger_async_id,!0);v.node.makeCallback(p,f,[],{asyncId:y,triggerAsyncId:h})}else f()}finally{d.closeScope(i,u)}}};z.init();var M=L?function(e,r,t,n,o,s,i){if(!e)return 1;var u,f=d.envStore.get(e);if(f.checkGCAccess(),!n)return f.setLastError(1);if(!i)return f.setLastError(1);if(u=r?Object(d.handleStore.get(r).value):{},!t)return f.setLastError(1);var c=String(d.handleStore.get(t).value),l=x.create(e,u,c,n,o,s);return i>>>=0,new DataView(a.buffer).setUint32(i,l,!0),f.clearLastError()}:function(e,r,t,n,o,i,u){if(!e)return 1;var f,c=d.envStore.get(e);if(c.checkGCAccess(),!n)return c.setLastError(1);if(!u)return c.setLastError(1);if(f=r?Object(d.handleStore.get(r).value):{},!t)return c.setLastError(1);var l=z.offset.end,v=s(l);if(!v)return c.setLastError(9);v>>>=0,new Uint8Array(a.buffer).subarray(v,v+l).fill(0);var p=c.ensureHandleId(f),g=d.createReference(c,p,1,1).id,y=new DataView(a.buffer);return y.setUint32(v,g,!0),R(p,t,-1,v+z.offset.async_id),y.setUint32(v+z.offset.env,e,!0),y.setUint32(v+z.offset.execute,n,!0),y.setUint32(v+z.offset.complete,o,!0),y.setUint32(v+z.offset.data,i,!0),z.queueInit(v+z.offset.queue),u>>>=0,y.setUint32(u,v,!0),c.clearLastError()},F=L?function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,x.remove(r),t.clearLastError()):t.setLastError(1)}:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var n=z.getResource(r);if(d.refStore.get(n).dispose(),v){var o=new DataView(a.buffer);j(o.getFloat64(r+z.offset.async_id,!0),o.getFloat64(r+z.offset.trigger_async_id,!0))}return i(r),t.clearLastError()},W=L?function(e,r){if(!e)return 1;var t=d.envStore.get(e);return r?(r>>>=0,x.queue(r),t.clearLastError()):t.setLastError(1)}:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return r?(r>>>=0,z.scheduleWork(r),t.clearLastError()):t.setLastError(1)},q=L?function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var n=x.cancel(r);return 0===n?t.clearLastError():t.setLastError(n)}:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var n=z.cancelWork(r);return 0===n?t.clearLastError():t.setLastError(n)};g.initWorker=function(e,r){if(!g.childThread)throw new Error("startThread is only available in child threads");if("function"!=typeof t.exports.emnapi_async_worker_init)throw new TypeError("`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags");t.exports.emnapi_async_worker_init(e),o.get(r[0])(r[1])};var J=Object.freeze({__proto__:null,_emnapi_async_worker:function(e){e>>>=0,z.globalAddress=e;var r=z.getMutex(),t=z.getCond();r.lock();for(var n=e+z.globalOffset.exit_message,s=e+z.globalOffset.idle_threads,i=e+z.globalOffset.q,u=new DataView(a.buffer);;){for(;z.queueEmpty(i);)Atomics.add(new Int32Array(a.buffer,s,1),0,1),t.wait(),Atomics.sub(new Int32Array(a.buffer,s,1),0,1);var f=u.getUint32(i,!0);if(f===n){t.signal(),r.unlock();break}var c=f-z.offset.queue;z.queueRemove(f),z.queueInit(f),r.unlock();var d=new Int32Array(a.buffer,c+z.offset.status,1);1===Atomics.load(d,0)&&l("unreachable");var v=z.getExecute(c),p=z.getEnv(c),y=z.getData(c);o.get(v)(p,y),Atomics.store(d,0,2),(0,g.postMessage)({__emnapi__:{type:"async-work-complete",payload:{work:c}}}),r.lock()}return 0},_emnapi_spawn_worker:function(e,r){if("function"!=typeof y)throw new TypeError("`options.onCreateWorker` is not a function");var n=[];if(!("emnapi_async_worker_create"in t.exports))throw new TypeError("`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags");n.push(t.exports.emnapi_async_worker_create(0,0));var a,o=function(e){!("message"in e)||-1===e.message.indexOf("RuntimeError")&&-1===e.message.indexOf("unreachable")||z.terminateWorkers()};try{var s=y({type:"async-work",name:"emnapi-async-worker"}),f=S.loadWasmModuleToWorker(s);u?s.on("error",o):s.addEventListener("error",o,!1),z.addListener(s),G.addListener(s),[].push(f.then(function(){"function"==typeof s.unref&&s.unref()})),a=z.pool.push(s)-1;var c=n[0];s.threadBlockBase=c,s.postMessage({__emnapi__:{type:"async-worker-init",payload:{arg:c,func:[e,r]}}})}catch(e){c=n[0];throw i(c),e}return a},napi_cancel_async_work:q,napi_create_async_work:M,napi_delete_async_work:F,napi_queue_async_work:W}),N={registry:"function"==typeof FinalizationRegistry?new FinalizationRegistry(function(e){i(e)}):void 0,table:new WeakMap,wasmMemoryViewTable:new WeakMap,init:function(){N.registry="function"==typeof FinalizationRegistry?new FinalizationRegistry(function(e){i(e)}):void 0,N.table=new WeakMap,N.wasmMemoryViewTable=new WeakMap},isSharedArrayBuffer:function(e){return"function"==typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(e)},isDetachedArrayBuffer:function(e){if(0===e.byteLength)try{new Uint8Array(e)}catch(e){return!0}return!1},getArrayBufferPointer:function(e,r){var t,n={address:0,ownership:0,runtimeAllocated:0};if(e===a.buffer)return n;var o=N.isDetachedArrayBuffer(e);if(N.table.has(e)){var i=N.table.get(e);return o?(i.address=0,i):(r&&0===i.ownership&&1===i.runtimeAllocated&&new Uint8Array(a.buffer).set(new Uint8Array(e),i.address),i)}if(o||0===e.byteLength)return n;if(!r)return n;var u=s(e.byteLength);if(!u)throw new Error("Out of memory");return u>>>=0,new Uint8Array(a.buffer).set(new Uint8Array(e),u),n.address=u,n.ownership=N.registry?0:1,n.runtimeAllocated=1,N.table.set(e,n),null===(t=N.registry)||void 0===t||t.register(e,u),n},getOrUpdateMemoryView:function(e){if(e.buffer===a.buffer)return N.wasmMemoryViewTable.has(e)||N.wasmMemoryViewTable.set(e,{Ctor:e.constructor,address:e.byteOffset,length:e instanceof DataView?e.byteLength:e.length,ownership:1,runtimeAllocated:0}),e;if((N.isDetachedArrayBuffer(e.buffer)||N.isSharedArrayBuffer(e.buffer))&&N.wasmMemoryViewTable.has(e)){var r=N.wasmMemoryViewTable.get(e),t=r.Ctor,n=void 0,o=d.feature.Buffer;return n="function"==typeof o&&t===o?o.from(a.buffer,r.address,r.length):new t(a.buffer,r.address,r.length),N.wasmMemoryViewTable.set(n,r),n}return e},getViewPointer:function(e,r){if((e=N.getOrUpdateMemoryView(e)).buffer===a.buffer){if(N.wasmMemoryViewTable.has(e)){var t=N.wasmMemoryViewTable.get(e);return{address:t.address,ownership:t.ownership,runtimeAllocated:t.runtimeAllocated,view:e}}return{address:e.byteOffset,ownership:1,runtimeAllocated:0,view:e}}var n=N.getArrayBufferPointer(e.buffer,r),o=n.address,s=n.ownership,i=n.runtimeAllocated;return{address:0===o?0:o+e.byteOffset,ownership:s,runtimeAllocated:i,view:e}}},P={utf8Decoder:void 0,utf16Decoder:void 0,init:function(){var e,r={decode:function(e){for(var r=0,t=Math.min(4096,e.length+1),n=new Uint16Array(t),a=[],o=0;;){var s=r=t-1){var i=n.subarray(0,o);if(a.push(String.fromCharCode.apply(null,i)),!s)return a.join("");e=e.subarray(r),r=0,o=0}var u=e[r++];if(128&u){if(192==(224&u)){var f=63&e[r++];n[o++]=(31&u)<<6|f}else if(224==(240&u)){f=63&e[r++];var c=63&e[r++];n[o++]=(31&u)<<12|f<<6|c}else if(240==(248&u)){var l=(7&u)<<18|(f=63&e[r++])<<12|(c=63&e[r++])<<6|63&e[r++];l>65535&&(l-=65536,n[o++]=l>>>10&1023|55296,l=56320|1023&l),n[o++]=l}}else n[o++]=u}}};e="function"==typeof TextDecoder?new TextDecoder:r,P.utf8Decoder=e;var t,n={decode:function(e){var r=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2);if(r.length<=4096)return String.fromCharCode.apply(null,r);for(var t=[],n=0,a=0;n=55296&&r<=57343?(t+=4,++n):t+=3;return t},UTF8ToString:function(e,r){if(!e||!r)return"";e>>>=0;var t=new Uint8Array(a.buffer),n=e;if(-1===r||4294967295===r)for(;t[n];)++n;else n=e+(r>>>0);if((r=n-e)<=16){for(var o=e,s="";o>10,56320|1023&c)}}else s+=String.fromCharCode((31&i)<<6|u)}else s+=String.fromCharCode(i)}return s}return P.utf8Decoder.decode("function"==typeof SharedArrayBuffer&&t.buffer instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(t.buffer)?t.slice(e,n):t.subarray(e,n))},stringToUTF8:function(e,r,t){var n=new Uint8Array(a.buffer),o=r;if(!(t>0))return 0;for(var s=o>>>=0,i=o+t-1,u=0;u=55296&&f<=57343)f=65536+((1023&f)<<10)|1023&e.charCodeAt(++u);if(f<=127){if(o>=i)break;n[o++]=f}else if(f<=2047){if(o+1>=i)break;n[o++]=192|f>>6,n[o++]=128|63&f}else if(f<=65535){if(o+2>=i)break;n[o++]=224|f>>12,n[o++]=128|f>>6&63,n[o++]=128|63&f}else{if(o+3>=i)break;n[o++]=240|f>>18,n[o++]=128|f>>12&63,n[o++]=128|f>>6&63,n[o++]=128|63&f}}return n[o]=0,o-s},UTF16ToString:function(e,r){if(!e||!r)return"";var t=e>>>=0;if(-1===r||4294967295===r){for(var n=t>>>1,o=new Uint16Array(a.buffer);o[n];)++n;t=n<<1>>>0}else t=e+2*(r>>>0);if((r=t-e)<=32)return String.fromCharCode.apply(null,new Uint16Array(a.buffer,e,r/2));var s=new Uint8Array(a.buffer);return P.utf16Decoder.decode("function"==typeof SharedArrayBuffer&&s.buffer instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(s.buffer)?s.slice(e,t):s.subarray(e,t))},stringToUTF16:function(e,r,t){if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,o=(t-=2)<2*e.length?t/2:e.length,s=new DataView(a.buffer),i=0;i>>=0,!e)return 1;var s=d.envStore.get(e);s.checkGCAccess();var i=-1===t||4294967295===t,u=t>>>0;if(0!==t&&!r)return s.setLastError(1);if(!n)return s.setLastError(1);if(!(i||u<=2147483647))return s.setLastError(1);var f=o(r>>>=0,i,u);n>>>=0;var c=d.addToCurrentScope(f).id;return new DataView(a.buffer).setUint32(n,c,!0),s.clearLastError()},newExternalString:function(e,r,t,n,o,s,i,u,f){if(t>>>=0,!e)return 1;var c=d.envStore.get(e);c.checkGCAccess();var l=-1===t||4294967295===t,v=t>>>0;if(0!==t&&!r)return c.setLastError(1);if(!s)return c.setLastError(1);if(!(l||v<=2147483647))return c.setLastError(1);var p=u(e,r,t,s);if(0===p){if(i)new DataView(a.buffer).setInt8(i,1,!0);n&&c.callFinalizer(n,r,o)}return p}};function H(e,r,t,n,o,s,i){if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!r)return u.setLastError(1);var f=d.handleStore.get(r);if(!f.isTypedArray())return u.setLastError(1);var c=f.value,l=new DataView(a.buffer);if(t){t>>>=0;var v=void 0;if(c instanceof Int8Array)v=0;else if(c instanceof Uint8Array)v=1;else if(c instanceof Uint8ClampedArray)v=2;else if(c instanceof Int16Array)v=3;else if(c instanceof Uint16Array)v=4;else if(c instanceof Int32Array)v=5;else if(c instanceof Uint32Array)v=6;else if("function"==typeof Float16Array&&c instanceof Float16Array)v=11;else if(c instanceof Float32Array)v=7;else if(c instanceof Float64Array)v=8;else if(c instanceof BigInt64Array)v=9;else{if(!(c instanceof BigUint64Array))return u.setLastError(9);v=10}l.setInt32(t,v,!0)}if(c=N.getOrUpdateMemoryView(c),n&&(n>>>=0,l.setUint32(n,c.length,!0)),o||s){if(o){o>>>=0;var p=N.getViewPointer(c,!0).address;l.setUint32(o,p,!0)}if(s){s>>>=0;var g=u.ensureHandleId(c.buffer);l.setUint32(s,g,!0)}}return i&&(i>>>=0,l.setUint32(i,c.byteOffset,!0)),u.clearLastError()}function Q(e,r,t,n,o,s){if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!r)return i.setLastError(1);var u=d.handleStore.get(r);if(!u.isDataView())return i.setLastError(1);var f=N.getOrUpdateMemoryView(u.value),c=new DataView(a.buffer);if(t&&(t>>>=0,c.setUint32(t,f.byteLength,!0)),n||o){if(n){n>>>=0;var l=N.getViewPointer(f,!0).address;c.setUint32(n,l,!0)}if(o){o>>>=0;var v=i.ensureHandleId(f.buffer);c.setUint32(o,v,!0)}}return s&&(s>>>=0,c.setUint32(s,f.byteOffset,!0)),i.clearLastError()}var $=Object.freeze({__proto__:null,napi_get_array_length:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if(!o.isArray())return n.setLastError(8);t>>>=0;var s=o.value.length>>>0;return new DataView(a.buffer).setUint32(t,s,!0),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_get_arraybuffer_info:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);var s=d.handleStore.get(r);if(!s.isArrayBuffer()&&!N.isSharedArrayBuffer(s.value))return o.setLastError(1);var i=new DataView(a.buffer);if(t){t>>>=0;var u=N.getArrayBufferPointer(s.value,!0).address;i.setUint32(t,u,!0)}return n&&(n>>>=0,i.setUint32(n,s.value.byteLength,!0)),o.clearLastError()},napi_get_buffer_info:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);if(a.checkGCAccess(),!r)return a.setLastError(1);var o=d.handleStore.get(r);return o.isBuffer(d.feature.Buffer)?o.isDataView()?Q(e,r,n,t,0,0):H(e,r,0,n,t,0,0):a.setLastError(1)},napi_get_dataview_info:Q,napi_get_date_value:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);return s.isDate()?(t>>>=0,n=s.value.valueOf(),new DataView(a.buffer).setFloat64(t,n,!0),o.getReturnStatus()):o.setLastError(1)}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_get_prototype:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if(null==o.value)throw new TypeError("Cannot convert undefined or null to object");var s=void 0;try{s=o.isObject()||o.isFunction()?o.value:Object(o.value)}catch(e){return n.setLastError(2)}t>>>=0;var i=n.ensureHandleId(Object.getPrototypeOf(s));return new DataView(a.buffer).setUint32(t,i,!0),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_get_typedarray_info:H,napi_get_value_bigint_int64:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!d.feature.supportBigInt)return o.setLastError(9);if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(r).value;if("bigint"!=typeof s)return o.setLastError(6);n>>>=0,t>>>=0;var i=new DataView(a.buffer);s>=BigInt(-1)*(BigInt(1)<=BigInt(1)<>BigInt(32));return i.setInt32(t,u,!0),i.setInt32(t+4,f,!0),o.clearLastError()},napi_get_value_bigint_uint64:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!d.feature.supportBigInt)return o.setLastError(9);if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(r).value;if("bigint"!=typeof s)return o.setLastError(6);n>>>=0,t>>>=0;var i=new DataView(a.buffer);s>=BigInt(0)&&s>BigInt(32));return i.setUint32(t,u,!0),i.setUint32(t+4,f,!0),o.clearLastError()},napi_get_value_bigint_words:function(e,r,t,n,o){if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!d.feature.supportBigInt)return s.setLastError(9);if(!r)return s.setLastError(1);if(!n)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isBigInt())return s.setLastError(17);var u=i.value>>=0,o>>>=0,n>>>=0;var f=new DataView(a.buffer),c=f.getUint32(n,!0);c>>>=0;for(var l=0,v=u?i.value*BigInt(-1):i.value;v!==BigInt(0);)l++,v>>=BigInt(64);if(v=u?i.value*BigInt(-1):i.value,t||o){if(!t)return s.setLastError(1);if(!o)return s.setLastError(1);for(var p=[];v!==BigInt(0);){var g=v&(BigInt(1)<>=BigInt(64)}for(var y=Math.min(c,p.length),h=0;h>BigInt(32));f.setUint32(o+8*h,_,!0),f.setUint32(o+(8*h+4),E,!0)}f.setInt32(t,u?1:0,!0),f.setUint32(n,y,!0)}else c=l,f.setUint32(n,c,!0);return s.clearLastError()},napi_get_value_bool:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("boolean"!=typeof o.value)return n.setLastError(7);t>>>=0;var s=o.value?1:0;return new DataView(a.buffer).setInt8(t,s,!0),n.clearLastError()},napi_get_value_double:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("number"!=typeof o.value)return n.setLastError(6);t>>>=0;var s=o.value;return new DataView(a.buffer).setFloat64(t,s,!0),n.clearLastError()},napi_get_value_external:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if(!o.isExternal())return n.setLastError(1);t>>>=0;var s=o.data();return new DataView(a.buffer).setUint32(t,s,!0),n.clearLastError()},napi_get_value_int32:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("number"!=typeof o.value)return n.setLastError(6);t>>>=0;var s=new Int32Array([o.value])[0];return new DataView(a.buffer).setInt32(t,s,!0),n.clearLastError()},napi_get_value_int64:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("number"!=typeof o.value)return n.setLastError(6);var s=o.value;t>>>=0;var i=new DataView(a.buffer);return s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY||isNaN(s)?(i.setInt32(t,0,!0),i.setInt32(t+4,0,!0)):s<-0x8000000000000000?(i.setInt32(t,0,!0),i.setInt32(t+4,2147483648,!0)):s>=0x8000000000000000?(i.setUint32(t,4294967295,!0),i.setUint32(t+4,2147483647,!0)):I(t,Math.trunc(s)),n.clearLastError()},napi_get_value_string_latin1:function(e,r,t,n,o){if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!r)return s.setLastError(1);o>>>=0,t>>>=0,n>>>=0,n>>>=0;var i=d.handleStore.get(r);if("string"!=typeof i.value)return s.setLastError(3);var u=new DataView(a.buffer);if(t)if(0!==n){for(var f=0,c=void 0,l=0;l>>=0,t>>>=0,n>>>=0,n>>>=0;var i=d.handleStore.get(r);if("string"!=typeof i.value)return s.setLastError(3);var u=new DataView(a.buffer);if(t)if(0!==n){var f=P.stringToUTF16(i.value,t,2*n);o&&u.setUint32(o,f/2,!0)}else o&&u.setUint32(o,0,!0);else{if(!o)return s.setLastError(1);u.setUint32(o,i.value.length,!0)}return s.clearLastError()},napi_get_value_string_utf8:function(e,r,t,n,o){if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!r)return s.setLastError(1);o>>>=0,t>>>=0,n>>>=0,n>>>=0;var i=d.handleStore.get(r);if("string"!=typeof i.value)return s.setLastError(3);var u=new DataView(a.buffer);if(t)if(0!==n){var f=P.stringToUTF8(i.value,t,n);o&&u.setUint32(o,f,!0)}else o&&u.setUint32(o,0,!0);else{if(!o)return s.setLastError(1);var c=P.lengthBytesUTF8(i.value);u.setUint32(o,c,!0)}return s.clearLastError()},napi_get_value_uint32:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);if("number"!=typeof o.value)return n.setLastError(6);t>>>=0;var s=new Uint32Array([o.value])[0];return new DataView(a.buffer).setUint32(t,s,!0),n.clearLastError()},node_api_set_prototype:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);var a=d.handleStore.get(r).value;if(null==a)throw new TypeError("Cannot convert undefined or null to object");var o=typeof a,s=void 0;try{s="object"===o&&null!==a||"function"===o?a:Object(a)}catch(e){return n.setLastError(2)}var i=d.handleStore.get(t).value;return Object.setPrototypeOf(s,i),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function Y(e,r,t,n){return P.newString(e,r,t,n,function(e,r,t){var n="",o=0,s=new DataView(a.buffer);if(r)for(;;){if(!(i=s.getUint8(e,!0)))break;n+=String.fromCharCode(i),e++}else for(;o>>=0,new DataView(a.buffer).setUint32(t,i,!0),s.clearLastError()},napi_create_bigint_uint64:function(e,r,t,n){if(!e)return 1;var o,s=d.envStore.get(e);if(s.checkGCAccess(),!d.feature.supportBigInt)return s.setLastError(9);if(!t)return s.setLastError(1);o=r&(BigInt(1)<>>=0,new DataView(a.buffer).setUint32(t,i,!0),s.clearLastError()},napi_create_bigint_words:function(e,r,t,n,o){var s,i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!d.feature.supportBigInt)return u.setLastError(9);if(!o)return u.setLastError(1);if(n>>>=0,t>>>=0,(t>>>=0)>2147483647)return u.setLastError(1);if(t>16384)throw new RangeError("Maximum BigInt size exceeded");var f=BigInt(0),c=new DataView(a.buffer);for(i=0;i>>=0,s=d.addToCurrentScope(f).id,c.setUint32(o,s,!0),u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}},napi_create_double:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=d.addToCurrentScope(r).id;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_create_int32:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=d.addToCurrentScope(r).id;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_create_int64:function(e,r,t,n){if(!e)return 1;var o,s=d.envStore.get(e);if(s.checkGCAccess(),!t)return s.setLastError(1);o=Number(r);var i=d.addToCurrentScope(o).id;return t>>>=0,new DataView(a.buffer).setUint32(t,i,!0),s.clearLastError()},napi_create_string_latin1:Y,napi_create_string_utf16:X,napi_create_string_utf8:Z,napi_create_uint32:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=d.addToCurrentScope(r>>>0).id;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},node_api_create_external_string_latin1:function(e,r,t,n,a,o,s){return P.newExternalString(e,r,t,n,a,o,s,Y,void 0)},node_api_create_external_string_utf16:function(e,r,t,n,a,o,s){return P.newExternalString(e,r,t,n,a,o,s,X,void 0)},node_api_create_property_key_latin1:function(e,r,t,n){return Y(e,r,t,n)},node_api_create_property_key_utf16:function(e,r,t,n){return X(e,r,t,n)},node_api_create_property_key_utf8:function(e,r,t,n){return Z(e,r,t,n)}});function ee(e,r,t,n,a){var s,i=(r>>>=0)&&t?P.UTF8ToString(r,t):"",u=o.get(n),f=function(e){return u(e.id,e.ctx.scopeStore.currentScope.id)},c=function(e,r){return function(){var t=e.ctx.openScope(e),n=t.callbackInfo;n.data=a,n.args=arguments,n.thiz=this,n.fn=s;try{var o=e.callIntoModule(r);return o?e.ctx.handleStore.get(o).value:void 0}finally{n.data=0,n.args=void 0,n.thiz=void 0,n.fn=void 0,e.ctx.closeScope(e,t)}}};if(""===i)return{status:0,f:s=c(e,f)};if(!/^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(i))return{status:1,f:void 0};if(d.feature.supportNewFunction){var l=c(e,f);try{s=new Function("_","return function "+i+'(){"use strict";return _.apply(this,arguments);};')(l)}catch(r){s=c(e,f),d.feature.canSetFunctionName&&Object.defineProperty(s,"name",{value:i})}}else s=c(e,f),d.feature.canSetFunctionName&&Object.defineProperty(s,"name",{value:i});return{status:0,f:s}}function re(e,r,t,n,a,o,s,i,u){if(a||o){var f=void 0,c=void 0;a&&(f=ee(e,0,0,a,u).f),o&&(c=ee(e,0,0,o,u).f);var l={configurable:!!(4&i),enumerable:!!(2&i),get:f,set:c};Object.defineProperty(r,t,l)}else if(n){l={configurable:!!(4&i),enumerable:!!(2&i),writable:!!(1&i),value:ee(e,0,0,n,u).f};Object.defineProperty(r,t,l)}else{l={configurable:!!(4&i),enumerable:!!(2&i),writable:!!(1&i),value:d.handleStore.get(s).value};Object.defineProperty(r,t,l)}}function te(e){var r=d.handleStore.get(e);return r.isObject()||r.isFunction()?(void 0!==N&&ArrayBuffer.isView(r.value)&&N.wasmMemoryViewTable.has(r.value)&&(r=d.addToCurrentScope(N.wasmMemoryViewTable.get(r.value))),{status:0,handle:r}):{status:1}}function ne(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(0===n&&!t)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isObject()&&!i.isFunction())return s.setLastError(1);var u=s.getObjectBinding(i.value),f=u.wrapped,c=d.refStore.get(f);if(!c)return s.setLastError(1);if(t)t>>>=0,o=c.data(),new DataView(a.buffer).setUint32(t,o,!0);return 1===n&&(u.wrapped=0,1===c.ownership()?c.resetFinalizer():c.dispose()),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}}function ae(e,r,t,n,o,s){if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!d.feature.supportFinalizer)return i.setLastError(9);if(!r)return i.setLastError(1);if(!n)return i.setLastError(1);var u=te(r);if(0!==u.status)return i.setLastError(u.status);var f=u.handle,c=s?1:0;t>>>=0,n>>>=0,o>>>=0;var l=d.createReferenceWithFinalizer(i,f.id,0,c,n,t,o);if(s){s>>>=0;var v=l.id;new DataView(a.buffer).setUint32(s,v,!0)}return i.clearLastError()}var oe=Object.freeze({__proto__:null,napi_add_finalizer:ae,napi_check_object_type_tag:function(e,r,t,n){var o=!0;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(s.tryCatch.hasCaught()?10:1);var i=d.handleStore.get(r);if(!i.isObject()&&!i.isFunction())return s.setLastError(s.tryCatch.hasCaught()?10:2);if(!t)return s.setLastError(s.tryCatch.hasCaught()?10:1);if(!n)return s.setLastError(s.tryCatch.hasCaught()?10:1);var u=s.getObjectBinding(i.value);if(null!==u.tag){t>>>=0;var f=u.tag,c=new Uint32Array(a.buffer,t,4);o=f[0]===c[0]&&f[1]===c[1]&&f[2]===c[2]&&f[3]===c[3]}else o=!1;return n>>>=0,new DataView(a.buffer).setInt8(n,o?1:0,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_define_class:function(e,r,t,n,o,s,i,u){var f,c,l;if(!e)return 1;var v=d.envStore.get(e);if(v.checkGCAccess(),!v.tryCatch.isEmpty())return v.setLastError(10);if(!v.canCallIntoJs())return v.setLastError(v.moduleApiVersion>=10?23:10);v.clearLastError();try{if(!u)return v.setLastError(1);if(!n)return v.setLastError(1);if(t>>>=0,i>>>=0,s>>>=0,(s>>>=0)>0&&!i)return v.setLastError(1);if(!(t>=-1&&t<=2147483647||4294967295===t)||!r)return v.setLastError(1);var p=ee(v,r,t,n,o);if(0!==p.status)return v.setLastError(p.status);for(var g=p.f,y=void 0,h=new DataView(a.buffer),_=0;_>>=0;var A=h.getUint32(f+28,!0);if(E)y=P.UTF8ToString(E,-1);else{if(!w)return v.setLastError(4);if("string"!=typeof(y=d.handleStore.get(w).value)&&"symbol"!=typeof y)return v.setLastError(4)}1024&l?re(v,g,y,L,m,b,S,l,A):re(v,g.prototype,y,L,m,b,S,l,A)}return c=d.addToCurrentScope(g).id,u>>>=0,h.setUint32(u,c,!0),v.getReturnStatus()}catch(e){return v.tryCatch.setError(e),v.setLastError(10)}},napi_remove_wrap:function(e,r,t){return ne(e,r,t,1)},napi_type_tag_object:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!r)return n.setLastError(n.tryCatch.hasCaught()?10:1);var o=d.handleStore.get(r);if(!o.isObject()&&!o.isFunction())return n.setLastError(n.tryCatch.hasCaught()?10:2);if(!(t>>>=0))return n.setLastError(n.tryCatch.hasCaught()?10:1);var s=n.getObjectBinding(o.value);if(null!==s.tag)return n.setLastError(n.tryCatch.hasCaught()?10:1);var i=new Uint8Array(16);return i.set(new Uint8Array(a.buffer,t,16)),s.tag=new Uint32Array(i.buffer),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_unwrap:function(e,r,t){return ne(e,r,t,0)},napi_wrap:function(e,r,t,n,o,s){return function(e,r,t,n,o,s){var i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!d.feature.supportFinalizer){if(n)throw d.createNotSupportWeakRefError("napi_wrap",'Parameter "finalize_cb" must be 0(NULL)');if(s)throw d.createNotSupportWeakRefError("napi_wrap",'Parameter "result" must be 0(NULL)')}if(!r)return u.setLastError(1);var f=te(r);if(0!==f.status)return u.setLastError(f.status);var c=f.handle;if(0!==u.getObjectBinding(c.value).wrapped)return u.setLastError(1);var l=void 0;if(s){if(!n)return u.setLastError(1);l=d.createReferenceWithFinalizer(u,c.id,0,1,n,t,o),s>>>=0,i=l.id,new DataView(a.buffer).setUint32(s,i,!0)}else l=n?d.createReferenceWithFinalizer(u,c.id,0,0,n,t,o):d.createReferenceWithData(u,c.id,0,0,t);return u.getObjectBinding(c.value).wrapped=l.id,u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}}(e,r,t,n,o,s)},node_api_post_finalizer:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);return a.enqueueFinalizer(d.createTrackedFinalizer(a,r,t,n)),a.clearLastError()}});function se(e,r,t,n,o,s,i){var u;if(!e)return 1;var f=d.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!i)return f.setLastError(1);if(n>>>=0,i>>>=0,n>>>=0,(t>>>=0)||(n=0),n>2147483647)throw new RangeError("Cannot create a memory view larger than 2147483647 bytes");if(t+n>a.buffer.byteLength)throw new RangeError("Memory out of range");if(!d.feature.supportFinalizer&&o)throw d.createNotSupportWeakRefError("emnapi_create_memory_view",'Parameter "finalize_cb" must be 0(NULL)');var c=void 0;switch(r){case 0:c={Ctor:Int8Array,address:t,length:n,ownership:1,runtimeAllocated:0};break;case 1:c={Ctor:Uint8Array,address:t,length:n,ownership:1,runtimeAllocated:0};break;case 2:c={Ctor:Uint8ClampedArray,address:t,length:n,ownership:1,runtimeAllocated:0};break;case 3:c={Ctor:Int16Array,address:t,length:n>>1,ownership:1,runtimeAllocated:0};break;case 4:c={Ctor:Uint16Array,address:t,length:n>>1,ownership:1,runtimeAllocated:0};break;case 5:c={Ctor:Int32Array,address:t,length:n>>2,ownership:1,runtimeAllocated:0};break;case 6:c={Ctor:Uint32Array,address:t,length:n>>2,ownership:1,runtimeAllocated:0};break;case 7:c={Ctor:Float32Array,address:t,length:n>>2,ownership:1,runtimeAllocated:0};break;case 8:c={Ctor:Float64Array,address:t,length:n>>3,ownership:1,runtimeAllocated:0};break;case 9:c={Ctor:BigInt64Array,address:t,length:n>>3,ownership:1,runtimeAllocated:0};break;case 10:c={Ctor:BigUint64Array,address:t,length:n>>3,ownership:1,runtimeAllocated:0};break;case-1:c={Ctor:DataView,address:t,length:n,ownership:1,runtimeAllocated:0};break;case 11:if("function"!=typeof Float16Array)return f.setLastError(1);c={Ctor:Float16Array,address:t,length:n>>1,ownership:1,runtimeAllocated:0};break;case-2:if(!d.feature.Buffer)throw d.createNotSupportBufferError("emnapi_create_memory_view","");c={Ctor:d.feature.Buffer,address:t,length:n,ownership:1,runtimeAllocated:0};break;default:return f.setLastError(1)}var l=c.Ctor,v=-2===r?d.feature.Buffer.from(a.buffer,c.address,c.length):new l(a.buffer,c.address,c.length),p=d.addToCurrentScope(v);if(N.wasmMemoryViewTable.set(v,c),o){var g=ae(e,p.id,t,o,s,0);if(10===g){var y=f.tryCatch.extractException();throw f.clearLastError(),y}if(0!==g)return f.setLastError(g)}return u=p.id,new DataView(a.buffer).setUint32(i,u,!0),f.getReturnStatus()}catch(y){return f.tryCatch.setError(y),f.setLastError(10)}}function ie(e,r,t,n){var o;if(t=null!=t?t:0,t>>>=0,r instanceof ArrayBuffer||N.isSharedArrayBuffer(r)){if(!(i=N.getArrayBufferPointer(r,!1).address))throw new Error("Unknown ArrayBuffer address");if("number"==typeof n&&-1!==n&&4294967295!==n||(n=r.byteLength-t),0===(n>>>=0))return r;o=new Uint8Array(r,t,n);var s=new Uint8Array(a.buffer);return e?s.set(o,i):o.set(s.subarray(i,i+n)),r}if(ArrayBuffer.isView(r)){var i,u=N.getViewPointer(r,!1),f=u.view;if(!(i=u.address))throw new Error("Unknown ArrayBuffer address");if("number"==typeof n&&-1!==n&&4294967295!==n||(n=f.byteLength-t),0===(n>>>=0))return f;o=new Uint8Array(f.buffer,f.byteOffset+t,n);s=new Uint8Array(a.buffer);return e?s.set(o,i):o.set(s.subarray(i,i+n)),f}throw new TypeError("emnapiSyncMemory expect ArrayBuffer or ArrayBufferView as first parameter")}function ue(e){var r,t=e instanceof ArrayBuffer,n=e instanceof DataView,a=ArrayBuffer.isView(e)&&!n;if(!(t||a||n||N.isSharedArrayBuffer(e)))throw new TypeError("emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter");return{address:(r=t?N.getArrayBufferPointer(e,!1):N.getViewPointer(e,!1)).address,ownership:r.ownership,runtimeAllocated:r.runtimeAllocated}}var fe=Object.freeze({__proto__:null,$emnapiGetMemoryAddress:ue,$emnapiSyncMemory:ie,emnapi_create_memory_view:se,emnapi_get_memory_address:function(e,r,t,n,o){var s,i,u,f;if(!e)return 1;var c=d.envStore.get(e);if(c.checkGCAccess(),!c.tryCatch.isEmpty())return c.setLastError(10);if(!c.canCallIntoJs())return c.setLastError(c.moduleApiVersion>=10?23:10);c.clearLastError();try{if(!r)return c.setLastError(1);if(!t&&!n&&!o)return c.setLastError(1);s=(f=ue(c.ctx.handleStore.get(r).value)).address;var l=new DataView(a.buffer);return t&&(t>>>=0,l.setUint32(t,s,!0)),n&&(n>>>=0,u=f.ownership,l.setInt32(n,u,!0)),o&&(o>>>=0,i=f.runtimeAllocated,l.setInt8(o,i,!0)),c.getReturnStatus()}catch(e){return c.tryCatch.setError(e),c.setLastError(10)}},emnapi_get_runtime_version:function(e,r){if(!e)return 1;var t,n=d.envStore.get(e);if(!r)return n.setLastError(1);try{t=d.getRuntimeVersions().version}catch(e){return n.setLastError(9)}var o=t.split(".").map(function(e){return Number(e)});r>>>=0;var s=new DataView(a.buffer);return s.setUint32(r,o[0],!0),s.setUint32(r+4,o[1],!0),s.setUint32(r+8,o[2],!0),n.clearLastError()},emnapi_is_node_binding_available:function(){return v?1:0},emnapi_is_support_bigint:function(){return d.feature.supportBigInt?1:0},emnapi_is_support_weakref:function(){return d.feature.supportFinalizer?1:0},emnapi_sync_memory:function(e,r,t,n,o){var s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!t)return i.setLastError(1);t>>>=0,n>>>=0,o>>>=0;var u=new DataView(a.buffer),f=u.getUint32(t,!0),c=i.ctx.handleStore.get(f);if(!(c.isArrayBuffer()||c.isTypedArray()||c.isDataView()||N.isSharedArrayBuffer(c.value)))return i.setLastError(1);var l=ie(Boolean(r),c.value,n,o);return c.value!==l&&(t>>>=0,s=i.ensureHandleId(l),u.setUint32(t,s,!0)),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}}});function ce(e,r,t){e>>>=0,e>>>=0;var n=t?new SharedArrayBuffer(e):new ArrayBuffer(e);if(r){r>>>=0;var o=N.getArrayBufferPointer(n,!0).address;new DataView(a.buffer).setUint32(r,o,!0)}return n}var le=Object.freeze({__proto__:null,napi_create_array:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var n=d.addToCurrentScope([]).id;return new DataView(a.buffer).setUint32(r,n,!0),t.clearLastError()},napi_create_array_with_length:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);r>>>=0,t>>>=0,r>>>=0;var o=d.addToCurrentScope(new Array(r)).id;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_create_arraybuffer:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);n>>>=0;var i=ce(r,t,!1);return o=d.addToCurrentScope(i).id,new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_create_buffer:function(e,r,t,n){var o,i,u;if(!e)return 1;var f=d.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!n)return f.setLastError(1);var c=d.feature.Buffer;if(!c)throw d.createNotSupportBufferError("napi_create_buffer","");n>>>=0;var l=void 0;r>>>=0,r>>>=0;var v=new DataView(a.buffer);if(t&&0!==r){if(!(u=s(r)))throw new Error("Out of memory");u>>>=0,new Uint8Array(a.buffer).subarray(u,u+r).fill(0);var p=c.from(a.buffer,u,r),g={Ctor:c,address:u,length:r,ownership:N.registry?0:1,runtimeAllocated:1};N.wasmMemoryViewTable.set(p,g),null===(o=N.registry)||void 0===o||o.register(g,u),i=d.addToCurrentScope(p).id,v.setUint32(n,i,!0),t>>>=0,v.setUint32(t,u,!0)}else l=c.alloc(r),i=d.addToCurrentScope(l).id,v.setUint32(n,i,!0);return f.getReturnStatus()}catch(e){return f.tryCatch.setError(e),f.setLastError(10)}},napi_create_buffer_copy:function(e,r,t,n,o){var s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!o)return i.setLastError(1);var u=d.feature.Buffer;if(!u)throw d.createNotSupportBufferError("napi_create_buffer_copy","");var f=ce(r,n,!1),c=u.from(f);return t>>>=0,r>>>=0,c.set(new Uint8Array(a.buffer).subarray(t,t+r)),s=d.addToCurrentScope(c).id,o>>>=0,new DataView(a.buffer).setUint32(o,s,!0),i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_create_dataview:function(e,r,t,n,o){if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!o)return s.setLastError(1);r>>>=0,n>>>=0,r>>>=0,n>>>=0;var i=d.handleStore.get(t).value;return i instanceof ArrayBuffer||N.isSharedArrayBuffer(i)?function(e){if(r+n>e.byteLength){var t=new RangeError("byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in");throw t.code="ERR_NAPI_INVALID_DATAVIEW_ARGS",t}var i=new DataView(e,n,r);e===a.buffer&&(N.wasmMemoryViewTable.has(i)||N.wasmMemoryViewTable.set(i,{Ctor:DataView,address:n,length:r,ownership:1,runtimeAllocated:0})),o>>>=0;var u=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(o,u,!0),s.getReturnStatus()}(i):s.setLastError(1)}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_create_date:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{return t?(t>>>=0,n=d.addToCurrentScope(new Date(r)).id,new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()):o.setLastError(1)}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_create_external:function(e,r,t,n,o){var s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!o)return i.setLastError(1);if(!d.feature.supportFinalizer&&t)throw d.createNotSupportWeakRefError("napi_create_external",'Parameter "finalize_cb" must be 0(NULL)');var u=d.getCurrentScope().addExternal(r);return t&&d.createReferenceWithFinalizer(i,u.id,0,0,t,r,n),o>>>=0,s=u.id,new DataView(a.buffer).setUint32(o,s,!0),i.clearLastError()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_create_external_arraybuffer:function(e,r,t,n,o,s){var i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!s)return u.setLastError(1);if(t>>>=0,s>>>=0,t>>>=0,(r>>>=0)||(t=0),r+t>a.buffer.byteLength)throw new RangeError("Memory out of range");if(!d.feature.supportFinalizer&&n)throw d.createNotSupportWeakRefError("napi_create_external_arraybuffer",'Parameter "finalize_cb" must be 0(NULL)');var f=new ArrayBuffer(t);if(0===t)try{(new(0,d.feature.MessageChannel)).port1.postMessage(f,[f])}catch(e){}else new Uint8Array(f).set(new Uint8Array(a.buffer).subarray(r,r+t)),N.table.set(f,{address:r,ownership:1,runtimeAllocated:0});var c=d.addToCurrentScope(f);if(n){var l=ae(e,c.id,r,n,o,0);if(10===l){var v=u.tryCatch.extractException();throw u.clearLastError(),v}if(0!==l)return u.setLastError(l)}return i=c.id,new DataView(a.buffer).setUint32(s,i,!0),u.getReturnStatus()}catch(v){return u.tryCatch.setError(v),u.setLastError(10)}},napi_create_external_buffer:function(e,r,t,n,a,o){return se(e,-2,t,r,n,a,o)},napi_create_object:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var n=d.addToCurrentScope({}).id;return new DataView(a.buffer).setUint32(r,n,!0),t.clearLastError()},napi_create_symbol:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=new DataView(a.buffer);if(r){var s=d.handleStore.get(r).value;if("string"!=typeof s)return n.setLastError(3);var i=d.addToCurrentScope(Symbol(s)).id;o.setUint32(t,i,!0)}else{var u=d.addToCurrentScope(Symbol()).id;o.setUint32(t,u,!0)}return n.clearLastError()},napi_create_typedarray:function(e,r,t,n,o,s){var i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!n)return u.setLastError(1);if(!s)return u.setLastError(1);var f=d.handleStore.get(n);if(!f.isArrayBuffer())return u.setLastError(1);var c=f.value;o>>>=0,t>>>=0;var l=function(e,r,t,n,o,u){var f,c;if((o>>>=0,u>>>=0,t>1)&&o%t!==0)return(c=new RangeError("start offset of ".concat(null!==(f=r.name)&&void 0!==f?f:""," should be a multiple of ").concat(t))).code="ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT",e.tryCatch.setError(c),e.setLastError(9);if(u*t+o>n.byteLength)return(c=new RangeError("Invalid typed array length")).code="ERR_NAPI_INVALID_TYPEDARRAY_LENGTH",e.tryCatch.setError(c),e.setLastError(9);var l=new r(n,o,u);return n===a.buffer&&(N.wasmMemoryViewTable.has(l)||N.wasmMemoryViewTable.set(l,{Ctor:r,address:o,length:u,ownership:1,runtimeAllocated:0})),s>>>=0,i=d.addToCurrentScope(l).id,new DataView(a.buffer).setUint32(s,i,!0),e.getReturnStatus()};switch(r){case 0:return l(u,Int8Array,1,c,o,t);case 1:return l(u,Uint8Array,1,c,o,t);case 2:return l(u,Uint8ClampedArray,1,c,o,t);case 3:return l(u,Int16Array,2,c,o,t);case 4:return l(u,Uint16Array,2,c,o,t);case 5:return l(u,Int32Array,4,c,o,t);case 6:return l(u,Uint32Array,4,c,o,t);case 7:return l(u,Float32Array,4,c,o,t);case 8:return l(u,Float64Array,8,c,o,t);case 9:return l(u,BigInt64Array,8,c,o,t);case 10:return l(u,BigUint64Array,8,c,o,t);case 11:return"function"!=typeof Float16Array?u.setLastError(1):l(u,Float16Array,2,c,o,t);default:return u.setLastError(1)}}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}},node_api_create_buffer_from_arraybuffer:function(e,r,t,n,o){var s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(!r)return i.setLastError(1);if(!o)return i.setLastError(1);t>>>=0,n>>>=0,t>>>=0,n>>>=0;var u=d.handleStore.get(r);if(!u.isArrayBuffer())return i.setLastError(1);var f=u.value;if(n+t>f.byteLength){var c=new RangeError("The byte offset + length is out of range");throw c.code="ERR_OUT_OF_RANGE",c}var l=d.feature.Buffer;if(!l)throw d.createNotSupportBufferError("node_api_create_buffer_from_arraybuffer","");var v=l.from(f,t,n);return f===a.buffer&&(N.wasmMemoryViewTable.has(v)||N.wasmMemoryViewTable.set(v,{Ctor:l,address:t,length:n,ownership:1,runtimeAllocated:0})),o>>>=0,s=d.addToCurrentScope(v).id,new DataView(a.buffer).setUint32(o,s,!0),i.getReturnStatus()}catch(c){return i.tryCatch.setError(c),i.setLastError(10)}},node_api_create_object_with_properties:function(e,r,t,n,o,s){if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!s)return i.setLastError(1);if(o>>>=0,(o>>>=0)>0){if(!t)return i.setLastError(1);if(!n)return i.setLastError(1)}var u=r?d.handleStore.get(r).value:null,f={};t>>>=0,n>>>=0;for(var c,l=new DataView(a.buffer),v=0;v>>=0,l.setUint32(s,g,!0),i.clearLastError()},node_api_create_sharedarraybuffer:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);n>>>=0;var i=ce(r,t,!0);return o=d.addToCurrentScope(i).id,new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},node_api_symbol_for:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!n)return o.setLastError(1);r>>>=0,n>>>=0;var s=-1===(t>>>=0)||4294967295===t,i=t>>>0;if(0!==t&&!r)return o.setLastError(1);if(!(s||i<=2147483647))return o.setLastError(1);var u=P.UTF8ToString(r,t),f=d.addToCurrentScope(Symbol.for(u)).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()}});var de=Object.freeze({__proto__:null,napi_get_boolean:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!t)return n.setLastError(1);t>>>=0;var o=0===r?3:4;return new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_get_global:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(a.buffer).setUint32(r,5,!0),t.clearLastError()):t.setLastError(1)},napi_get_null:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(a.buffer).setUint32(r,2,!0),t.clearLastError()):t.setLastError(1)},napi_get_undefined:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?(r>>>=0,new DataView(a.buffer).setUint32(r,1,!0),t.clearLastError()):t.setLastError(1)}});var ve=Object.freeze({__proto__:null,napi_get_instance_data:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(!r)return t.setLastError(1);r>>>=0;var n=t.getInstanceData();return new DataView(a.buffer).setUint32(r,n,!0),t.clearLastError()},napi_set_instance_data:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);return r>>>=0,t>>>=0,n>>>=0,a.setInstanceData(r,t,n),a.clearLastError()}});var pe=Object.freeze({__proto__:null,_emnapi_get_last_error_info:function(e,r,t,n){r>>>=0,t>>>=0,n>>>=0;var o=d.envStore.get(e).lastError,s=o.errorCode,i=o.engineErrorCode>>>0,u=o.engineReserved;u>>>=0;var f=new DataView(a.buffer);f.setInt32(r,s,!0),f.setUint32(t,i,!0),f.setUint32(n,u,!0)},napi_create_error:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(t).value;if("string"!=typeof s)return o.setLastError(3);var i=new Error(s);if(r){var u=d.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);i.code=u}n>>>=0;var f=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()},napi_create_range_error:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(t).value;if("string"!=typeof s)return o.setLastError(3);var i=new RangeError(s);if(r){var u=d.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);i.code=u}n>>>=0;var f=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()},napi_create_type_error:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(t).value;if("string"!=typeof s)return o.setLastError(3);var i=new TypeError(s);if(r){var u=d.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);i.code=u}n>>>=0;var f=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()},napi_fatal_error:function(e,r,t,n){e>>>=0,r>>>=0,t>>>=0,n>>>=0;var a=P.UTF8ToString(e,r),o=P.UTF8ToString(t,n);v?v.napi.fatalError(a,o):l("FATAL ERROR: "+a+" "+o)},napi_fatal_exception:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=t.ctx.handleStore.get(r);try{t.triggerFatalException(n.value)}catch(e){return t.setLastError(9)}return t.clearLastError()}catch(r){return t.tryCatch.setError(r),t.setLastError(10)}},napi_get_and_clear_last_exception:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);r>>>=0;var n=new DataView(a.buffer);if(!t.tryCatch.hasCaught())return n.setUint32(r,1,!0),t.clearLastError();var o=t.tryCatch.exception(),s=t.ensureHandleId(o);return n.setUint32(r,s,!0),t.tryCatch.reset(),t.clearLastError()},napi_is_exception_pending:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=t.tryCatch.hasCaught();return r>>>=0,new DataView(a.buffer).setInt8(r,n?1:0,!0),t.clearLastError()},napi_throw:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{return r?(t.tryCatch.setError(d.handleStore.get(r).value),t.clearLastError()):t.setLastError(1)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_throw_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new Error(P.UTF8ToString(t,-1));return r&&(a.code=P.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_throw_range_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new RangeError(P.UTF8ToString(t,-1));return r&&(a.code=P.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_throw_type_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new TypeError(P.UTF8ToString(t,-1));return r&&(a.code=P.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},node_api_create_syntax_error:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(t).value;if("string"!=typeof s)return o.setLastError(3);var i=new SyntaxError(s);if(r){var u=d.handleStore.get(r).value;if("string"!=typeof u)return o.setLastError(3);i.code=u}n>>>=0;var f=d.addToCurrentScope(i).id;return new DataView(a.buffer).setUint32(n,f,!0),o.clearLastError()},node_api_throw_syntax_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!t)return n.setLastError(1);r>>>=0,t>>>=0;var a=new SyntaxError(P.UTF8ToString(t,-1));return r&&(a.code=P.UTF8ToString(r,-1)),n.tryCatch.setError(a),n.clearLastError()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function ge(e,r,t,n,o,s){t>>>=0;var i=d.envStore.get(e),u=ee(i,r,t,n,o);if(0!==u.status)return i.setLastError(u.status);var f=u.f;s>>>=0;var c=d.addToCurrentScope(f).id;return new DataView(a.buffer).setUint32(s,c,!0),i.getReturnStatus()}var ye=Object.freeze({__proto__:null,_emnapi_create_function:ge,napi_call_function:function(e,r,t,n,o,s){var i,u=0;if(!e)return 1;var f=d.envStore.get(e);if(f.checkGCAccess(),!f.tryCatch.isEmpty())return f.setLastError(10);if(!f.canCallIntoJs())return f.setLastError(f.moduleApiVersion>=10?23:10);f.clearLastError();try{if(!r)return f.setLastError(1);if(n>>>=0,o>>>=0,s>>>=0,(n>>>=0)>0&&!o)return f.setLastError(1);var c=d.handleStore.get(r).value;if(!t)return f.setLastError(1);var l=d.handleStore.get(t).value;if("function"!=typeof l)return f.setLastError(1);for(var v=[],p=new DataView(a.buffer);u=10?23:10);s.clearLastError();try{return o&&n?ge(e,r,t,n,a,o):s.setLastError(1)}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_cb_info:function(e,r,t,n,o,s){if(!e)return 1;var i=d.envStore.get(e);if(!r)return i.setLastError(1);var u=d.scopeStore.get(r).callbackInfo;t>>>=0,n>>>=0;var f=new DataView(a.buffer);if(n){if(!t)return i.setLastError(1);var c=f.getUint32(t,!0);c>>>=0;for(var l=u.args.length,v=c>>=0;var y=i.ensureHandleId(u.thiz);f.setUint32(o,y,!0)}return s&&(s>>>=0,f.setUint32(s,u.data,!0)),i.clearLastError()},napi_get_new_target:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.scopeStore.get(r).callbackInfo,s=o.thiz,i=o.fn,u=null==s||null==s.constructor?0:s instanceof i?n.ensureHandleId(s.constructor):0;return new DataView(a.buffer).setUint32(t,u,!0),n.clearLastError()},napi_new_instance:function(e,r,t,n,o){var s,i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!r)return u.setLastError(1);if(t>>>=0,n>>>=0,o>>>=0,(t>>>=0)>0&&!n)return u.setLastError(1);if(!o)return u.setLastError(1);var f=d.handleStore.get(r).value;if("function"!=typeof f)return u.setLastError(1);var c=void 0,l=new DataView(a.buffer);if(d.feature.supportReflect){var v=Array(t);for(s=0;s>>=0,t>>>=0,d.addCleanupHook(n,r,t),0):n.setLastError(1)},napi_close_escapable_handle_scope:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?0===t.openHandleScopes?13:(d.closeScope(t),t.clearLastError()):t.setLastError(1)},napi_close_handle_scope:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return t.checkGCAccess(),r?0===t.openHandleScopes?13:(d.closeScope(t),t.clearLastError()):t.setLastError(1)},napi_create_reference:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.handleStore.get(r);if(o.moduleApiVersion<10&&!(s.isObject()||s.isFunction()||s.isSymbol()))return o.setLastError(1);var i=d.createReference(o,s.id,t>>>0,1);return n>>>=0,new DataView(a.buffer).setUint32(n,i.id,!0),o.clearLastError()},napi_delete_reference:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return r?(d.refStore.get(r).dispose(),t.clearLastError()):t.setLastError(1)},napi_escape_handle:function(e,r,t,n){if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!r)return o.setLastError(1);if(!t)return o.setLastError(1);if(!n)return o.setLastError(1);var s=d.scopeStore.get(r);if(!s.escapeCalled()){t>>>=0,n>>>=0;var i=s.escape(t),u=i?i.id:0;return new DataView(a.buffer).setUint32(n,u,!0),o.clearLastError()}return o.setLastError(12)},napi_get_reference_value:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.refStore.get(r).get(n);return t>>>=0,new DataView(a.buffer).setUint32(t,o,!0),n.clearLastError()},napi_open_escapable_handle_scope:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=d.openScope(t);return r>>>=0,new DataView(a.buffer).setUint32(r,n.id,!0),t.clearLastError()},napi_open_handle_scope:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=d.openScope(t);return r>>>=0,new DataView(a.buffer).setUint32(r,n.id,!0),t.clearLastError()},napi_reference_ref:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);var o=d.refStore.get(r).ref();return t&&(t>>>=0,new DataView(a.buffer).setUint32(t,o,!0)),n.clearLastError()},napi_reference_unref:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);var o=d.refStore.get(r);if(0===o.refcount())return n.setLastError(9);var s=o.unref();return t&&(t>>>=0,new DataView(a.buffer).setUint32(t,s,!0)),n.clearLastError()},napi_remove_env_cleanup_hook:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);return r?(r>>>=0,t>>>=0,d.removeCleanupHook(n,r,t),0):n.setLastError(1)}});var _e=Object.freeze({__proto__:null,_emnapi_get_filename:function(e,r,t){var n=d.envStore.get(e).filename;return r?P.stringToUTF8(n,r,t):P.lengthBytesUTF8(n)}});var Ee=Object.freeze({__proto__:null,napi_create_promise:function(e,r,t){var n,o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);var i=new DataView(a.buffer),u=new Promise(function(e,t){var a=d.createDeferred({resolve:e,reject:t});n=a.id,r>>>=0,i.setUint32(r,n,!0)});return t>>>=0,o=d.addToCurrentScope(u).id,i.setUint32(t,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_is_promise:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isPromise()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_reject_deferred:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{return r&&t?(d.deferredStore.get(r).reject(d.handleStore.get(t).value),n.getReturnStatus()):n.setLastError(1)}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_resolve_deferred:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{return r&&t?(d.deferredStore.get(r).resolve(d.handleStore.get(t).value),n.getReturnStatus()):n.setLastError(1)}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}}});function we(e,r,t,n,o,s){var i;if(!e)return 1;var u=d.envStore.get(e);if(u.checkGCAccess(),!u.tryCatch.isEmpty())return u.setLastError(10);if(!u.canCallIntoJs())return u.setLastError(u.moduleApiVersion>=10?23:10);u.clearLastError();try{if(!s)return u.setLastError(1);if(!r)return u.setLastError(1);var f=d.handleStore.get(r);if(null==f.value)throw new TypeError("Cannot convert undefined or null to object");var c=void 0;try{c=f.isObject()||f.isFunction()?f.value:Object(f.value)}catch(e){return u.setLastError(2)}if(0!==t&&1!==t)return u.setLastError(1);if(0!==o&&1!==o)return u.setLastError(1);var l=[],v=void 0,p=void 0,g=void 0,y=!0,h=/^(0|[1-9][0-9]*)$/;do{for(v=Object.getOwnPropertyNames(c),p=Object.getOwnPropertySymbols(c),g=0;g>>=0,i=d.addToCurrentScope(_).id,new DataView(a.buffer).setUint32(s,i,!0),u.getReturnStatus()}catch(e){return u.tryCatch.setError(e),u.setLastError(10)}}var Le=Object.freeze({__proto__:null,napi_define_properties:function(e,r,t,n){var o,s;if(!e)return 1;var i=d.envStore.get(e);if(i.checkGCAccess(),!i.tryCatch.isEmpty())return i.setLastError(10);if(!i.canCallIntoJs())return i.setLastError(i.moduleApiVersion>=10?23:10);i.clearLastError();try{if(n>>>=0,t>>>=0,(t>>>=0)>0&&!n)return i.setLastError(1);if(!r)return i.setLastError(1);var u=d.handleStore.get(r),f=u.value;if(!u.isObject()&&!u.isFunction())return i.setLastError(2);for(var c=void 0,l=new DataView(a.buffer),v=0;v>>=0;var w=l.getUint32(o+28,!0);if(p)c=P.UTF8ToString(p,-1);else{if(!g)return i.setLastError(4);if("string"!=typeof(c=d.handleStore.get(g).value)&&"symbol"!=typeof c)return i.setLastError(4)}re(i,f,c,y,h,_,E,s,w)}return i.getReturnStatus()}catch(e){return i.tryCatch.setError(e),i.setLastError(10)}},napi_delete_element:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isObject()&&!i.isFunction())return s.setLastError(2);if(d.feature.supportReflect)o=Reflect.deleteProperty(i.value,t>>>0);else try{o=delete i.value[t>>>0]}catch(e){o=!1}if(n)n>>>=0,new DataView(a.buffer).setInt8(n,o?1:0,!0);return s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_delete_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isObject()&&!i.isFunction())return s.setLastError(2);var u=d.handleStore.get(t).value;if(d.feature.supportReflect)o=Reflect.deleteProperty(i.value,u);else try{o=delete i.value[u]}catch(e){o=!1}if(n)n>>>=0,new DataView(a.buffer).setInt8(n,o?1:0,!0);return s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_all_property_names:we,napi_get_element:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return n>>>=0,o=s.ensureHandleId(u[t>>>0]),new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_named_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return t>>>=0,n>>>=0,o=s.ensureHandleId(u[P.UTF8ToString(t,-1)]),new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return n>>>=0,o=s.ensureHandleId(u[d.handleStore.get(t).value]),new DataView(a.buffer).setUint32(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_get_property_names:function(e,r,t){return we(e,r,0,18,1,t)},napi_has_element:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return n>>>=0,o=t>>>0 in u?1:0,new DataView(a.buffer).setInt8(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_has_named_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return t>>>=0,n>>>=0,o=P.UTF8ToString(t,-1)in u,new DataView(a.buffer).setInt8(n,o?1:0,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_has_own_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}var f=d.handleStore.get(t).value;return"string"!=typeof f&&"symbol"!=typeof f?s.setLastError(4):(o=Object.prototype.hasOwnProperty.call(u,d.handleStore.get(t).value),n>>>=0,new DataView(a.buffer).setInt8(n,o?1:0,!0),s.getReturnStatus())}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_has_property:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!t)return s.setLastError(1);if(!n)return s.setLastError(1);if(!r)return s.setLastError(1);var i=d.handleStore.get(r);if(null==i.value)throw new TypeError("Cannot convert undefined or null to object");var u=void 0;try{u=i.isObject()||i.isFunction()?i.value:Object(i.value)}catch(e){return s.setLastError(2)}return n>>>=0,o=d.handleStore.get(t).value in u?1:0,new DataView(a.buffer).setInt8(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_object_freeze:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=d.handleStore.get(r),a=n.value;return n.isObject()||n.isFunction()?(Object.freeze(a),t.getReturnStatus()):t.setLastError(2)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_object_seal:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!t.tryCatch.isEmpty())return t.setLastError(10);if(!t.canCallIntoJs())return t.setLastError(t.moduleApiVersion>=10?23:10);t.clearLastError();try{if(!r)return t.setLastError(1);var n=d.handleStore.get(r),a=n.value;return n.isObject()||n.isFunction()?(Object.seal(a),t.getReturnStatus()):t.setLastError(2)}catch(e){return t.tryCatch.setError(e),t.setLastError(10)}},napi_set_element:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=d.handleStore.get(r);return o.isObject()||o.isFunction()?(o.value[t>>>0]=d.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_set_named_property:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=d.handleStore.get(r);return o.isObject()||o.isFunction()?t?(t>>>=0,d.handleStore.get(r).value[P.UTF8ToString(t,-1)]=d.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(1):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}},napi_set_property:function(e,r,t,n){if(!e)return 1;var a=d.envStore.get(e);if(a.checkGCAccess(),!a.tryCatch.isEmpty())return a.setLastError(10);if(!a.canCallIntoJs())return a.setLastError(a.moduleApiVersion>=10?23:10);a.clearLastError();try{if(!t)return a.setLastError(1);if(!n)return a.setLastError(1);if(!r)return a.setLastError(1);var o=d.handleStore.get(r);return o.isObject()||o.isFunction()?(o.value[d.handleStore.get(t).value]=d.handleStore.get(n).value,a.getReturnStatus()):a.setLastError(2)}catch(e){return a.tryCatch.setError(e),a.setLastError(10)}}});var me=Object.freeze({__proto__:null,napi_run_script:function(e,r,t){var n,o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);var i=d.handleStore.get(r);if(!i.isString())return s.setLastError(3);var u=d.handleStore.get(5).value.eval(i.value);t>>>=0,o=s.ensureHandleId(u),new DataView(a.buffer).setUint32(t,o,!0),n=s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}return n}});var be=Object.freeze({__proto__:null,napi_coerce_to_bool:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);return t>>>=0,n=s.value?4:3,new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_number:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);if(s.isBigInt())throw new TypeError("Cannot convert a BigInt value to a number");return t>>>=0,n=d.addToCurrentScope(Number(s.value)).id,new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_object:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);if(null==s.value)throw new TypeError("Cannot convert undefined or null to object");return t>>>=0,n=o.ensureHandleId(Object(s.value)),new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_coerce_to_string:function(e,r,t){var n;if(!e)return 1;var o=d.envStore.get(e);if(o.checkGCAccess(),!o.tryCatch.isEmpty())return o.setLastError(10);if(!o.canCallIntoJs())return o.setLastError(o.moduleApiVersion>=10?23:10);o.clearLastError();try{if(!r)return o.setLastError(1);if(!t)return o.setLastError(1);var s=d.handleStore.get(r);if(s.isSymbol())throw new TypeError("Cannot convert a Symbol value to a string");return t>>>=0,n=d.addToCurrentScope(String(s.value)).id,new DataView(a.buffer).setUint32(t,n,!0),o.getReturnStatus()}catch(e){return o.tryCatch.setError(e),o.setLastError(10)}},napi_detach_arraybuffer:function(e,r){if(!e)return 1;var t=d.envStore.get(e);if(t.checkGCAccess(),!r)return t.setLastError(1);var n=d.handleStore.get(r).value;if(!(n instanceof ArrayBuffer))return"function"==typeof SharedArrayBuffer&&n instanceof SharedArrayBuffer?t.setLastError(20):t.setLastError(19);try{(new(0,d.feature.MessageChannel)).port1.postMessage(n,[n])}catch(e){return t.setLastError(9)}return t.clearLastError()},napi_instanceof:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!n)return s.setLastError(1);if(!t)return s.setLastError(1);n>>>=0;var i=new DataView(a.buffer);i.setInt8(n,0,!0);var u=d.handleStore.get(t);return u.isFunction()?(o=d.handleStore.get(r).value instanceof u.value?1:0,i.setInt8(n,o,!0),s.getReturnStatus()):s.setLastError(5)}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_is_array:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isArray()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_arraybuffer:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isArrayBuffer()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_buffer:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isBuffer(d.feature.Buffer)?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_dataview:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isDataView()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_date:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isDate()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_detached_arraybuffer:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!n.tryCatch.isEmpty())return n.setLastError(10);if(!n.canCallIntoJs())return n.setLastError(n.moduleApiVersion>=10?23:10);n.clearLastError();try{if(!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);t>>>=0;var s=new DataView(a.buffer);if(o.isArrayBuffer()&&0===o.value.byteLength)try{new Uint8Array(o.value)}catch(e){return s.setInt8(t,1,!0),n.getReturnStatus()}return s.setInt8(t,0,!0),n.getReturnStatus()}catch(e){return n.tryCatch.setError(e),n.setLastError(10)}},napi_is_error:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).value instanceof Error?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_is_typedarray:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);t>>>=0;var o=d.handleStore.get(r).isTypedArray()?1:0;return new DataView(a.buffer).setInt8(t,o,!0),n.clearLastError()},napi_strict_equals:function(e,r,t,n){var o;if(!e)return 1;var s=d.envStore.get(e);if(s.checkGCAccess(),!s.tryCatch.isEmpty())return s.setLastError(10);if(!s.canCallIntoJs())return s.setLastError(s.moduleApiVersion>=10?23:10);s.clearLastError();try{if(!r)return s.setLastError(1);if(!t)return s.setLastError(1);if(!n)return s.setLastError(1);var i=d.handleStore.get(r).value,u=d.handleStore.get(t).value;return n>>>=0,o=i===u?1:0,new DataView(a.buffer).setInt8(n,o,!0),s.getReturnStatus()}catch(e){return s.tryCatch.setError(e),s.setLastError(10)}},napi_typeof:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o,s=d.handleStore.get(r);if(t>>>=0,s.isNumber())o=3;else if(s.isBigInt())o=9;else if(s.isString())o=4;else if(s.isFunction())o=7;else if(s.isExternal())o=8;else if(s.isObject())o=6;else if(s.isBoolean())o=2;else if(s.isUndefined())o=0;else if(s.isSymbol())o=5;else{if(!s.isNull())return n.setLastError(1);o=1}return new DataView(a.buffer).setInt32(t,o,!0),n.clearLastError()},node_api_is_sharedarraybuffer:function(e,r,t){if(!e)return 1;var n=d.envStore.get(e);if(n.checkGCAccess(),!r)return n.setLastError(1);if(!t)return n.setLastError(1);var o=d.handleStore.get(r);t>>>=0;var s="function"==typeof SharedArrayBuffer&&o.value instanceof SharedArrayBuffer||"[object SharedArrayBuffer]"===Object.prototype.toString.call(o.value)?1:0;return new DataView(a.buffer).setInt8(t,s,!0),n.clearLastError()}});var Se=Object.freeze({__proto__:null,napi_get_version:function(e,r){if(!e)return 1;var t=d.envStore.get(e);return r?(new DataView(a.buffer).setUint32(r,10,!0),t.clearLastError()):t.setLastError(1)}});function Ae(e){for(var r=Object.keys(e),t=0;t>>=0,u>>>=0,e>>>=0,f>>>=0,c>>>=0,l>>>=0,v>>>=0,o>>>=0,0===(u>>>=0))return g.setLastError(1);if(!p)return g.setLastError(1);var y,h=0;if(r>>>=0){if("function"!=typeof d.handleStore.get(r).value)return g.setLastError(1);h=d.createReference(g,r,1,1).id}else if(!v)return g.setLastError(1);if(t){if(null==(y=d.handleStore.get(t).value))return g.setLastError(2);y=Object(y)}else y={};var _=g.ensureHandleId(y),E=d.handleStore.get(n).value;if("symbol"==typeof E)return g.setLastError(3);E=String(E);var w=g.ensureHandleId(E),L=G.offset.__size__,m=s(L);if(!m)return g.setLastError(9);m>>>=0,new Uint8Array(a.buffer).subarray(m,m+L).fill(0);var b=d.createReference(g,_,1,1),S=b.id,A=new DataView(a.buffer);return A.setUint32(m+G.offset.resource,S,!0),G.initQueue(m)?(R(_,w,-1,m+G.offset.async_id),A.setInt8(m+G.offset.is_some,1,!0),A.setUint32(m+G.offset.thread_count,u,!0),A.setUint32(m+G.offset.context,l,!0),A.setUint32(m+G.offset.max_queue_size,o,!0),A.setUint32(m+G.offset.ref,h,!0),A.setUint32(m+G.offset.env,e,!0),A.setUint32(m+G.offset.finalize_data,f,!0),A.setUint32(m+G.offset.finalize_cb,c,!0),A.setUint32(m+G.offset.call_js_cb,v,!0),d.addCleanupHook(g,G.cleanup,m),G._liveSet.add(m),g.ref(),d.increaseWaitingRequestCounter(),A.setUint32(m+G.offset.async_ref,1,!0),p>>>=0,A.setUint32(p,m,!0),g.clearLastError()):(i(m),b.dispose(),g.setLastError(9))},g.imports.napi.napi_get_threadsafe_function_context=function(e,r){if(!e||!r)return l(),1;e>>>=0,r>>>=0;var t=G.getContext(e);return new DataView(a.buffer).setUint32(r,t,!0),0},g.imports.napi.napi_call_threadsafe_function=function(e,r,t){return e?(e>>>=0,r>>>=0,G.push(e,r,t)):(l(),1)},g.imports.napi.napi_acquire_threadsafe_function=function(e){return e?(e>>>=0,G.getMutex(e).execute(function(){return 0===G.getState(e)?(G.addThreadCount(e),0):16})):(l(),1)},g.imports.napi.napi_release_threadsafe_function=function(e,r){if(!e)return l(),1;e>>>=0;var t=G.getMutex(e),n=G.getCond(e),a=!1,o=t.execute(function(){return 0===G.getThreadCount(e)?1:(G.subThreadCount(e),0!==G.getThreadCount(e)&&1!==r||0===G.getState(e)&&(1===r&&G.setState(e,1),1===G.getState(e)&&G.getMaxQueueSize(e)>0&&n.signal(),G.send(e)),2!==G.getState(e)||0!==G.getThreadCount(e)||(a=!0),0)});return a&&G.destroy(e),o},g.imports.napi.napi_unref_threadsafe_function=function(e,r){if(!r)return l(),1;var t=(r>>>=0)+G.offset.async_ref>>>2,n=new Uint32Array(a.buffer),o=Atomics.load(n,t);return o>0&&(Atomics.store(n,t,o-1),1===o&&d.decreaseWaitingRequestCounter()),0},g.imports.napi.napi_ref_threadsafe_function=function(e,r){if(!r)return l(),1;var t=(r>>>=0)+G.offset.async_ref>>>2,n=new Uint32Array(a.buffer),o=Atomics.load(n,t);return o||d.increaseWaitingRequestCounter(),Atomics.store(n,t,o+1),0},g}();return t}function i(e,t,n,a){const o=(a=null!=a?a:{}).getMemory,i=a.getTable,f=a.beforeInit;if(null!=o&&"function"!=typeof o)throw new TypeError("options.getMemory is not a function");if(null!=i&&"function"!=typeof i)throw new TypeError("options.getTable is not a function");if(null!=f&&"function"!=typeof f)throw new TypeError("options.beforeInit is not a function");let c;const l="object"==typeof t&&null!==t;if(l){if(t.loaded)throw new Error("napiModule has already loaded");c=t}else c=s(a);const d=a.wasi;let v,p={env:c.imports.env,napi:c.imports.napi,emnapi:c.imports.emnapi};d&&(v=new r(c.childThread?{wasi:d,childThread:!0,postMessage:c.postMessage}:{wasi:d,threadManager:c.PThread,waitThreadStart:c.waitThreadStart}),Object.assign(p,"function"==typeof d.getImportObject?d.getImportObject():{wasi_snapshot_preview1:d.wasiImport}),Object.assign(p,v.getImportObject()));const g=a.overwriteImports;if("function"==typeof g){const e=g(p);"object"==typeof e&&null!==e&&(p=e)}return e(n,p,(r,t)=>{if(r)throw r;const n=t.instance;let a=n;const s=n.exports,g="memory"in s,y="memory"in p.env,h=o?o(s):g?s.memory:y?p.env.memory:void 0;if(!h)throw new Error("memory is neither exported nor imported");const _=i?i(s):s.__indirect_function_table;if(d&&!g){const e=Object.create(null);Object.assign(e,s,{memory:h}),a={exports:e}}const E=t.module;d?a=v.initialize(a,E,h):c.PThread.setup(E,h);const w=()=>{f&&f({instance:n,module:E}),c.init({instance:a,module:E,memory:h,table:_});const e={instance:n,module:E,usedInstance:a};return l||(e.napiModule=c),e};if(c.PThread.shouldPreloadWorkers()){const r=c.PThread.loadWasmModuleToAllWorkers();if(e===u)return r.then(w);throw new Error("Synchronous loading is not supported with worker pool (reuseWorker.size > 0)")}return w()})}function u(e,r,t){return o(e,r).then(e=>t(null,e),e=>t(e))}function f(e,r,t){let o;try{o=function(e,r){if(!e)throw new TypeError("Invalid wasm source");let t;if(a(r),r=null!=r?r:{},e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=new n.Module(e);else{if(!(e instanceof WebAssembly.Module))throw new TypeError("Invalid wasm source");t=e}return{instance:new n.Instance(t,r),module:t}}(e,r)}catch(e){return t(e)}return t(null,o)}function c(e,r,t){if("object"!=typeof e||null===e)throw new TypeError("Invalid napiModule");return i(u,e,r,t)}function l(e,r,t){if("object"!=typeof e||null===e)throw new TypeError("Invalid napiModule");return i(f,e,r,t)}function d(e,r){return i(u,void 0,e,r)}function v(e,r){return i(f,void 0,e,r)}class p extends t{constructor(e){if("function"!=typeof e.onLoad)throw new TypeError("options.onLoad is not a function");const r=e.onError;super({...e,onError:(e,t)=>{var n;const a=null===(n=this.instance)||void 0===n?void 0:n.exports.emnapi_thread_crashed;if("function"==typeof a&&a(),"function"!=typeof r)throw e;r(e,t)}}),this.napiModule=void 0}instantiate(e){const r=this.onLoad(e);return"function"==typeof r.then?r.then(e=>(this.napiModule=e.napiModule,e)):(this.napiModule=r.napiModule,r)}handle(e){var r;if(super.handle(e),null===(r=null==e?void 0:e.data)||void 0===r?void 0:r.__emnapi__){const r=e.data.__emnapi__.type,t=e.data.__emnapi__.payload;try{"async-worker-init"===r&&this.handleAfterLoad(e,()=>{this.napiModule.initWorker(t.arg,t.func)})}catch(e){this.onError(e,r)}}}}const g="1.10.0";export{p as MessageHandler,s as createNapiModule,d as instantiateNapiModule,v as instantiateNapiModuleSync,c as loadNapiModule,l as loadNapiModuleSync,g as version};
diff --git a/node_modules/@emnapi/core/dist/emnapi-core.mjs b/node_modules/@emnapi/core/dist/emnapi-core.mjs
new file mode 100644
index 00000000..b750c26c
--- /dev/null
+++ b/node_modules/@emnapi/core/dist/emnapi-core.mjs
@@ -0,0 +1,7386 @@
+import { ThreadManager, WASIThreads, ThreadMessageHandler } from '@emnapi/wasi-threads';
+export * from '@emnapi/wasi-threads';
+
+const _WebAssembly = typeof WebAssembly !== 'undefined'
+ ? WebAssembly
+ : typeof WXWebAssembly !== 'undefined'
+ ? WXWebAssembly
+ : undefined;
+function validateImports(imports) {
+ if (imports && typeof imports !== 'object') {
+ throw new TypeError('imports must be an object or undefined');
+ }
+ return true;
+}
+function load(wasmInput, imports) {
+ if (!wasmInput)
+ throw new TypeError('Invalid wasm source');
+ validateImports(imports);
+ imports = imports !== null && imports !== void 0 ? imports : {};
+ try {
+ const then = typeof wasmInput === 'object' && wasmInput !== null && 'then' in wasmInput ? wasmInput.then : undefined;
+ if (typeof then === 'function') {
+ return then.call(wasmInput, (input) => load(input, imports));
+ }
+ }
+ catch (_) { }
+ if (wasmInput instanceof ArrayBuffer || ArrayBuffer.isView(wasmInput)) {
+ return _WebAssembly.instantiate(wasmInput, imports);
+ }
+ if (wasmInput instanceof _WebAssembly.Module) {
+ return _WebAssembly.instantiate(wasmInput, imports).then((instance) => {
+ return { instance, module: wasmInput };
+ });
+ }
+ if (typeof Response !== 'undefined' && wasmInput instanceof Response) {
+ return wasmInput.arrayBuffer().then(buffer => {
+ return _WebAssembly.instantiate(buffer, imports);
+ });
+ }
+ const inputIsString = typeof wasmInput === 'string';
+ if (inputIsString || (typeof URL !== 'undefined' && wasmInput instanceof URL)) {
+ if (inputIsString && typeof wx !== 'undefined' && typeof __wxConfig !== 'undefined') {
+ return _WebAssembly.instantiate(wasmInput, imports);
+ }
+ if (typeof fetch !== 'function') {
+ throw new TypeError('wasm source can not be a string or URL in this environment');
+ }
+ if (typeof _WebAssembly.instantiateStreaming === 'function') {
+ try {
+ return _WebAssembly.instantiateStreaming(fetch(wasmInput), imports).catch(() => {
+ return load(fetch(wasmInput), imports);
+ });
+ }
+ catch (_) {
+ return load(fetch(wasmInput), imports);
+ }
+ }
+ else {
+ return load(fetch(wasmInput), imports);
+ }
+ }
+ throw new TypeError('Invalid wasm source');
+}
+function loadSync(wasmInput, imports) {
+ if (!wasmInput)
+ throw new TypeError('Invalid wasm source');
+ validateImports(imports);
+ imports = imports !== null && imports !== void 0 ? imports : {};
+ let module;
+ if ((wasmInput instanceof ArrayBuffer) || ArrayBuffer.isView(wasmInput)) {
+ module = new _WebAssembly.Module(wasmInput);
+ }
+ else if (wasmInput instanceof WebAssembly.Module) {
+ module = wasmInput;
+ }
+ else {
+ throw new TypeError('Invalid wasm source');
+ }
+ const instance = new _WebAssembly.Instance(module, imports);
+ const source = { instance, module };
+ return source;
+}
+
+function createNapiModule(options) {
+ var napiModule = (function () {
+ var ENVIRONMENT_IS_NODE = typeof process === 'object' && process !== null && typeof process.versions === 'object' && process.versions !== null && typeof process.versions.node === 'string';
+ var ENVIRONMENT_IS_PTHREAD = Boolean(options.childThread);
+ var waitThreadStart = typeof options.waitThreadStart === 'number' ? options.waitThreadStart : Boolean(options.waitThreadStart);
+ var wasmInstance;
+ var wasmMemory;
+ var wasmTable;
+ var _malloc;
+ var _free;
+ function abort(msg) {
+ if (typeof _WebAssembly.RuntimeError === 'function') {
+ throw new _WebAssembly.RuntimeError(msg);
+ }
+ throw Error(msg);
+ }
+ var napiModule = {
+ imports: {
+ env: {},
+ napi: {},
+ emnapi: {}
+ },
+ exports: {},
+ emnapi: {},
+ loaded: false,
+ filename: '',
+ childThread: ENVIRONMENT_IS_PTHREAD,
+ initWorker: undefined,
+ waitThreadStart: waitThreadStart,
+ PThread: undefined,
+ init: function (options) {
+ if (napiModule.loaded)
+ return napiModule.exports;
+ if (!options)
+ throw new TypeError('Invalid napi init options');
+ var instance = options.instance;
+ if (!(instance === null || instance === void 0 ? void 0 : instance.exports))
+ throw new TypeError('Invalid wasm instance');
+ wasmInstance = instance;
+ var exports$1 = instance.exports;
+ var module = options.module;
+ var memory = options.memory || exports$1.memory;
+ var table = options.table || exports$1.__indirect_function_table;
+ if (!(module instanceof _WebAssembly.Module))
+ throw new TypeError('Invalid wasm module');
+ if (!(memory instanceof _WebAssembly.Memory))
+ throw new TypeError('Invalid wasm memory');
+ if (!(table instanceof _WebAssembly.Table))
+ throw new TypeError('Invalid wasm table');
+ wasmMemory = memory;
+ wasmTable = table;
+ if (typeof exports$1.malloc !== 'function')
+ throw new TypeError('malloc is not exported');
+ if (typeof exports$1.free !== 'function')
+ throw new TypeError('free is not exported');
+ _malloc = exports$1.malloc;
+ _free = exports$1.free;
+ if (!napiModule.childThread) {
+ var moduleApiVersion = 8;
+ var node_api_module_get_api_version_v1 = instance.exports.node_api_module_get_api_version_v1;
+ if (typeof node_api_module_get_api_version_v1 === 'function') {
+ moduleApiVersion = node_api_module_get_api_version_v1();
+ }
+ var envObject = napiModule.envObject || (napiModule.envObject = emnapiCtx.createEnv(napiModule.filename, moduleApiVersion, function (cb) { return (wasmTable.get(cb)); }, function (cb) { return (wasmTable.get(cb)); }, abort, emnapiNodeBinding));
+ var scope_1 = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callIntoModule(function (_envObject) {
+ var exports$1 = napiModule.exports;
+ var exportsHandle = scope_1.add(exports$1);
+ var napi_register_wasm_v1 = instance.exports.napi_register_wasm_v1;
+ var napiValue = napi_register_wasm_v1(_envObject.id, exportsHandle.id);
+ napiModule.exports = (!napiValue) ? exports$1 : emnapiCtx.handleStore.get(napiValue).value;
+ });
+ }
+ catch (e) {
+ if (e !== 'unwind') {
+ throw e;
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope_1);
+ }
+ napiModule.loaded = true;
+ delete napiModule.envObject;
+ return napiModule.exports;
+ }
+ }
+ };
+ var emnapiCtx;
+ var emnapiNodeBinding;
+ var onCreateWorker = undefined;
+ var err;
+ if (!ENVIRONMENT_IS_PTHREAD) {
+ var context = options.context;
+ if (typeof context !== 'object' || context === null) {
+ throw new TypeError("Invalid `options.context`. Use `import { getDefaultContext } from '@emnapi/runtime'`");
+ }
+ emnapiCtx = context;
+ }
+ else {
+ emnapiCtx = options === null || options === void 0 ? void 0 : options.context;
+ var postMsg = typeof options.postMessage === 'function'
+ ? options.postMessage
+ : typeof postMessage === 'function'
+ ? postMessage
+ : undefined;
+ if (typeof postMsg !== 'function') {
+ throw new TypeError('No postMessage found');
+ }
+ napiModule.postMessage = postMsg;
+ }
+ if (typeof options.filename === 'string') {
+ napiModule.filename = options.filename;
+ }
+ if (typeof options.onCreateWorker === 'function') {
+ onCreateWorker = options.onCreateWorker;
+ }
+ if (typeof options.print === 'function') {
+ options.print;
+ }
+ else {
+ console.log.bind(console);
+ }
+ if (typeof options.printErr === 'function') {
+ err = options.printErr;
+ }
+ else {
+ err = console.warn.bind(console);
+ }
+ if ('nodeBinding' in options) {
+ var nodeBinding = options.nodeBinding;
+ if (typeof nodeBinding !== 'object' || nodeBinding === null) {
+ throw new TypeError('Invalid `options.nodeBinding`. Use @emnapi/node-binding package');
+ }
+ emnapiNodeBinding = nodeBinding;
+ }
+ var emnapiAsyncWorkPoolSize = 0;
+ if ('asyncWorkPoolSize' in options) {
+ if (typeof options.asyncWorkPoolSize !== 'number') {
+ throw new TypeError('options.asyncWorkPoolSize must be a integer');
+ }
+ emnapiAsyncWorkPoolSize = options.asyncWorkPoolSize >> 0;
+ if (emnapiAsyncWorkPoolSize > 1024) {
+ emnapiAsyncWorkPoolSize = 1024;
+ }
+ else if (emnapiAsyncWorkPoolSize < -1024) {
+ emnapiAsyncWorkPoolSize = -1024;
+ }
+ }
+ var singleThreadAsyncWork = ENVIRONMENT_IS_PTHREAD ? false : (emnapiAsyncWorkPoolSize <= 0);
+ function _emnapi_async_work_pool_size() {
+ return Math.abs(emnapiAsyncWorkPoolSize);
+ }
+ napiModule.imports.env._emnapi_async_work_pool_size = _emnapi_async_work_pool_size;
+ function emnapiAddSendListener(worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiSendListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__ && __emnapi__.type === 'async-send') {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({ __emnapi__: __emnapi__ });
+ }
+ else {
+ var callback = __emnapi__.payload.callback;
+ (wasmTable.get(callback))(__emnapi__.payload.data);
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiSendListener;
+ };
+ worker._emnapiSendListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ }
+ napiModule.emnapi.addSendListener = emnapiAddSendListener;
+ var PThread = new ThreadManager(ENVIRONMENT_IS_PTHREAD
+ ? {
+ printErr: err,
+ childThread: true
+ }
+ : {
+ printErr: err,
+ beforeLoad: function (worker) {
+ emnapiAddSendListener(worker);
+ },
+ reuseWorker: options.reuseWorker,
+ onCreateWorker: onCreateWorker
+ });
+ napiModule.PThread = PThread;
+ function napi_set_last_error(env, error_code, engine_error_code, engine_reserved) {
+ var envObject = emnapiCtx.envStore.get(env);
+ return envObject.setLastError(error_code, engine_error_code, engine_reserved);
+ }
+ function napi_clear_last_error(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ return envObject.clearLastError();
+ }
+ function _emnapi_get_node_version(major, minor, patch) {
+ major >>>= 0;
+ minor >>>= 0;
+ patch >>>= 0;
+ var versions = (typeof process === 'object' && process !== null &&
+ typeof process.versions === 'object' && process.versions !== null &&
+ typeof process.versions.node === 'string')
+ ? process.versions.node.split('.').map(function (n) { return Number(n); })
+ : [0, 0, 0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(major, versions[0], true);
+ HEAP_DATA_VIEW.setUint32(minor, versions[1], true);
+ HEAP_DATA_VIEW.setUint32(patch, versions[2], true);
+ }
+ function _emnapi_runtime_keepalive_push() {
+ }
+ function _emnapi_runtime_keepalive_pop() {
+ }
+ function _emnapi_set_immediate(callback, data) {
+ emnapiCtx.feature.setImmediate(function () {
+ (wasmTable.get(callback))(data);
+ });
+ }
+ function _emnapi_next_tick(callback, data) {
+ Promise.resolve().then(function () {
+ (wasmTable.get(callback))(data);
+ });
+ }
+ function _emnapi_callback_into_module(forceUncaught, env, callback, data, close_scope_if_throw) {
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callbackIntoModule(Boolean(forceUncaught), function () {
+ (wasmTable.get(callback))(env, data);
+ });
+ }
+ catch (err) {
+ emnapiCtx.closeScope(envObject, scope);
+ if (close_scope_if_throw) {
+ emnapiCtx.closeScope(envObject);
+ }
+ throw err;
+ }
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ function _emnapi_call_finalizer(forceUncaught, env, callback, data, hint) {
+ var envObject = emnapiCtx.envStore.get(env);
+ callback >>>= 0;
+ envObject.callFinalizerInternal(forceUncaught, callback, data, hint);
+ }
+ function _emnapi_ctx_increase_waiting_request_counter() {
+ emnapiCtx.increaseWaitingRequestCounter();
+ }
+ function _emnapi_ctx_decrease_waiting_request_counter() {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ function _emnapi_is_main_runtime_thread() {
+ return ENVIRONMENT_IS_PTHREAD ? 0 : 1;
+ }
+ function _emnapi_is_main_browser_thread() {
+ return (typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE) ? 1 : 0;
+ }
+ function _emnapi_unwind() {
+ throw 'unwind';
+ }
+ function _emnapi_get_now() {
+ return performance.timeOrigin + performance.now();
+ }
+ function $emnapiSetValueI64(result, numberValue) {
+ var tempDouble;
+ var tempI64 = [
+ numberValue >>> 0,
+ (tempDouble = numberValue, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)
+ ];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, tempI64[0], true);
+ HEAP_DATA_VIEW.setInt32(result + 4, tempI64[1], true);
+ }
+ function _emnapi_open_handle_scope() {
+ return emnapiCtx.openScope().id;
+ }
+ function _emnapi_close_handle_scope(_scope) {
+ return emnapiCtx.closeScope();
+ }
+ var utilMod = Object.freeze({
+ __proto__: null,
+ $emnapiSetValueI64: $emnapiSetValueI64,
+ _emnapi_call_finalizer: _emnapi_call_finalizer,
+ _emnapi_callback_into_module: _emnapi_callback_into_module,
+ _emnapi_close_handle_scope: _emnapi_close_handle_scope,
+ _emnapi_ctx_decrease_waiting_request_counter: _emnapi_ctx_decrease_waiting_request_counter,
+ _emnapi_ctx_increase_waiting_request_counter: _emnapi_ctx_increase_waiting_request_counter,
+ _emnapi_get_node_version: _emnapi_get_node_version,
+ _emnapi_get_now: _emnapi_get_now,
+ _emnapi_is_main_browser_thread: _emnapi_is_main_browser_thread,
+ _emnapi_is_main_runtime_thread: _emnapi_is_main_runtime_thread,
+ _emnapi_next_tick: _emnapi_next_tick,
+ _emnapi_open_handle_scope: _emnapi_open_handle_scope,
+ _emnapi_runtime_keepalive_pop: _emnapi_runtime_keepalive_pop,
+ _emnapi_runtime_keepalive_push: _emnapi_runtime_keepalive_push,
+ _emnapi_set_immediate: _emnapi_set_immediate,
+ _emnapi_unwind: _emnapi_unwind,
+ napi_clear_last_error: napi_clear_last_error,
+ napi_set_last_error: napi_set_last_error
+ });
+ function emnapiGetWorkerByPthreadPtr(pthreadPtr) {
+ var view = new DataView(wasmMemory.buffer);
+ var tidOffset = 20;
+ var tid = view.getInt32(pthreadPtr + tidOffset, true);
+ var worker = PThread.pthreads[tid];
+ return worker;
+ }
+ function _emnapi_worker_ref(pthreadPtr) {
+ if (ENVIRONMENT_IS_PTHREAD)
+ return;
+ pthreadPtr >>>= 0;
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ if (worker && typeof worker.ref === 'function') {
+ worker.ref();
+ }
+ }
+ function _emnapi_worker_unref(pthreadPtr) {
+ if (ENVIRONMENT_IS_PTHREAD)
+ return;
+ pthreadPtr >>>= 0;
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ if (worker && typeof worker.unref === 'function') {
+ worker.unref();
+ }
+ }
+ function _emnapi_async_send_js(type, callback, data) {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({
+ __emnapi__: {
+ type: 'async-send',
+ payload: {
+ callback: callback,
+ data: data
+ }
+ }
+ });
+ }
+ else {
+ switch (type) {
+ case 0:
+ _emnapi_set_immediate(callback, data);
+ break;
+ case 1:
+ _emnapi_next_tick(callback, data);
+ break;
+ }
+ }
+ }
+ var uvThreadpoolReadyResolve;
+ var uvThreadpoolReady = new Promise(function (resolve) {
+ uvThreadpoolReadyResolve = function () {
+ uvThreadpoolReady.ready = true;
+ resolve();
+ };
+ });
+ uvThreadpoolReady.ready = false;
+ function _emnapi_after_uvthreadpool_ready(callback, q, type) {
+ if (uvThreadpoolReady.ready) {
+ (wasmTable.get(callback))(q, type);
+ }
+ else {
+ uvThreadpoolReady.then(function () {
+ (wasmTable.get(callback))(q, type);
+ });
+ }
+ }
+ function _emnapi_tell_js_uvthreadpool(threads, size) {
+ var p = [];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var _loop_1 = function (i) {
+ var pthreadPtr = HEAP_DATA_VIEW.getUint32(threads + i * 4, true);
+ var worker = emnapiGetWorkerByPthreadPtr(pthreadPtr);
+ p.push(new Promise(function (resolve) {
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__ && __emnapi__.type === 'async-thread-ready') {
+ resolve();
+ if (worker && typeof worker.unref === 'function') {
+ worker.unref();
+ }
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler);
+ }
+ }
+ };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler);
+ }
+ }));
+ };
+ for (var i = 0; i < size; i++) {
+ _loop_1(i);
+ }
+ Promise.all(p).then(uvThreadpoolReadyResolve);
+ }
+ function _emnapi_emit_async_thread_ready() {
+ if (!ENVIRONMENT_IS_PTHREAD)
+ return;
+ var postMessage = napiModule.postMessage;
+ postMessage({
+ __emnapi__: {
+ type: 'async-thread-ready',
+ payload: {}
+ }
+ });
+ }
+ var asyncMod = Object.freeze({
+ __proto__: null,
+ _emnapi_after_uvthreadpool_ready: _emnapi_after_uvthreadpool_ready,
+ _emnapi_async_send_js: _emnapi_async_send_js,
+ _emnapi_emit_async_thread_ready: _emnapi_emit_async_thread_ready,
+ _emnapi_tell_js_uvthreadpool: _emnapi_tell_js_uvthreadpool,
+ _emnapi_worker_ref: _emnapi_worker_ref,
+ _emnapi_worker_unref: _emnapi_worker_unref
+ });
+ function napi_adjust_external_memory(env, change_in_bytes, adjusted_value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!adjusted_value)
+ return envObject.setLastError(1);
+ var adjusted_memory = emnapiCtx.adjustAmountOfExternalAllocatedMemory(change_in_bytes);
+ adjusted_value >>>= 0;
+ if (emnapiCtx.feature.supportBigInt) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setBigInt64(adjusted_value, BigInt(adjusted_memory), true);
+ }
+ else {
+ $emnapiSetValueI64(adjusted_value, Number(adjusted_memory));
+ }
+ return envObject.clearLastError();
+ }
+ var memoryMod = Object.freeze({
+ __proto__: null,
+ napi_adjust_external_memory: napi_adjust_external_memory
+ });
+ var emnapiAWST = {
+ idGen: {},
+ values: [undefined],
+ queued: new Set(),
+ pending: [],
+ init: function () {
+ var idGen = {
+ nextId: 1,
+ list: [],
+ generate: function () {
+ var id;
+ if (idGen.list.length) {
+ id = idGen.list.shift();
+ }
+ else {
+ id = idGen.nextId;
+ idGen.nextId++;
+ }
+ return id;
+ },
+ reuse: function (id) {
+ idGen.list.push(id);
+ }
+ };
+ emnapiAWST.idGen = idGen;
+ emnapiAWST.values = [undefined];
+ emnapiAWST.queued = new Set();
+ emnapiAWST.pending = [];
+ },
+ create: function (env, resource, resourceName, execute, complete, data) {
+ var asyncId = 0;
+ var triggerAsyncId = 0;
+ if (emnapiNodeBinding) {
+ var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resourceName, -1);
+ asyncId = asyncContext.asyncId;
+ triggerAsyncId = asyncContext.triggerAsyncId;
+ }
+ var id = emnapiAWST.idGen.generate();
+ emnapiAWST.values[id] = {
+ env: env,
+ id: id,
+ resource: resource,
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId,
+ status: 0,
+ execute: execute,
+ complete: complete,
+ data: data
+ };
+ return id;
+ },
+ callComplete: function (work, status) {
+ var complete = work.complete;
+ var env = work.env;
+ var data = work.data;
+ var callback = function () {
+ if (!complete)
+ return;
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ try {
+ envObject.callbackIntoModule(true, function () {
+ (wasmTable.get(complete))(env, status, data);
+ });
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ };
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.node.makeCallback(work.resource, callback, [], {
+ asyncId: work.asyncId,
+ triggerAsyncId: work.triggerAsyncId
+ });
+ }
+ else {
+ callback();
+ }
+ },
+ queue: function (id) {
+ var work = emnapiAWST.values[id];
+ if (!work)
+ return;
+ if (work.status === 0) {
+ work.status = 1;
+ if (emnapiAWST.queued.size >= (Math.abs(emnapiAsyncWorkPoolSize) || 4)) {
+ emnapiAWST.pending.push(id);
+ return;
+ }
+ emnapiAWST.queued.add(id);
+ var env_1 = work.env;
+ var data_1 = work.data;
+ var execute = work.execute;
+ work.status = 2;
+ emnapiCtx.feature.setImmediate(function () {
+ (wasmTable.get(execute))(env_1, data_1);
+ emnapiAWST.queued.delete(id);
+ work.status = 3;
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWST.callComplete(work, 0);
+ });
+ if (emnapiAWST.pending.length > 0) {
+ var nextWorkId = emnapiAWST.pending.shift();
+ emnapiAWST.values[nextWorkId].status = 0;
+ emnapiAWST.queue(nextWorkId);
+ }
+ });
+ }
+ },
+ cancel: function (id) {
+ var index = emnapiAWST.pending.indexOf(id);
+ if (index !== -1) {
+ var work_1 = emnapiAWST.values[id];
+ if (work_1 && (work_1.status === 1)) {
+ work_1.status = 4;
+ emnapiAWST.pending.splice(index, 1);
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWST.callComplete(work_1, 11);
+ });
+ return 0;
+ }
+ else {
+ return 9;
+ }
+ }
+ return 9;
+ },
+ remove: function (id) {
+ var work = emnapiAWST.values[id];
+ if (!work)
+ return;
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.node.emitAsyncDestroy({
+ asyncId: work.asyncId,
+ triggerAsyncId: work.triggerAsyncId
+ });
+ }
+ emnapiAWST.values[id] = undefined;
+ emnapiAWST.idGen.reuse(id);
+ }
+ };
+ function _emnapi_node_emit_async_init(async_resource, async_resource_name, trigger_async_id, result) {
+ if (!emnapiNodeBinding)
+ return;
+ var resource = emnapiCtx.handleStore.get(async_resource).value;
+ var resource_name = emnapiCtx.handleStore.get(async_resource_name).value;
+ var asyncContext = emnapiNodeBinding.node.emitAsyncInit(resource, resource_name, trigger_async_id);
+ var asyncId = asyncContext.asyncId;
+ var triggerAsyncId = asyncContext.triggerAsyncId;
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, asyncId, true);
+ HEAP_DATA_VIEW.setFloat64(result + 8, triggerAsyncId, true);
+ }
+ }
+ function _emnapi_node_emit_async_destroy(async_id, trigger_async_id) {
+ if (!emnapiNodeBinding)
+ return;
+ emnapiNodeBinding.node.emitAsyncDestroy({
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ });
+ }
+ function _emnapi_node_make_callback(env, async_resource, cb, argv, size, async_id, trigger_async_id, result) {
+ var i = 0;
+ var v;
+ if (!emnapiNodeBinding)
+ return;
+ var resource = emnapiCtx.handleStore.get(async_resource).value;
+ var callback = emnapiCtx.handleStore.get(cb).value;
+ argv >>>= 0;
+ size >>>= 0;
+ size = size >>> 0;
+ var arr = Array(size);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (; i < size; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ arr[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var ret = emnapiNodeBinding.node.makeCallback(resource, callback, arr, {
+ asyncId: async_id,
+ triggerAsyncId: trigger_async_id
+ });
+ if (result) {
+ result >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ }
+ function _emnapi_async_init_js(async_resource, async_resource_name, result) {
+ if (!emnapiNodeBinding) {
+ return 9;
+ }
+ var resource;
+ if (async_resource) {
+ resource = Object(emnapiCtx.handleStore.get(async_resource).value);
+ }
+ var name = emnapiCtx.handleStore.get(async_resource_name).value;
+ var ret = emnapiNodeBinding.napi.asyncInit(resource, name);
+ if (ret.status !== 0)
+ return ret.status;
+ var numberValue = ret.value;
+ if (!((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63))))) {
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ if (numberValue >= (BigInt(1) << BigInt(63))) {
+ numberValue = numberValue - (BigInt(1) << BigInt(64));
+ }
+ }
+ var low = Number(numberValue & BigInt(0xffffffff));
+ var high = Number(numberValue >> BigInt(32));
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, low, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, high, true);
+ return 0;
+ }
+ function _emnapi_async_destroy_js(async_context) {
+ if (!emnapiNodeBinding) {
+ return 9;
+ }
+ async_context >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var low = HEAP_DATA_VIEW.getInt32(async_context, true);
+ var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
+ var pointer = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
+ var ret = emnapiNodeBinding.napi.asyncDestroy(pointer);
+ if (ret.status !== 0)
+ return ret.status;
+ return 0;
+ }
+ function napi_open_callback_scope(env, ignored, async_context_handle, result) {
+ throw new Error('napi_open_callback_scope has not been implemented yet');
+ }
+ function napi_close_callback_scope(env, scope) {
+ throw new Error('napi_close_callback_scope has not been implemented yet');
+ }
+ function napi_make_callback(env, async_context, recv, func, argc, argv, result) {
+ var i = 0;
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!emnapiNodeBinding) {
+ return envObject.setLastError(9);
+ }
+ if (!recv)
+ return envObject.setLastError(1);
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1);
+ }
+ var v8recv = Object(emnapiCtx.handleStore.get(recv).value);
+ var v8func = emnapiCtx.handleStore.get(func).value;
+ if (typeof v8func !== 'function') {
+ return envObject.setLastError(1);
+ }
+ async_context >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var low = HEAP_DATA_VIEW.getInt32(async_context, true);
+ var high = HEAP_DATA_VIEW.getInt32(async_context + 4, true);
+ var ctx = BigInt(low >>> 0) | (BigInt(high) << BigInt(32));
+ argv >>>= 0;
+ argc >>>= 0;
+ argc = argc >>> 0;
+ var arr = Array(argc);
+ for (; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ arr[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var ret = emnapiNodeBinding.napi.makeCallback(ctx, v8recv, v8func, arr);
+ if (ret.error) {
+ throw ret.error;
+ }
+ if (ret.status !== 0)
+ return envObject.setLastError(ret.status);
+ if (result) {
+ result >>>= 0;
+ v = envObject.ensureHandleId(ret.value);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function _emnapi_env_check_gc_access(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ }
+ var nodeMod = Object.freeze({
+ __proto__: null,
+ _emnapi_async_destroy_js: _emnapi_async_destroy_js,
+ _emnapi_async_init_js: _emnapi_async_init_js,
+ _emnapi_env_check_gc_access: _emnapi_env_check_gc_access,
+ _emnapi_node_emit_async_destroy: _emnapi_node_emit_async_destroy,
+ _emnapi_node_emit_async_init: _emnapi_node_emit_async_init,
+ _emnapi_node_make_callback: _emnapi_node_make_callback,
+ napi_close_callback_scope: napi_close_callback_scope,
+ napi_make_callback: napi_make_callback,
+ napi_open_callback_scope: napi_open_callback_scope
+ });
+ var emnapiTSFN = {
+ _liveSet: {},
+ offset: {
+ __size__: 0,
+ resource: 0,
+ async_id: 0,
+ trigger_async_id: 0,
+ queue_size: 0,
+ is_some: 0,
+ queue: 0,
+ async_pending: 0,
+ async_u_fd: 0,
+ thread_count: 0,
+ state: 0,
+ dispatch_state: 0,
+ context: 0,
+ max_queue_size: 0,
+ ref: 0,
+ env: 0,
+ finalize_data: 0,
+ finalize_cb: 0,
+ call_js_cb: 0,
+ handles_closing: 0,
+ async_ref: 0,
+ mutex: 0,
+ cond: 0
+ },
+ init: function () {
+ emnapiTSFN._liveSet = new Set();
+ emnapiTSFN.offset.__size__ = 184;
+ emnapiTSFN.offset.resource = 0;
+ emnapiTSFN.offset.async_id = 8;
+ emnapiTSFN.offset.trigger_async_id = 16;
+ emnapiTSFN.offset.queue_size = 60;
+ emnapiTSFN.offset.is_some = 24;
+ emnapiTSFN.offset.queue = 64;
+ emnapiTSFN.offset.async_pending = 132;
+ emnapiTSFN.offset.async_u_fd = 96;
+ emnapiTSFN.offset.thread_count = 136;
+ emnapiTSFN.offset.state = 140;
+ emnapiTSFN.offset.dispatch_state = 144;
+ emnapiTSFN.offset.context = 148;
+ emnapiTSFN.offset.max_queue_size = 152;
+ emnapiTSFN.offset.ref = 156;
+ emnapiTSFN.offset.env = 160;
+ emnapiTSFN.offset.finalize_data = 164;
+ emnapiTSFN.offset.finalize_cb = 168;
+ emnapiTSFN.offset.call_js_cb = 172;
+ emnapiTSFN.offset.handles_closing = 176;
+ emnapiTSFN.offset.async_ref = 180;
+ emnapiTSFN.offset.mutex = 32;
+ emnapiTSFN.offset.cond = 56;
+ emnapiTSFN.offset.mutex = emnapiTSFN.offset.mutex + 4;
+ if (typeof PThread !== 'undefined') {
+ PThread.unusedWorkers.forEach(emnapiTSFN.addListener);
+ PThread.runningWorkers.forEach(emnapiTSFN.addListener);
+ var __original_getNewWorker_1 = PThread.getNewWorker;
+ PThread.getNewWorker = function () {
+ var r = __original_getNewWorker_1.apply(this, arguments);
+ emnapiTSFN.addListener(r);
+ return r;
+ };
+ }
+ },
+ addListener: function (worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiTSFNListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__) {
+ var type = __emnapi__.type;
+ var payload = __emnapi__.payload;
+ if (type === 'tsfn-send') {
+ var pendng = payload.tsfn + emnapiTSFN.offset.async_pending;
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
+ emnapiTSFN.enqueue(payload.tsfn);
+ }
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiTSFNListener;
+ };
+ worker._emnapiTSFNListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ },
+ initQueue: function (func) {
+ var size = 2 * 4;
+ var queue = _malloc(size);
+ if (!queue)
+ return false;
+ queue >>>= 0;
+ new Uint8Array(wasmMemory.buffer, queue, size).fill(0);
+ emnapiTSFN.storeSizeTypeValue(func + emnapiTSFN.offset.queue, queue, false);
+ return true;
+ },
+ destroyQueue: function (func) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ if (queue) {
+ var node = emnapiTSFN.loadSizeTypeValue(queue, false);
+ while (node !== 0) {
+ var next = emnapiTSFN.loadSizeTypeValue(node + 4, false);
+ _free(node);
+ node = next;
+ }
+ _free(queue);
+ }
+ },
+ pushQueue: function (func, data) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ var head = emnapiTSFN.loadSizeTypeValue(queue, false);
+ var tail = emnapiTSFN.loadSizeTypeValue(queue + 4, false);
+ var size = 2 * 4;
+ var node = _malloc(size);
+ if (!node)
+ throw new Error('OOM');
+ node >>>= 0;
+ emnapiTSFN.storeSizeTypeValue(node, data, false);
+ emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
+ if (head === 0 && tail === 0) {
+ emnapiTSFN.storeSizeTypeValue(queue, node, false);
+ emnapiTSFN.storeSizeTypeValue(queue + 4, node, false);
+ }
+ else {
+ emnapiTSFN.storeSizeTypeValue(tail + 4, node, false);
+ emnapiTSFN.storeSizeTypeValue(queue + 4, node, false);
+ }
+ emnapiTSFN.addQueueSize(func);
+ },
+ shiftQueue: function (func) {
+ var queue = emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue, false);
+ var head = emnapiTSFN.loadSizeTypeValue(queue, false);
+ if (head === 0)
+ return 0;
+ var node = head;
+ var next = emnapiTSFN.loadSizeTypeValue(head + 4, false);
+ emnapiTSFN.storeSizeTypeValue(queue, next, false);
+ if (next === 0) {
+ emnapiTSFN.storeSizeTypeValue(queue + 4, 0, false);
+ }
+ emnapiTSFN.storeSizeTypeValue(node + 4, 0, false);
+ var value = emnapiTSFN.loadSizeTypeValue(node, false);
+ _free(node);
+ emnapiTSFN.subQueueSize(func);
+ return value;
+ },
+ push: function (func, data, mode) {
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ var waitCondition = function () {
+ var queueSize = emnapiTSFN.getQueueSize(func);
+ var maxSize = emnapiTSFN.getMaxQueueSize(func);
+ return queueSize >= maxSize && maxSize > 0 && emnapiTSFN.getState(func) === 0;
+ };
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var shouldDelete = false;
+ var ret = mutex.execute(function () {
+ while (waitCondition()) {
+ if (mode === 0) {
+ return 15;
+ }
+ if (isBrowserMain) {
+ return 21;
+ }
+ cond.wait();
+ }
+ if (emnapiTSFN.getState(func) === 0) {
+ emnapiTSFN.pushQueue(func, data);
+ emnapiTSFN.send(func);
+ return 0;
+ }
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ return 1;
+ }
+ emnapiTSFN.subThreadCount(func);
+ if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
+ return 16;
+ }
+ shouldDelete = true;
+ return 16;
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ return ret;
+ },
+ getMutex: function (func) {
+ var index = func + emnapiTSFN.offset.mutex;
+ var mutex = {
+ lock: function () {
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ if (isBrowserMain) {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ }
+ }
+ else {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ Atomics.wait(i32a, 0, 10);
+ }
+ }
+ },
+ unlock: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
+ if (oldValue !== 10) {
+ throw new Error('Tried to unlock while not holding the mutex');
+ }
+ Atomics.notify(i32a, 0, 1);
+ },
+ execute: function (fn) {
+ mutex.lock();
+ try {
+ return fn();
+ }
+ finally {
+ mutex.unlock();
+ }
+ }
+ };
+ return mutex;
+ },
+ getCond: function (func) {
+ var index = func + emnapiTSFN.offset.cond;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = {
+ wait: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var value = Atomics.load(i32a, 0);
+ mutex.unlock();
+ Atomics.wait(i32a, 0, value);
+ mutex.lock();
+ },
+ signal: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ Atomics.add(i32a, 0, 1);
+ Atomics.notify(i32a, 0, 1);
+ }
+ };
+ return cond;
+ },
+ getQueueSize: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.queue_size, true);
+ },
+ addQueueSize: function (func) {
+ var offset = emnapiTSFN.offset.queue_size;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.add(arr, index, 1);
+ },
+ subQueueSize: function (func) {
+ var offset = emnapiTSFN.offset.queue_size;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.sub(arr, index, 1);
+ },
+ getThreadCount: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.thread_count, true);
+ },
+ addThreadCount: function (func) {
+ var offset = emnapiTSFN.offset.thread_count;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.add(arr, index, 1);
+ },
+ subThreadCount: function (func) {
+ var offset = emnapiTSFN.offset.thread_count;
+ var arr, index;
+ arr = new Uint32Array(wasmMemory.buffer);
+ index = (func + offset) >>> 2;
+ Atomics.sub(arr, index, 1);
+ },
+ getState: function (func) {
+ return Atomics.load(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2);
+ },
+ setState: function (func, value) {
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.state) >>> 2, value);
+ },
+ getHandlesClosing: function (func) {
+ return Atomics.load(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing));
+ },
+ setHandlesClosing: function (func, value) {
+ Atomics.store(new Int8Array(wasmMemory.buffer), (func + emnapiTSFN.offset.handles_closing), value);
+ },
+ getDispatchState: function (func) {
+ return Atomics.load(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2);
+ },
+ getContext: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.context, false);
+ },
+ getMaxQueueSize: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.max_queue_size, true);
+ },
+ getEnv: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.env, false);
+ },
+ getCallJSCb: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.call_js_cb, false);
+ },
+ getRef: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.ref, false);
+ },
+ getResource: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.resource, false);
+ },
+ getFinalizeCb: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.finalize_cb, false);
+ },
+ getFinalizeData: function (func) {
+ return emnapiTSFN.loadSizeTypeValue(func + emnapiTSFN.offset.finalize_data, false);
+ },
+ loadSizeTypeValue: function (offset, unsigned) {
+ var ret;
+ var arr;
+ if (unsigned) {
+ arr = new Uint32Array(wasmMemory.buffer);
+ ret = Atomics.load(arr, offset >>> 2);
+ return ret;
+ }
+ else {
+ arr = new Int32Array(wasmMemory.buffer);
+ ret = Atomics.load(arr, offset >>> 2);
+ return ret;
+ }
+ },
+ storeSizeTypeValue: function (offset, value, unsigned) {
+ var arr;
+ if (unsigned) {
+ arr = new Uint32Array(wasmMemory.buffer);
+ Atomics.store(arr, offset >>> 2, value);
+ return undefined;
+ }
+ else {
+ arr = new Int32Array(wasmMemory.buffer);
+ Atomics.store(arr, offset >>> 2, value >>> 0);
+ return undefined;
+ }
+ },
+ releaseResources: function (func) {
+ if (emnapiTSFN.getState(func) !== 2) {
+ emnapiTSFN.setState(func, 2);
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ var ref = emnapiTSFN.getRef(func);
+ if (ref) {
+ emnapiCtx.refStore.get(ref).dispose();
+ }
+ var resource = emnapiTSFN.getResource(func);
+ emnapiCtx.refStore.get(resource).dispose();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(func + emnapiTSFN.offset.is_some, 0, true);
+ emnapiCtx.removeCleanupHook(envObject, emnapiTSFN.cleanup, func);
+ envObject.unref();
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ if (Atomics.load(arr, asyncRefOffset) > 0) {
+ Atomics.store(arr, asyncRefOffset, 0);
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ if (emnapiNodeBinding) {
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
+ }
+ }
+ },
+ destroy: function (func) {
+ emnapiTSFN._liveSet.delete(func);
+ emnapiTSFN.destroyQueue(func);
+ emnapiTSFN.releaseResources(func);
+ _free(func);
+ },
+ emptyQueue: function (func) {
+ var drainQueue = [];
+ emnapiTSFN.getMutex(func).execute(function () {
+ while (emnapiTSFN.getQueueSize(func) > 0) {
+ drainQueue.push(emnapiTSFN.shiftQueue(func));
+ }
+ });
+ var callJsCb = emnapiTSFN.getCallJSCb(func);
+ var context = emnapiTSFN.getContext(func);
+ var data;
+ for (var i = 0; i < drainQueue.length; i++) {
+ data = drainQueue[i];
+ if (callJsCb) {
+ (wasmTable.get(callJsCb))(0, 0, context, data);
+ }
+ }
+ },
+ maybeDelete: function (func) {
+ var shouldDelete = false;
+ emnapiTSFN.getMutex(func).execute(function () {
+ if (emnapiTSFN.getThreadCount(func) > 0) {
+ emnapiTSFN.releaseResources(func);
+ }
+ else {
+ shouldDelete = true;
+ }
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ },
+ finalize: function (func) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject);
+ var finalize = emnapiTSFN.getFinalizeCb(func);
+ var data = emnapiTSFN.getFinalizeData(func);
+ var context = emnapiTSFN.getContext(func);
+ var f = function () {
+ envObject.callFinalizerInternal(0, finalize, data, context);
+ };
+ try {
+ emnapiTSFN.emptyQueue(func);
+ if (finalize) {
+ if (emnapiNodeBinding) {
+ var resource = emnapiTSFN.getResource(func);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(func + emnapiTSFN.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true);
+ emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId
+ });
+ }
+ else {
+ f();
+ }
+ }
+ emnapiTSFN.maybeDelete(func);
+ }
+ finally {
+ emnapiCtx.closeScope(envObject);
+ }
+ },
+ cleanup: function (func) {
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 1);
+ },
+ closeHandlesAndMaybeDelete: function (func, set_closing) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject);
+ try {
+ if (set_closing) {
+ emnapiTSFN.getMutex(func).execute(function () {
+ emnapiTSFN.setState(func, 1);
+ if (emnapiTSFN.getMaxQueueSize(func) > 0) {
+ emnapiTSFN.getCond(func).signal();
+ }
+ });
+ }
+ if (emnapiTSFN.getHandlesClosing(func)) {
+ return;
+ }
+ emnapiTSFN.setHandlesClosing(func, 1);
+ Atomics.store(new Int32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.async_pending) >>> 2, 1);
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiTSFN.finalize(func);
+ });
+ }
+ finally {
+ emnapiCtx.closeScope(envObject);
+ }
+ },
+ dispatchOne: function (func) {
+ var data = 0;
+ var popped_value = false;
+ var has_more = false;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ mutex.execute(function () {
+ if (emnapiTSFN.getState(func) === 0) {
+ var size = emnapiTSFN.getQueueSize(func);
+ if (size > 0) {
+ data = emnapiTSFN.shiftQueue(func);
+ popped_value = true;
+ var maxQueueSize = emnapiTSFN.getMaxQueueSize(func);
+ if (size === maxQueueSize && maxQueueSize > 0) {
+ cond.signal();
+ }
+ size--;
+ }
+ if (size === 0) {
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ emnapiTSFN.setState(func, 1);
+ if (emnapiTSFN.getMaxQueueSize(func) > 0) {
+ cond.signal();
+ }
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
+ }
+ }
+ else {
+ has_more = true;
+ }
+ }
+ else {
+ emnapiTSFN.closeHandlesAndMaybeDelete(func, 0);
+ }
+ });
+ if (popped_value) {
+ var env = emnapiTSFN.getEnv(func);
+ var envObject_1 = emnapiCtx.envStore.get(env);
+ emnapiCtx.openScope(envObject_1);
+ var f = function () {
+ envObject_1.callbackIntoModule(false, function () {
+ var callJsCb = emnapiTSFN.getCallJSCb(func);
+ var ref = emnapiTSFN.getRef(func);
+ var js_callback = ref ? emnapiCtx.refStore.get(ref).get() : 0;
+ if (callJsCb) {
+ var context = emnapiTSFN.getContext(func);
+ (wasmTable.get(callJsCb))(env, js_callback, context, data);
+ }
+ else {
+ var jsCallback = js_callback ? emnapiCtx.handleStore.get(js_callback).value : null;
+ if (typeof jsCallback === 'function') {
+ jsCallback();
+ }
+ }
+ });
+ };
+ try {
+ if (emnapiNodeBinding) {
+ var resource = emnapiTSFN.getResource(func);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ emnapiNodeBinding.node.makeCallback(resourceObject, f, [], {
+ asyncId: view.getFloat64(func + emnapiTSFN.offset.async_id, true),
+ triggerAsyncId: view.getFloat64(func + emnapiTSFN.offset.trigger_async_id, true)
+ });
+ }
+ else {
+ f();
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject_1);
+ }
+ }
+ return has_more;
+ },
+ dispatch: function (func) {
+ var has_more = true;
+ var iterations_left = 1000;
+ var ui32a = new Uint32Array(wasmMemory.buffer);
+ var index = (func + emnapiTSFN.offset.dispatch_state) >>> 2;
+ while (has_more && --iterations_left !== 0) {
+ Atomics.store(ui32a, index, 1);
+ has_more = emnapiTSFN.dispatchOne(func);
+ if (Atomics.exchange(ui32a, index, 0) !== 1) {
+ has_more = true;
+ }
+ }
+ if (has_more) {
+ emnapiTSFN.send(func);
+ }
+ },
+ enqueue: function (func) {
+ var pending = func + emnapiTSFN.offset.async_pending;
+ var scheduled = func + emnapiTSFN.offset.async_u_fd;
+ var i32a = new Int32Array(wasmMemory.buffer);
+ if (Atomics.exchange(i32a, scheduled >>> 2, 1) !== 0) {
+ return;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ if (!emnapiTSFN._liveSet.has(func)) {
+ return;
+ }
+ if (Atomics.load(i32a, pending >>> 2) === 0) {
+ Atomics.store(i32a, scheduled >>> 2, 0);
+ return;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ try {
+ if (Atomics.exchange(i32a, pending >>> 2, 0) === 0) {
+ return;
+ }
+ if (!emnapiTSFN._liveSet.has(func)) {
+ return;
+ }
+ emnapiTSFN.dispatch(func);
+ }
+ finally {
+ if (emnapiTSFN._liveSet.has(func)) {
+ Atomics.store(i32a, scheduled >>> 2, 0);
+ if (Atomics.load(i32a, pending >>> 2) !== 0) {
+ emnapiTSFN.enqueue(func);
+ }
+ }
+ }
+ });
+ });
+ },
+ send: function (func) {
+ var current_state = Atomics.or(new Uint32Array(wasmMemory.buffer), (func + emnapiTSFN.offset.dispatch_state) >>> 2, 1 << 1);
+ if ((current_state & 1) === 1) {
+ return;
+ }
+ var pendng = func + emnapiTSFN.offset.async_pending;
+ if (Atomics.load(new Int32Array(wasmMemory.buffer), pendng >>> 2) !== 0) {
+ return;
+ }
+ if (Atomics.exchange(new Int32Array(wasmMemory.buffer), pendng >>> 2, 1) === 0) {
+ if ((typeof ENVIRONMENT_IS_PTHREAD !== 'undefined') && ENVIRONMENT_IS_PTHREAD) {
+ postMessage({
+ __emnapi__: {
+ type: 'tsfn-send',
+ payload: {
+ tsfn: func
+ }
+ }
+ });
+ }
+ else {
+ emnapiTSFN.enqueue(func);
+ }
+ }
+ }
+ };
+ function napi_create_threadsafe_function(env, func, async_resource, async_resource_name, max_queue_size, initial_thread_count, thread_finalize_data, thread_finalize_cb, context, call_js_cb, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!async_resource_name)
+ return envObject.setLastError(1);
+ max_queue_size >>>= 0;
+ initial_thread_count >>>= 0;
+ env >>>= 0;
+ thread_finalize_data >>>= 0;
+ thread_finalize_cb >>>= 0;
+ context >>>= 0;
+ call_js_cb >>>= 0;
+ max_queue_size = max_queue_size >>> 0;
+ initial_thread_count = initial_thread_count >>> 0;
+ if (initial_thread_count === 0) {
+ return envObject.setLastError(1);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ var ref = 0;
+ func >>>= 0;
+ if (!func) {
+ if (!call_js_cb)
+ return envObject.setLastError(1);
+ }
+ else {
+ var funcValue = emnapiCtx.handleStore.get(func).value;
+ if (typeof funcValue !== 'function') {
+ return envObject.setLastError(1);
+ }
+ ref = emnapiCtx.createReference(envObject, func, 1, 1).id;
+ }
+ var asyncResourceObject;
+ if (async_resource) {
+ asyncResourceObject = emnapiCtx.handleStore.get(async_resource).value;
+ if (asyncResourceObject == null) {
+ return envObject.setLastError(2);
+ }
+ asyncResourceObject = Object(asyncResourceObject);
+ }
+ else {
+ asyncResourceObject = {};
+ }
+ var resource = envObject.ensureHandleId(asyncResourceObject);
+ var asyncResourceName = emnapiCtx.handleStore.get(async_resource_name).value;
+ if (typeof asyncResourceName === 'symbol') {
+ return envObject.setLastError(3);
+ }
+ asyncResourceName = String(asyncResourceName);
+ var resource_name = envObject.ensureHandleId(asyncResourceName);
+ var sizeofTSFN = emnapiTSFN.offset.__size__;
+ var tsfn = _malloc(sizeofTSFN);
+ if (!tsfn)
+ return envObject.setLastError(9);
+ tsfn >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(tsfn, tsfn + sizeofTSFN).fill(0);
+ var resourceRef = emnapiCtx.createReference(envObject, resource, 1, 1);
+ var resource_ = resourceRef.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.resource, resource_, true);
+ if (!emnapiTSFN.initQueue(tsfn)) {
+ _free(tsfn);
+ resourceRef.dispose();
+ return envObject.setLastError(9);
+ }
+ _emnapi_node_emit_async_init(resource, resource_name, -1, tsfn + emnapiTSFN.offset.async_id);
+ HEAP_DATA_VIEW.setInt8(tsfn + emnapiTSFN.offset.is_some, 1, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.thread_count, initial_thread_count, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.context, context, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.max_queue_size, max_queue_size, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.ref, ref, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.env, env, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_data, thread_finalize_data, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.finalize_cb, thread_finalize_cb, true);
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.call_js_cb, call_js_cb, true);
+ emnapiCtx.addCleanupHook(envObject, emnapiTSFN.cleanup, tsfn);
+ emnapiTSFN._liveSet.add(tsfn);
+ envObject.ref();
+ emnapiCtx.increaseWaitingRequestCounter();
+ HEAP_DATA_VIEW.setUint32(tsfn + emnapiTSFN.offset.async_ref, 1, true);
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, tsfn, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_threadsafe_function_context(func, result) {
+ if (!func || !result) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ result >>>= 0;
+ var context = emnapiTSFN.getContext(func);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, context, true);
+ return 0;
+ }
+ function napi_call_threadsafe_function(func, data, mode) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ data >>>= 0;
+ return emnapiTSFN.push(func, data, mode);
+ }
+ function napi_acquire_threadsafe_function(func) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ var mutex = emnapiTSFN.getMutex(func);
+ return mutex.execute(function () {
+ if (emnapiTSFN.getState(func) === 0) {
+ emnapiTSFN.addThreadCount(func);
+ return 0;
+ }
+ return 16;
+ });
+ }
+ function napi_release_threadsafe_function(func, mode) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ var mutex = emnapiTSFN.getMutex(func);
+ var cond = emnapiTSFN.getCond(func);
+ var shouldDelete = false;
+ var ret = mutex.execute(function () {
+ if (emnapiTSFN.getThreadCount(func) === 0) {
+ return 1;
+ }
+ emnapiTSFN.subThreadCount(func);
+ if (emnapiTSFN.getThreadCount(func) === 0 || mode === 1) {
+ if (emnapiTSFN.getState(func) === 0) {
+ if (mode === 1) {
+ emnapiTSFN.setState(func, 1);
+ }
+ if (emnapiTSFN.getState(func) === 1 && emnapiTSFN.getMaxQueueSize(func) > 0) {
+ cond.signal();
+ }
+ emnapiTSFN.send(func);
+ }
+ }
+ if (!(emnapiTSFN.getState(func) === 2 && emnapiTSFN.getThreadCount(func) === 0)) {
+ return 0;
+ }
+ shouldDelete = true;
+ return 0;
+ });
+ if (shouldDelete) {
+ emnapiTSFN.destroy(func);
+ }
+ return ret;
+ }
+ function napi_unref_threadsafe_function(env, func) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ var currentValue = Atomics.load(arr, asyncRefOffset);
+ if (currentValue > 0) {
+ Atomics.store(arr, asyncRefOffset, currentValue - 1);
+ if (currentValue === 1) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ }
+ }
+ return 0;
+ }
+ function napi_ref_threadsafe_function(env, func) {
+ if (!func) {
+ abort();
+ return 1;
+ }
+ func >>>= 0;
+ var asyncRefOffset = (func + emnapiTSFN.offset.async_ref) >>> 2;
+ var arr = new Uint32Array(wasmMemory.buffer);
+ var currentValue = Atomics.load(arr, asyncRefOffset);
+ if (!currentValue) {
+ emnapiCtx.increaseWaitingRequestCounter();
+ }
+ Atomics.store(arr, asyncRefOffset, currentValue + 1);
+ return 0;
+ }
+ var emnapiAWMT = {
+ pool: [],
+ workerReady: null,
+ globalAddress: 0,
+ globalOffset: {
+ idle_threads: 0,
+ q: 1 * 4,
+ next: 1 * 4,
+ prev: 2 * 4,
+ mutex: 3 * 4,
+ cond: 4 * 4,
+ exit_message: 5 * 4,
+ end: 7 * 4
+ },
+ offset: {
+ resource: 0,
+ async_id: 8,
+ trigger_async_id: 16,
+ env: 24,
+ status: 1 * 4 + 24,
+ queue: 2 * 4 + 24,
+ queue_next: 2 * 4 + 24,
+ queue_prev: 3 * 4 + 24,
+ data: 4 * 4 + 24,
+ execute: 5 * 4 + 24,
+ complete: 6 * 4 + 24,
+ end: 7 * 4 + 24
+ },
+ init: function () {
+ emnapiAWMT.pool = [];
+ emnapiAWMT.workerReady = null;
+ if (typeof PThread !== 'undefined') {
+ PThread.unusedWorkers.forEach(emnapiAWMT.addListener);
+ PThread.runningWorkers.forEach(emnapiAWMT.addListener);
+ var __original_getNewWorker_1 = PThread.getNewWorker;
+ PThread.getNewWorker = function () {
+ var r = __original_getNewWorker_1.apply(this, arguments);
+ emnapiAWMT.addListener(r);
+ return r;
+ };
+ }
+ },
+ addListener: function (worker) {
+ if (!worker)
+ return false;
+ if (worker._emnapiAWMTListener)
+ return true;
+ var handler = function (e) {
+ var data = ENVIRONMENT_IS_NODE ? e : e.data;
+ var __emnapi__ = data.__emnapi__;
+ if (__emnapi__) {
+ var type = __emnapi__.type;
+ var payload = __emnapi__.payload;
+ if (type === 'async-work-complete') {
+ emnapiAWMT.callComplete(payload.work, 0);
+ }
+ }
+ };
+ var dispose = function () {
+ if (ENVIRONMENT_IS_NODE) {
+ worker.off('message', handler);
+ }
+ else {
+ worker.removeEventListener('message', handler, false);
+ }
+ delete worker._emnapiAWMTListener;
+ };
+ worker._emnapiAWMTListener = { handler: handler, dispose: dispose };
+ if (ENVIRONMENT_IS_NODE) {
+ worker.on('message', handler);
+ }
+ else {
+ worker.addEventListener('message', handler, false);
+ }
+ return true;
+ },
+ initGlobal: function () {
+ if (!emnapiAWMT.globalAddress) {
+ emnapiAWMT.globalAddress = _malloc(emnapiAWMT.globalOffset.end);
+ emnapiAWMT.globalAddress >>>= 0;
+ var size = emnapiAWMT.globalOffset.end;
+ var addr = emnapiAWMT.globalAddress;
+ new Uint8Array(wasmMemory.buffer, addr, size).fill(0);
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q);
+ emnapiAWMT.queueInit(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.exit_message);
+ }
+ },
+ terminateWorkers: function () {
+ emnapiAWMT.pool.forEach(function (w) {
+ var _a, _b;
+ (_a = w._emnapiAWMTListener) === null || _a === void 0 ? void 0 : _a.dispose();
+ (_b = w._emnapiTSFNListener) === null || _b === void 0 ? void 0 : _b.dispose();
+ w.terminate();
+ });
+ emnapiAWMT.pool.length = 0;
+ },
+ initWorkers: function (n) {
+ if (ENVIRONMENT_IS_PTHREAD) {
+ return emnapiAWMT.workerReady || (emnapiAWMT.workerReady = Promise.resolve());
+ }
+ if (emnapiAWMT.workerReady)
+ return emnapiAWMT.workerReady;
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
+ }
+ var emnapi_async_worker_create = wasmInstance.exports.emnapi_async_worker_create;
+ var args = [];
+ emnapiAWMT.initGlobal();
+ for (var i = 0; i < n; ++i) {
+ args.push(emnapi_async_worker_create(1, emnapiAWMT.globalAddress));
+ }
+ var promises = args.map(function (index) {
+ if (index === 0) {
+ return Promise.reject(new Error('Failed to create async worker'));
+ }
+ var worker;
+ if (index < 0) {
+ worker = emnapiAWMT.pool[-index - 1];
+ if (worker)
+ return worker.whenLoaded;
+ }
+ index >>>= 0;
+ var view = new DataView(wasmMemory.buffer);
+ var tidOffset = 20;
+ var tid = view.getInt32(index + tidOffset, true);
+ worker = PThread.pthreads[tid];
+ return worker.whenLoaded;
+ });
+ emnapiAWMT.workerReady = Promise.all(promises);
+ return emnapiAWMT.workerReady;
+ },
+ getResource: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.resource, true);
+ },
+ getExecute: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.execute, true);
+ },
+ getComplete: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.complete, true);
+ },
+ getEnv: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.env, true);
+ },
+ getData: function (work) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return HEAP_DATA_VIEW.getUint32(work + emnapiAWMT.offset.data, true);
+ },
+ getMutex: function () {
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.mutex;
+ var mutex = {
+ lock: function () {
+ var isBrowserMain = typeof window !== 'undefined' && typeof document !== 'undefined' && !ENVIRONMENT_IS_NODE;
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ if (isBrowserMain) {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ }
+ }
+ else {
+ while (true) {
+ var oldValue = Atomics.compareExchange(i32a, 0, 0, 10);
+ if (oldValue === 0) {
+ return;
+ }
+ Atomics.wait(i32a, 0, 10);
+ }
+ }
+ },
+ unlock: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var oldValue = Atomics.compareExchange(i32a, 0, 10, 0);
+ if (oldValue !== 10) {
+ throw new Error('Tried to unlock while not holding the mutex');
+ }
+ Atomics.notify(i32a, 0, 1);
+ },
+ execute: function (fn) {
+ mutex.lock();
+ try {
+ return fn();
+ }
+ finally {
+ mutex.unlock();
+ }
+ }
+ };
+ return mutex;
+ },
+ getCond: function () {
+ var index = emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.cond;
+ var mutex = emnapiAWMT.getMutex();
+ var cond = {
+ wait: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ var value = Atomics.load(i32a, 0);
+ mutex.unlock();
+ Atomics.wait(i32a, 0, value);
+ mutex.lock();
+ },
+ signal: function () {
+ var i32a = new Int32Array(wasmMemory.buffer, index, 1);
+ Atomics.add(i32a, 0, 1);
+ Atomics.notify(i32a, 0, 1);
+ }
+ };
+ return cond;
+ },
+ queueInit: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(q, q, true);
+ HEAP_DATA_VIEW.setUint32(q + 4, q, true);
+ },
+ queueInsertTail: function (h, q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(q, h, true);
+ var tempValue = HEAP_DATA_VIEW.getUint32(h + 4, true);
+ HEAP_DATA_VIEW.setUint32(q + 4, tempValue, true);
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
+ HEAP_DATA_VIEW.setUint32(qprev, q, true);
+ HEAP_DATA_VIEW.setUint32(h + 4, q, true);
+ },
+ queueRemove: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var qprev = HEAP_DATA_VIEW.getUint32(q + 4, true);
+ var qnext = HEAP_DATA_VIEW.getUint32(q, true);
+ HEAP_DATA_VIEW.setUint32(qprev, qnext, true);
+ HEAP_DATA_VIEW.setUint32(qnext + 4, qprev, true);
+ },
+ queueEmpty: function (q) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ return q == HEAP_DATA_VIEW.getUint32(q, true);
+ },
+ scheduleWork: function (work) {
+ var _a;
+ if (!((_a = emnapiAWMT.workerReady) === null || _a === void 0 ? void 0 : _a.ready)) {
+ emnapiAWMT.initWorkers(_emnapi_async_work_pool_size()).then(function () {
+ emnapiAWMT.workerReady.ready = true;
+ }).catch(function (err) {
+ emnapiAWMT.workerReady = null;
+ throw err;
+ });
+ }
+ emnapiCtx.increaseWaitingRequestCounter();
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
+ Atomics.store(statusBuffer, 0, 0);
+ var mutex = emnapiAWMT.getMutex();
+ var cond = emnapiAWMT.getCond();
+ mutex.lock();
+ try {
+ emnapiAWMT.queueInsertTail(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.q, work + emnapiAWMT.offset.queue);
+ }
+ catch (err) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ mutex.unlock();
+ throw err;
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (HEAP_DATA_VIEW.getUint32(emnapiAWMT.globalAddress + emnapiAWMT.globalOffset.idle_threads, true) > 0) {
+ cond.signal();
+ }
+ mutex.unlock();
+ },
+ cancelWork: function (work) {
+ var cancelled = false;
+ emnapiAWMT.getMutex().execute(function () {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ cancelled = !emnapiAWMT.queueEmpty(work + emnapiAWMT.offset.queue) && HEAP_DATA_VIEW.getInt32(work + emnapiAWMT.offset.status, true) !== 2;
+ if (cancelled) {
+ emnapiAWMT.queueRemove(work + emnapiAWMT.offset.queue);
+ }
+ });
+ if (!cancelled) {
+ return 9;
+ }
+ if (Atomics.compareExchange(new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1), 0, 0, 1) !== 0) {
+ return 9;
+ }
+ emnapiCtx.feature.setImmediate(function () {
+ emnapiAWMT.callComplete(work, 11);
+ });
+ return 0;
+ },
+ callComplete: function (work, status) {
+ emnapiCtx.decreaseWaitingRequestCounter();
+ var complete = emnapiAWMT.getComplete(work);
+ var env = emnapiAWMT.getEnv(work);
+ var data = emnapiAWMT.getData(work);
+ var envObject = emnapiCtx.envStore.get(env);
+ var scope = emnapiCtx.openScope(envObject);
+ var callback = function () {
+ if (!complete)
+ return;
+ envObject.callbackIntoModule(true, function () {
+ (wasmTable.get(complete))(env, status, data);
+ });
+ };
+ try {
+ if (emnapiNodeBinding) {
+ var resource = emnapiAWMT.getResource(work);
+ var resource_value = emnapiCtx.refStore.get(resource).get();
+ var resourceObject = emnapiCtx.handleStore.get(resource_value).value;
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
+ emnapiNodeBinding.node.makeCallback(resourceObject, callback, [], {
+ asyncId: asyncId,
+ triggerAsyncId: triggerAsyncId
+ });
+ }
+ else {
+ callback();
+ }
+ }
+ finally {
+ emnapiCtx.closeScope(envObject, scope);
+ }
+ }
+ };
+ emnapiAWMT.init();
+ var napi_create_async_work = singleThreadAsyncWork
+ ? function (env, resource, resource_name, execute, complete, data, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!execute)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var resourceObject;
+ if (resource) {
+ resourceObject = Object(emnapiCtx.handleStore.get(resource).value);
+ }
+ else {
+ resourceObject = {};
+ }
+ if (!resource_name)
+ return envObject.setLastError(1);
+ var resourceName = String(emnapiCtx.handleStore.get(resource_name).value);
+ var id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, id, true);
+ return envObject.clearLastError();
+ }
+ : function (env, resource, resource_name, execute, complete, data, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!execute)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var resourceObject;
+ if (resource) {
+ resourceObject = Object(emnapiCtx.handleStore.get(resource).value);
+ }
+ else {
+ resourceObject = {};
+ }
+ if (!resource_name)
+ return envObject.setLastError(1);
+ var sizeofAW = emnapiAWMT.offset.end;
+ var aw = _malloc(sizeofAW);
+ if (!aw)
+ return envObject.setLastError(9);
+ aw >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(aw, aw + sizeofAW).fill(0);
+ var s = envObject.ensureHandleId(resourceObject);
+ var resourceRef = emnapiCtx.createReference(envObject, s, 1, 1);
+ var resource_ = resourceRef.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(aw, resource_, true);
+ _emnapi_node_emit_async_init(s, resource_name, -1, aw + emnapiAWMT.offset.async_id);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.env, env, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.execute, execute, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.complete, complete, true);
+ HEAP_DATA_VIEW.setUint32(aw + emnapiAWMT.offset.data, data, true);
+ emnapiAWMT.queueInit(aw + emnapiAWMT.offset.queue);
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, aw, true);
+ return envObject.clearLastError();
+ };
+ var napi_delete_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ emnapiAWST.remove(work);
+ return envObject.clearLastError();
+ }
+ : function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ var resource = emnapiAWMT.getResource(work);
+ emnapiCtx.refStore.get(resource).dispose();
+ if (emnapiNodeBinding) {
+ var view = new DataView(wasmMemory.buffer);
+ var asyncId = view.getFloat64(work + emnapiAWMT.offset.async_id, true);
+ var triggerAsyncId = view.getFloat64(work + emnapiAWMT.offset.trigger_async_id, true);
+ _emnapi_node_emit_async_destroy(asyncId, triggerAsyncId);
+ }
+ _free(work);
+ return envObject.clearLastError();
+ };
+ var napi_queue_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ emnapiAWST.queue(work);
+ return envObject.clearLastError();
+ }
+ : function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ emnapiAWMT.scheduleWork(work);
+ return envObject.clearLastError();
+ };
+ var napi_cancel_async_work = singleThreadAsyncWork
+ ? function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ var status = emnapiAWST.cancel(work);
+ if (status === 0)
+ return envObject.clearLastError();
+ return envObject.setLastError(status);
+ }
+ : function (env, work) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!work)
+ return envObject.setLastError(1);
+ work >>>= 0;
+ var status = emnapiAWMT.cancelWork(work);
+ if (status === 0)
+ return envObject.clearLastError();
+ return envObject.setLastError(status);
+ };
+ function _emnapi_async_worker(globalAddress) {
+ globalAddress >>>= 0;
+ emnapiAWMT.globalAddress = globalAddress;
+ var mutex = emnapiAWMT.getMutex();
+ var cond = emnapiAWMT.getCond();
+ mutex.lock();
+ var exitMessageAddr = globalAddress + emnapiAWMT.globalOffset.exit_message;
+ var idleThreadsAddr = globalAddress + emnapiAWMT.globalOffset.idle_threads;
+ var workerQueueAddr = globalAddress + emnapiAWMT.globalOffset.q;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (;;) {
+ while (emnapiAWMT.queueEmpty(workerQueueAddr)) {
+ Atomics.add(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
+ cond.wait();
+ Atomics.sub(new Int32Array(wasmMemory.buffer, idleThreadsAddr, 1), 0, 1);
+ }
+ var q = HEAP_DATA_VIEW.getUint32(workerQueueAddr, true);
+ if (q === exitMessageAddr) {
+ cond.signal();
+ mutex.unlock();
+ break;
+ }
+ var work = q - emnapiAWMT.offset.queue;
+ emnapiAWMT.queueRemove(q);
+ emnapiAWMT.queueInit(q);
+ mutex.unlock();
+ var statusBuffer = new Int32Array(wasmMemory.buffer, work + emnapiAWMT.offset.status, 1);
+ if (Atomics.load(statusBuffer, 0) === 1) {
+ abort('unreachable');
+ }
+ var execute = emnapiAWMT.getExecute(work);
+ var env = emnapiAWMT.getEnv(work);
+ var data = emnapiAWMT.getData(work);
+ (wasmTable.get(execute))(env, data);
+ Atomics.store(statusBuffer, 0, 2);
+ var postMessage_1 = napiModule.postMessage;
+ postMessage_1({
+ __emnapi__: {
+ type: 'async-work-complete',
+ payload: { work: work }
+ }
+ });
+ mutex.lock();
+ }
+ return 0;
+ }
+ function _emnapi_spawn_worker(f, globalAddress) {
+ if (typeof onCreateWorker !== 'function') {
+ throw new TypeError('`options.onCreateWorker` is not a function');
+ }
+ var promises = [];
+ var args = [];
+ if (!('emnapi_async_worker_create' in wasmInstance.exports)) {
+ throw new TypeError('`emnapi_async_worker_create` is not exported, please try to add `--export=emnapi_async_worker_create` to linker flags');
+ }
+ args.push(wasmInstance.exports.emnapi_async_worker_create(0, 0));
+ var handleError = function (e) {
+ if ('message' in e && (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1)) {
+ emnapiAWMT.terminateWorkers();
+ }
+ };
+ var ret;
+ try {
+ var worker_1 = onCreateWorker({ type: 'async-work', name: 'emnapi-async-worker' });
+ var p = PThread.loadWasmModuleToWorker(worker_1);
+ if (ENVIRONMENT_IS_NODE) {
+ worker_1.on('error', handleError);
+ }
+ else {
+ worker_1.addEventListener('error', handleError, false);
+ }
+ emnapiAWMT.addListener(worker_1);
+ emnapiTSFN.addListener(worker_1);
+ promises.push(p.then(function () {
+ if (typeof worker_1.unref === 'function') {
+ worker_1.unref();
+ }
+ }));
+ ret = emnapiAWMT.pool.push(worker_1) - 1;
+ var arg = args[0];
+ worker_1.threadBlockBase = arg;
+ worker_1.postMessage({
+ __emnapi__: {
+ type: 'async-worker-init',
+ payload: { arg: arg, func: [f, globalAddress] }
+ }
+ });
+ }
+ catch (err) {
+ var arg = args[0];
+ _free(arg);
+ throw err;
+ }
+ return ret;
+ }
+ function initWorker(startArg, func) {
+ if (napiModule.childThread) {
+ if (typeof wasmInstance.exports.emnapi_async_worker_init !== 'function') {
+ throw new TypeError('`emnapi_async_worker_init` is not exported, please try to add `--export=emnapi_async_worker_init` to linker flags');
+ }
+ wasmInstance.exports.emnapi_async_worker_init(startArg);
+ (wasmTable.get(func[0]))(func[1]);
+ }
+ else {
+ throw new Error('startThread is only available in child threads');
+ }
+ }
+ napiModule.initWorker = initWorker;
+ var asyncWorkMod = Object.freeze({
+ __proto__: null,
+ _emnapi_async_worker: _emnapi_async_worker,
+ _emnapi_spawn_worker: _emnapi_spawn_worker,
+ napi_cancel_async_work: napi_cancel_async_work,
+ napi_create_async_work: napi_create_async_work,
+ napi_delete_async_work: napi_delete_async_work,
+ napi_queue_async_work: napi_queue_async_work
+ });
+ var emnapiExternalMemory = {
+ registry: typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined,
+ table: new WeakMap(),
+ wasmMemoryViewTable: new WeakMap(),
+ init: function () {
+ emnapiExternalMemory.registry = typeof FinalizationRegistry === 'function' ? new FinalizationRegistry(function (_pointer) { _free(_pointer); }) : undefined;
+ emnapiExternalMemory.table = new WeakMap();
+ emnapiExternalMemory.wasmMemoryViewTable = new WeakMap();
+ },
+ isSharedArrayBuffer: function (value) {
+ return ((typeof SharedArrayBuffer === 'function' && value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(value) === '[object SharedArrayBuffer]'));
+ },
+ isDetachedArrayBuffer: function (arrayBuffer) {
+ if (arrayBuffer.byteLength === 0) {
+ try {
+ new Uint8Array(arrayBuffer);
+ }
+ catch (_) {
+ return true;
+ }
+ }
+ return false;
+ },
+ getArrayBufferPointer: function (arrayBuffer, shouldCopy) {
+ var _a;
+ var info = {
+ address: 0,
+ ownership: 0,
+ runtimeAllocated: 0
+ };
+ if (arrayBuffer === wasmMemory.buffer) {
+ return info;
+ }
+ var isDetached = emnapiExternalMemory.isDetachedArrayBuffer(arrayBuffer);
+ if (emnapiExternalMemory.table.has(arrayBuffer)) {
+ var cachedInfo = emnapiExternalMemory.table.get(arrayBuffer);
+ if (isDetached) {
+ cachedInfo.address = 0;
+ return cachedInfo;
+ }
+ if (shouldCopy && cachedInfo.ownership === 0 && cachedInfo.runtimeAllocated === 1) {
+ new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), cachedInfo.address);
+ }
+ return cachedInfo;
+ }
+ if (isDetached || (arrayBuffer.byteLength === 0)) {
+ return info;
+ }
+ if (!shouldCopy) {
+ return info;
+ }
+ var pointer = _malloc(arrayBuffer.byteLength);
+ if (!pointer)
+ throw new Error('Out of memory');
+ pointer >>>= 0;
+ new Uint8Array(wasmMemory.buffer).set(new Uint8Array(arrayBuffer), pointer);
+ info.address = pointer;
+ info.ownership = emnapiExternalMemory.registry ? 0 : 1;
+ info.runtimeAllocated = 1;
+ emnapiExternalMemory.table.set(arrayBuffer, info);
+ (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(arrayBuffer, pointer);
+ return info;
+ },
+ getOrUpdateMemoryView: function (view) {
+ if (view.buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(view, {
+ Ctor: view.constructor,
+ address: view.byteOffset,
+ length: view instanceof DataView ? view.byteLength : view.length,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ return view;
+ }
+ var maybeOldWasmMemory = emnapiExternalMemory.isDetachedArrayBuffer(view.buffer) || emnapiExternalMemory.isSharedArrayBuffer(view.buffer);
+ if (maybeOldWasmMemory && emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ var info = emnapiExternalMemory.wasmMemoryViewTable.get(view);
+ var Ctor = info.Ctor;
+ var newView = void 0;
+ var Buffer_1 = emnapiCtx.feature.Buffer;
+ if (typeof Buffer_1 === 'function' && Ctor === Buffer_1) {
+ newView = Buffer_1.from(wasmMemory.buffer, info.address, info.length);
+ }
+ else {
+ newView = new Ctor(wasmMemory.buffer, info.address, info.length);
+ }
+ emnapiExternalMemory.wasmMemoryViewTable.set(newView, info);
+ return newView;
+ }
+ return view;
+ },
+ getViewPointer: function (view, shouldCopy) {
+ view = emnapiExternalMemory.getOrUpdateMemoryView(view);
+ if (view.buffer === wasmMemory.buffer) {
+ if (emnapiExternalMemory.wasmMemoryViewTable.has(view)) {
+ var _a = emnapiExternalMemory.wasmMemoryViewTable.get(view), address_1 = _a.address, ownership_1 = _a.ownership, runtimeAllocated_1 = _a.runtimeAllocated;
+ return { address: address_1, ownership: ownership_1, runtimeAllocated: runtimeAllocated_1, view: view };
+ }
+ return { address: view.byteOffset, ownership: 1, runtimeAllocated: 0, view: view };
+ }
+ var _b = emnapiExternalMemory.getArrayBufferPointer(view.buffer, shouldCopy), address = _b.address, ownership = _b.ownership, runtimeAllocated = _b.runtimeAllocated;
+ return { address: address === 0 ? 0 : (address + view.byteOffset), ownership: ownership, runtimeAllocated: runtimeAllocated, view: view };
+ }
+ };
+ var emnapiString = {
+ utf8Decoder: undefined,
+ utf16Decoder: undefined,
+ init: function () {
+ var fallbackDecoder = {
+ decode: function (bytes) {
+ var inputIndex = 0;
+ var pendingSize = Math.min(0x1000, bytes.length + 1);
+ var pending = new Uint16Array(pendingSize);
+ var chunks = [];
+ var pendingIndex = 0;
+ for (;;) {
+ var more = inputIndex < bytes.length;
+ if (!more || (pendingIndex >= pendingSize - 1)) {
+ var subarray = pending.subarray(0, pendingIndex);
+ var arraylike = subarray;
+ chunks.push(String.fromCharCode.apply(null, arraylike));
+ if (!more) {
+ return chunks.join('');
+ }
+ bytes = bytes.subarray(inputIndex);
+ inputIndex = 0;
+ pendingIndex = 0;
+ }
+ var byte1 = bytes[inputIndex++];
+ if ((byte1 & 0x80) === 0) {
+ pending[pendingIndex++] = byte1;
+ }
+ else if ((byte1 & 0xe0) === 0xc0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ pending[pendingIndex++] = ((byte1 & 0x1f) << 6) | byte2;
+ }
+ else if ((byte1 & 0xf0) === 0xe0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ var byte3 = bytes[inputIndex++] & 0x3f;
+ pending[pendingIndex++] = ((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3;
+ }
+ else if ((byte1 & 0xf8) === 0xf0) {
+ var byte2 = bytes[inputIndex++] & 0x3f;
+ var byte3 = bytes[inputIndex++] & 0x3f;
+ var byte4 = bytes[inputIndex++] & 0x3f;
+ var codepoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;
+ if (codepoint > 0xffff) {
+ codepoint -= 0x10000;
+ pending[pendingIndex++] = (codepoint >>> 10) & 0x3ff | 0xd800;
+ codepoint = 0xdc00 | codepoint & 0x3ff;
+ }
+ pending[pendingIndex++] = codepoint;
+ }
+ else ;
+ }
+ }
+ };
+ var utf8Decoder;
+ utf8Decoder = typeof TextDecoder === 'function' ? new TextDecoder() : fallbackDecoder;
+ emnapiString.utf8Decoder = utf8Decoder;
+ var fallbackDecoder2 = {
+ decode: function (input) {
+ var bytes = new Uint16Array(input.buffer, input.byteOffset, input.byteLength / 2);
+ if (bytes.length <= 0x1000) {
+ return String.fromCharCode.apply(null, bytes);
+ }
+ var chunks = [];
+ var i = 0;
+ var len = 0;
+ for (; i < bytes.length; i += len) {
+ len = Math.min(0x1000, bytes.length - i);
+ chunks.push(String.fromCharCode.apply(null, bytes.subarray(i, i + len)));
+ }
+ return chunks.join('');
+ }
+ };
+ var utf16Decoder;
+ utf16Decoder = typeof TextDecoder === 'function' ? new TextDecoder('utf-16le') : fallbackDecoder2;
+ emnapiString.utf16Decoder = utf16Decoder;
+ },
+ lengthBytesUTF8: function (str) {
+ var c;
+ var len = 0;
+ for (var i = 0; i < str.length; ++i) {
+ c = str.charCodeAt(i);
+ if (c <= 0x7F) {
+ len++;
+ }
+ else if (c <= 0x7FF) {
+ len += 2;
+ }
+ else if (c >= 0xD800 && c <= 0xDFFF) {
+ len += 4;
+ ++i;
+ }
+ else {
+ len += 3;
+ }
+ }
+ return len;
+ },
+ UTF8ToString: function (ptr, length) {
+ if (!ptr || !length)
+ return '';
+ ptr >>>= 0;
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ var end = ptr;
+ if (length === -1 || length === 4294967295) {
+ for (; HEAPU8[end];)
+ ++end;
+ }
+ else {
+ end = ptr + (length >>> 0);
+ }
+ length = end - ptr;
+ if (length <= 16) {
+ var idx = ptr;
+ var str = '';
+ while (idx < end) {
+ var u0 = HEAPU8[idx++];
+ if (!(u0 & 0x80)) {
+ str += String.fromCharCode(u0);
+ continue;
+ }
+ var u1 = HEAPU8[idx++] & 63;
+ if ((u0 & 0xE0) === 0xC0) {
+ str += String.fromCharCode(((u0 & 31) << 6) | u1);
+ continue;
+ }
+ var u2 = HEAPU8[idx++] & 63;
+ if ((u0 & 0xF0) === 0xE0) {
+ u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
+ }
+ else {
+ u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (HEAPU8[idx++] & 63);
+ }
+ if (u0 < 0x10000) {
+ str += String.fromCharCode(u0);
+ }
+ else {
+ var ch = u0 - 0x10000;
+ str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
+ }
+ }
+ return str;
+ }
+ return emnapiString.utf8Decoder.decode(((typeof SharedArrayBuffer === "function" && HEAPU8.buffer instanceof SharedArrayBuffer) || (Object.prototype.toString.call(HEAPU8.buffer) === "[object SharedArrayBuffer]")) ? HEAPU8.slice(ptr, end) : HEAPU8.subarray(ptr, end));
+ },
+ stringToUTF8: function (str, outPtr, maxBytesToWrite) {
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ var outIdx = outPtr;
+ outIdx >>>= 0;
+ if (!(maxBytesToWrite > 0)) {
+ return 0;
+ }
+ var startIdx = outIdx;
+ var endIdx = outIdx + maxBytesToWrite - 1;
+ for (var i = 0; i < str.length; ++i) {
+ var u = str.charCodeAt(i);
+ if (u >= 0xD800 && u <= 0xDFFF) {
+ var u1 = str.charCodeAt(++i);
+ u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);
+ }
+ if (u <= 0x7F) {
+ if (outIdx >= endIdx)
+ break;
+ HEAPU8[outIdx++] = u;
+ }
+ else if (u <= 0x7FF) {
+ if (outIdx + 1 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xC0 | (u >> 6);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ else if (u <= 0xFFFF) {
+ if (outIdx + 2 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xE0 | (u >> 12);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 6) & 63);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ else {
+ if (outIdx + 3 >= endIdx)
+ break;
+ HEAPU8[outIdx++] = 0xF0 | (u >> 18);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 12) & 63);
+ HEAPU8[outIdx++] = 0x80 | ((u >> 6) & 63);
+ HEAPU8[outIdx++] = 0x80 | (u & 63);
+ }
+ }
+ HEAPU8[outIdx] = 0;
+ return outIdx - startIdx;
+ },
+ UTF16ToString: function (ptr, length) {
+ if (!ptr || !length)
+ return '';
+ ptr >>>= 0;
+ var end = ptr;
+ if (length === -1 || length === 4294967295) {
+ var idx = end >>> 1;
+ var HEAPU16 = new Uint16Array(wasmMemory.buffer);
+ while (HEAPU16[idx])
+ ++idx;
+ end = (idx << 1) >>> 0;
+ }
+ else {
+ end = ptr + (length >>> 0) * 2;
+ }
+ length = end - ptr;
+ if (length <= 32) {
+ return String.fromCharCode.apply(null, new Uint16Array(wasmMemory.buffer, ptr, length / 2));
+ }
+ var HEAPU8 = new Uint8Array(wasmMemory.buffer);
+ return emnapiString.utf16Decoder.decode(((typeof SharedArrayBuffer === "function" && HEAPU8.buffer instanceof SharedArrayBuffer) || (Object.prototype.toString.call(HEAPU8.buffer) === "[object SharedArrayBuffer]")) ? HEAPU8.slice(ptr, end) : HEAPU8.subarray(ptr, end));
+ },
+ stringToUTF16: function (str, outPtr, maxBytesToWrite) {
+ if (maxBytesToWrite === undefined) {
+ maxBytesToWrite = 0x7FFFFFFF;
+ }
+ if (maxBytesToWrite < 2)
+ return 0;
+ maxBytesToWrite -= 2;
+ var startPtr = outPtr;
+ var numCharsToWrite = (maxBytesToWrite < str.length * 2) ? (maxBytesToWrite / 2) : str.length;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < numCharsToWrite; ++i) {
+ var codeUnit = str.charCodeAt(i);
+ HEAP_DATA_VIEW.setInt16(outPtr, codeUnit, true);
+ outPtr += 2;
+ }
+ HEAP_DATA_VIEW.setInt16(outPtr, 0, true);
+ return outPtr - startPtr;
+ },
+ newString: function (env, str, length, result, stringMaker) {
+ length >>>= 0;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!str)
+ return envObject.setLastError(1);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ if (!(autoLength || (sizelength <= 2147483647)))
+ return envObject.setLastError(1);
+ str >>>= 0;
+ var strValue = stringMaker(str, autoLength, sizelength);
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(strValue).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ },
+ newExternalString: function (env, str, length, finalize_callback, finalize_hint, result, copied, createApi, stringMaker) {
+ length >>>= 0;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!str)
+ return envObject.setLastError(1);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ if (!(autoLength || (sizelength <= 2147483647)))
+ return envObject.setLastError(1);
+ var status = createApi(env, str, length, result);
+ if (status === 0) {
+ if (copied) {
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(copied, 1, true);
+ }
+ if (finalize_callback) {
+ envObject.callFinalizer(finalize_callback, str, finalize_hint);
+ }
+ }
+ return status;
+ }
+ };
+ function napi_get_array_length(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isArray()) {
+ return envObject.setLastError(8);
+ }
+ result >>>= 0;
+ var v = handle.value.length >>> 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_arraybuffer_info(env, arraybuffer, data, byte_length) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
+ return envObject.setLastError(1);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (data) {
+ data >>>= 0;
+ var p = emnapiExternalMemory.getArrayBufferPointer(handle.value, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (byte_length) {
+ byte_length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_length, handle.value.byteLength, true);
+ }
+ return envObject.clearLastError();
+ }
+ function node_api_set_prototype(env, object, value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ var obj = emnapiCtx.handleStore.get(object).value;
+ if (obj == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var type = typeof obj;
+ var v = void 0;
+ try {
+ v = (type === 'object' && obj !== null) || type === 'function' ? obj : Object(obj);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ var val = emnapiCtx.handleStore.get(value).value;
+ Object.setPrototypeOf(v, val);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_prototype(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = handle.isObject() || handle.isFunction() ? handle.value : Object(handle.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ var p = envObject.ensureHandleId(Object.getPrototypeOf(v));
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, p, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_typedarray_info(env, typedarray, type, length, data, arraybuffer, byte_offset) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!typedarray)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(typedarray);
+ if (!handle.isTypedArray()) {
+ return envObject.setLastError(1);
+ }
+ var v = handle.value;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (type) {
+ type >>>= 0;
+ var t = void 0;
+ if (v instanceof Int8Array) {
+ t = 0;
+ }
+ else if (v instanceof Uint8Array) {
+ t = 1;
+ }
+ else if (v instanceof Uint8ClampedArray) {
+ t = 2;
+ }
+ else if (v instanceof Int16Array) {
+ t = 3;
+ }
+ else if (v instanceof Uint16Array) {
+ t = 4;
+ }
+ else if (v instanceof Int32Array) {
+ t = 5;
+ }
+ else if (v instanceof Uint32Array) {
+ t = 6;
+ }
+ else if (typeof Float16Array === 'function' && v instanceof Float16Array) {
+ t = 11;
+ }
+ else if (v instanceof Float32Array) {
+ t = 7;
+ }
+ else if (v instanceof Float64Array) {
+ t = 8;
+ }
+ else if (v instanceof BigInt64Array) {
+ t = 9;
+ }
+ else if (v instanceof BigUint64Array) {
+ t = 10;
+ }
+ else {
+ return envObject.setLastError(9);
+ }
+ HEAP_DATA_VIEW.setInt32(type, t, true);
+ }
+ v = emnapiExternalMemory.getOrUpdateMemoryView(v);
+ if (length) {
+ length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(length, v.length, true);
+ }
+ if (data || arraybuffer) {
+ if (data) {
+ data >>>= 0;
+ var p = emnapiExternalMemory.getViewPointer(v, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (arraybuffer) {
+ arraybuffer >>>= 0;
+ var ab = envObject.ensureHandleId(v.buffer);
+ HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
+ }
+ }
+ if (byte_offset) {
+ byte_offset >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_buffer_info(env, buffer, data, length) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!buffer)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(buffer);
+ if (!handle.isBuffer(emnapiCtx.feature.Buffer))
+ return envObject.setLastError(1);
+ if (handle.isDataView()) {
+ return napi_get_dataview_info(env, buffer, length, data, 0, 0);
+ }
+ return napi_get_typedarray_info(env, buffer, 0, length, data, 0, 0);
+ }
+ function napi_get_dataview_info(env, dataview, byte_length, data, arraybuffer, byte_offset) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!dataview)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(dataview);
+ if (!handle.isDataView()) {
+ return envObject.setLastError(1);
+ }
+ var v = emnapiExternalMemory.getOrUpdateMemoryView(handle.value);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (byte_length) {
+ byte_length >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_length, v.byteLength, true);
+ }
+ if (data || arraybuffer) {
+ if (data) {
+ data >>>= 0;
+ var p = emnapiExternalMemory.getViewPointer(v, true).address;
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ if (arraybuffer) {
+ arraybuffer >>>= 0;
+ var ab = envObject.ensureHandleId(v.buffer);
+ HEAP_DATA_VIEW.setUint32(arraybuffer, ab, true);
+ }
+ }
+ if (byte_offset) {
+ byte_offset >>>= 0;
+ HEAP_DATA_VIEW.setUint32(byte_offset, v.byteOffset, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_date_value(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isDate()) {
+ return envObject.setLastError(1);
+ }
+ result >>>= 0;
+ v = handle.value.valueOf();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_value_bool(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'boolean') {
+ return envObject.setLastError(7);
+ }
+ result >>>= 0;
+ var r = handle.value ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_double(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6);
+ }
+ result >>>= 0;
+ var r = handle.value;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setFloat64(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_bigint_int64(env, value, result, lossless) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!lossless)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ var numberValue = handle.value;
+ if (typeof numberValue !== 'bigint') {
+ return envObject.setLastError(6);
+ }
+ lossless >>>= 0;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if ((numberValue >= (BigInt(-1) * (BigInt(1) << BigInt(63)))) && (numberValue < (BigInt(1) << BigInt(63)))) {
+ HEAP_DATA_VIEW.setInt8(lossless, 1, true);
+ }
+ else {
+ HEAP_DATA_VIEW.setInt8(lossless, 0, true);
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ if (numberValue >= (BigInt(1) << BigInt(63))) {
+ numberValue = numberValue - (BigInt(1) << BigInt(64));
+ }
+ }
+ var low = Number(numberValue & BigInt(0xffffffff));
+ var high = Number(numberValue >> BigInt(32));
+ HEAP_DATA_VIEW.setInt32(result, low, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, high, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_bigint_uint64(env, value, result, lossless) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!lossless)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ var numberValue = handle.value;
+ if (typeof numberValue !== 'bigint') {
+ return envObject.setLastError(6);
+ }
+ lossless >>>= 0;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if ((numberValue >= BigInt(0)) && (numberValue < (BigInt(1) << BigInt(64)))) {
+ HEAP_DATA_VIEW.setInt8(lossless, 1, true);
+ }
+ else {
+ HEAP_DATA_VIEW.setInt8(lossless, 0, true);
+ numberValue = numberValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ }
+ var low = Number(numberValue & BigInt(0xffffffff));
+ var high = Number(numberValue >> BigInt(32));
+ HEAP_DATA_VIEW.setUint32(result, low, true);
+ HEAP_DATA_VIEW.setUint32(result + 4, high, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_bigint_words(env, value, sign_bit, word_count, words) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ if (!value)
+ return envObject.setLastError(1);
+ if (!word_count)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isBigInt()) {
+ return envObject.setLastError(17);
+ }
+ var isMinus = handle.value < BigInt(0);
+ sign_bit >>>= 0;
+ words >>>= 0;
+ word_count >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var word_count_int = HEAP_DATA_VIEW.getUint32(word_count, true);
+ word_count_int >>>= 0;
+ var wordCount = 0;
+ var bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
+ while (bigintValue !== BigInt(0)) {
+ wordCount++;
+ bigintValue = bigintValue >> BigInt(64);
+ }
+ bigintValue = isMinus ? (handle.value * BigInt(-1)) : handle.value;
+ if (!sign_bit && !words) {
+ word_count_int = wordCount;
+ HEAP_DATA_VIEW.setUint32(word_count, word_count_int, true);
+ }
+ else {
+ if (!sign_bit)
+ return envObject.setLastError(1);
+ if (!words)
+ return envObject.setLastError(1);
+ var wordsArr = [];
+ while (bigintValue !== BigInt(0)) {
+ var uint64 = bigintValue & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ wordsArr.push(uint64);
+ bigintValue = bigintValue >> BigInt(64);
+ }
+ var len = Math.min(word_count_int, wordsArr.length);
+ for (var i = 0; i < len; i++) {
+ var low = Number(wordsArr[i] & BigInt(0xffffffff));
+ var high = Number(wordsArr[i] >> BigInt(32));
+ HEAP_DATA_VIEW.setUint32(words + i * 8, low, true);
+ HEAP_DATA_VIEW.setUint32(words + (i * 8 + 4), high, true);
+ }
+ HEAP_DATA_VIEW.setInt32(sign_bit, isMinus ? 1 : 0, true);
+ HEAP_DATA_VIEW.setUint32(word_count, len, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_external(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (!handle.isExternal()) {
+ return envObject.setLastError(1);
+ }
+ result >>>= 0;
+ var p = handle.data();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, p, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_int32(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6);
+ }
+ result >>>= 0;
+ var v = new Int32Array([handle.value])[0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_value_int64(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6);
+ }
+ var numberValue = handle.value;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (numberValue === Number.POSITIVE_INFINITY || numberValue === Number.NEGATIVE_INFINITY || isNaN(numberValue)) {
+ HEAP_DATA_VIEW.setInt32(result, 0, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, 0, true);
+ }
+ else if (numberValue < -9223372036854776e3) {
+ HEAP_DATA_VIEW.setInt32(result, 0, true);
+ HEAP_DATA_VIEW.setInt32(result + 4, 2147483648, true);
+ }
+ else if (numberValue >= 9223372036854776000) {
+ HEAP_DATA_VIEW.setUint32(result, 4294967295, true);
+ HEAP_DATA_VIEW.setUint32(result + 4, 2147483647, true);
+ }
+ else {
+ $emnapiSetValueI64(result, Math.trunc(numberValue));
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_string_latin1(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1);
+ HEAP_DATA_VIEW.setUint32(result, handle.value.length, true);
+ }
+ else if (buf_size !== 0) {
+ var copied = 0;
+ var v = void 0;
+ for (var i = 0; i < buf_size - 1; ++i) {
+ v = handle.value.charCodeAt(i) & 0xff;
+ HEAP_DATA_VIEW.setUint8(buf + i, v, true);
+ copied++;
+ }
+ HEAP_DATA_VIEW.setUint8(buf + copied, 0, true);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_string_utf8(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1);
+ var strLength = emnapiString.lengthBytesUTF8(handle.value);
+ HEAP_DATA_VIEW.setUint32(result, strLength, true);
+ }
+ else if (buf_size !== 0) {
+ var copied = emnapiString.stringToUTF8(handle.value, buf, buf_size);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_string_utf16(env, value, buf, buf_size, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ buf >>>= 0;
+ buf_size >>>= 0;
+ buf_size = buf_size >>> 0;
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!buf) {
+ if (!result)
+ return envObject.setLastError(1);
+ HEAP_DATA_VIEW.setUint32(result, handle.value.length, true);
+ }
+ else if (buf_size !== 0) {
+ var copied = emnapiString.stringToUTF16(handle.value, buf, buf_size * 2);
+ if (result) {
+ HEAP_DATA_VIEW.setUint32(result, copied / 2, true);
+ }
+ }
+ else if (result) {
+ HEAP_DATA_VIEW.setUint32(result, 0, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_value_uint32(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (typeof handle.value !== 'number') {
+ return envObject.setLastError(6);
+ }
+ result >>>= 0;
+ var v = new Uint32Array([handle.value])[0];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ var convert2cMod = Object.freeze({
+ __proto__: null,
+ napi_get_array_length: napi_get_array_length,
+ napi_get_arraybuffer_info: napi_get_arraybuffer_info,
+ napi_get_buffer_info: napi_get_buffer_info,
+ napi_get_dataview_info: napi_get_dataview_info,
+ napi_get_date_value: napi_get_date_value,
+ napi_get_prototype: napi_get_prototype,
+ napi_get_typedarray_info: napi_get_typedarray_info,
+ napi_get_value_bigint_int64: napi_get_value_bigint_int64,
+ napi_get_value_bigint_uint64: napi_get_value_bigint_uint64,
+ napi_get_value_bigint_words: napi_get_value_bigint_words,
+ napi_get_value_bool: napi_get_value_bool,
+ napi_get_value_double: napi_get_value_double,
+ napi_get_value_external: napi_get_value_external,
+ napi_get_value_int32: napi_get_value_int32,
+ napi_get_value_int64: napi_get_value_int64,
+ napi_get_value_string_latin1: napi_get_value_string_latin1,
+ napi_get_value_string_utf16: napi_get_value_string_utf16,
+ napi_get_value_string_utf8: napi_get_value_string_utf8,
+ napi_get_value_uint32: napi_get_value_uint32,
+ node_api_set_prototype: node_api_set_prototype
+ });
+ function napi_create_int32(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var v = emnapiCtx.addToCurrentScope(value).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_uint32(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var v = emnapiCtx.addToCurrentScope(value >>> 0).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_int64(env, low, high, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ var value;
+ if (!high)
+ return envObject.setLastError(1);
+ value = Number(low);
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_double(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var v = emnapiCtx.addToCurrentScope(value).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_string_latin1(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str, autoLength, sizeLength) {
+ var latin1String = '';
+ var len = 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (autoLength) {
+ while (true) {
+ var ch = HEAP_DATA_VIEW.getUint8(str, true);
+ if (!ch)
+ break;
+ latin1String += String.fromCharCode(ch);
+ str++;
+ }
+ }
+ else {
+ while (len < sizeLength) {
+ var ch = HEAP_DATA_VIEW.getUint8(str, true);
+ if (!ch)
+ break;
+ latin1String += String.fromCharCode(ch);
+ len++;
+ str++;
+ }
+ }
+ return latin1String;
+ });
+ }
+ function napi_create_string_utf16(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str) {
+ return emnapiString.UTF16ToString(str, length);
+ });
+ }
+ function napi_create_string_utf8(env, str, length, result) {
+ return emnapiString.newString(env, str, length, result, function (str) {
+ return emnapiString.UTF8ToString(str, length);
+ });
+ }
+ function node_api_create_external_string_latin1(env, str, length, finalize_callback, finalize_hint, result, copied) {
+ return emnapiString.newExternalString(env, str, length, finalize_callback, finalize_hint, result, copied, napi_create_string_latin1, undefined);
+ }
+ function node_api_create_external_string_utf16(env, str, length, finalize_callback, finalize_hint, result, copied) {
+ return emnapiString.newExternalString(env, str, length, finalize_callback, finalize_hint, result, copied, napi_create_string_utf16, undefined);
+ }
+ function node_api_create_property_key_latin1(env, str, length, result) {
+ return napi_create_string_latin1(env, str, length, result);
+ }
+ function node_api_create_property_key_utf8(env, str, length, result) {
+ return napi_create_string_utf8(env, str, length, result);
+ }
+ function node_api_create_property_key_utf16(env, str, length, result) {
+ return napi_create_string_utf16(env, str, length, result);
+ }
+ function napi_create_bigint_int64(env, low, high, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ var value;
+ if (!high)
+ return envObject.setLastError(1);
+ value = low;
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_bigint_uint64(env, low, high, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ var value;
+ if (!high)
+ return envObject.setLastError(1);
+ value = low & ((BigInt(1) << BigInt(64)) - BigInt(1));
+ var v1 = emnapiCtx.addToCurrentScope(value).id;
+ high >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(high, v1, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_bigint_words(env, sign_bit, word_count, words, result) {
+ var v, i;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!emnapiCtx.feature.supportBigInt) {
+ return envObject.setLastError(9);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ words >>>= 0;
+ word_count >>>= 0;
+ word_count = word_count >>> 0;
+ if (word_count > 2147483647) {
+ return envObject.setLastError(1);
+ }
+ if (word_count > (1024 * 1024 / (4 * 8) / 2)) {
+ throw new RangeError('Maximum BigInt size exceeded');
+ }
+ var value = BigInt(0);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (i = 0; i < word_count; i++) {
+ var low = HEAP_DATA_VIEW.getUint32(words + i * 8, true);
+ var high = HEAP_DATA_VIEW.getUint32(words + (i * 8 + 4), true);
+ var wordi = BigInt(low) | (BigInt(high) << BigInt(32));
+ value += wordi << BigInt(64 * i);
+ }
+ value *= ((BigInt(sign_bit) % BigInt(2) === BigInt(0)) ? BigInt(1) : BigInt(-1));
+ result >>>= 0;
+ v = emnapiCtx.addToCurrentScope(value).id;
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ var convert2napiMod = Object.freeze({
+ __proto__: null,
+ napi_create_bigint_int64: napi_create_bigint_int64,
+ napi_create_bigint_uint64: napi_create_bigint_uint64,
+ napi_create_bigint_words: napi_create_bigint_words,
+ napi_create_double: napi_create_double,
+ napi_create_int32: napi_create_int32,
+ napi_create_int64: napi_create_int64,
+ napi_create_string_latin1: napi_create_string_latin1,
+ napi_create_string_utf16: napi_create_string_utf16,
+ napi_create_string_utf8: napi_create_string_utf8,
+ napi_create_uint32: napi_create_uint32,
+ node_api_create_external_string_latin1: node_api_create_external_string_latin1,
+ node_api_create_external_string_utf16: node_api_create_external_string_utf16,
+ node_api_create_property_key_latin1: node_api_create_property_key_latin1,
+ node_api_create_property_key_utf16: node_api_create_property_key_utf16,
+ node_api_create_property_key_utf8: node_api_create_property_key_utf8
+ });
+ function emnapiCreateFunction(envObject, utf8name, length, cb, data) {
+ utf8name >>>= 0;
+ var functionName = (!utf8name || !length) ? '' : (emnapiString.UTF8ToString(utf8name, length));
+ var f;
+ var napiCallback = (wasmTable.get(cb));
+ var callback = function (envObject) {
+ return napiCallback(envObject.id, envObject.ctx.scopeStore.currentScope.id);
+ };
+ var makeFunction = function (envObject, callback) {
+ return function () {
+ var scope = envObject.ctx.openScope(envObject);
+ var callbackInfo = scope.callbackInfo;
+ callbackInfo.data = data;
+ callbackInfo.args = arguments;
+ callbackInfo.thiz = this;
+ callbackInfo.fn = f;
+ try {
+ var napiValue = envObject.callIntoModule(callback);
+ return (!napiValue) ? undefined : envObject.ctx.handleStore.get(napiValue).value;
+ }
+ finally {
+ callbackInfo.data = 0;
+ callbackInfo.args = undefined;
+ callbackInfo.thiz = undefined;
+ callbackInfo.fn = undefined;
+ envObject.ctx.closeScope(envObject, scope);
+ }
+ };
+ };
+ if (functionName === '') {
+ f = makeFunction(envObject, callback);
+ return { status: 0, f: f };
+ }
+ if (!(/^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(functionName))) {
+ return { status: 1, f: undefined };
+ }
+ if (emnapiCtx.feature.supportNewFunction) {
+ var _ = makeFunction(envObject, callback);
+ try {
+ f = (new Function('_', 'return function ' + functionName + '(){' +
+ '"use strict";' +
+ 'return _.apply(this,arguments);' +
+ '};'))(_);
+ }
+ catch (_err) {
+ f = makeFunction(envObject, callback);
+ if (emnapiCtx.feature.canSetFunctionName)
+ Object.defineProperty(f, 'name', { value: functionName });
+ }
+ }
+ else {
+ f = makeFunction(envObject, callback);
+ if (emnapiCtx.feature.canSetFunctionName)
+ Object.defineProperty(f, 'name', { value: functionName });
+ }
+ return { status: 0, f: f };
+ }
+ function emnapiDefineProperty(envObject, obj, propertyName, method, getter, setter, value, attributes, data) {
+ if (getter || setter) {
+ var localGetter = void 0;
+ var localSetter = void 0;
+ if (getter) {
+ localGetter = emnapiCreateFunction(envObject, 0, 0, getter, data).f;
+ }
+ if (setter) {
+ localSetter = emnapiCreateFunction(envObject, 0, 0, setter, data).f;
+ }
+ var desc = {
+ configurable: (attributes & 4) !== 0,
+ enumerable: (attributes & 2) !== 0,
+ get: localGetter,
+ set: localSetter
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ else if (method) {
+ var localMethod = emnapiCreateFunction(envObject, 0, 0, method, data).f;
+ var desc = {
+ configurable: (attributes & 4) !== 0,
+ enumerable: (attributes & 2) !== 0,
+ writable: (attributes & 1) !== 0,
+ value: localMethod
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ else {
+ var desc = {
+ configurable: (attributes & 4) !== 0,
+ enumerable: (attributes & 2) !== 0,
+ writable: (attributes & 1) !== 0,
+ value: emnapiCtx.handleStore.get(value).value
+ };
+ Object.defineProperty(obj, propertyName, desc);
+ }
+ }
+ function emnapiGetHandle(js_object) {
+ var handle = emnapiCtx.handleStore.get(js_object);
+ if (!(handle.isObject() || handle.isFunction())) {
+ return { status: 1 };
+ }
+ if (typeof emnapiExternalMemory !== 'undefined' && ArrayBuffer.isView(handle.value)) {
+ if (emnapiExternalMemory.wasmMemoryViewTable.has(handle.value)) {
+ handle = emnapiCtx.addToCurrentScope(emnapiExternalMemory.wasmMemoryViewTable.get(handle.value));
+ }
+ }
+ return { status: 0, handle: handle };
+ }
+ function emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
+ var referenceId;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!emnapiCtx.feature.supportFinalizer) {
+ if (finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_wrap', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ if (result) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_wrap', 'Parameter "result" must be 0(NULL)');
+ }
+ }
+ if (!js_object)
+ return envObject.setLastError(1);
+ var handleResult = emnapiGetHandle(js_object);
+ if (handleResult.status !== 0) {
+ return envObject.setLastError(handleResult.status);
+ }
+ var handle = handleResult.handle;
+ if (envObject.getObjectBinding(handle.value).wrapped !== 0) {
+ return envObject.setLastError(1);
+ }
+ var reference = void 0;
+ if (result) {
+ if (!finalize_cb)
+ return envObject.setLastError(1);
+ reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 1, finalize_cb, native_object, finalize_hint);
+ result >>>= 0;
+ referenceId = reference.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, referenceId, true);
+ }
+ else {
+ if (finalize_cb) {
+ reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, 0, finalize_cb, native_object, finalize_hint);
+ }
+ else {
+ reference = emnapiCtx.createReferenceWithData(envObject, handle.id, 0, 0, native_object);
+ }
+ }
+ envObject.getObjectBinding(handle.value).wrapped = reference.id;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function emnapiUnwrap(env, js_object, result, action) {
+ var data;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!js_object)
+ return envObject.setLastError(1);
+ if (action === 0) {
+ if (!result)
+ return envObject.setLastError(1);
+ }
+ var value = emnapiCtx.handleStore.get(js_object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(1);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ var referenceId = binding.wrapped;
+ var ref = emnapiCtx.refStore.get(referenceId);
+ if (!ref)
+ return envObject.setLastError(1);
+ if (result) {
+ result >>>= 0;
+ data = ref.data();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, data, true);
+ }
+ if (action === 1) {
+ binding.wrapped = 0;
+ if (ref.ownership() === 1) {
+ ref.resetFinalizer();
+ }
+ else {
+ ref.dispose();
+ }
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_define_class(env, utf8name, length, constructor, callback_data, property_count, properties, result) {
+ var propPtr, valueHandleId, attributes;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!constructor)
+ return envObject.setLastError(1);
+ length >>>= 0;
+ properties >>>= 0;
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!properties)
+ return envObject.setLastError(1);
+ }
+ if (!((length >= -1 && length <= 2147483647) || length === 4294967295) || (!utf8name)) {
+ return envObject.setLastError(1);
+ }
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, constructor, callback_data);
+ if (fresult.status !== 0)
+ return envObject.setLastError(fresult.status);
+ var F = fresult.f;
+ var propertyName = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ propPtr = properties + (i * (4 * 8));
+ var utf8Name = HEAP_DATA_VIEW.getUint32(propPtr, true);
+ var name_1 = HEAP_DATA_VIEW.getUint32(propPtr + 4, true);
+ var method = HEAP_DATA_VIEW.getUint32(propPtr + 8, true);
+ var getter = HEAP_DATA_VIEW.getUint32(propPtr + 12, true);
+ var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
+ var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
+ attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
+ attributes >>>= 0;
+ var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
+ if (utf8Name) {
+ propertyName = emnapiString.UTF8ToString(utf8Name, -1);
+ }
+ else {
+ if (!name_1) {
+ return envObject.setLastError(4);
+ }
+ propertyName = emnapiCtx.handleStore.get(name_1).value;
+ if (typeof propertyName !== 'string' && typeof propertyName !== 'symbol') {
+ return envObject.setLastError(4);
+ }
+ }
+ if ((attributes & 1024) !== 0) {
+ emnapiDefineProperty(envObject, F, propertyName, method, getter, setter, value, attributes, data);
+ continue;
+ }
+ emnapiDefineProperty(envObject, F.prototype, propertyName, method, getter, setter, value, attributes, data);
+ }
+ var valueHandle = emnapiCtx.addToCurrentScope(F);
+ valueHandleId = valueHandle.id;
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, valueHandleId, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_wrap(env, js_object, native_object, finalize_cb, finalize_hint, result) {
+ return emnapiWrap(env, js_object, native_object, finalize_cb, finalize_hint, result);
+ }
+ function napi_unwrap(env, js_object, result) {
+ return emnapiUnwrap(env, js_object, result, 0);
+ }
+ function napi_remove_wrap(env, js_object, result) {
+ return emnapiUnwrap(env, js_object, result, 1);
+ }
+ function napi_type_tag_object(env, object, type_tag) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var value = emnapiCtx.handleStore.get(object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 2);
+ }
+ type_tag >>>= 0;
+ if (!type_tag) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ if (binding.tag !== null) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var tag = new Uint8Array(16);
+ tag.set(new Uint8Array(wasmMemory.buffer, type_tag, 16));
+ binding.tag = new Uint32Array(tag.buffer);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_check_object_type_tag(env, object, type_tag, result) {
+ var ret = true;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var value = emnapiCtx.handleStore.get(object);
+ if (!(value.isObject() || value.isFunction())) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 2);
+ }
+ if (!type_tag) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ if (!result) {
+ return envObject.setLastError(envObject.tryCatch.hasCaught() ? 10 : 1);
+ }
+ var binding = envObject.getObjectBinding(value.value);
+ if (binding.tag !== null) {
+ type_tag >>>= 0;
+ var tag = binding.tag;
+ var typeTag = new Uint32Array(wasmMemory.buffer, type_tag, 4);
+ ret = (tag[0] === typeTag[0] &&
+ tag[1] === typeTag[1] &&
+ tag[2] === typeTag[2] &&
+ tag[3] === typeTag[3]);
+ }
+ else {
+ ret = false;
+ }
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, ret ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_add_finalizer(env, js_object, finalize_data, finalize_cb, finalize_hint, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!emnapiCtx.feature.supportFinalizer) {
+ return envObject.setLastError(9);
+ }
+ if (!js_object)
+ return envObject.setLastError(1);
+ if (!finalize_cb)
+ return envObject.setLastError(1);
+ var handleResult = emnapiGetHandle(js_object);
+ if (handleResult.status !== 0) {
+ return envObject.setLastError(handleResult.status);
+ }
+ var handle = handleResult.handle;
+ var ownership = !result ? 0 : 1;
+ finalize_data >>>= 0;
+ finalize_cb >>>= 0;
+ finalize_hint >>>= 0;
+ var reference = emnapiCtx.createReferenceWithFinalizer(envObject, handle.id, 0, ownership, finalize_cb, finalize_data, finalize_hint);
+ if (result) {
+ result >>>= 0;
+ var referenceId = reference.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, referenceId, true);
+ }
+ return envObject.clearLastError();
+ }
+ function node_api_post_finalizer(env, finalize_cb, finalize_data, finalize_hint) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.enqueueFinalizer(emnapiCtx.createTrackedFinalizer(envObject, finalize_cb, finalize_data, finalize_hint));
+ return envObject.clearLastError();
+ }
+ var wrapMod = Object.freeze({
+ __proto__: null,
+ napi_add_finalizer: napi_add_finalizer,
+ napi_check_object_type_tag: napi_check_object_type_tag,
+ napi_define_class: napi_define_class,
+ napi_remove_wrap: napi_remove_wrap,
+ napi_type_tag_object: napi_type_tag_object,
+ napi_unwrap: napi_unwrap,
+ napi_wrap: napi_wrap,
+ node_api_post_finalizer: node_api_post_finalizer
+ });
+ function emnapi_create_memory_view(env, typedarray_type, external_data, byte_length, finalize_cb, finalize_hint, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ byte_length >>>= 0;
+ external_data >>>= 0;
+ result >>>= 0;
+ byte_length = byte_length >>> 0;
+ if (!external_data) {
+ byte_length = 0;
+ }
+ if (byte_length > 2147483647) {
+ throw new RangeError('Cannot create a memory view larger than 2147483647 bytes');
+ }
+ if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
+ throw new RangeError('Memory out of range');
+ }
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('emnapi_create_memory_view', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var viewDescriptor = void 0;
+ switch (typedarray_type) {
+ case 0:
+ viewDescriptor = { Ctor: Int8Array, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 1:
+ viewDescriptor = { Ctor: Uint8Array, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 2:
+ viewDescriptor = { Ctor: Uint8ClampedArray, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 3:
+ viewDescriptor = { Ctor: Int16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 4:
+ viewDescriptor = { Ctor: Uint16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 5:
+ viewDescriptor = { Ctor: Int32Array, address: external_data, length: byte_length >> 2, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 6:
+ viewDescriptor = { Ctor: Uint32Array, address: external_data, length: byte_length >> 2, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 7:
+ viewDescriptor = { Ctor: Float32Array, address: external_data, length: byte_length >> 2, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 8:
+ viewDescriptor = { Ctor: Float64Array, address: external_data, length: byte_length >> 3, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 9:
+ viewDescriptor = { Ctor: BigInt64Array, address: external_data, length: byte_length >> 3, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 10:
+ viewDescriptor = { Ctor: BigUint64Array, address: external_data, length: byte_length >> 3, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case -1:
+ viewDescriptor = { Ctor: DataView, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case 11:
+ if (typeof Float16Array !== 'function') {
+ return envObject.setLastError(1);
+ }
+ viewDescriptor = { Ctor: Float16Array, address: external_data, length: byte_length >> 1, ownership: 1, runtimeAllocated: 0 };
+ break;
+ case -2: {
+ if (!emnapiCtx.feature.Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('emnapi_create_memory_view', '');
+ }
+ viewDescriptor = { Ctor: emnapiCtx.feature.Buffer, address: external_data, length: byte_length, ownership: 1, runtimeAllocated: 0 };
+ break;
+ }
+ default: return envObject.setLastError(1);
+ }
+ var Ctor = viewDescriptor.Ctor;
+ var typedArray = typedarray_type === -2
+ ? emnapiCtx.feature.Buffer.from(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length)
+ : new Ctor(wasmMemory.buffer, viewDescriptor.address, viewDescriptor.length);
+ var handle = emnapiCtx.addToCurrentScope(typedArray);
+ emnapiExternalMemory.wasmMemoryViewTable.set(typedArray, viewDescriptor);
+ if (finalize_cb) {
+ var status_1 = napi_add_finalizer(env, handle.id, external_data, finalize_cb, finalize_hint, 0);
+ if (status_1 === 10) {
+ var err = envObject.tryCatch.extractException();
+ envObject.clearLastError();
+ throw err;
+ }
+ else if (status_1 !== 0) {
+ return envObject.setLastError(status_1);
+ }
+ }
+ value = handle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function emnapi_is_support_weakref() {
+ return emnapiCtx.feature.supportFinalizer ? 1 : 0;
+ }
+ function emnapi_is_support_bigint() {
+ return emnapiCtx.feature.supportBigInt ? 1 : 0;
+ }
+ function emnapi_is_node_binding_available() {
+ return emnapiNodeBinding ? 1 : 0;
+ }
+ function $emnapiSyncMemory(js_to_wasm, arrayBufferOrView, offset, len) {
+ offset = offset !== null && offset !== void 0 ? offset : 0;
+ offset = offset >>> 0;
+ var view;
+ if (arrayBufferOrView instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
+ var pointer = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false).address;
+ if (!pointer)
+ throw new Error('Unknown ArrayBuffer address');
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
+ len = arrayBufferOrView.byteLength - offset;
+ }
+ len = len >>> 0;
+ if (len === 0)
+ return arrayBufferOrView;
+ view = new Uint8Array(arrayBufferOrView, offset, len);
+ var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
+ if (!js_to_wasm) {
+ view.set(wasmMemoryU8.subarray(pointer, pointer + len));
+ }
+ else {
+ wasmMemoryU8.set(view, pointer);
+ }
+ return arrayBufferOrView;
+ }
+ if (ArrayBuffer.isView(arrayBufferOrView)) {
+ var viewPointerInfo = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
+ var latestView = viewPointerInfo.view;
+ var pointer = viewPointerInfo.address;
+ if (!pointer)
+ throw new Error('Unknown ArrayBuffer address');
+ if (typeof len !== 'number' || len === -1 || len === 4294967295) {
+ len = latestView.byteLength - offset;
+ }
+ len = len >>> 0;
+ if (len === 0)
+ return latestView;
+ view = new Uint8Array(latestView.buffer, latestView.byteOffset + offset, len);
+ var wasmMemoryU8 = new Uint8Array(wasmMemory.buffer);
+ if (!js_to_wasm) {
+ view.set(wasmMemoryU8.subarray(pointer, pointer + len));
+ }
+ else {
+ wasmMemoryU8.set(view, pointer);
+ }
+ return latestView;
+ }
+ throw new TypeError('emnapiSyncMemory expect ArrayBuffer or ArrayBufferView as first parameter');
+ }
+ function emnapi_sync_memory(env, js_to_wasm, arraybuffer_or_view, offset, len) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer_or_view)
+ return envObject.setLastError(1);
+ arraybuffer_or_view >>>= 0;
+ offset >>>= 0;
+ len >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var handleId = HEAP_DATA_VIEW.getUint32(arraybuffer_or_view, true);
+ var handle = envObject.ctx.handleStore.get(handleId);
+ if (!handle.isArrayBuffer() && !handle.isTypedArray() && !handle.isDataView() && !emnapiExternalMemory.isSharedArrayBuffer(handle.value)) {
+ return envObject.setLastError(1);
+ }
+ var ret = $emnapiSyncMemory(Boolean(js_to_wasm), handle.value, offset, len);
+ if (handle.value !== ret) {
+ arraybuffer_or_view >>>= 0;
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(arraybuffer_or_view, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function $emnapiGetMemoryAddress(arrayBufferOrView) {
+ var isArrayBuffer = arrayBufferOrView instanceof ArrayBuffer;
+ var isDataView = arrayBufferOrView instanceof DataView;
+ var isTypedArray = ArrayBuffer.isView(arrayBufferOrView) && !isDataView;
+ if (!isArrayBuffer && !isTypedArray && !isDataView && !emnapiExternalMemory.isSharedArrayBuffer(arrayBufferOrView)) {
+ throw new TypeError('emnapiGetMemoryAddress expect ArrayBuffer or ArrayBufferView as first parameter');
+ }
+ var info;
+ if (isArrayBuffer) {
+ info = emnapiExternalMemory.getArrayBufferPointer(arrayBufferOrView, false);
+ }
+ else {
+ info = emnapiExternalMemory.getViewPointer(arrayBufferOrView, false);
+ }
+ return {
+ address: info.address,
+ ownership: info.ownership,
+ runtimeAllocated: info.runtimeAllocated
+ };
+ }
+ function emnapi_get_memory_address(env, arraybuffer_or_view, address, ownership, runtime_allocated) {
+ var p, runtimeAllocated, ownershipOut;
+ var info;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer_or_view)
+ return envObject.setLastError(1);
+ if (!address && !ownership && !runtime_allocated) {
+ return envObject.setLastError(1);
+ }
+ var handle = envObject.ctx.handleStore.get(arraybuffer_or_view);
+ info = $emnapiGetMemoryAddress(handle.value);
+ p = info.address;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (address) {
+ address >>>= 0;
+ HEAP_DATA_VIEW.setUint32(address, p, true);
+ }
+ if (ownership) {
+ ownership >>>= 0;
+ ownershipOut = info.ownership;
+ HEAP_DATA_VIEW.setInt32(ownership, ownershipOut, true);
+ }
+ if (runtime_allocated) {
+ runtime_allocated >>>= 0;
+ runtimeAllocated = info.runtimeAllocated;
+ HEAP_DATA_VIEW.setInt8(runtime_allocated, runtimeAllocated, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function emnapi_get_runtime_version(env, version) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!version)
+ return envObject.setLastError(1);
+ var runtimeVersion;
+ try {
+ runtimeVersion = emnapiCtx.getRuntimeVersions().version;
+ }
+ catch (_) {
+ return envObject.setLastError(9);
+ }
+ var versions = runtimeVersion.split('.')
+ .map(function (n) { return Number(n); });
+ version >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(version, versions[0], true);
+ HEAP_DATA_VIEW.setUint32(version + 4, versions[1], true);
+ HEAP_DATA_VIEW.setUint32(version + 8, versions[2], true);
+ return envObject.clearLastError();
+ }
+ var emnapiMod = Object.freeze({
+ __proto__: null,
+ $emnapiGetMemoryAddress: $emnapiGetMemoryAddress,
+ $emnapiSyncMemory: $emnapiSyncMemory,
+ emnapi_create_memory_view: emnapi_create_memory_view,
+ emnapi_get_memory_address: emnapi_get_memory_address,
+ emnapi_get_runtime_version: emnapi_get_runtime_version,
+ emnapi_is_node_binding_available: emnapi_is_node_binding_available,
+ emnapi_is_support_bigint: emnapi_is_support_bigint,
+ emnapi_is_support_weakref: emnapi_is_support_weakref,
+ emnapi_sync_memory: emnapi_sync_memory
+ });
+ function napi_create_array(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope([]).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_array_with_length(env, length, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ length >>>= 0;
+ result >>>= 0;
+ length = length >>> 0;
+ var value = emnapiCtx.addToCurrentScope(new Array(length)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function emnapiCreateArrayBuffer(byte_length, data, shared) {
+ byte_length >>>= 0;
+ byte_length = byte_length >>> 0;
+ var arrayBuffer = shared ? new SharedArrayBuffer(byte_length) : new ArrayBuffer(byte_length);
+ if (data) {
+ data >>>= 0;
+ var p = emnapiExternalMemory.getArrayBufferPointer(arrayBuffer, true).address;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(data, p, true);
+ }
+ return arrayBuffer;
+ }
+ function napi_create_arraybuffer(env, byte_length, data, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, false);
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function node_api_create_sharedarraybuffer(env, byte_length, data, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var arrayBuffer = emnapiCreateArrayBuffer(byte_length, data, true);
+ value = emnapiCtx.addToCurrentScope(arrayBuffer).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_date(env, time, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ value = emnapiCtx.addToCurrentScope(new Date(time)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_external(env, data, finalize_cb, finalize_hint, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_create_external', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var externalHandle = emnapiCtx.getCurrentScope().addExternal(data);
+ if (finalize_cb) {
+ emnapiCtx.createReferenceWithFinalizer(envObject, externalHandle.id, 0, 0, finalize_cb, data, finalize_hint);
+ }
+ result >>>= 0;
+ value = externalHandle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_external_arraybuffer(env, external_data, byte_length, finalize_cb, finalize_hint, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ byte_length >>>= 0;
+ external_data >>>= 0;
+ result >>>= 0;
+ byte_length = byte_length >>> 0;
+ if (!external_data) {
+ byte_length = 0;
+ }
+ if ((external_data + byte_length) > wasmMemory.buffer.byteLength) {
+ throw new RangeError('Memory out of range');
+ }
+ if (!emnapiCtx.feature.supportFinalizer && finalize_cb) {
+ throw emnapiCtx.createNotSupportWeakRefError('napi_create_external_arraybuffer', 'Parameter "finalize_cb" must be 0(NULL)');
+ }
+ var arrayBuffer = new ArrayBuffer(byte_length);
+ if (byte_length === 0) {
+ try {
+ var MessageChannel_1 = emnapiCtx.feature.MessageChannel;
+ var messageChannel = new MessageChannel_1();
+ messageChannel.port1.postMessage(arrayBuffer, [arrayBuffer]);
+ }
+ catch (_) { }
+ }
+ else {
+ var u8arr = new Uint8Array(arrayBuffer);
+ u8arr.set(new Uint8Array(wasmMemory.buffer).subarray(external_data, external_data + byte_length));
+ emnapiExternalMemory.table.set(arrayBuffer, {
+ address: external_data,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ var handle = emnapiCtx.addToCurrentScope(arrayBuffer);
+ if (finalize_cb) {
+ var status_1 = napi_add_finalizer(env, handle.id, external_data, finalize_cb, finalize_hint, 0);
+ if (status_1 === 10) {
+ var err = envObject.tryCatch.extractException();
+ envObject.clearLastError();
+ throw err;
+ }
+ else if (status_1 !== 0) {
+ return envObject.setLastError(status_1);
+ }
+ }
+ value = handle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_object(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope({}).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function node_api_create_object_with_properties(env, prototype_or_null, property_names, property_values, property_count, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!property_names)
+ return envObject.setLastError(1);
+ if (!property_values)
+ return envObject.setLastError(1);
+ }
+ var v8_prototype_or_null = prototype_or_null
+ ? emnapiCtx.handleStore.get(prototype_or_null).value
+ : null;
+ var properties = {};
+ property_names >>>= 0;
+ property_values >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ var name_value = emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_names + i * 4, true)).value;
+ if (!(typeof name_value === "string" || typeof name_value === "symbol"))
+ return envObject.setLastError(4);
+ properties[name_value] = {
+ value: emnapiCtx.handleStore.get(HEAP_DATA_VIEW.getUint32(property_values + i * 4, true)).value,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ };
+ }
+ var obj;
+ try {
+ obj = Object.defineProperties(Object.create(v8_prototype_or_null), properties);
+ }
+ catch (_) {
+ return envObject.setLastError(9);
+ }
+ var value = emnapiCtx.addToCurrentScope(obj).id;
+ result >>>= 0;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_symbol(env, description, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!description) {
+ var value = emnapiCtx.addToCurrentScope(Symbol()).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ }
+ else {
+ var handle = emnapiCtx.handleStore.get(description);
+ var desc = handle.value;
+ if (typeof desc !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var v = emnapiCtx.addToCurrentScope(Symbol(desc)).id;
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_create_typedarray(env, type, length, arraybuffer, byte_offset, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer()) {
+ return envObject.setLastError(1);
+ }
+ var buffer = handle.value;
+ byte_offset >>>= 0;
+ length >>>= 0;
+ var createTypedArray = function (envObject, Type, size_of_element, buffer, byte_offset, length) {
+ var _a;
+ byte_offset = byte_offset >>> 0;
+ length = length >>> 0;
+ if (size_of_element > 1) {
+ if ((byte_offset) % (size_of_element) !== 0) {
+ var err = new RangeError("start offset of ".concat((_a = Type.name) !== null && _a !== void 0 ? _a : '', " should be a multiple of ").concat(size_of_element));
+ err.code = 'ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT';
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(9);
+ }
+ }
+ if (((length * size_of_element) + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('Invalid typed array length');
+ err.code = 'ERR_NAPI_INVALID_TYPEDARRAY_LENGTH';
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(9);
+ }
+ var out = new Type(buffer, byte_offset, length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(out, {
+ Ctor: Type,
+ address: byte_offset,
+ length: length,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ value = emnapiCtx.addToCurrentScope(out).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ };
+ switch (type) {
+ case 0:
+ return createTypedArray(envObject, Int8Array, 1, buffer, byte_offset, length);
+ case 1:
+ return createTypedArray(envObject, Uint8Array, 1, buffer, byte_offset, length);
+ case 2:
+ return createTypedArray(envObject, Uint8ClampedArray, 1, buffer, byte_offset, length);
+ case 3:
+ return createTypedArray(envObject, Int16Array, 2, buffer, byte_offset, length);
+ case 4:
+ return createTypedArray(envObject, Uint16Array, 2, buffer, byte_offset, length);
+ case 5:
+ return createTypedArray(envObject, Int32Array, 4, buffer, byte_offset, length);
+ case 6:
+ return createTypedArray(envObject, Uint32Array, 4, buffer, byte_offset, length);
+ case 7:
+ return createTypedArray(envObject, Float32Array, 4, buffer, byte_offset, length);
+ case 8:
+ return createTypedArray(envObject, Float64Array, 8, buffer, byte_offset, length);
+ case 9:
+ return createTypedArray(envObject, BigInt64Array, 8, buffer, byte_offset, length);
+ case 10:
+ return createTypedArray(envObject, BigUint64Array, 8, buffer, byte_offset, length);
+ case 11:
+ if (typeof Float16Array !== 'function') {
+ return envObject.setLastError(1);
+ }
+ return createTypedArray(envObject, Float16Array, 2, buffer, byte_offset, length);
+ default:
+ return envObject.setLastError(1);
+ }
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_buffer(env, size, data, result) {
+ var _a;
+ var value, pointer;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('napi_create_buffer', '');
+ }
+ result >>>= 0;
+ var buffer = void 0;
+ size >>>= 0;
+ size = size >>> 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!data || (size === 0)) {
+ buffer = Buffer.alloc(size);
+ value = emnapiCtx.addToCurrentScope(buffer).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ }
+ else {
+ pointer = _malloc(size);
+ if (!pointer)
+ throw new Error('Out of memory');
+ pointer >>>= 0;
+ new Uint8Array(wasmMemory.buffer).subarray(pointer, pointer + size).fill(0);
+ var buffer_1 = Buffer.from(wasmMemory.buffer, pointer, size);
+ var viewDescriptor = {
+ Ctor: Buffer,
+ address: pointer,
+ length: size,
+ ownership: emnapiExternalMemory.registry ? 0 : 1,
+ runtimeAllocated: 1
+ };
+ emnapiExternalMemory.wasmMemoryViewTable.set(buffer_1, viewDescriptor);
+ (_a = emnapiExternalMemory.registry) === null || _a === void 0 ? void 0 : _a.register(viewDescriptor, pointer);
+ value = emnapiCtx.addToCurrentScope(buffer_1).id;
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ data >>>= 0;
+ HEAP_DATA_VIEW.setUint32(data, pointer, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_buffer_copy(env, length, data, result_data, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('napi_create_buffer_copy', '');
+ }
+ var arrayBuffer = emnapiCreateArrayBuffer(length, result_data, false);
+ var buffer = Buffer.from(arrayBuffer);
+ data >>>= 0;
+ length >>>= 0;
+ buffer.set(new Uint8Array(wasmMemory.buffer).subarray(data, data + length));
+ value = emnapiCtx.addToCurrentScope(buffer).id;
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_external_buffer(env, length, data, finalize_cb, finalize_hint, result) {
+ return emnapi_create_memory_view(env, -2, data, length, finalize_cb, finalize_hint, result);
+ }
+ function node_api_create_buffer_from_arraybuffer(env, arraybuffer, byte_offset, byte_length, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ byte_offset >>>= 0;
+ byte_length >>>= 0;
+ byte_offset = byte_offset >>> 0;
+ byte_length = byte_length >>> 0;
+ var handle = emnapiCtx.handleStore.get(arraybuffer);
+ if (!handle.isArrayBuffer()) {
+ return envObject.setLastError(1);
+ }
+ var buffer = handle.value;
+ if ((byte_length + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('The byte offset + length is out of range');
+ err.code = 'ERR_OUT_OF_RANGE';
+ throw err;
+ }
+ var Buffer = emnapiCtx.feature.Buffer;
+ if (!Buffer) {
+ throw emnapiCtx.createNotSupportBufferError('node_api_create_buffer_from_arraybuffer', '');
+ }
+ var out = Buffer.from(buffer, byte_offset, byte_length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(out)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(out, {
+ Ctor: Buffer,
+ address: byte_offset,
+ length: byte_length,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ value = emnapiCtx.addToCurrentScope(out).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_create_dataview(env, byte_length, arraybuffer, byte_offset, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ byte_length >>>= 0;
+ byte_offset >>>= 0;
+ byte_length = byte_length >>> 0;
+ byte_offset = byte_offset >>> 0;
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
+ var createDataview = function (buffer) {
+ if ((byte_length + byte_offset) > buffer.byteLength) {
+ var err = new RangeError('byte_offset + byte_length should be less than or equal to the size in bytes of the array passed in');
+ err.code = 'ERR_NAPI_INVALID_DATAVIEW_ARGS';
+ throw err;
+ }
+ var dataview = new DataView(buffer, byte_offset, byte_length);
+ if (buffer === wasmMemory.buffer) {
+ if (!emnapiExternalMemory.wasmMemoryViewTable.has(dataview)) {
+ emnapiExternalMemory.wasmMemoryViewTable.set(dataview, {
+ Ctor: DataView,
+ address: byte_offset,
+ length: byte_length,
+ ownership: 1,
+ runtimeAllocated: 0
+ });
+ }
+ }
+ result >>>= 0;
+ var v = emnapiCtx.addToCurrentScope(dataview).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ };
+ if (value instanceof ArrayBuffer || emnapiExternalMemory.isSharedArrayBuffer(value)) {
+ return createDataview(value);
+ }
+ else {
+ return envObject.setLastError(1);
+ }
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function node_api_symbol_for(env, utf8description, length, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ length >>>= 0;
+ utf8description >>>= 0;
+ result >>>= 0;
+ var autoLength = length === -1 || length === 4294967295;
+ var sizelength = length >>> 0;
+ if (length !== 0) {
+ if (!utf8description)
+ return envObject.setLastError(1);
+ }
+ if (!(autoLength || (sizelength <= 2147483647))) {
+ return envObject.setLastError(1);
+ }
+ var descriptionString = emnapiString.UTF8ToString(utf8description, length);
+ var value = emnapiCtx.addToCurrentScope(Symbol.for(descriptionString)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var createMod = Object.freeze({
+ __proto__: null,
+ napi_create_array: napi_create_array,
+ napi_create_array_with_length: napi_create_array_with_length,
+ napi_create_arraybuffer: napi_create_arraybuffer,
+ napi_create_buffer: napi_create_buffer,
+ napi_create_buffer_copy: napi_create_buffer_copy,
+ napi_create_dataview: napi_create_dataview,
+ napi_create_date: napi_create_date,
+ napi_create_external: napi_create_external,
+ napi_create_external_arraybuffer: napi_create_external_arraybuffer,
+ napi_create_external_buffer: napi_create_external_buffer,
+ napi_create_object: napi_create_object,
+ napi_create_symbol: napi_create_symbol,
+ napi_create_typedarray: napi_create_typedarray,
+ node_api_create_buffer_from_arraybuffer: node_api_create_buffer_from_arraybuffer,
+ node_api_create_object_with_properties: node_api_create_object_with_properties,
+ node_api_create_sharedarraybuffer: node_api_create_sharedarraybuffer,
+ node_api_symbol_for: node_api_symbol_for
+ });
+ function napi_get_boolean(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var v = value === 0 ? 3 : 4;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_global(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = 5;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_null(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = 2;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_undefined(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var value = 1;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var globalMod = Object.freeze({
+ __proto__: null,
+ napi_get_boolean: napi_get_boolean,
+ napi_get_global: napi_get_global,
+ napi_get_null: napi_get_null,
+ napi_get_undefined: napi_get_undefined
+ });
+ function napi_set_instance_data(env, data, finalize_cb, finalize_hint) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ data >>>= 0;
+ finalize_cb >>>= 0;
+ finalize_hint >>>= 0;
+ envObject.setInstanceData(data, finalize_cb, finalize_hint);
+ return envObject.clearLastError();
+ }
+ function napi_get_instance_data(env, data) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!data)
+ return envObject.setLastError(1);
+ data >>>= 0;
+ var value = envObject.getInstanceData();
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(data, value, true);
+ return envObject.clearLastError();
+ }
+ var envMod = Object.freeze({
+ __proto__: null,
+ napi_get_instance_data: napi_get_instance_data,
+ napi_set_instance_data: napi_set_instance_data
+ });
+ function _emnapi_get_last_error_info(env, error_code, engine_error_code, engine_reserved) {
+ error_code >>>= 0;
+ engine_error_code >>>= 0;
+ engine_reserved >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ var lastError = envObject.lastError;
+ var errorCode = lastError.errorCode;
+ var engineErrorCode = lastError.engineErrorCode >>> 0;
+ var engineReserved = lastError.engineReserved;
+ engineReserved >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(error_code, errorCode, true);
+ HEAP_DATA_VIEW.setUint32(engine_error_code, engineErrorCode, true);
+ HEAP_DATA_VIEW.setUint32(engine_reserved, engineReserved, true);
+ }
+ function napi_throw(env, error) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!error)
+ return envObject.setLastError(1);
+ envObject.tryCatch.setError(emnapiCtx.handleStore.get(error).value);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_throw_error(env, code, msg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new Error(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_throw_type_error(env, code, msg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new TypeError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_throw_range_error(env, code, msg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new RangeError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function node_api_throw_syntax_error(env, code, msg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!msg)
+ return envObject.setLastError(1);
+ code >>>= 0;
+ msg >>>= 0;
+ var error = new SyntaxError(emnapiString.UTF8ToString(msg, -1));
+ if (code)
+ error.code = emnapiString.UTF8ToString(code, -1);
+ envObject.tryCatch.setError(error);
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_is_exception_pending(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ var r = envObject.tryCatch.hasCaught();
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_error(env, code, msg, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var error = new Error(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_type_error(env, code, msg, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var error = new TypeError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_create_range_error(env, code, msg, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var error = new RangeError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function node_api_create_syntax_error(env, code, msg, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!msg)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var msgValue = emnapiCtx.handleStore.get(msg).value;
+ if (typeof msgValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ var error = new SyntaxError(msgValue);
+ if (code) {
+ var codeValue = emnapiCtx.handleStore.get(code).value;
+ if (typeof codeValue !== 'string') {
+ return envObject.setLastError(3);
+ }
+ error.code = codeValue;
+ }
+ result >>>= 0;
+ var value = emnapiCtx.addToCurrentScope(error).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ function napi_get_and_clear_last_exception(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (!envObject.tryCatch.hasCaught()) {
+ HEAP_DATA_VIEW.setUint32(result, 1, true);
+ return envObject.clearLastError();
+ }
+ else {
+ var err = envObject.tryCatch.exception();
+ var value = envObject.ensureHandleId(err);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ envObject.tryCatch.reset();
+ }
+ return envObject.clearLastError();
+ }
+ function napi_fatal_error(location, location_len, message, message_len) {
+ location >>>= 0;
+ location_len >>>= 0;
+ message >>>= 0;
+ message_len >>>= 0;
+ var locationStr = emnapiString.UTF8ToString(location, location_len);
+ var messageStr = emnapiString.UTF8ToString(message, message_len);
+ if (emnapiNodeBinding) {
+ emnapiNodeBinding.napi.fatalError(locationStr, messageStr);
+ }
+ else {
+ abort('FATAL ERROR: ' + locationStr + ' ' + messageStr);
+ }
+ }
+ function napi_fatal_exception(env, err) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!err)
+ return envObject.setLastError(1);
+ var error = envObject.ctx.handleStore.get(err);
+ try {
+ envObject.triggerFatalException(error.value);
+ }
+ catch (_) {
+ return envObject.setLastError(9);
+ }
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ var errorMod = Object.freeze({
+ __proto__: null,
+ _emnapi_get_last_error_info: _emnapi_get_last_error_info,
+ napi_create_error: napi_create_error,
+ napi_create_range_error: napi_create_range_error,
+ napi_create_type_error: napi_create_type_error,
+ napi_fatal_error: napi_fatal_error,
+ napi_fatal_exception: napi_fatal_exception,
+ napi_get_and_clear_last_exception: napi_get_and_clear_last_exception,
+ napi_is_exception_pending: napi_is_exception_pending,
+ napi_throw: napi_throw,
+ napi_throw_error: napi_throw_error,
+ napi_throw_range_error: napi_throw_range_error,
+ napi_throw_type_error: napi_throw_type_error,
+ node_api_create_syntax_error: node_api_create_syntax_error,
+ node_api_throw_syntax_error: node_api_throw_syntax_error
+ });
+ function _emnapi_create_function(env, utf8name, length, cb, data, result) {
+ length >>>= 0;
+ var envObject = emnapiCtx.envStore.get(env);
+ var fresult = emnapiCreateFunction(envObject, utf8name, length, cb, data);
+ if (fresult.status !== 0)
+ return envObject.setLastError(fresult.status);
+ var f = fresult.f;
+ var valueHandle = emnapiCtx.addToCurrentScope(f);
+ result >>>= 0;
+ var value = valueHandle.id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ function napi_create_function(env, utf8name, length, cb, data, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!cb)
+ return envObject.setLastError(1);
+ return _emnapi_create_function(env, utf8name, length, cb, data, result);
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_cb_info(env, cbinfo, argc, argv, this_arg, data) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!cbinfo)
+ return envObject.setLastError(1);
+ var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
+ argc >>>= 0;
+ argv >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (argv) {
+ if (!argc)
+ return envObject.setLastError(1);
+ var argcValue = HEAP_DATA_VIEW.getUint32(argc, true);
+ argcValue >>>= 0;
+ var len = cbinfoValue.args.length;
+ var arrlen = argcValue < len ? argcValue : len;
+ var i = 0;
+ for (; i < arrlen; i++) {
+ var argVal = envObject.ensureHandleId(cbinfoValue.args[i]);
+ HEAP_DATA_VIEW.setUint32(argv + i * 4, argVal, true);
+ }
+ if (i < argcValue) {
+ for (; i < argcValue; i++) {
+ HEAP_DATA_VIEW.setUint32(argv + i * 4, 1, true);
+ }
+ }
+ }
+ if (argc) {
+ HEAP_DATA_VIEW.setUint32(argc, cbinfoValue.args.length, true);
+ }
+ if (this_arg) {
+ this_arg >>>= 0;
+ var v = envObject.ensureHandleId(cbinfoValue.thiz);
+ HEAP_DATA_VIEW.setUint32(this_arg, v, true);
+ }
+ if (data) {
+ data >>>= 0;
+ HEAP_DATA_VIEW.setUint32(data, cbinfoValue.data, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_call_function(env, recv, func, argc, argv, result) {
+ var i = 0;
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!recv)
+ return envObject.setLastError(1);
+ argc >>>= 0;
+ argv >>>= 0;
+ result >>>= 0;
+ argc = argc >>> 0;
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1);
+ }
+ var v8recv = emnapiCtx.handleStore.get(recv).value;
+ if (!func)
+ return envObject.setLastError(1);
+ var v8func = emnapiCtx.handleStore.get(func).value;
+ if (typeof v8func !== 'function')
+ return envObject.setLastError(1);
+ var args = [];
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ args.push(emnapiCtx.handleStore.get(argVal).value);
+ }
+ var ret = v8func.apply(v8recv, args);
+ if (result) {
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.clearLastError();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_new_instance(env, constructor, argc, argv, result) {
+ var i;
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!constructor)
+ return envObject.setLastError(1);
+ argc >>>= 0;
+ argv >>>= 0;
+ result >>>= 0;
+ argc = argc >>> 0;
+ if (argc > 0) {
+ if (!argv)
+ return envObject.setLastError(1);
+ }
+ if (!result)
+ return envObject.setLastError(1);
+ var Ctor = emnapiCtx.handleStore.get(constructor).value;
+ if (typeof Ctor !== 'function')
+ return envObject.setLastError(1);
+ var ret = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (emnapiCtx.feature.supportReflect) {
+ var argList = Array(argc);
+ for (i = 0; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ argList[i] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ ret = Reflect.construct(Ctor, argList, Ctor);
+ }
+ else {
+ var args = Array(argc + 1);
+ args[0] = undefined;
+ for (i = 0; i < argc; i++) {
+ var argVal = HEAP_DATA_VIEW.getUint32(argv + i * 4, true);
+ args[i + 1] = emnapiCtx.handleStore.get(argVal).value;
+ }
+ var BoundCtor = Ctor.bind.apply(Ctor, args);
+ ret = new BoundCtor();
+ }
+ if (result) {
+ v = envObject.ensureHandleId(ret);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_new_target(env, cbinfo, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!cbinfo)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var cbinfoValue = emnapiCtx.scopeStore.get(cbinfo).callbackInfo;
+ var thiz = cbinfoValue.thiz, fn = cbinfoValue.fn;
+ var value = thiz == null || thiz.constructor == null
+ ? 0
+ : thiz instanceof fn
+ ? envObject.ensureHandleId(thiz.constructor)
+ : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ var functionMod = Object.freeze({
+ __proto__: null,
+ _emnapi_create_function: _emnapi_create_function,
+ napi_call_function: napi_call_function,
+ napi_create_function: napi_create_function,
+ napi_get_cb_info: napi_get_cb_info,
+ napi_get_new_target: napi_get_new_target,
+ napi_new_instance: napi_new_instance
+ });
+ function napi_open_handle_scope(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ var scope = emnapiCtx.openScope(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, scope.id, true);
+ return envObject.clearLastError();
+ }
+ function napi_close_handle_scope(env, scope) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1);
+ if ((envObject.openHandleScopes === 0)) {
+ return 13;
+ }
+ emnapiCtx.closeScope(envObject);
+ return envObject.clearLastError();
+ }
+ function napi_open_escapable_handle_scope(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!result)
+ return envObject.setLastError(1);
+ var scope = emnapiCtx.openScope(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, scope.id, true);
+ return envObject.clearLastError();
+ }
+ function napi_close_escapable_handle_scope(env, scope) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1);
+ if ((envObject.openHandleScopes === 0)) {
+ return 13;
+ }
+ emnapiCtx.closeScope(envObject);
+ return envObject.clearLastError();
+ }
+ function napi_escape_handle(env, scope, escapee, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!scope)
+ return envObject.setLastError(1);
+ if (!escapee)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var scopeObject = emnapiCtx.scopeStore.get(scope);
+ if (!scopeObject.escapeCalled()) {
+ escapee >>>= 0;
+ result >>>= 0;
+ var newHandle = scopeObject.escape(escapee);
+ var value = newHandle ? newHandle.id : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.clearLastError();
+ }
+ return envObject.setLastError(12);
+ }
+ function napi_create_reference(env, value, initial_refcount, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (envObject.moduleApiVersion < 10) {
+ if (!(handle.isObject() || handle.isFunction() || handle.isSymbol())) {
+ return envObject.setLastError(1);
+ }
+ }
+ var ref = emnapiCtx.createReference(envObject, handle.id, initial_refcount >>> 0, 1);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, ref.id, true);
+ return envObject.clearLastError();
+ }
+ function napi_delete_reference(env, ref) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!ref)
+ return envObject.setLastError(1);
+ emnapiCtx.refStore.get(ref).dispose();
+ return envObject.clearLastError();
+ }
+ function napi_reference_ref(env, ref, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1);
+ var count = emnapiCtx.refStore.get(ref).ref();
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, count, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_reference_unref(env, ref, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1);
+ var reference = emnapiCtx.refStore.get(ref);
+ var refcount = reference.refcount();
+ if (refcount === 0) {
+ return envObject.setLastError(9);
+ }
+ var count = reference.unref();
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, count, true);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_get_reference_value(env, ref, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!ref)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var reference = emnapiCtx.refStore.get(ref);
+ var handleId = reference.get(envObject);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, handleId, true);
+ return envObject.clearLastError();
+ }
+ function napi_add_env_cleanup_hook(env, fun, arg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!fun)
+ return envObject.setLastError(1);
+ fun >>>= 0;
+ arg >>>= 0;
+ emnapiCtx.addCleanupHook(envObject, fun, arg);
+ return 0;
+ }
+ function napi_remove_env_cleanup_hook(env, fun, arg) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!fun)
+ return envObject.setLastError(1);
+ fun >>>= 0;
+ arg >>>= 0;
+ emnapiCtx.removeCleanupHook(envObject, fun, arg);
+ return 0;
+ }
+ function _emnapi_env_ref(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.ref();
+ }
+ function _emnapi_env_unref(env) {
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.unref();
+ }
+ var lifeMod = Object.freeze({
+ __proto__: null,
+ _emnapi_env_ref: _emnapi_env_ref,
+ _emnapi_env_unref: _emnapi_env_unref,
+ napi_add_env_cleanup_hook: napi_add_env_cleanup_hook,
+ napi_close_escapable_handle_scope: napi_close_escapable_handle_scope,
+ napi_close_handle_scope: napi_close_handle_scope,
+ napi_create_reference: napi_create_reference,
+ napi_delete_reference: napi_delete_reference,
+ napi_escape_handle: napi_escape_handle,
+ napi_get_reference_value: napi_get_reference_value,
+ napi_open_escapable_handle_scope: napi_open_escapable_handle_scope,
+ napi_open_handle_scope: napi_open_handle_scope,
+ napi_reference_ref: napi_reference_ref,
+ napi_reference_unref: napi_reference_unref,
+ napi_remove_env_cleanup_hook: napi_remove_env_cleanup_hook
+ });
+ function _emnapi_get_filename(env, buf, len) {
+ var envObject = emnapiCtx.envStore.get(env);
+ var filename = envObject.filename;
+ if (!buf) {
+ return emnapiString.lengthBytesUTF8(filename);
+ }
+ return emnapiString.stringToUTF8(filename, buf, len);
+ }
+ var miscellaneousMod = Object.freeze({
+ __proto__: null,
+ _emnapi_get_filename: _emnapi_get_filename
+ });
+ function napi_create_promise(env, deferred, promise) {
+ var deferredObjectId, value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1);
+ if (!promise)
+ return envObject.setLastError(1);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ var p = new Promise(function (resolve, reject) {
+ var deferredObject = emnapiCtx.createDeferred({ resolve: resolve, reject: reject });
+ deferredObjectId = deferredObject.id;
+ deferred >>>= 0;
+ HEAP_DATA_VIEW.setUint32(deferred, deferredObjectId, true);
+ });
+ promise >>>= 0;
+ value = emnapiCtx.addToCurrentScope(p).id;
+ HEAP_DATA_VIEW.setUint32(promise, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_resolve_deferred(env, deferred, resolution) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1);
+ if (!resolution)
+ return envObject.setLastError(1);
+ var deferredObject = emnapiCtx.deferredStore.get(deferred);
+ deferredObject.resolve(emnapiCtx.handleStore.get(resolution).value);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_reject_deferred(env, deferred, resolution) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!deferred)
+ return envObject.setLastError(1);
+ if (!resolution)
+ return envObject.setLastError(1);
+ var deferredObject = emnapiCtx.deferredStore.get(deferred);
+ deferredObject.reject(emnapiCtx.handleStore.get(resolution).value);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_is_promise(env, value, is_promise) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!is_promise)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ is_promise >>>= 0;
+ var r = h.isPromise() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(is_promise, r, true);
+ return envObject.clearLastError();
+ }
+ var promiseMod = Object.freeze({
+ __proto__: null,
+ napi_create_promise: napi_create_promise,
+ napi_is_promise: napi_is_promise,
+ napi_reject_deferred: napi_reject_deferred,
+ napi_resolve_deferred: napi_resolve_deferred
+ });
+ function napi_get_all_property_names(env, object, key_mode, key_filter, key_conversion, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var obj = void 0;
+ try {
+ obj = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ if (key_mode !== 0 && key_mode !== 1) {
+ return envObject.setLastError(1);
+ }
+ if (key_conversion !== 0 && key_conversion !== 1) {
+ return envObject.setLastError(1);
+ }
+ var props = [];
+ var names = void 0;
+ var symbols = void 0;
+ var i = void 0;
+ var own = true;
+ var integerIndiceRegex = /^(0|[1-9][0-9]*)$/;
+ do {
+ names = Object.getOwnPropertyNames(obj);
+ symbols = Object.getOwnPropertySymbols(obj);
+ for (i = 0; i < names.length; i++) {
+ props.push({
+ name: integerIndiceRegex.test(names[i]) ? Number(names[i]) : names[i],
+ desc: Object.getOwnPropertyDescriptor(obj, names[i]),
+ own: own
+ });
+ }
+ for (i = 0; i < symbols.length; i++) {
+ props.push({
+ name: symbols[i],
+ desc: Object.getOwnPropertyDescriptor(obj, symbols[i]),
+ own: own
+ });
+ }
+ if (key_mode === 1) {
+ break;
+ }
+ obj = Object.getPrototypeOf(obj);
+ own = false;
+ } while (obj);
+ var ret = [];
+ var addName = function (ret, name, key_filter, conversion_mode) {
+ if (ret.indexOf(name) !== -1)
+ return;
+ if (conversion_mode === 0) {
+ ret.push(name);
+ }
+ else if (conversion_mode === 1) {
+ var realName = typeof name === 'number' ? String(name) : name;
+ if (typeof realName === 'string') {
+ if (!(key_filter & 8)) {
+ ret.push(realName);
+ }
+ }
+ else {
+ ret.push(realName);
+ }
+ }
+ };
+ for (i = 0; i < props.length; i++) {
+ var prop = props[i];
+ var name_1 = prop.name;
+ var desc = prop.desc;
+ if (key_filter === 0) {
+ addName(ret, name_1, key_filter, key_conversion);
+ }
+ else {
+ if (key_filter & 8 && typeof name_1 === 'string') {
+ continue;
+ }
+ if (key_filter & 16 && typeof name_1 === 'symbol') {
+ continue;
+ }
+ var shouldAdd = true;
+ switch (key_filter & 7) {
+ case 1: {
+ shouldAdd = Boolean(desc.writable);
+ break;
+ }
+ case 2: {
+ shouldAdd = Boolean(desc.enumerable);
+ break;
+ }
+ case (1 | 2): {
+ shouldAdd = Boolean(desc.writable && desc.enumerable);
+ break;
+ }
+ case 4: {
+ shouldAdd = Boolean(desc.configurable);
+ break;
+ }
+ case (4 | 1): {
+ shouldAdd = Boolean(desc.configurable && desc.writable);
+ break;
+ }
+ case (4 | 2): {
+ shouldAdd = Boolean(desc.configurable && desc.enumerable);
+ break;
+ }
+ case (4 | 2 | 1): {
+ shouldAdd = Boolean(desc.configurable && desc.enumerable && desc.writable);
+ break;
+ }
+ }
+ if (shouldAdd) {
+ addName(ret, name_1, key_filter, key_conversion);
+ }
+ }
+ }
+ result >>>= 0;
+ value = emnapiCtx.addToCurrentScope(ret).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_property_names(env, object, result) {
+ return napi_get_all_property_names(env, object, 0, 2 | 16, 1, result);
+ }
+ function napi_set_property(env, object, key, value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!value)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ h.value[emnapiCtx.handleStore.get(key).value] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_has_property(env, object, key, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ r = (emnapiCtx.handleStore.get(key).value in v) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_property(env, object, key, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ value = envObject.ensureHandleId(v[emnapiCtx.handleStore.get(key).value]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_delete_property(env, object, key, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ var propertyKey = emnapiCtx.handleStore.get(key).value;
+ if (emnapiCtx.feature.supportReflect) {
+ r = Reflect.deleteProperty(h.value, propertyKey);
+ }
+ else {
+ try {
+ r = delete h.value[propertyKey];
+ }
+ catch (_) {
+ r = false;
+ }
+ }
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_has_own_property(env, object, key, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!key)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ var prop = emnapiCtx.handleStore.get(key).value;
+ if (typeof prop !== 'string' && typeof prop !== 'symbol') {
+ return envObject.setLastError(4);
+ }
+ r = Object.prototype.hasOwnProperty.call(v, emnapiCtx.handleStore.get(key).value);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_set_named_property(env, object, cname, value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ if (!cname) {
+ return envObject.setLastError(1);
+ }
+ cname >>>= 0;
+ emnapiCtx.handleStore.get(object).value[emnapiString.UTF8ToString(cname, -1)] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_has_named_property(env, object, utf8name, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ if (!utf8name) {
+ return envObject.setLastError(1);
+ }
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ utf8name >>>= 0;
+ result >>>= 0;
+ r = emnapiString.UTF8ToString(utf8name, -1) in v;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_named_property(env, object, utf8name, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ if (!utf8name) {
+ return envObject.setLastError(1);
+ }
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ utf8name >>>= 0;
+ result >>>= 0;
+ value = envObject.ensureHandleId(v[emnapiString.UTF8ToString(utf8name, -1)]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_set_element(env, object, index, value) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ h.value[index >>> 0] = emnapiCtx.handleStore.get(value).value;
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_has_element(env, object, index, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ r = ((index >>> 0) in v) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_get_element(env, object, index, result) {
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!result)
+ return envObject.setLastError(1);
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (h.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ var v = void 0;
+ try {
+ v = h.isObject() || h.isFunction() ? h.value : Object(h.value);
+ }
+ catch (_) {
+ return envObject.setLastError(2);
+ }
+ result >>>= 0;
+ value = envObject.ensureHandleId(v[index >>> 0]);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_delete_element(env, object, index, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ if (emnapiCtx.feature.supportReflect) {
+ r = Reflect.deleteProperty(h.value, index >>> 0);
+ }
+ else {
+ try {
+ r = delete h.value[index >>> 0];
+ }
+ catch (_) {
+ r = false;
+ }
+ }
+ if (result) {
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r ? 1 : 0, true);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_define_properties(env, object, property_count, properties) {
+ var propPtr, attributes;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ properties >>>= 0;
+ property_count >>>= 0;
+ property_count = property_count >>> 0;
+ if (property_count > 0) {
+ if (!properties)
+ return envObject.setLastError(1);
+ }
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ var propertyName = void 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ for (var i = 0; i < property_count; i++) {
+ propPtr = properties + (i * (4 * 8));
+ var utf8Name = HEAP_DATA_VIEW.getUint32(propPtr, true);
+ var name_2 = HEAP_DATA_VIEW.getUint32(propPtr + 4, true);
+ var method = HEAP_DATA_VIEW.getUint32(propPtr + 8, true);
+ var getter = HEAP_DATA_VIEW.getUint32(propPtr + 12, true);
+ var setter = HEAP_DATA_VIEW.getUint32(propPtr + 16, true);
+ var value = HEAP_DATA_VIEW.getUint32(propPtr + 20, true);
+ attributes = HEAP_DATA_VIEW.getInt32(propPtr + 24, true);
+ attributes >>>= 0;
+ var data = HEAP_DATA_VIEW.getUint32(propPtr + 28, true);
+ if (utf8Name) {
+ propertyName = emnapiString.UTF8ToString(utf8Name, -1);
+ }
+ else {
+ if (!name_2) {
+ return envObject.setLastError(4);
+ }
+ propertyName = emnapiCtx.handleStore.get(name_2).value;
+ if (typeof propertyName !== 'string' && typeof propertyName !== 'symbol') {
+ return envObject.setLastError(4);
+ }
+ }
+ emnapiDefineProperty(envObject, maybeObject, propertyName, method, getter, setter, value, attributes, data);
+ }
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_object_freeze(env, object) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ Object.freeze(maybeObject);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_object_seal(env, object) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(object);
+ var maybeObject = h.value;
+ if (!(h.isObject() || h.isFunction())) {
+ return envObject.setLastError(2);
+ }
+ Object.seal(maybeObject);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ var propertyMod = Object.freeze({
+ __proto__: null,
+ napi_define_properties: napi_define_properties,
+ napi_delete_element: napi_delete_element,
+ napi_delete_property: napi_delete_property,
+ napi_get_all_property_names: napi_get_all_property_names,
+ napi_get_element: napi_get_element,
+ napi_get_named_property: napi_get_named_property,
+ napi_get_property: napi_get_property,
+ napi_get_property_names: napi_get_property_names,
+ napi_has_element: napi_has_element,
+ napi_has_named_property: napi_has_named_property,
+ napi_has_own_property: napi_has_own_property,
+ napi_has_property: napi_has_property,
+ napi_object_freeze: napi_object_freeze,
+ napi_object_seal: napi_object_seal,
+ napi_set_element: napi_set_element,
+ napi_set_named_property: napi_set_named_property,
+ napi_set_property: napi_set_property
+ });
+ function napi_run_script(env, script, result) {
+ var status;
+ var value;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!script)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var v8Script = emnapiCtx.handleStore.get(script);
+ if (!v8Script.isString()) {
+ return envObject.setLastError(3);
+ }
+ var g = emnapiCtx.handleStore.get(5).value;
+ var ret = g.eval(v8Script.value);
+ result >>>= 0;
+ value = envObject.ensureHandleId(ret);
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, value, true);
+ status = envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ return status;
+ }
+ var scriptMod = Object.freeze({
+ __proto__: null,
+ napi_run_script: napi_run_script
+ });
+ function napi_typeof(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var v = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r;
+ if (v.isNumber()) {
+ r = 3;
+ }
+ else if (v.isBigInt()) {
+ r = 9;
+ }
+ else if (v.isString()) {
+ r = 4;
+ }
+ else if (v.isFunction()) {
+ r = 7;
+ }
+ else if (v.isExternal()) {
+ r = 8;
+ }
+ else if (v.isObject()) {
+ r = 6;
+ }
+ else if (v.isBoolean()) {
+ r = 2;
+ }
+ else if (v.isUndefined()) {
+ r = 0;
+ }
+ else if (v.isSymbol()) {
+ r = 5;
+ }
+ else if (v.isNull()) {
+ r = 1;
+ }
+ else {
+ return envObject.setLastError(1);
+ }
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt32(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_coerce_to_bool(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ v = handle.value ? 4 : 3;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_coerce_to_number(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.isBigInt()) {
+ throw new TypeError('Cannot convert a BigInt value to a number');
+ }
+ result >>>= 0;
+ v = emnapiCtx.addToCurrentScope(Number(handle.value)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_coerce_to_object(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.value == null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+ result >>>= 0;
+ v = envObject.ensureHandleId(Object(handle.value));
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_coerce_to_string(env, value, result) {
+ var v;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var handle = emnapiCtx.handleStore.get(value);
+ if (handle.isSymbol()) {
+ throw new TypeError('Cannot convert a Symbol value to a string');
+ }
+ result >>>= 0;
+ v = emnapiCtx.addToCurrentScope(String(handle.value)).id;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, v, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_instanceof(env, object, constructor, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!object)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ if (!constructor)
+ return envObject.setLastError(1);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, 0, true);
+ var ctor = emnapiCtx.handleStore.get(constructor);
+ if (!ctor.isFunction()) {
+ return envObject.setLastError(5);
+ }
+ var val = emnapiCtx.handleStore.get(object).value;
+ var ret = val instanceof ctor.value;
+ r = ret ? 1 : 0;
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_is_array(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isArray() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_arraybuffer(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isArrayBuffer() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function node_api_is_sharedarraybuffer(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = ((typeof SharedArrayBuffer === 'function' && h.value instanceof SharedArrayBuffer) ||
+ (Object.prototype.toString.call(h.value) === '[object SharedArrayBuffer]'))
+ ? 1
+ : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_date(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isDate() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_error(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var val = emnapiCtx.handleStore.get(value).value;
+ result >>>= 0;
+ var r = (val instanceof Error) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_typedarray(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isTypedArray() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_buffer(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isBuffer(emnapiCtx.feature.Buffer) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_is_dataview(env, value, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!value)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(value);
+ result >>>= 0;
+ var r = h.isDataView() ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.clearLastError();
+ }
+ function napi_strict_equals(env, lhs, rhs, result) {
+ var r;
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!lhs)
+ return envObject.setLastError(1);
+ if (!rhs)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var lv = emnapiCtx.handleStore.get(lhs).value;
+ var rv = emnapiCtx.handleStore.get(rhs).value;
+ result >>>= 0;
+ r = (lv === rv) ? 1 : 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setInt8(result, r, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ function napi_detach_arraybuffer(env, arraybuffer) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ var value = emnapiCtx.handleStore.get(arraybuffer).value;
+ if (!(value instanceof ArrayBuffer)) {
+ if (typeof SharedArrayBuffer === 'function' && (value instanceof SharedArrayBuffer)) {
+ return envObject.setLastError(20);
+ }
+ return envObject.setLastError(19);
+ }
+ try {
+ var MessageChannel_1 = emnapiCtx.feature.MessageChannel;
+ var messageChannel = new MessageChannel_1();
+ messageChannel.port1.postMessage(value, [value]);
+ }
+ catch (_) {
+ return envObject.setLastError(9);
+ }
+ return envObject.clearLastError();
+ }
+ function napi_is_detached_arraybuffer(env, arraybuffer, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ envObject.checkGCAccess();
+ if (!envObject.tryCatch.isEmpty())
+ return envObject.setLastError(10);
+ if (!envObject.canCallIntoJs())
+ return envObject.setLastError(envObject.moduleApiVersion >= 10 ? 23 : 10);
+ envObject.clearLastError();
+ try {
+ if (!arraybuffer)
+ return envObject.setLastError(1);
+ if (!result)
+ return envObject.setLastError(1);
+ var h = emnapiCtx.handleStore.get(arraybuffer);
+ result >>>= 0;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ if (h.isArrayBuffer() && h.value.byteLength === 0) {
+ try {
+ new Uint8Array(h.value);
+ }
+ catch (_) {
+ HEAP_DATA_VIEW.setInt8(result, 1, true);
+ return envObject.getReturnStatus();
+ }
+ }
+ HEAP_DATA_VIEW.setInt8(result, 0, true);
+ return envObject.getReturnStatus();
+ }
+ catch (err) {
+ envObject.tryCatch.setError(err);
+ return envObject.setLastError(10);
+ }
+ }
+ var valueOperationMod = Object.freeze({
+ __proto__: null,
+ napi_coerce_to_bool: napi_coerce_to_bool,
+ napi_coerce_to_number: napi_coerce_to_number,
+ napi_coerce_to_object: napi_coerce_to_object,
+ napi_coerce_to_string: napi_coerce_to_string,
+ napi_detach_arraybuffer: napi_detach_arraybuffer,
+ napi_instanceof: napi_instanceof,
+ napi_is_array: napi_is_array,
+ napi_is_arraybuffer: napi_is_arraybuffer,
+ napi_is_buffer: napi_is_buffer,
+ napi_is_dataview: napi_is_dataview,
+ napi_is_date: napi_is_date,
+ napi_is_detached_arraybuffer: napi_is_detached_arraybuffer,
+ napi_is_error: napi_is_error,
+ napi_is_typedarray: napi_is_typedarray,
+ napi_strict_equals: napi_strict_equals,
+ napi_typeof: napi_typeof,
+ node_api_is_sharedarraybuffer: node_api_is_sharedarraybuffer
+ });
+ function napi_get_version(env, result) {
+ if (!env)
+ return 1;
+ var envObject = emnapiCtx.envStore.get(env);
+ if (!result)
+ return envObject.setLastError(1);
+ var NODE_API_SUPPORTED_VERSION_MAX = 10;
+ var HEAP_DATA_VIEW = new DataView(wasmMemory.buffer);
+ HEAP_DATA_VIEW.setUint32(result, NODE_API_SUPPORTED_VERSION_MAX, true);
+ return envObject.clearLastError();
+ }
+ var versionMod = Object.freeze({
+ __proto__: null,
+ napi_get_version: napi_get_version
+ });
+ emnapiAWST.init();
+ emnapiExternalMemory.init();
+ emnapiString.init();
+ emnapiTSFN.init();
+ PThread.init();
+ napiModule.emnapi.syncMemory = $emnapiSyncMemory;
+ napiModule.emnapi.getMemoryAddress = $emnapiGetMemoryAddress;
+ function addImports(mod) {
+ var keys = Object.keys(mod);
+ for (var i = 0; i < keys.length; ++i) {
+ var k = keys[i];
+ if (k.indexOf('$') === 0)
+ continue;
+ if (k.indexOf('emnapi_') === 0) {
+ napiModule.imports.emnapi[k] = mod[k];
+ }
+ else if (k.indexOf('_emnapi_') === 0 || k === 'napi_set_last_error' || k === 'napi_clear_last_error') {
+ napiModule.imports.env[k] = mod[k];
+ }
+ else {
+ napiModule.imports.napi[k] = mod[k];
+ }
+ }
+ }
+ addImports(asyncMod);
+ addImports(memoryMod);
+ addImports(asyncWorkMod);
+ addImports(utilMod);
+ addImports(convert2cMod);
+ addImports(convert2napiMod);
+ addImports(createMod);
+ addImports(globalMod);
+ addImports(wrapMod);
+ addImports(envMod);
+ addImports(emnapiMod);
+ addImports(errorMod);
+ addImports(functionMod);
+ addImports(lifeMod);
+ addImports(miscellaneousMod);
+ addImports(nodeMod);
+ addImports(promiseMod);
+ addImports(propertyMod);
+ addImports(scriptMod);
+ addImports(valueOperationMod);
+ addImports(versionMod);
+ napiModule.imports.napi.napi_create_threadsafe_function = napi_create_threadsafe_function;
+ napiModule.imports.napi.napi_get_threadsafe_function_context = napi_get_threadsafe_function_context;
+ napiModule.imports.napi.napi_call_threadsafe_function = napi_call_threadsafe_function;
+ napiModule.imports.napi.napi_acquire_threadsafe_function = napi_acquire_threadsafe_function;
+ napiModule.imports.napi.napi_release_threadsafe_function = napi_release_threadsafe_function;
+ napiModule.imports.napi.napi_unref_threadsafe_function = napi_unref_threadsafe_function;
+ napiModule.imports.napi.napi_ref_threadsafe_function = napi_ref_threadsafe_function;
+ return napiModule;
+ })();
+ return napiModule;
+}
+
+function loadNapiModuleImpl(loadFn, userNapiModule, wasmInput, options) {
+ options = options !== null && options !== void 0 ? options : {};
+ const getMemory = options.getMemory;
+ const getTable = options.getTable;
+ const beforeInit = options.beforeInit;
+ if (getMemory != null && typeof getMemory !== 'function') {
+ throw new TypeError('options.getMemory is not a function');
+ }
+ if (getTable != null && typeof getTable !== 'function') {
+ throw new TypeError('options.getTable is not a function');
+ }
+ if (beforeInit != null && typeof beforeInit !== 'function') {
+ throw new TypeError('options.beforeInit is not a function');
+ }
+ let napiModule;
+ const isLoad = typeof userNapiModule === 'object' && userNapiModule !== null;
+ if (isLoad) {
+ if (userNapiModule.loaded) {
+ throw new Error('napiModule has already loaded');
+ }
+ napiModule = userNapiModule;
+ }
+ else {
+ napiModule = createNapiModule(options);
+ }
+ const wasi = options.wasi;
+ let wasiThreads;
+ let importObject = {
+ env: napiModule.imports.env,
+ napi: napiModule.imports.napi,
+ emnapi: napiModule.imports.emnapi
+ };
+ if (wasi) {
+ wasiThreads = new WASIThreads(napiModule.childThread
+ ? {
+ wasi,
+ childThread: true,
+ postMessage: napiModule.postMessage
+ }
+ : {
+ wasi,
+ threadManager: napiModule.PThread,
+ waitThreadStart: napiModule.waitThreadStart
+ });
+ Object.assign(importObject, typeof wasi.getImportObject === 'function'
+ ? wasi.getImportObject()
+ : { wasi_snapshot_preview1: wasi.wasiImport });
+ Object.assign(importObject, wasiThreads.getImportObject());
+ }
+ const overwriteImports = options.overwriteImports;
+ if (typeof overwriteImports === 'function') {
+ const newImportObject = overwriteImports(importObject);
+ if (typeof newImportObject === 'object' && newImportObject !== null) {
+ importObject = newImportObject;
+ }
+ }
+ return loadFn(wasmInput, importObject, (err, source) => {
+ if (err) {
+ throw err;
+ }
+ const originalInstance = source.instance;
+ let instance = originalInstance;
+ const originalExports = originalInstance.exports;
+ const exportMemory = 'memory' in originalExports;
+ const importMemory = 'memory' in importObject.env;
+ const memory = getMemory
+ ? getMemory(originalExports)
+ : exportMemory
+ ? originalExports.memory
+ : importMemory
+ ? importObject.env.memory
+ : undefined;
+ if (!memory) {
+ throw new Error('memory is neither exported nor imported');
+ }
+ const table = getTable ? getTable(originalExports) : originalExports.__indirect_function_table;
+ if (wasi && !exportMemory) {
+ const exports$1 = Object.create(null);
+ Object.assign(exports$1, originalExports, { memory });
+ instance = { exports: exports$1 };
+ }
+ const module = source.module;
+ if (wasi) {
+ instance = wasiThreads.initialize(instance, module, memory);
+ }
+ else {
+ napiModule.PThread.setup(module, memory);
+ }
+ const emnapiInit = () => {
+ if (beforeInit) {
+ beforeInit({
+ instance: originalInstance,
+ module
+ });
+ }
+ napiModule.init({
+ instance,
+ module,
+ memory,
+ table
+ });
+ const ret = {
+ instance: originalInstance,
+ module,
+ usedInstance: instance
+ };
+ if (!isLoad) {
+ ret.napiModule = napiModule;
+ }
+ return ret;
+ };
+ if (napiModule.PThread.shouldPreloadWorkers()) {
+ const poolReady = napiModule.PThread.loadWasmModuleToAllWorkers();
+ if (loadFn === loadCallback) {
+ return poolReady.then(emnapiInit);
+ }
+ else {
+ throw new Error('Synchronous loading is not supported with worker pool (reuseWorker.size > 0)');
+ }
+ }
+ return emnapiInit();
+ });
+}
+function loadCallback(wasmInput, importObject, callback) {
+ return load(wasmInput, importObject).then((source) => {
+ return callback(null, source);
+ }, err => {
+ return callback(err);
+ });
+}
+function loadSyncCallback(wasmInput, importObject, callback) {
+ let source;
+ try {
+ source = loadSync(wasmInput, importObject);
+ }
+ catch (err) {
+ return callback(err);
+ }
+ return callback(null, source);
+}
+function loadNapiModule(napiModule, wasmInput, options) {
+ if (typeof napiModule !== 'object' || napiModule === null) {
+ throw new TypeError('Invalid napiModule');
+ }
+ return loadNapiModuleImpl(loadCallback, napiModule, wasmInput, options);
+}
+function loadNapiModuleSync(napiModule, wasmInput, options) {
+ if (typeof napiModule !== 'object' || napiModule === null) {
+ throw new TypeError('Invalid napiModule');
+ }
+ return loadNapiModuleImpl(loadSyncCallback, napiModule, wasmInput, options);
+}
+function instantiateNapiModule(wasmInput, options) {
+ return loadNapiModuleImpl(loadCallback, undefined, wasmInput, options);
+}
+function instantiateNapiModuleSync(wasmInput, options) {
+ return loadNapiModuleImpl(loadSyncCallback, undefined, wasmInput, options);
+}
+
+class MessageHandler extends ThreadMessageHandler {
+ constructor(options) {
+ if (typeof options.onLoad !== 'function') {
+ throw new TypeError('options.onLoad is not a function');
+ }
+ const userOnError = options.onError;
+ super({
+ ...options,
+ onError: (err, type) => {
+ var _a;
+ const emnapi_thread_crashed = (_a = this.instance) === null || _a === void 0 ? void 0 : _a.exports.emnapi_thread_crashed;
+ if (typeof emnapi_thread_crashed === 'function') {
+ emnapi_thread_crashed();
+ }
+ if (typeof userOnError === 'function') {
+ userOnError(err, type);
+ }
+ else {
+ throw err;
+ }
+ }
+ });
+ this.napiModule = undefined;
+ }
+ instantiate(data) {
+ const source = this.onLoad(data);
+ const then = source.then;
+ if (typeof then === 'function') {
+ return source.then((result) => {
+ this.napiModule = result.napiModule;
+ return result;
+ });
+ }
+ this.napiModule = source.napiModule;
+ return source;
+ }
+ handle(e) {
+ var _a;
+ super.handle(e);
+ if ((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.__emnapi__) {
+ const type = e.data.__emnapi__.type;
+ const payload = e.data.__emnapi__.payload;
+ try {
+ if (type === 'async-worker-init') {
+ this.handleAfterLoad(e, () => {
+ this.napiModule.initWorker(payload.arg, payload.func);
+ });
+ }
+ }
+ catch (err) {
+ this.onError(err, type);
+ }
+ }
+ }
+}
+
+const version = "1.10.0";
+
+export { MessageHandler, createNapiModule, instantiateNapiModule, instantiateNapiModuleSync, loadNapiModule, loadNapiModuleSync, version };
diff --git a/node_modules/@emnapi/core/index.js b/node_modules/@emnapi/core/index.js
new file mode 100644
index 00000000..11764ede
--- /dev/null
+++ b/node_modules/@emnapi/core/index.js
@@ -0,0 +1,5 @@
+if (typeof process !== 'undefined' && process.env.NODE_ENV === 'production') {
+ module.exports = require('./dist/emnapi-core.cjs.min.js')
+} else {
+ module.exports = require('./dist/emnapi-core.cjs.js')
+}
diff --git a/node_modules/@emnapi/core/package.json b/node_modules/@emnapi/core/package.json
new file mode 100644
index 00000000..d61c08c9
--- /dev/null
+++ b/node_modules/@emnapi/core/package.json
@@ -0,0 +1,49 @@
+{
+ "name": "@emnapi/core",
+ "version": "1.10.0",
+ "description": "emnapi core",
+ "main": "index.js",
+ "module": "./dist/emnapi-core.esm-bundler.js",
+ "types": "./dist/emnapi-core.d.ts",
+ "sideEffects": false,
+ "exports": {
+ ".": {
+ "types": {
+ "module": "./dist/emnapi-core.d.ts",
+ "import": "./dist/emnapi-core.d.mts",
+ "default": "./dist/emnapi-core.d.ts"
+ },
+ "module": "./dist/emnapi-core.esm-bundler.js",
+ "import": "./dist/emnapi-core.mjs",
+ "default": "./index.js"
+ },
+ "./dist/emnapi-core.cjs.min": {
+ "types": "./dist/emnapi-core.d.ts",
+ "default": "./dist/emnapi-core.cjs.min.js"
+ },
+ "./dist/emnapi-core.min.mjs": {
+ "types": "./dist/emnapi-core.d.mts",
+ "default": "./dist/emnapi-core.min.mjs"
+ }
+ },
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.2.1",
+ "tslib": "^2.4.0"
+ },
+ "scripts": {
+ "build": "node ./script/build.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/toyobayashi/emnapi.git"
+ },
+ "author": "toyobayashi",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/toyobayashi/emnapi/issues"
+ },
+ "homepage": "https://github.com/toyobayashi/emnapi#readme",
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/node_modules/@emnapi/runtime/LICENSE b/node_modules/@emnapi/runtime/LICENSE
new file mode 100644
index 00000000..05a59441
--- /dev/null
+++ b/node_modules/@emnapi/runtime/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021-present Toyobayashi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@emnapi/runtime/README.md b/node_modules/@emnapi/runtime/README.md
new file mode 100644
index 00000000..c98dddca
--- /dev/null
+++ b/node_modules/@emnapi/runtime/README.md
@@ -0,0 +1 @@
+See [https://github.com/toyobayashi/emnapi](https://github.com/toyobayashi/emnapi)
diff --git a/node_modules/@emnapi/runtime/dist/emnapi.cjs.js b/node_modules/@emnapi/runtime/dist/emnapi.cjs.js
new file mode 100644
index 00000000..562d3155
--- /dev/null
+++ b/node_modules/@emnapi/runtime/dist/emnapi.cjs.js
@@ -0,0 +1,1381 @@
+const externalValue = new WeakMap();
+function isExternal(object) {
+ return externalValue.has(object);
+}
+const External = (() => {
+ function External(value) {
+ Object.setPrototypeOf(this, null);
+ externalValue.set(this, value);
+ }
+ External.prototype = null;
+ return External;
+})();
+function getExternalValue(external) {
+ if (!isExternal(external)) {
+ throw new TypeError('not external');
+ }
+ return externalValue.get(external);
+}
+
+const supportNewFunction = (function () {
+ let f;
+ try {
+ f = new Function();
+ }
+ catch (_) {
+ return false;
+ }
+ return typeof f === 'function';
+})();
+const _global = (function () {
+ if (typeof globalThis !== 'undefined')
+ return globalThis;
+ let g = (function () { return this; })();
+ if (!g && supportNewFunction) {
+ try {
+ g = new Function('return this')();
+ }
+ catch (_) { }
+ }
+ if (!g) {
+ if (typeof __webpack_public_path__ === 'undefined') {
+ if (typeof global !== 'undefined')
+ return global;
+ }
+ if (typeof window !== 'undefined')
+ return window;
+ if (typeof self !== 'undefined')
+ return self;
+ }
+ return g;
+})();
+class TryCatch {
+ constructor() {
+ this._exception = undefined;
+ this._caught = false;
+ }
+ isEmpty() {
+ return !this._caught;
+ }
+ hasCaught() {
+ return this._caught;
+ }
+ exception() {
+ return this._exception;
+ }
+ setError(err) {
+ this._caught = true;
+ this._exception = err;
+ }
+ reset() {
+ this._caught = false;
+ this._exception = undefined;
+ }
+ extractException() {
+ const e = this._exception;
+ this.reset();
+ return e;
+ }
+}
+const canSetFunctionName = (function () {
+ var _a;
+ try {
+ return Boolean((_a = Object.getOwnPropertyDescriptor(Function.prototype, 'name')) === null || _a === void 0 ? void 0 : _a.configurable);
+ }
+ catch (_) {
+ return false;
+ }
+})();
+const supportReflect = typeof Reflect === 'object';
+const supportFinalizer = (typeof FinalizationRegistry !== 'undefined') && (typeof WeakRef !== 'undefined');
+const supportWeakSymbol = (function () {
+ try {
+ const sym = Symbol();
+ new WeakRef(sym);
+ new WeakMap().set(sym, undefined);
+ }
+ catch (_) {
+ return false;
+ }
+ return true;
+})();
+const supportBigInt = typeof BigInt !== 'undefined';
+function isReferenceType(v) {
+ return (typeof v === 'object' && v !== null) || typeof v === 'function';
+}
+const _require = (function () {
+ let nativeRequire;
+ if (typeof __webpack_public_path__ !== 'undefined') {
+ nativeRequire = (function () {
+ return typeof __non_webpack_require__ !== 'undefined' ? __non_webpack_require__ : undefined;
+ })();
+ }
+ else {
+ nativeRequire = (function () {
+ return typeof __webpack_public_path__ !== 'undefined' ? (typeof __non_webpack_require__ !== 'undefined' ? __non_webpack_require__ : undefined) : (typeof require !== 'undefined' ? require : undefined);
+ })();
+ }
+ return nativeRequire;
+})();
+const _MessageChannel = typeof MessageChannel === 'function'
+ ? MessageChannel
+ : (function () {
+ try {
+ return _require('worker_threads').MessageChannel;
+ }
+ catch (_) { }
+ return undefined;
+ })();
+const _setImmediate = typeof setImmediate === 'function'
+ ? setImmediate
+ : function (callback) {
+ if (typeof callback !== 'function') {
+ throw new TypeError('The "callback" argument must be of type function');
+ }
+ if (_MessageChannel) {
+ let channel = new _MessageChannel();
+ channel.port1.onmessage = function () {
+ channel.port1.onmessage = null;
+ channel = undefined;
+ callback();
+ };
+ channel.port2.postMessage(null);
+ }
+ else {
+ setTimeout(callback, 0);
+ }
+ };
+const _Buffer = typeof Buffer === 'function'
+ ? Buffer
+ : (function () {
+ try {
+ return _require('buffer').Buffer;
+ }
+ catch (_) { }
+ return undefined;
+ })();
+const version = "1.10.0";
+const NODE_API_SUPPORTED_VERSION_MIN = 1;
+const NODE_API_SUPPORTED_VERSION_MAX = 10;
+const NAPI_VERSION_EXPERIMENTAL = 2147483647;
+const NODE_API_DEFAULT_MODULE_API_VERSION = 8;
+
+class Handle {
+ constructor(id, value) {
+ this.id = id;
+ this.value = value;
+ }
+ data() {
+ return getExternalValue(this.value);
+ }
+ isNumber() {
+ return typeof this.value === 'number';
+ }
+ isBigInt() {
+ return typeof this.value === 'bigint';
+ }
+ isString() {
+ return typeof this.value === 'string';
+ }
+ isFunction() {
+ return typeof this.value === 'function';
+ }
+ isExternal() {
+ return isExternal(this.value);
+ }
+ isObject() {
+ return typeof this.value === 'object' && this.value !== null;
+ }
+ isArray() {
+ return Array.isArray(this.value);
+ }
+ isArrayBuffer() {
+ return (this.value instanceof ArrayBuffer);
+ }
+ isTypedArray() {
+ return (ArrayBuffer.isView(this.value)) && !(this.value instanceof DataView);
+ }
+ isBuffer(BufferConstructor) {
+ if (ArrayBuffer.isView(this.value))
+ return true;
+ BufferConstructor !== null && BufferConstructor !== void 0 ? BufferConstructor : (BufferConstructor = _Buffer);
+ return typeof BufferConstructor === 'function' && BufferConstructor.isBuffer(this.value);
+ }
+ isDataView() {
+ return (this.value instanceof DataView);
+ }
+ isDate() {
+ return (this.value instanceof Date);
+ }
+ isPromise() {
+ return (this.value instanceof Promise);
+ }
+ isBoolean() {
+ return typeof this.value === 'boolean';
+ }
+ isUndefined() {
+ return this.value === undefined;
+ }
+ isSymbol() {
+ return typeof this.value === 'symbol';
+ }
+ isNull() {
+ return this.value === null;
+ }
+ dispose() {
+ this.value = undefined;
+ }
+}
+class ConstHandle extends Handle {
+ constructor(id, value) {
+ super(id, value);
+ }
+ dispose() { }
+}
+class HandleStore {
+ constructor() {
+ this._values = [
+ undefined,
+ HandleStore.UNDEFINED,
+ HandleStore.NULL,
+ HandleStore.FALSE,
+ HandleStore.TRUE,
+ HandleStore.GLOBAL
+ ];
+ this._next = HandleStore.MIN_ID;
+ }
+ push(value) {
+ let h;
+ const next = this._next;
+ const values = this._values;
+ if (next < values.length) {
+ h = values[next];
+ h.value = value;
+ }
+ else {
+ h = new Handle(next, value);
+ values[next] = h;
+ }
+ this._next++;
+ return h;
+ }
+ erase(start, end) {
+ this._next = start;
+ const values = this._values;
+ for (let i = start; i < end; ++i) {
+ values[i].dispose();
+ }
+ }
+ get(id) {
+ return this._values[id];
+ }
+ swap(a, b) {
+ const values = this._values;
+ const h = values[a];
+ values[a] = values[b];
+ values[a].id = Number(a);
+ values[b] = h;
+ h.id = Number(b);
+ }
+ dispose() {
+ this._values.length = HandleStore.MIN_ID;
+ this._next = HandleStore.MIN_ID;
+ }
+}
+HandleStore.UNDEFINED = new ConstHandle(1, undefined);
+HandleStore.NULL = new ConstHandle(2, null);
+HandleStore.FALSE = new ConstHandle(3, false);
+HandleStore.TRUE = new ConstHandle(4, true);
+HandleStore.GLOBAL = new ConstHandle(5, _global);
+HandleStore.MIN_ID = 6;
+
+class HandleScope {
+ constructor(handleStore, id, parentScope, start, end = start) {
+ this.handleStore = handleStore;
+ this.id = id;
+ this.parent = parentScope;
+ this.child = null;
+ if (parentScope !== null)
+ parentScope.child = this;
+ this.start = start;
+ this.end = end;
+ this._escapeCalled = false;
+ this.callbackInfo = {
+ thiz: undefined,
+ data: 0,
+ args: undefined,
+ fn: undefined
+ };
+ }
+ add(value) {
+ const h = this.handleStore.push(value);
+ this.end++;
+ return h;
+ }
+ addExternal(data) {
+ return this.add(new External(data));
+ }
+ dispose() {
+ if (this._escapeCalled)
+ this._escapeCalled = false;
+ if (this.start === this.end)
+ return;
+ this.handleStore.erase(this.start, this.end);
+ }
+ escape(handle) {
+ if (this._escapeCalled)
+ return null;
+ this._escapeCalled = true;
+ if (handle < this.start || handle >= this.end) {
+ return null;
+ }
+ this.handleStore.swap(handle, this.start);
+ const h = this.handleStore.get(this.start);
+ this.start++;
+ this.parent.end++;
+ return h;
+ }
+ escapeCalled() {
+ return this._escapeCalled;
+ }
+}
+
+class ScopeStore {
+ constructor() {
+ this._rootScope = new HandleScope(null, 0, null, 1, HandleStore.MIN_ID);
+ this.currentScope = this._rootScope;
+ this._values = [undefined];
+ }
+ get(id) {
+ return this._values[id];
+ }
+ openScope(handleStore) {
+ const currentScope = this.currentScope;
+ let scope = currentScope.child;
+ if (scope !== null) {
+ scope.start = scope.end = currentScope.end;
+ }
+ else {
+ const id = currentScope.id + 1;
+ scope = new HandleScope(handleStore, id, currentScope, currentScope.end);
+ this._values[id] = scope;
+ }
+ this.currentScope = scope;
+ return scope;
+ }
+ closeScope() {
+ const scope = this.currentScope;
+ this.currentScope = scope.parent;
+ scope.dispose();
+ }
+ dispose() {
+ this.currentScope = this._rootScope;
+ this._values.length = 1;
+ }
+}
+
+class RefTracker {
+ constructor() {
+ this._next = null;
+ this._prev = null;
+ }
+ dispose() { }
+ finalize() { }
+ link(list) {
+ this._prev = list;
+ this._next = list._next;
+ if (this._next !== null) {
+ this._next._prev = this;
+ }
+ list._next = this;
+ }
+ unlink() {
+ if (this._prev !== null) {
+ this._prev._next = this._next;
+ }
+ if (this._next !== null) {
+ this._next._prev = this._prev;
+ }
+ this._prev = null;
+ this._next = null;
+ }
+ static finalizeAll(list) {
+ while (list._next !== null) {
+ list._next.finalize();
+ }
+ }
+}
+
+class Finalizer {
+ constructor(envObject, _finalizeCallback = 0, _finalizeData = 0, _finalizeHint = 0) {
+ this.envObject = envObject;
+ this._finalizeCallback = _finalizeCallback;
+ this._finalizeData = _finalizeData;
+ this._finalizeHint = _finalizeHint;
+ this._makeDynCall_vppp = envObject.makeDynCall_vppp;
+ }
+ callback() { return this._finalizeCallback; }
+ data() { return this._finalizeData; }
+ hint() { return this._finalizeHint; }
+ resetEnv() {
+ this.envObject = undefined;
+ }
+ resetFinalizer() {
+ this._finalizeCallback = 0;
+ this._finalizeData = 0;
+ this._finalizeHint = 0;
+ }
+ callFinalizer() {
+ const finalize_callback = this._finalizeCallback;
+ const finalize_data = this._finalizeData;
+ const finalize_hint = this._finalizeHint;
+ this.resetFinalizer();
+ if (!finalize_callback)
+ return;
+ const fini = Number(finalize_callback);
+ if (!this.envObject) {
+ this._makeDynCall_vppp(fini)(0, finalize_data, finalize_hint);
+ }
+ else {
+ this.envObject.callFinalizer(fini, finalize_data, finalize_hint);
+ }
+ }
+ dispose() {
+ this.envObject = undefined;
+ this._makeDynCall_vppp = undefined;
+ }
+}
+
+class TrackedFinalizer extends RefTracker {
+ static create(envObject, finalize_callback, finalize_data, finalize_hint) {
+ const finalizer = new TrackedFinalizer(envObject, finalize_callback, finalize_data, finalize_hint);
+ finalizer.link(envObject.finalizing_reflist);
+ return finalizer;
+ }
+ constructor(envObject, finalize_callback, finalize_data, finalize_hint) {
+ super();
+ this._finalizer = new Finalizer(envObject, finalize_callback, finalize_data, finalize_hint);
+ }
+ data() {
+ return this._finalizer.data();
+ }
+ dispose() {
+ if (!this._finalizer)
+ return;
+ this.unlink();
+ this._finalizer.envObject.dequeueFinalizer(this);
+ this._finalizer.dispose();
+ this._finalizer = undefined;
+ super.dispose();
+ }
+ finalize() {
+ this.unlink();
+ let error;
+ let caught = false;
+ try {
+ this._finalizer.callFinalizer();
+ }
+ catch (err) {
+ caught = true;
+ error = err;
+ }
+ this.dispose();
+ if (caught) {
+ throw error;
+ }
+ }
+}
+
+function throwNodeApiVersionError(moduleName, moduleApiVersion) {
+ const errorMessage = `${moduleName} requires Node-API version ${moduleApiVersion}, but this version of Node.js only supports version ${NODE_API_SUPPORTED_VERSION_MAX} add-ons.`;
+ throw new Error(errorMessage);
+}
+function handleThrow(envObject, value) {
+ if (envObject.terminatedOrTerminating()) {
+ return;
+ }
+ throw value;
+}
+class Env {
+ constructor(ctx, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort) {
+ this.ctx = ctx;
+ this.moduleApiVersion = moduleApiVersion;
+ this.makeDynCall_vppp = makeDynCall_vppp;
+ this.makeDynCall_vp = makeDynCall_vp;
+ this.abort = abort;
+ this.openHandleScopes = 0;
+ this.instanceData = null;
+ this.tryCatch = new TryCatch();
+ this.refs = 1;
+ this.reflist = new RefTracker();
+ this.finalizing_reflist = new RefTracker();
+ this.pendingFinalizers = [];
+ this.lastError = {
+ errorCode: 0,
+ engineErrorCode: 0,
+ engineReserved: 0
+ };
+ this.inGcFinalizer = false;
+ this._bindingMap = new WeakMap();
+ this.id = 0;
+ }
+ canCallIntoJs() {
+ return true;
+ }
+ terminatedOrTerminating() {
+ return !this.canCallIntoJs();
+ }
+ ref() {
+ this.refs++;
+ }
+ unref() {
+ this.refs--;
+ if (this.refs === 0) {
+ this.dispose();
+ }
+ }
+ ensureHandle(value) {
+ return this.ctx.ensureHandle(value);
+ }
+ ensureHandleId(value) {
+ return this.ensureHandle(value).id;
+ }
+ clearLastError() {
+ const lastError = this.lastError;
+ if (lastError.errorCode !== 0)
+ lastError.errorCode = 0;
+ if (lastError.engineErrorCode !== 0)
+ lastError.engineErrorCode = 0;
+ if (lastError.engineReserved !== 0)
+ lastError.engineReserved = 0;
+ return 0;
+ }
+ setLastError(error_code, engine_error_code = 0, engine_reserved = 0) {
+ const lastError = this.lastError;
+ if (lastError.errorCode !== error_code)
+ lastError.errorCode = error_code;
+ if (lastError.engineErrorCode !== engine_error_code)
+ lastError.engineErrorCode = engine_error_code;
+ if (lastError.engineReserved !== engine_reserved)
+ lastError.engineReserved = engine_reserved;
+ return error_code;
+ }
+ getReturnStatus() {
+ return !this.tryCatch.hasCaught() ? 0 : this.setLastError(10);
+ }
+ callIntoModule(fn, handleException = handleThrow) {
+ const openHandleScopesBefore = this.openHandleScopes;
+ this.clearLastError();
+ const r = fn(this);
+ if (openHandleScopesBefore !== this.openHandleScopes) {
+ this.abort('open_handle_scopes != open_handle_scopes_before');
+ }
+ if (this.tryCatch.hasCaught()) {
+ const err = this.tryCatch.extractException();
+ handleException(this, err);
+ }
+ return r;
+ }
+ invokeFinalizerFromGC(finalizer) {
+ if (this.moduleApiVersion !== NAPI_VERSION_EXPERIMENTAL) {
+ this.enqueueFinalizer(finalizer);
+ }
+ else {
+ const saved = this.inGcFinalizer;
+ this.inGcFinalizer = true;
+ try {
+ finalizer.finalize();
+ }
+ finally {
+ this.inGcFinalizer = saved;
+ }
+ }
+ }
+ checkGCAccess() {
+ if (this.moduleApiVersion === NAPI_VERSION_EXPERIMENTAL && this.inGcFinalizer) {
+ this.abort('Finalizer is calling a function that may affect GC state.\n' +
+ 'The finalizers are run directly from GC and must not affect GC ' +
+ 'state.\n' +
+ 'Use `node_api_post_finalizer` from inside of the finalizer to work ' +
+ 'around this issue.\n' +
+ 'It schedules the call as a new task in the event loop.');
+ }
+ }
+ enqueueFinalizer(finalizer) {
+ if (this.pendingFinalizers.indexOf(finalizer) === -1) {
+ this.pendingFinalizers.push(finalizer);
+ }
+ }
+ dequeueFinalizer(finalizer) {
+ const index = this.pendingFinalizers.indexOf(finalizer);
+ if (index !== -1) {
+ this.pendingFinalizers.splice(index, 1);
+ }
+ }
+ deleteMe() {
+ RefTracker.finalizeAll(this.finalizing_reflist);
+ RefTracker.finalizeAll(this.reflist);
+ this.tryCatch.extractException();
+ this.ctx.envStore.remove(this.id);
+ }
+ dispose() {
+ if (this.id === 0)
+ return;
+ this.deleteMe();
+ this.finalizing_reflist.dispose();
+ this.reflist.dispose();
+ this.id = 0;
+ }
+ initObjectBinding(value) {
+ const binding = {
+ wrapped: 0,
+ tag: null
+ };
+ this._bindingMap.set(value, binding);
+ return binding;
+ }
+ getObjectBinding(value) {
+ if (this._bindingMap.has(value)) {
+ return this._bindingMap.get(value);
+ }
+ return this.initObjectBinding(value);
+ }
+ setInstanceData(data, finalize_cb, finalize_hint) {
+ if (this.instanceData) {
+ this.instanceData.dispose();
+ }
+ this.instanceData = TrackedFinalizer.create(this, finalize_cb, data, finalize_hint);
+ }
+ getInstanceData() {
+ return this.instanceData ? this.instanceData.data() : 0;
+ }
+}
+class NodeEnv extends Env {
+ constructor(ctx, filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding) {
+ super(ctx, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort);
+ this.filename = filename;
+ this.nodeBinding = nodeBinding;
+ this.destructing = false;
+ this.finalizationScheduled = false;
+ }
+ deleteMe() {
+ this.destructing = true;
+ this.drainFinalizerQueue();
+ super.deleteMe();
+ }
+ canCallIntoJs() {
+ return super.canCallIntoJs() && this.ctx.canCallIntoJs();
+ }
+ triggerFatalException(err) {
+ if (this.nodeBinding) {
+ this.nodeBinding.napi.fatalException(err);
+ }
+ else {
+ if (typeof process === 'object' && process !== null && typeof process._fatalException === 'function') {
+ const handled = process._fatalException(err);
+ if (!handled) {
+ console.error(err);
+ process.exit(1);
+ }
+ }
+ else {
+ throw err;
+ }
+ }
+ }
+ callbackIntoModule(enforceUncaughtExceptionPolicy, fn) {
+ return this.callIntoModule(fn, (envObject, err) => {
+ if (envObject.terminatedOrTerminating()) {
+ return;
+ }
+ const hasProcess = typeof process === 'object' && process !== null;
+ const hasForceFlag = hasProcess ? Boolean(process.execArgv && (process.execArgv.indexOf('--force-node-api-uncaught-exceptions-policy') !== -1)) : false;
+ if (envObject.moduleApiVersion < 10 && !hasForceFlag && !enforceUncaughtExceptionPolicy) {
+ const warn = hasProcess && typeof process.emitWarning === 'function'
+ ? process.emitWarning
+ : function (warning, type, code) {
+ if (warning instanceof Error) {
+ console.warn(warning.toString());
+ }
+ else {
+ const prefix = code ? `[${code}] ` : '';
+ console.warn(`${prefix}${type || 'Warning'}: ${warning}`);
+ }
+ };
+ warn('Uncaught Node-API callback exception detected, please run node with option --force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly.', 'DeprecationWarning', 'DEP0168');
+ return;
+ }
+ envObject.triggerFatalException(err);
+ });
+ }
+ callFinalizer(cb, data, hint) {
+ this.callFinalizerInternal(1, cb, data, hint);
+ }
+ callFinalizerInternal(forceUncaught, cb, data, hint) {
+ const f = this.makeDynCall_vppp(cb);
+ const env = this.id;
+ const scope = this.ctx.openScope(this);
+ try {
+ this.callbackIntoModule(Boolean(forceUncaught), () => { f(env, data, hint); });
+ }
+ finally {
+ this.ctx.closeScope(this, scope);
+ }
+ }
+ enqueueFinalizer(finalizer) {
+ super.enqueueFinalizer(finalizer);
+ if (!this.finalizationScheduled && !this.destructing) {
+ this.finalizationScheduled = true;
+ this.ref();
+ _setImmediate(() => {
+ this.finalizationScheduled = false;
+ this.unref();
+ this.drainFinalizerQueue();
+ });
+ }
+ }
+ drainFinalizerQueue() {
+ while (this.pendingFinalizers.length > 0) {
+ const refTracker = this.pendingFinalizers.shift();
+ refTracker.finalize();
+ }
+ }
+}
+function newEnv(ctx, filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding) {
+ moduleApiVersion = typeof moduleApiVersion !== 'number' ? NODE_API_DEFAULT_MODULE_API_VERSION : moduleApiVersion;
+ if (moduleApiVersion < NODE_API_DEFAULT_MODULE_API_VERSION) {
+ moduleApiVersion = NODE_API_DEFAULT_MODULE_API_VERSION;
+ }
+ else if (moduleApiVersion > NODE_API_SUPPORTED_VERSION_MAX && moduleApiVersion !== NAPI_VERSION_EXPERIMENTAL) {
+ throwNodeApiVersionError(filename, moduleApiVersion);
+ }
+ const env = new NodeEnv(ctx, filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding);
+ ctx.envStore.add(env);
+ ctx.addCleanupHook(env, () => { env.unref(); }, 0);
+ return env;
+}
+
+class EmnapiError extends Error {
+ constructor(message) {
+ super(message);
+ const ErrorConstructor = new.target;
+ const proto = ErrorConstructor.prototype;
+ if (!(this instanceof EmnapiError)) {
+ const setPrototypeOf = Object.setPrototypeOf;
+ if (typeof setPrototypeOf === 'function') {
+ setPrototypeOf.call(Object, this, proto);
+ }
+ else {
+ this.__proto__ = proto;
+ }
+ if (typeof Error.captureStackTrace === 'function') {
+ Error.captureStackTrace(this, ErrorConstructor);
+ }
+ }
+ }
+}
+Object.defineProperty(EmnapiError.prototype, 'name', {
+ configurable: true,
+ writable: true,
+ value: 'EmnapiError'
+});
+class NotSupportWeakRefError extends EmnapiError {
+ constructor(api, message) {
+ super(`${api}: The current runtime does not support "FinalizationRegistry" and "WeakRef".${message ? ` ${message}` : ''}`);
+ }
+}
+Object.defineProperty(NotSupportWeakRefError.prototype, 'name', {
+ configurable: true,
+ writable: true,
+ value: 'NotSupportWeakRefError'
+});
+class NotSupportBufferError extends EmnapiError {
+ constructor(api, message) {
+ super(`${api}: The current runtime does not support "Buffer". Consider using buffer polyfill to make sure \`globalThis.Buffer\` is defined.${message ? ` ${message}` : ''}`);
+ }
+}
+Object.defineProperty(NotSupportBufferError.prototype, 'name', {
+ configurable: true,
+ writable: true,
+ value: 'NotSupportBufferError'
+});
+
+class StrongRef {
+ constructor(value) {
+ this._value = value;
+ }
+ deref() {
+ return this._value;
+ }
+ dispose() {
+ this._value = undefined;
+ }
+}
+class Persistent {
+ constructor(value) {
+ this._ref = new StrongRef(value);
+ }
+ setWeak(param, callback) {
+ if (!supportFinalizer || this._ref === undefined || this._ref instanceof WeakRef)
+ return;
+ const value = this._ref.deref();
+ try {
+ Persistent._registry.register(value, this, this);
+ const weakRef = new WeakRef(value);
+ this._ref.dispose();
+ this._ref = weakRef;
+ this._param = param;
+ this._callback = callback;
+ }
+ catch (err) {
+ if (typeof value === 'symbol') ;
+ else {
+ throw err;
+ }
+ }
+ }
+ clearWeak() {
+ if (!supportFinalizer || this._ref === undefined)
+ return;
+ if (this._ref instanceof WeakRef) {
+ try {
+ Persistent._registry.unregister(this);
+ }
+ catch (_) { }
+ this._param = undefined;
+ this._callback = undefined;
+ const value = this._ref.deref();
+ if (value === undefined) {
+ this._ref = value;
+ }
+ else {
+ this._ref = new StrongRef(value);
+ }
+ }
+ }
+ reset() {
+ if (supportFinalizer) {
+ try {
+ Persistent._registry.unregister(this);
+ }
+ catch (_) { }
+ }
+ this._param = undefined;
+ this._callback = undefined;
+ if (this._ref instanceof StrongRef) {
+ this._ref.dispose();
+ }
+ this._ref = undefined;
+ }
+ isEmpty() {
+ return this._ref === undefined;
+ }
+ deref() {
+ if (this._ref === undefined)
+ return undefined;
+ return this._ref.deref();
+ }
+}
+Persistent._registry = supportFinalizer
+ ? new FinalizationRegistry((value) => {
+ value._ref = undefined;
+ const callback = value._callback;
+ const param = value._param;
+ value._callback = undefined;
+ value._param = undefined;
+ if (typeof callback === 'function') {
+ callback(param);
+ }
+ })
+ : undefined;
+
+exports.ReferenceOwnership = void 0;
+(function (ReferenceOwnership) {
+ ReferenceOwnership[ReferenceOwnership["kRuntime"] = 0] = "kRuntime";
+ ReferenceOwnership[ReferenceOwnership["kUserland"] = 1] = "kUserland";
+})(exports.ReferenceOwnership || (exports.ReferenceOwnership = {}));
+function canBeHeldWeakly(value) {
+ return value.isObject() || value.isFunction() || value.isSymbol();
+}
+class Reference extends RefTracker {
+ static weakCallback(ref) {
+ ref.persistent.reset();
+ ref.invokeFinalizerFromGC();
+ }
+ static create(envObject, handle_id, initialRefcount, ownership, _unused1, _unused2, _unused3) {
+ const ref = new Reference(envObject, handle_id, initialRefcount, ownership);
+ envObject.ctx.refStore.add(ref);
+ ref.link(envObject.reflist);
+ return ref;
+ }
+ constructor(envObject, handle_id, initialRefcount, ownership) {
+ super();
+ this.envObject = envObject;
+ this._refcount = initialRefcount;
+ this._ownership = ownership;
+ const handle = envObject.ctx.handleStore.get(handle_id);
+ this.canBeWeak = canBeHeldWeakly(handle);
+ this.persistent = new Persistent(handle.value);
+ this.id = 0;
+ if (initialRefcount === 0) {
+ this._setWeak();
+ }
+ }
+ ref() {
+ if (this.persistent.isEmpty()) {
+ return 0;
+ }
+ if (++this._refcount === 1 && this.canBeWeak) {
+ this.persistent.clearWeak();
+ }
+ return this._refcount;
+ }
+ unref() {
+ if (this.persistent.isEmpty() || this._refcount === 0) {
+ return 0;
+ }
+ if (--this._refcount === 0) {
+ this._setWeak();
+ }
+ return this._refcount;
+ }
+ get(envObject = this.envObject) {
+ if (this.persistent.isEmpty()) {
+ return 0;
+ }
+ const obj = this.persistent.deref();
+ const handle = envObject.ensureHandle(obj);
+ return handle.id;
+ }
+ resetFinalizer() { }
+ data() { return 0; }
+ refcount() { return this._refcount; }
+ ownership() { return this._ownership; }
+ callUserFinalizer() { }
+ invokeFinalizerFromGC() {
+ this.finalize();
+ }
+ _setWeak() {
+ if (this.canBeWeak) {
+ this.persistent.setWeak(this, Reference.weakCallback);
+ }
+ else {
+ this.persistent.reset();
+ }
+ }
+ finalize() {
+ this.persistent.reset();
+ const deleteMe = this._ownership === exports.ReferenceOwnership.kRuntime;
+ this.unlink();
+ this.callUserFinalizer();
+ if (deleteMe) {
+ this.dispose();
+ }
+ }
+ dispose() {
+ if (this.id === 0)
+ return;
+ this.unlink();
+ this.persistent.reset();
+ this.envObject.ctx.refStore.remove(this.id);
+ super.dispose();
+ this.envObject = undefined;
+ this.id = 0;
+ }
+}
+class ReferenceWithData extends Reference {
+ static create(envObject, value, initialRefcount, ownership, data) {
+ const reference = new ReferenceWithData(envObject, value, initialRefcount, ownership, data);
+ envObject.ctx.refStore.add(reference);
+ reference.link(envObject.reflist);
+ return reference;
+ }
+ constructor(envObject, value, initialRefcount, ownership, _data) {
+ super(envObject, value, initialRefcount, ownership);
+ this._data = _data;
+ }
+ data() {
+ return this._data;
+ }
+}
+class ReferenceWithFinalizer extends Reference {
+ static create(envObject, value, initialRefcount, ownership, finalize_callback, finalize_data, finalize_hint) {
+ const reference = new ReferenceWithFinalizer(envObject, value, initialRefcount, ownership, finalize_callback, finalize_data, finalize_hint);
+ envObject.ctx.refStore.add(reference);
+ reference.link(envObject.finalizing_reflist);
+ return reference;
+ }
+ constructor(envObject, value, initialRefcount, ownership, finalize_callback, finalize_data, finalize_hint) {
+ super(envObject, value, initialRefcount, ownership);
+ this._finalizer = new Finalizer(envObject, finalize_callback, finalize_data, finalize_hint);
+ }
+ resetFinalizer() {
+ this._finalizer.resetFinalizer();
+ }
+ data() {
+ return this._finalizer.data();
+ }
+ callUserFinalizer() {
+ this._finalizer.callFinalizer();
+ }
+ invokeFinalizerFromGC() {
+ this._finalizer.envObject.invokeFinalizerFromGC(this);
+ }
+ dispose() {
+ if (!this._finalizer)
+ return;
+ this._finalizer.envObject.dequeueFinalizer(this);
+ this._finalizer.dispose();
+ super.dispose();
+ this._finalizer = undefined;
+ }
+}
+
+class Deferred {
+ static create(ctx, value) {
+ const deferred = new Deferred(ctx, value);
+ ctx.deferredStore.add(deferred);
+ return deferred;
+ }
+ constructor(ctx, value) {
+ this.id = 0;
+ this.ctx = ctx;
+ this.value = value;
+ }
+ resolve(value) {
+ this.value.resolve(value);
+ this.dispose();
+ }
+ reject(reason) {
+ this.value.reject(reason);
+ this.dispose();
+ }
+ dispose() {
+ this.ctx.deferredStore.remove(this.id);
+ this.id = 0;
+ this.value = null;
+ this.ctx = null;
+ }
+}
+
+class Store {
+ constructor() {
+ this._values = [undefined];
+ this._values.length = 4;
+ this._size = 1;
+ this._freeList = [];
+ }
+ add(value) {
+ let id;
+ if (this._freeList.length) {
+ id = this._freeList.shift();
+ }
+ else {
+ id = this._size;
+ this._size++;
+ const capacity = this._values.length;
+ if (id >= capacity) {
+ this._values.length = capacity + (capacity >> 1) + 16;
+ }
+ }
+ value.id = id;
+ this._values[id] = value;
+ }
+ get(id) {
+ return this._values[id];
+ }
+ has(id) {
+ return this._values[id] !== undefined;
+ }
+ remove(id) {
+ const value = this._values[id];
+ if (value) {
+ value.id = 0;
+ this._values[id] = undefined;
+ this._freeList.push(Number(id));
+ }
+ }
+ dispose() {
+ for (let i = 1; i < this._size; ++i) {
+ const value = this._values[i];
+ value === null || value === void 0 ? void 0 : value.dispose();
+ }
+ this._values = [undefined];
+ this._size = 1;
+ this._freeList = [];
+ }
+}
+
+const kMaxReasonableBytes = BigInt(1) << BigInt(60);
+const kMinReasonableBytes = -kMaxReasonableBytes;
+class ExternalMemory {
+ constructor(onChange) {
+ this.total = BigInt(0);
+ this.onChange = onChange !== null && onChange !== void 0 ? onChange : null;
+ }
+ adjust(changeInBytes) {
+ changeInBytes = BigInt(changeInBytes);
+ if (!(kMinReasonableBytes <= changeInBytes && changeInBytes < kMaxReasonableBytes)) {
+ throw new RangeError(`changeInBytes ${changeInBytes} is out of reasonable range`);
+ }
+ const old = this.total;
+ this.total += changeInBytes;
+ const amount = this.total;
+ const onChange = this.onChange;
+ if (changeInBytes) {
+ onChange === null || onChange === void 0 ? void 0 : onChange(amount, old, changeInBytes);
+ }
+ return amount;
+ }
+}
+
+class CleanupHookCallback {
+ constructor(envObject, fn, arg, order) {
+ this.envObject = envObject;
+ this.fn = fn;
+ this.arg = arg;
+ this.order = order;
+ }
+}
+class CleanupQueue {
+ constructor() {
+ this._cleanupHooks = [];
+ this._cleanupHookCounter = 0;
+ }
+ empty() {
+ return this._cleanupHooks.length === 0;
+ }
+ add(envObject, fn, arg) {
+ if (this._cleanupHooks.filter((hook) => (hook.envObject === envObject && hook.fn === fn && hook.arg === arg)).length > 0) {
+ throw new Error('Can not add same fn and arg twice');
+ }
+ this._cleanupHooks.push(new CleanupHookCallback(envObject, fn, arg, this._cleanupHookCounter++));
+ }
+ remove(envObject, fn, arg) {
+ for (let i = 0; i < this._cleanupHooks.length; ++i) {
+ const hook = this._cleanupHooks[i];
+ if (hook.envObject === envObject && hook.fn === fn && hook.arg === arg) {
+ this._cleanupHooks.splice(i, 1);
+ return;
+ }
+ }
+ }
+ drain() {
+ const hooks = this._cleanupHooks.slice();
+ hooks.sort((a, b) => (b.order - a.order));
+ for (let i = 0; i < hooks.length; ++i) {
+ const cb = hooks[i];
+ if (typeof cb.fn === 'number') {
+ cb.envObject.makeDynCall_vp(cb.fn)(cb.arg);
+ }
+ else {
+ cb.fn(cb.arg);
+ }
+ this._cleanupHooks.splice(this._cleanupHooks.indexOf(cb), 1);
+ }
+ }
+ dispose() {
+ this._cleanupHooks.length = 0;
+ this._cleanupHookCounter = 0;
+ }
+}
+class NodejsWaitingRequestCounter {
+ constructor() {
+ this.refHandle = new _MessageChannel().port1;
+ this.count = 0;
+ }
+ increase() {
+ if (this.count === 0) {
+ if (this.refHandle.ref) {
+ this.refHandle.ref();
+ }
+ }
+ this.count++;
+ }
+ decrease() {
+ if (this.count === 0)
+ return;
+ if (this.count === 1) {
+ if (this.refHandle.unref) {
+ this.refHandle.unref();
+ }
+ }
+ this.count--;
+ }
+}
+class Context {
+ constructor(options) {
+ this._isStopping = false;
+ this._canCallIntoJs = true;
+ this._suppressDestroy = false;
+ this.envStore = new Store();
+ this.scopeStore = new ScopeStore();
+ this.refStore = new Store();
+ this.deferredStore = new Store();
+ this.handleStore = new HandleStore();
+ this.feature = {
+ supportReflect,
+ supportFinalizer,
+ supportWeakSymbol,
+ supportBigInt,
+ supportNewFunction,
+ canSetFunctionName,
+ setImmediate: _setImmediate,
+ Buffer: _Buffer,
+ MessageChannel: _MessageChannel
+ };
+ this.cleanupQueue = new CleanupQueue();
+ this._externalMemory = new ExternalMemory(options === null || options === void 0 ? void 0 : options.onExternalMemoryChange);
+ if (typeof process === 'object' && process !== null && typeof process.once === 'function') {
+ this.refCounter = new NodejsWaitingRequestCounter();
+ process.once('beforeExit', () => {
+ if (!this._suppressDestroy) {
+ this.destroy();
+ }
+ });
+ }
+ }
+ suppressDestroy() {
+ this._suppressDestroy = true;
+ }
+ getRuntimeVersions() {
+ return {
+ version,
+ NODE_API_SUPPORTED_VERSION_MAX,
+ NAPI_VERSION_EXPERIMENTAL,
+ NODE_API_DEFAULT_MODULE_API_VERSION
+ };
+ }
+ createNotSupportWeakRefError(api, message) {
+ return new NotSupportWeakRefError(api, message);
+ }
+ createNotSupportBufferError(api, message) {
+ return new NotSupportBufferError(api, message);
+ }
+ createReference(envObject, handle_id, initialRefcount, ownership) {
+ return Reference.create(envObject, handle_id, initialRefcount, ownership);
+ }
+ createReferenceWithData(envObject, handle_id, initialRefcount, ownership, data) {
+ return ReferenceWithData.create(envObject, handle_id, initialRefcount, ownership, data);
+ }
+ createReferenceWithFinalizer(envObject, handle_id, initialRefcount, ownership, finalize_callback = 0, finalize_data = 0, finalize_hint = 0) {
+ return ReferenceWithFinalizer.create(envObject, handle_id, initialRefcount, ownership, finalize_callback, finalize_data, finalize_hint);
+ }
+ createDeferred(value) {
+ return Deferred.create(this, value);
+ }
+ adjustAmountOfExternalAllocatedMemory(changeInBytes) {
+ return this._externalMemory.adjust(changeInBytes);
+ }
+ createEnv(filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding) {
+ return newEnv(this, filename, moduleApiVersion, makeDynCall_vppp, makeDynCall_vp, abort, nodeBinding);
+ }
+ createTrackedFinalizer(envObject, finalize_callback, finalize_data, finalize_hint) {
+ return TrackedFinalizer.create(envObject, finalize_callback, finalize_data, finalize_hint);
+ }
+ getCurrentScope() {
+ return this.scopeStore.currentScope;
+ }
+ addToCurrentScope(value) {
+ return this.scopeStore.currentScope.add(value);
+ }
+ openScope(envObject) {
+ const scope = this.scopeStore.openScope(this.handleStore);
+ if (envObject)
+ envObject.openHandleScopes++;
+ return scope;
+ }
+ closeScope(envObject, _scope) {
+ if (envObject && envObject.openHandleScopes === 0)
+ return;
+ this.scopeStore.closeScope();
+ if (envObject)
+ envObject.openHandleScopes--;
+ }
+ ensureHandle(value) {
+ switch (value) {
+ case undefined: return HandleStore.UNDEFINED;
+ case null: return HandleStore.NULL;
+ case true: return HandleStore.TRUE;
+ case false: return HandleStore.FALSE;
+ case _global: return HandleStore.GLOBAL;
+ }
+ return this.addToCurrentScope(value);
+ }
+ addCleanupHook(envObject, fn, arg) {
+ this.cleanupQueue.add(envObject, fn, arg);
+ }
+ removeCleanupHook(envObject, fn, arg) {
+ this.cleanupQueue.remove(envObject, fn, arg);
+ }
+ runCleanup() {
+ while (!this.cleanupQueue.empty()) {
+ this.cleanupQueue.drain();
+ }
+ }
+ increaseWaitingRequestCounter() {
+ var _a;
+ (_a = this.refCounter) === null || _a === void 0 ? void 0 : _a.increase();
+ }
+ decreaseWaitingRequestCounter() {
+ var _a;
+ (_a = this.refCounter) === null || _a === void 0 ? void 0 : _a.decrease();
+ }
+ setCanCallIntoJs(value) {
+ this._canCallIntoJs = value;
+ }
+ setStopping(value) {
+ this._isStopping = value;
+ }
+ canCallIntoJs() {
+ return this._canCallIntoJs && !this._isStopping;
+ }
+ destroy() {
+ this.setStopping(true);
+ this.setCanCallIntoJs(false);
+ this.runCleanup();
+ }
+}
+let defaultContext;
+function createContext(options) {
+ return new Context(options);
+}
+function getDefaultContext() {
+ if (!defaultContext) {
+ defaultContext = createContext();
+ }
+ return defaultContext;
+}
+
+exports.ConstHandle = ConstHandle;
+exports.Context = Context;
+exports.Deferred = Deferred;
+exports.EmnapiError = EmnapiError;
+exports.Env = Env;
+exports.External = External;
+exports.Finalizer = Finalizer;
+exports.Handle = Handle;
+exports.HandleScope = HandleScope;
+exports.HandleStore = HandleStore;
+exports.NAPI_VERSION_EXPERIMENTAL = NAPI_VERSION_EXPERIMENTAL;
+exports.NODE_API_DEFAULT_MODULE_API_VERSION = NODE_API_DEFAULT_MODULE_API_VERSION;
+exports.NODE_API_SUPPORTED_VERSION_MAX = NODE_API_SUPPORTED_VERSION_MAX;
+exports.NODE_API_SUPPORTED_VERSION_MIN = NODE_API_SUPPORTED_VERSION_MIN;
+exports.NodeEnv = NodeEnv;
+exports.NotSupportBufferError = NotSupportBufferError;
+exports.NotSupportWeakRefError = NotSupportWeakRefError;
+exports.Persistent = Persistent;
+exports.RefTracker = RefTracker;
+exports.Reference = Reference;
+exports.ReferenceWithData = ReferenceWithData;
+exports.ReferenceWithFinalizer = ReferenceWithFinalizer;
+exports.ScopeStore = ScopeStore;
+exports.Store = Store;
+exports.TrackedFinalizer = TrackedFinalizer;
+exports.TryCatch = TryCatch;
+exports.createContext = createContext;
+exports.getDefaultContext = getDefaultContext;
+exports.getExternalValue = getExternalValue;
+exports.isExternal = isExternal;
+exports.isReferenceType = isReferenceType;
+exports.version = version;
diff --git a/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.d.ts b/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.d.ts
new file mode 100644
index 00000000..c2404e36
--- /dev/null
+++ b/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.d.ts
@@ -0,0 +1,671 @@
+export declare type Ptr = number | bigint
+
+export declare interface IBuffer extends Uint8Array {}
+export declare interface BufferCtor {
+ readonly prototype: IBuffer
+ /** @deprecated */
+ new (...args: any[]): IBuffer
+ from: {
+ (buffer: ArrayBufferLike): IBuffer
+ (buffer: ArrayBufferLike, byteOffset: number, length: number): IBuffer
+ }
+ alloc: (size: number) => IBuffer
+ isBuffer: (obj: unknown) => obj is IBuffer
+}
+
+export declare const enum GlobalHandle {
+ UNDEFINED = 1,
+ NULL,
+ FALSE,
+ TRUE,
+ GLOBAL
+}
+
+export declare const enum Version {
+ NODE_API_SUPPORTED_VERSION_MIN = 1,
+ NODE_API_DEFAULT_MODULE_API_VERSION = 8,
+ NODE_API_SUPPORTED_VERSION_MAX = 10,
+ NAPI_VERSION_EXPERIMENTAL = 2147483647 // INT_MAX
+}
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
+export declare type Pointer = number
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
+export declare type PointerPointer = number
+export declare type FunctionPointer any> = Pointer
+export declare type Const = T
+
+export declare type void_p = Pointer
+export declare type void_pp = Pointer
+export declare type bool = number
+export declare type char = number
+export declare type char_p = Pointer
+export declare type unsigned_char = number
+export declare type const_char = Const
+export declare type const_char_p = Pointer
+export declare type char16_t_p = number
+export declare type const_char16_t_p = number
+
+export declare type short = number
+export declare type unsigned_short = number
+export declare type int = number
+export declare type unsigned_int = number
+export declare type long = number
+export declare type unsigned_long = number
+export declare type long_long = bigint
+export declare type unsigned_long_long = bigint
+export declare type float = number
+export declare type double = number
+export declare type long_double = number
+export declare type size_t = number
+
+export declare type int8_t = number
+export declare type uint8_t = number
+export declare type int16_t = number
+export declare type uint16_t = number
+export declare type int32_t = number
+export declare type uint32_t = number
+export declare type int64_t = bigint
+export declare type uint64_t = bigint
+export declare type napi_env = Pointer
+
+export declare type napi_value = Pointer
+export declare type napi_ref = Pointer
+export declare type napi_deferred = Pointer
+export declare type napi_handle_scope = Pointer
+export declare type napi_escapable_handle_scope = Pointer
+
+export declare type napi_addon_register_func = FunctionPointer<(env: napi_env, exports: napi_value) => napi_value>
+
+export declare type napi_callback_info = Pointer
+export declare type napi_callback = FunctionPointer<(env: napi_env, info: napi_callback_info) => napi_value>
+
+export declare interface napi_extended_error_info {
+ error_message: const_char_p
+ engine_reserved: void_p
+ engine_error_code: uint32_t
+ error_code: napi_status
+}
+
+export declare interface napi_property_descriptor {
+ // One of utf8name or name should be NULL.
+ utf8name: const_char_p
+ name: napi_value
+
+ method: napi_callback
+ getter: napi_callback
+ setter: napi_callback
+ value: napi_value
+ /* napi_property_attributes */
+ attributes: number
+ data: void_p
+}
+
+export declare type napi_finalize = FunctionPointer<(
+ env: napi_env,
+ finalize_data: void_p,
+ finalize_hint: void_p
+) => void>
+
+export declare interface node_module {
+ nm_version: int32_t
+ nm_flags: uint32_t
+ nm_filename: Pointer
+ nm_register_func: napi_addon_register_func
+ nm_modname: Pointer
+ nm_priv: Pointer
+ reserved: PointerPointer
+}
+
+export declare interface napi_node_version {
+ major: uint32_t
+ minor: uint32_t
+ patch: uint32_t
+ release: const_char_p
+}
+
+export declare interface emnapi_emscripten_version {
+ major: uint32_t
+ minor: uint32_t
+ patch: uint32_t
+}
+
+export declare const enum napi_status {
+ napi_ok,
+ napi_invalid_arg,
+ napi_object_expected,
+ napi_string_expected,
+ napi_name_expected,
+ napi_function_expected,
+ napi_number_expected,
+ napi_boolean_expected,
+ napi_array_expected,
+ napi_generic_failure,
+ napi_pending_exception,
+ napi_cancelled,
+ napi_escape_called_twice,
+ napi_handle_scope_mismatch,
+ napi_callback_scope_mismatch,
+ napi_queue_full,
+ napi_closing,
+ napi_bigint_expected,
+ napi_date_expected,
+ napi_arraybuffer_expected,
+ napi_detachable_arraybuffer_expected,
+ napi_would_deadlock, // unused
+ napi_no_external_buffers_allowed,
+ napi_cannot_run_js
+}
+
+export declare const enum napi_property_attributes {
+ napi_default = 0,
+ napi_writable = 1 << 0,
+ napi_enumerable = 1 << 1,
+ napi_configurable = 1 << 2,
+
+ // Used with napi_define_class to distinguish static properties
+ // from instance properties. Ignored by napi_define_properties.
+ napi_static = 1 << 10,
+
+ /// #ifdef NAPI_EXPERIMENTAL
+ // Default for class methods.
+ napi_default_method = napi_writable | napi_configurable,
+
+ // Default for object properties, like in JS obj[prop].
+ napi_default_jsproperty = napi_writable | napi_enumerable | napi_configurable
+ /// #endif // NAPI_EXPERIMENTAL
+}
+
+export declare const enum napi_valuetype {
+ napi_undefined,
+ napi_null,
+ napi_boolean,
+ napi_number,
+ napi_string,
+ napi_symbol,
+ napi_object,
+ napi_function,
+ napi_external,
+ napi_bigint
+}
+
+export declare const enum napi_typedarray_type {
+ napi_int8_array,
+ napi_uint8_array,
+ napi_uint8_clamped_array,
+ napi_int16_array,
+ napi_uint16_array,
+ napi_int32_array,
+ napi_uint32_array,
+ napi_float32_array,
+ napi_float64_array,
+ napi_bigint64_array,
+ napi_biguint64_array,
+ napi_float16_array,
+}
+
+export declare const enum napi_key_collection_mode {
+ napi_key_include_prototypes,
+ napi_key_own_only
+}
+
+export declare const enum napi_key_filter {
+ napi_key_all_properties = 0,
+ napi_key_writable = 1,
+ napi_key_enumerable = 1 << 1,
+ napi_key_configurable = 1 << 2,
+ napi_key_skip_strings = 1 << 3,
+ napi_key_skip_symbols = 1 << 4
+}
+
+export declare const enum napi_key_conversion {
+ napi_key_keep_numbers,
+ napi_key_numbers_to_strings
+}
+
+export declare const enum emnapi_memory_view_type {
+ emnapi_int8_array,
+ emnapi_uint8_array,
+ emnapi_uint8_clamped_array,
+ emnapi_int16_array,
+ emnapi_uint16_array,
+ emnapi_int32_array,
+ emnapi_uint32_array,
+ emnapi_float32_array,
+ emnapi_float64_array,
+ emnapi_bigint64_array,
+ emnapi_biguint64_array,
+ emnapi_float16_array,
+ emnapi_data_view = -1,
+ emnapi_buffer = -2
+}
+
+export declare const enum napi_threadsafe_function_call_mode {
+ napi_tsfn_nonblocking,
+ napi_tsfn_blocking
+}
+
+export declare const enum napi_threadsafe_function_release_mode {
+ napi_tsfn_release,
+ napi_tsfn_abort
+}
+export declare type CleanupHookCallbackFunction = number | ((arg: number) => void);
+
+export declare class ConstHandle extends Handle {
+ constructor(id: number, value: S);
+ dispose(): void;
+}
+
+export declare class Context {
+ private _isStopping;
+ private _canCallIntoJs;
+ private _suppressDestroy;
+ envStore: Store;
+ scopeStore: ScopeStore;
+ refStore: Store;
+ deferredStore: Store>;
+ handleStore: HandleStore;
+ private readonly refCounter?;
+ private readonly cleanupQueue;
+ private readonly _externalMemory;
+ feature: {
+ supportReflect: boolean;
+ supportFinalizer: boolean;
+ supportWeakSymbol: boolean;
+ supportBigInt: boolean;
+ supportNewFunction: boolean;
+ canSetFunctionName: boolean;
+ setImmediate: (callback: () => void) => void;
+ Buffer: BufferCtor | undefined;
+ MessageChannel: {
+ new (): MessageChannel;
+ prototype: MessageChannel;
+ } | undefined;
+ };
+ constructor(options?: ContextOptions);
+ /**
+ * Suppress the destroy on `beforeExit` event in Node.js.
+ * Call this method if you want to keep the context and
+ * all associated {@link Env | Env} alive,
+ * this also means that cleanup hooks will not be called.
+ * After call this method, you should call
+ * {@link Context.destroy | `Context.prototype.destroy`} method manually.
+ */
+ suppressDestroy(): void;
+ getRuntimeVersions(): {
+ version: string;
+ NODE_API_SUPPORTED_VERSION_MAX: Version;
+ NAPI_VERSION_EXPERIMENTAL: Version;
+ NODE_API_DEFAULT_MODULE_API_VERSION: Version;
+ };
+ createNotSupportWeakRefError(api: string, message: string): NotSupportWeakRefError;
+ createNotSupportBufferError(api: string, message: string): NotSupportBufferError;
+ createReference(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership): Reference;
+ createReferenceWithData(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership, data: void_p): Reference;
+ createReferenceWithFinalizer(envObject: Env, handle_id: napi_value, initialRefcount: uint32_t, ownership: ReferenceOwnership, finalize_callback?: napi_finalize, finalize_data?: void_p, finalize_hint?: void_p): Reference;
+ createDeferred(value: IDeferrdValue): Deferred;
+ adjustAmountOfExternalAllocatedMemory(changeInBytes: number | bigint): bigint;
+ createEnv(filename: string, moduleApiVersion: number, makeDynCall_vppp: (cb: Ptr) => (a: Ptr, b: Ptr, c: Ptr) => void, makeDynCall_vp: (cb: Ptr) => (a: Ptr) => void, abort: (msg?: string) => never, nodeBinding?: any): Env;
+ createTrackedFinalizer(envObject: Env, finalize_callback: napi_finalize, finalize_data: void_p, finalize_hint: void_p): TrackedFinalizer;
+ getCurrentScope(): HandleScope | null;
+ addToCurrentScope(value: V): Handle;
+ openScope(envObject?: Env): HandleScope;
+ closeScope(envObject?: Env, _scope?: HandleScope): void;
+ ensureHandle(value: S): Handle;
+ addCleanupHook(envObject: Env, fn: CleanupHookCallbackFunction, arg: number): void;
+ removeCleanupHook(envObject: Env, fn: CleanupHookCallbackFunction, arg: number): void;
+ runCleanup(): void;
+ increaseWaitingRequestCounter(): void;
+ decreaseWaitingRequestCounter(): void;
+ setCanCallIntoJs(value: boolean): void;
+ setStopping(value: boolean): void;
+ canCallIntoJs(): boolean;
+ /**
+ * Destroy the context and call cleanup hooks.
+ * Associated {@link Env | Env} will be destroyed.
+ */
+ destroy(): void;
+}
+
+export declare interface ContextOptions {
+ onExternalMemoryChange?: (current: bigint, old: bigint, delta: bigint) => any;
+}
+
+export declare function createContext(options?: ContextOptions): Context;
+
+export declare class Deferred implements IStoreValue {
+ static create(ctx: Context, value: IDeferrdValue): Deferred;
+ id: number;
+ ctx: Context;
+ value: IDeferrdValue;
+ constructor(ctx: Context, value: IDeferrdValue);
+ resolve(value: T): void;
+ reject(reason?: any): void;
+ dispose(): void;
+}
+
+export declare class EmnapiError extends Error {
+ constructor(message?: string);
+}
+
+export declare abstract class Env implements IStoreValue {
+ readonly ctx: Context;
+ moduleApiVersion: number;
+ makeDynCall_vppp: (cb: Ptr) => (a: Ptr, b: Ptr, c: Ptr) => void;
+ makeDynCall_vp: (cb: Ptr) => (a: Ptr) => void;
+ abort: (msg?: string) => never;
+ id: number;
+ openHandleScopes: number;
+ instanceData: TrackedFinalizer | null;
+ tryCatch: TryCatch;
+ refs: number;
+ reflist: RefTracker;
+ finalizing_reflist: RefTracker;
+ pendingFinalizers: RefTracker[];
+ lastError: {
+ errorCode: napi_status;
+ engineErrorCode: number;
+ engineReserved: Ptr;
+ };
+ inGcFinalizer: boolean;
+ constructor(ctx: Context, moduleApiVersion: number, makeDynCall_vppp: (cb: Ptr) => (a: Ptr, b: Ptr, c: Ptr) => void, makeDynCall_vp: (cb: Ptr) => (a: Ptr) => void, abort: (msg?: string) => never);
+ /** @virtual */
+ canCallIntoJs(): boolean;
+ terminatedOrTerminating(): boolean;
+ ref(): void;
+ unref(): void;
+ ensureHandle(value: S): Handle;
+ ensureHandleId(value: any): napi_value;
+ clearLastError(): napi_status;
+ setLastError(error_code: napi_status, engine_error_code?: uint32_t, engine_reserved?: void_p): napi_status;
+ getReturnStatus(): napi_status;
+ callIntoModule(fn: (env: Env) => T, handleException?: (envObject: Env, value: any) => void): T;
+ /** @virtual */
+ abstract callFinalizer(cb: napi_finalize, data: void_p, hint: void_p): void;
+ invokeFinalizerFromGC(finalizer: RefTracker): void;
+ checkGCAccess(): void;
+ /** @virtual */
+ enqueueFinalizer(finalizer: RefTracker): void;
+ /** @virtual */
+ dequeueFinalizer(finalizer: RefTracker): void;
+ /** @virtual */
+ deleteMe(): void;
+ dispose(): void;
+ private readonly _bindingMap;
+ initObjectBinding(value: S): IReferenceBinding;
+ getObjectBinding(value: S): IReferenceBinding;
+ setInstanceData(data: number, finalize_cb: number, finalize_hint: number): void;
+ getInstanceData(): number;
+}
+
+/** @public */
+declare interface External_2 extends Record {
+}
+
+/** @public */
+declare const External_2: {
+ new (value: number | bigint): External_2;
+ prototype: null;
+};
+export { External_2 as External }
+
+export declare class Finalizer {
+ envObject: Env;
+ private _finalizeCallback;
+ private _finalizeData;
+ private _finalizeHint;
+ private _makeDynCall_vppp;
+ constructor(envObject: Env, _finalizeCallback?: napi_finalize, _finalizeData?: void_p, _finalizeHint?: void_p);
+ callback(): napi_finalize;
+ data(): void_p;
+ hint(): void_p;
+ resetEnv(): void;
+ resetFinalizer(): void;
+ callFinalizer(): void;
+ dispose(): void;
+}
+
+export declare function getDefaultContext(): Context;
+
+/** @public */
+export declare function getExternalValue(external: External_2): number | bigint;
+
+export declare class Handle {
+ id: number;
+ value: S;
+ constructor(id: number, value: S);
+ data(): void_p;
+ isNumber(): boolean;
+ isBigInt(): boolean;
+ isString(): boolean;
+ isFunction(): boolean;
+ isExternal(): boolean;
+ isObject(): boolean;
+ isArray(): boolean;
+ isArrayBuffer(): boolean;
+ isTypedArray(): boolean;
+ isBuffer(BufferConstructor?: BufferCtor): boolean;
+ isDataView(): boolean;
+ isDate(): boolean;
+ isPromise(): boolean;
+ isBoolean(): boolean;
+ isUndefined(): boolean;
+ isSymbol(): boolean;
+ isNull(): boolean;
+ dispose(): void;
+}
+
+export declare class HandleScope {
+ handleStore: HandleStore;
+ id: number;
+ parent: HandleScope | null;
+ child: HandleScope | null;
+ start: number;
+ end: number;
+ private _escapeCalled;
+ callbackInfo: ICallbackInfo;
+ constructor(handleStore: HandleStore, id: number, parentScope: HandleScope | null, start: number, end?: number);
+ add(value: V): Handle;
+ addExternal(data: void_p): Handle