@inventreedb/ui 0.8.2 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/.vite/manifest.json +44 -11
- package/dist/components/RowActions.js +4 -4
- package/dist/hooks/MonitorBackgroundTask.d.ts +20 -0
- package/dist/hooks/MonitorBackgroundTask.js +77 -0
- package/dist/hooks/MonitorBackgroundTask.js.map +1 -0
- package/dist/hooks/MonitorDataOutput.d.ts +6 -5
- package/dist/hooks/MonitorDataOutput.js +19 -25
- package/dist/hooks/MonitorDataOutput.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleCheck.js +2 -2
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleCheck.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleX.js +2 -2
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleX.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +2 -2
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.js +2 -2
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.js +2 -2
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconExclamationCircle.js +2 -2
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconExclamationCircle.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.js +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +2 -2
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.js +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.js.map +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/environmentManager.js +22 -0
- package/dist/node_modules/@tanstack/query-core/build/modern/environmentManager.js.map +1 -0
- package/dist/node_modules/@tanstack/query-core/build/modern/focusManager.js +1 -2
- package/dist/node_modules/@tanstack/query-core/build/modern/focusManager.js.map +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/notifyManager.js +2 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/notifyManager.js.map +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/onlineManager.js +1 -2
- package/dist/node_modules/@tanstack/query-core/build/modern/onlineManager.js.map +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/query.js.map +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js +25 -18
- package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js.map +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/retryer.js.map +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/timeoutManager.js +70 -0
- package/dist/node_modules/@tanstack/query-core/build/modern/timeoutManager.js.map +1 -0
- package/dist/node_modules/@tanstack/query-core/build/modern/utils.js +3 -2
- package/dist/node_modules/@tanstack/query-core/build/modern/utils.js.map +1 -1
- package/dist/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js +3 -2
- package/dist/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js.map +1 -1
- package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js +7 -5
- package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js.map +1 -1
- package/dist/types/Forms.d.ts +2 -0
- package/dist/types/Plugins.d.ts +11 -0
- package/dist/types/Plugins.js +3 -3
- package/dist/types/Plugins.js.map +1 -1
- package/lib/hooks/MonitorBackgroundTask.tsx +118 -0
- package/lib/hooks/MonitorDataOutput.tsx +25 -29
- package/lib/index.ts +8 -1
- package/lib/types/Forms.tsx +2 -0
- package/lib/types/Plugins.tsx +10 -0
- package/package.json +31 -28
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import createReactComponent from "../createReactComponent.js";
|
|
2
2
|
/**
|
|
3
|
-
* @license @tabler/icons-react v3.
|
|
3
|
+
* @license @tabler/icons-react v3.40.0 - MIT
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license.
|
|
6
6
|
* See the LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
-
const __iconNode = [["path", { "d": "
|
|
8
|
+
const __iconNode = [["path", { "d": "M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0", "key": "svg-0" }], ["path", { "d": "M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0", "key": "svg-1" }], ["path", { "d": "M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0", "key": "svg-2" }]];
|
|
9
9
|
const IconDots = createReactComponent("outline", "dots", "Dots", __iconNode);
|
|
10
10
|
export {
|
|
11
11
|
__iconNode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconDots.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.
|
|
1
|
+
{"version":3,"file":"IconDots.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.40.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-2\" }]];\nconst IconDots = createReactComponent(\"outline\", \"dots\", \"Dots\", __iconNode);\n\nexport { __iconNode, IconDots as default };\n//# sourceMappingURL=IconDots.mjs.map\n"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,KAAK,sCAAsC,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,uCAAuC,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,uCAAuC,OAAO,SAAS,CAAC;AAC1O,MAAC,WAAW,qBAAqB,WAAW,QAAQ,QAAQ,UAAU;","x_google_ignoreList":[0]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import createReactComponent from "../createReactComponent.js";
|
|
2
2
|
/**
|
|
3
|
-
* @license @tabler/icons-react v3.
|
|
3
|
+
* @license @tabler/icons-react v3.40.0 - MIT
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license.
|
|
6
6
|
* See the LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
-
const __iconNode = [["path", { "d": "M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1", "key": "svg-0" }], ["path", { "d": "M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.
|
|
8
|
+
const __iconNode = [["path", { "d": "M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1", "key": "svg-0" }], ["path", { "d": "M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415", "key": "svg-1" }], ["path", { "d": "M16 5l3 3", "key": "svg-2" }]];
|
|
9
9
|
const IconEdit = createReactComponent("outline", "edit", "Edit", __iconNode);
|
|
10
10
|
export {
|
|
11
11
|
__iconNode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconEdit.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.
|
|
1
|
+
{"version":3,"file":"IconEdit.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.40.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M16 5l3 3\", \"key\": \"svg-2\" }]];\nconst IconEdit = createReactComponent(\"outline\", \"edit\", \"Edit\", __iconNode);\n\nexport { __iconNode, IconEdit as default };\n//# sourceMappingURL=IconEdit.mjs.map\n"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,KAAK,8DAA8D,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,yEAAyE,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,aAAa,OAAO,SAAS,CAAC;AAC1Q,MAAC,WAAW,qBAAqB,WAAW,QAAQ,QAAQ,UAAU;","x_google_ignoreList":[0]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import createReactComponent from "../createReactComponent.js";
|
|
2
2
|
/**
|
|
3
|
-
* @license @tabler/icons-react v3.
|
|
3
|
+
* @license @tabler/icons-react v3.40.0 - MIT
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license.
|
|
6
6
|
* See the LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
-
const __iconNode = [["path", { "d": "
|
|
8
|
+
const __iconNode = [["path", { "d": "M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", "key": "svg-0" }], ["path", { "d": "M12 9v4", "key": "svg-1" }], ["path", { "d": "M12 16v.01", "key": "svg-2" }]];
|
|
9
9
|
const IconExclamationCircle = createReactComponent("outline", "exclamation-circle", "ExclamationCircle", __iconNode);
|
|
10
10
|
export {
|
|
11
11
|
__iconNode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconExclamationCircle.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconExclamationCircle.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.
|
|
1
|
+
{"version":3,"file":"IconExclamationCircle.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconExclamationCircle.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.40.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 9v4\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M12 16v.01\", \"key\": \"svg-2\" }]];\nconst IconExclamationCircle = createReactComponent(\"outline\", \"exclamation-circle\", \"ExclamationCircle\", __iconNode);\n\nexport { __iconNode, IconExclamationCircle as default };\n//# sourceMappingURL=IconExclamationCircle.mjs.map\n"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,KAAK,wCAAwC,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,WAAW,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,cAAc,OAAO,SAAS,CAAC;AACvL,MAAC,wBAAwB,qBAAqB,WAAW,sBAAsB,qBAAqB,UAAU;","x_google_ignoreList":[0]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import createReactComponent from "../createReactComponent.js";
|
|
2
2
|
/**
|
|
3
|
-
* @license @tabler/icons-react v3.
|
|
3
|
+
* @license @tabler/icons-react v3.40.0 - MIT
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license.
|
|
6
6
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconPlus.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.
|
|
1
|
+
{"version":3,"file":"IconPlus.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.40.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M12 5l0 14\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M5 12l14 0\", \"key\": \"svg-1\" }]];\nconst IconPlus = createReactComponent(\"outline\", \"plus\", \"Plus\", __iconNode);\n\nexport { __iconNode, IconPlus as default };\n//# sourceMappingURL=IconPlus.mjs.map\n"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,KAAK,cAAc,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,cAAc,OAAO,SAAS,CAAC;AAC/G,MAAC,WAAW,qBAAqB,WAAW,QAAQ,QAAQ,UAAU;","x_google_ignoreList":[0]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import createReactComponent from "../createReactComponent.js";
|
|
2
2
|
/**
|
|
3
|
-
* @license @tabler/icons-react v3.
|
|
3
|
+
* @license @tabler/icons-react v3.40.0 - MIT
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license.
|
|
6
6
|
* See the LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
-
const __iconNode = [["path", { "d": "
|
|
8
|
+
const __iconNode = [["path", { "d": "M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0", "key": "svg-0" }], ["path", { "d": "M21 21l-6 -6", "key": "svg-1" }]];
|
|
9
9
|
const IconSearch = createReactComponent("outline", "search", "Search", __iconNode);
|
|
10
10
|
export {
|
|
11
11
|
__iconNode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconSearch.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.
|
|
1
|
+
{"version":3,"file":"IconSearch.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.40.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M21 21l-6 -6\", \"key\": \"svg-1\" }]];\nconst IconSearch = createReactComponent(\"outline\", \"search\", \"Search\", __iconNode);\n\nexport { __iconNode, IconSearch as default };\n//# sourceMappingURL=IconSearch.mjs.map\n"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,KAAK,wCAAwC,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,gBAAgB,OAAO,SAAS,CAAC;AAC3I,MAAC,aAAa,qBAAqB,WAAW,UAAU,UAAU,UAAU;","x_google_ignoreList":[0]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import createReactComponent from "../createReactComponent.js";
|
|
2
2
|
/**
|
|
3
|
-
* @license @tabler/icons-react v3.
|
|
3
|
+
* @license @tabler/icons-react v3.40.0 - MIT
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license.
|
|
6
6
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconTrash.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.
|
|
1
|
+
{"version":3,"file":"IconTrash.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.40.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M4 7l16 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M10 11l0 6\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M14 11l0 6\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3\", \"key\": \"svg-4\" }]];\nconst IconTrash = createReactComponent(\"outline\", \"trash\", \"Trash\", __iconNode);\n\nexport { __iconNode, IconTrash as default };\n//# sourceMappingURL=IconTrash.mjs.map\n"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,KAAK,aAAa,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,cAAc,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,cAAc,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,kDAAkD,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,4CAA4C,OAAO,SAAS,CAAC;AACnU,MAAC,YAAY,qBAAqB,WAAW,SAAS,SAAS,UAAU;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { isServer } from "./utils.js";
|
|
2
|
+
var environmentManager = /* @__PURE__ */ (() => {
|
|
3
|
+
let isServerFn = () => isServer;
|
|
4
|
+
return {
|
|
5
|
+
/**
|
|
6
|
+
* Returns whether the current runtime should be treated as a server environment.
|
|
7
|
+
*/
|
|
8
|
+
isServer() {
|
|
9
|
+
return isServerFn();
|
|
10
|
+
},
|
|
11
|
+
/**
|
|
12
|
+
* Overrides the server check globally.
|
|
13
|
+
*/
|
|
14
|
+
setIsServer(isServerValue) {
|
|
15
|
+
isServerFn = isServerValue;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
})();
|
|
19
|
+
export {
|
|
20
|
+
environmentManager
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=environmentManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentManager.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/environmentManager.js"],"sourcesContent":["// src/environmentManager.ts\nimport { isServer } from \"./utils.js\";\nvar environmentManager = /* @__PURE__ */ (() => {\n let isServerFn = () => isServer;\n return {\n /**\n * Returns whether the current runtime should be treated as a server environment.\n */\n isServer() {\n return isServerFn();\n },\n /**\n * Overrides the server check globally.\n */\n setIsServer(isServerValue) {\n isServerFn = isServerValue;\n }\n };\n})();\nexport {\n environmentManager\n};\n//# sourceMappingURL=environmentManager.js.map"],"names":[],"mappings":";AAEG,IAAC,qBAAsC,uBAAM;AAC9C,MAAI,aAAa,MAAM;AACvB,SAAO;AAAA;AAAA;AAAA;AAAA,IAIL,WAAW;AACT,aAAO,WAAU;AAAA,IACnB;AAAA;AAAA;AAAA;AAAA,IAIA,YAAY,eAAe;AACzB,mBAAa;AAAA,IACf;AAAA,EACJ;AACA,GAAC;","x_google_ignoreList":[0]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Subscribable } from "./subscribable.js";
|
|
2
|
-
import { isServer } from "./utils.js";
|
|
3
2
|
var FocusManager = class extends Subscribable {
|
|
4
3
|
#focused;
|
|
5
4
|
#cleanup;
|
|
@@ -7,7 +6,7 @@ var FocusManager = class extends Subscribable {
|
|
|
7
6
|
constructor() {
|
|
8
7
|
super();
|
|
9
8
|
this.#setup = (onFocus) => {
|
|
10
|
-
if (
|
|
9
|
+
if (typeof window !== "undefined" && window.addEventListener) {
|
|
11
10
|
const listener = () => onFocus();
|
|
12
11
|
window.addEventListener("visibilitychange", listener, false);
|
|
13
12
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focusManager.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/focusManager.js"],"sourcesContent":["// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\
|
|
1
|
+
{"version":3,"file":"focusManager.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/focusManager.js"],"sourcesContent":["// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map"],"names":[],"mappings":";AAEG,IAAC,eAAe,cAAc,aAAa;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AACZ,UAAK;AACL,SAAK,SAAS,CAAC,YAAY;AACzB,UAAI,OAAO,WAAW,eAAe,OAAO,kBAAkB;AAC5D,cAAM,WAAW,MAAM,QAAO;AAC9B,eAAO,iBAAiB,oBAAoB,UAAU,KAAK;AAC3D,eAAO,MAAM;AACX,iBAAO,oBAAoB,oBAAoB,QAAQ;AAAA,QACzD;AAAA,MACF;AACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,cAAc;AACZ,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,iBAAiB,KAAK,MAAM;AAAA,IACnC;AAAA,EACF;AAAA,EACA,gBAAgB;AACd,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,WAAQ;AACb,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AAAA,EACA,iBAAiB,OAAO;AACtB,SAAK,SAAS;AACd,SAAK,WAAQ;AACb,SAAK,WAAW,MAAM,CAAC,YAAY;AACjC,UAAI,OAAO,YAAY,WAAW;AAChC,aAAK,WAAW,OAAO;AAAA,MACzB,OAAO;AACL,aAAK,QAAO;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,WAAW,SAAS;AAClB,UAAM,UAAU,KAAK,aAAa;AAClC,QAAI,SAAS;AACX,WAAK,WAAW;AAChB,WAAK,QAAO;AAAA,IACd;AAAA,EACF;AAAA,EACA,UAAU;AACR,UAAM,YAAY,KAAK,UAAS;AAChC,SAAK,UAAU,QAAQ,CAAC,aAAa;AACnC,eAAS,SAAS;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACA,YAAY;AACV,QAAI,OAAO,KAAK,aAAa,WAAW;AACtC,aAAO,KAAK;AAAA,IACd;AACA,WAAO,WAAW,UAAU,oBAAoB;AAAA,EAClD;AACF;AACG,IAAC,eAAe,IAAI,aAAY;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifyManager.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/notifyManager.js"],"sourcesContent":["// src/notifyManager.ts\nvar defaultScheduler =
|
|
1
|
+
{"version":3,"file":"notifyManager.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/notifyManager.js"],"sourcesContent":["// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map"],"names":[],"mappings":";AAEG,IAAC,mBAAmB;AACvB,SAAS,sBAAsB;AAC7B,MAAI,QAAQ,CAAA;AACZ,MAAI,eAAe;AACnB,MAAI,WAAW,CAAC,aAAa;AAC3B,aAAQ;AAAA,EACV;AACA,MAAI,gBAAgB,CAAC,aAAa;AAChC,aAAQ;AAAA,EACV;AACA,MAAI,aAAa;AACjB,QAAM,WAAW,CAAC,aAAa;AAC7B,QAAI,cAAc;AAChB,YAAM,KAAK,QAAQ;AAAA,IACrB,OAAO;AACL,iBAAW,MAAM;AACf,iBAAS,QAAQ;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,QAAQ,MAAM;AAClB,UAAM,gBAAgB;AACtB,YAAQ,CAAA;AACR,QAAI,cAAc,QAAQ;AACxB,iBAAW,MAAM;AACf,sBAAc,MAAM;AAClB,wBAAc,QAAQ,CAAC,aAAa;AAClC,qBAAS,QAAQ;AAAA,UACnB,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AAAA,IACL,OAAO,CAAC,aAAa;AACnB,UAAI;AACJ;AACA,UAAI;AACF,iBAAS,SAAQ;AAAA,MACnB,UAAC;AACC;AACA,YAAI,CAAC,cAAc;AACjB,gBAAK;AAAA,QACP;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAIA,YAAY,CAAC,aAAa;AACxB,aAAO,IAAI,SAAS;AAClB,iBAAS,MAAM;AACb,mBAAS,GAAG,IAAI;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAmB,CAAC,OAAO;AACzB,iBAAW;AAAA,IACb;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,wBAAwB,CAAC,OAAO;AAC9B,sBAAgB;AAAA,IAClB;AAAA,IACA,cAAc,CAAC,OAAO;AACpB,mBAAa;AAAA,IACf;AAAA,EACJ;AACA;AACG,IAAC,gBAAgB,oBAAmB;","x_google_ignoreList":[0]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Subscribable } from "./subscribable.js";
|
|
2
|
-
import { isServer } from "./utils.js";
|
|
3
2
|
var OnlineManager = class extends Subscribable {
|
|
4
3
|
#online = true;
|
|
5
4
|
#cleanup;
|
|
@@ -7,7 +6,7 @@ var OnlineManager = class extends Subscribable {
|
|
|
7
6
|
constructor() {
|
|
8
7
|
super();
|
|
9
8
|
this.#setup = (onOnline) => {
|
|
10
|
-
if (
|
|
9
|
+
if (typeof window !== "undefined" && window.addEventListener) {
|
|
11
10
|
const onlineListener = () => onOnline(true);
|
|
12
11
|
const offlineListener = () => onOnline(false);
|
|
13
12
|
window.addEventListener("online", onlineListener, false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onlineManager.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/onlineManager.js"],"sourcesContent":["// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\
|
|
1
|
+
{"version":3,"file":"onlineManager.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/onlineManager.js"],"sourcesContent":["// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map"],"names":[],"mappings":";AAEG,IAAC,gBAAgB,cAAc,aAAa;AAAA,EAC7C,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,cAAc;AACZ,UAAK;AACL,SAAK,SAAS,CAAC,aAAa;AAC1B,UAAI,OAAO,WAAW,eAAe,OAAO,kBAAkB;AAC5D,cAAM,iBAAiB,MAAM,SAAS,IAAI;AAC1C,cAAM,kBAAkB,MAAM,SAAS,KAAK;AAC5C,eAAO,iBAAiB,UAAU,gBAAgB,KAAK;AACvD,eAAO,iBAAiB,WAAW,iBAAiB,KAAK;AACzD,eAAO,MAAM;AACX,iBAAO,oBAAoB,UAAU,cAAc;AACnD,iBAAO,oBAAoB,WAAW,eAAe;AAAA,QACvD;AAAA,MACF;AACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,cAAc;AACZ,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,iBAAiB,KAAK,MAAM;AAAA,IACnC;AAAA,EACF;AAAA,EACA,gBAAgB;AACd,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,WAAQ;AACb,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AAAA,EACA,iBAAiB,OAAO;AACtB,SAAK,SAAS;AACd,SAAK,WAAQ;AACb,SAAK,WAAW,MAAM,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,EACjD;AAAA,EACA,UAAU,QAAQ;AAChB,UAAM,UAAU,KAAK,YAAY;AACjC,QAAI,SAAS;AACX,WAAK,UAAU;AACf,WAAK,UAAU,QAAQ,CAAC,aAAa;AACnC,iBAAS,MAAM;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AACF;AACG,IAAC,gBAAgB,IAAI,cAAa;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/query.js"],"sourcesContent":["// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retyer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n this.options.behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map"],"names":[],"mappings":";AA8XA,SAAS,WAAW,MAAM,SAAS;AACjC,SAAO;AAAA,IACL,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,aAAa,SAAS,QAAQ,WAAW,IAAI,aAAa;AAAA,IAC1D,GAAG,SAAS,UAAU;AAAA,MACpB,OAAO;AAAA,MACP,QAAQ;AAAA,IACd;AAAA,EACA;AACA;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"query.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/query.js"],"sourcesContent":["// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n get resetState() {\n return this.#initialState;\n }\n reset() {\n this.destroy();\n this.setState(this.resetState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || !this.isFetched();\n }\n isFetched() {\n return this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed || this.#isInitialPausedFetch()) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n #isInitialPausedFetch() {\n return this.state.fetchStatus === \"paused\" && this.state.status === \"pending\";\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n this.options.behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map"],"names":[],"mappings":";AA+YA,SAAS,WAAW,MAAM,SAAS;AACjC,SAAO;AAAA,IACL,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,aAAa,SAAS,QAAQ,WAAW,IAAI,aAAa;AAAA,IAC1D,GAAG,SAAS,UAAU;AAAA,MACpB,OAAO;AAAA,MACP,QAAQ;AAAA,IACd;AAAA,EACA;AACA;","x_google_ignoreList":[0]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { focusManager } from "./focusManager.js";
|
|
2
|
+
import { environmentManager } from "./environmentManager.js";
|
|
2
3
|
import { notifyManager } from "./notifyManager.js";
|
|
3
4
|
import { fetchState } from "./query.js";
|
|
4
5
|
import { Subscribable } from "./subscribable.js";
|
|
5
6
|
import { pendingThenable } from "./thenable.js";
|
|
6
|
-
import { resolveEnabled, shallowEqualObjects, resolveStaleTime, noop,
|
|
7
|
+
import { resolveEnabled, shallowEqualObjects, resolveStaleTime, noop, isValidTimeout, timeUntilStale, replaceData } from "./utils.js";
|
|
8
|
+
import { timeoutManager } from "./timeoutManager.js";
|
|
7
9
|
var QueryObserver = class extends Subscribable {
|
|
8
10
|
constructor(client, options) {
|
|
9
11
|
super();
|
|
@@ -124,12 +126,15 @@ var QueryObserver = class extends Subscribable {
|
|
|
124
126
|
get: (target, key) => {
|
|
125
127
|
this.trackProp(key);
|
|
126
128
|
onPropTracked?.(key);
|
|
127
|
-
if (key === "promise"
|
|
128
|
-
this
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
if (key === "promise") {
|
|
130
|
+
this.trackProp("data");
|
|
131
|
+
if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === "pending") {
|
|
132
|
+
this.#currentThenable.reject(
|
|
133
|
+
new Error(
|
|
134
|
+
"experimental_prefetchInRender feature flag is not enabled"
|
|
135
|
+
)
|
|
136
|
+
);
|
|
137
|
+
}
|
|
133
138
|
}
|
|
134
139
|
return Reflect.get(target, key);
|
|
135
140
|
}
|
|
@@ -177,12 +182,12 @@ var QueryObserver = class extends Subscribable {
|
|
|
177
182
|
this.options.staleTime,
|
|
178
183
|
this.#currentQuery
|
|
179
184
|
);
|
|
180
|
-
if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {
|
|
185
|
+
if (environmentManager.isServer() || this.#currentResult.isStale || !isValidTimeout(staleTime)) {
|
|
181
186
|
return;
|
|
182
187
|
}
|
|
183
188
|
const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);
|
|
184
189
|
const timeout = time + 1;
|
|
185
|
-
this.#staleTimeoutId = setTimeout(() => {
|
|
190
|
+
this.#staleTimeoutId = timeoutManager.setTimeout(() => {
|
|
186
191
|
if (!this.#currentResult.isStale) {
|
|
187
192
|
this.updateResult();
|
|
188
193
|
}
|
|
@@ -194,10 +199,10 @@ var QueryObserver = class extends Subscribable {
|
|
|
194
199
|
#updateRefetchInterval(nextInterval) {
|
|
195
200
|
this.#clearRefetchInterval();
|
|
196
201
|
this.#currentRefetchInterval = nextInterval;
|
|
197
|
-
if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {
|
|
202
|
+
if (environmentManager.isServer() || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {
|
|
198
203
|
return;
|
|
199
204
|
}
|
|
200
|
-
this.#refetchIntervalId = setInterval(() => {
|
|
205
|
+
this.#refetchIntervalId = timeoutManager.setInterval(() => {
|
|
201
206
|
if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {
|
|
202
207
|
this.#executeFetch();
|
|
203
208
|
}
|
|
@@ -209,13 +214,13 @@ var QueryObserver = class extends Subscribable {
|
|
|
209
214
|
}
|
|
210
215
|
#clearStaleTimeout() {
|
|
211
216
|
if (this.#staleTimeoutId) {
|
|
212
|
-
clearTimeout(this.#staleTimeoutId);
|
|
217
|
+
timeoutManager.clearTimeout(this.#staleTimeoutId);
|
|
213
218
|
this.#staleTimeoutId = void 0;
|
|
214
219
|
}
|
|
215
220
|
}
|
|
216
221
|
#clearRefetchInterval() {
|
|
217
222
|
if (this.#refetchIntervalId) {
|
|
218
|
-
clearInterval(this.#refetchIntervalId);
|
|
223
|
+
timeoutManager.clearInterval(this.#refetchIntervalId);
|
|
219
224
|
this.#refetchIntervalId = void 0;
|
|
220
225
|
}
|
|
221
226
|
}
|
|
@@ -310,7 +315,7 @@ var QueryObserver = class extends Subscribable {
|
|
|
310
315
|
failureCount: newState.fetchFailureCount,
|
|
311
316
|
failureReason: newState.fetchFailureReason,
|
|
312
317
|
errorUpdateCount: newState.errorUpdateCount,
|
|
313
|
-
isFetched:
|
|
318
|
+
isFetched: query.isFetched(),
|
|
314
319
|
isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,
|
|
315
320
|
isFetching,
|
|
316
321
|
isRefetching: isFetching && !isPending,
|
|
@@ -325,10 +330,12 @@ var QueryObserver = class extends Subscribable {
|
|
|
325
330
|
};
|
|
326
331
|
const nextResult = result;
|
|
327
332
|
if (this.options.experimental_prefetchInRender) {
|
|
333
|
+
const hasResultData = nextResult.data !== void 0;
|
|
334
|
+
const isErrorWithoutData = nextResult.status === "error" && !hasResultData;
|
|
328
335
|
const finalizeThenableIfPossible = (thenable) => {
|
|
329
|
-
if (
|
|
336
|
+
if (isErrorWithoutData) {
|
|
330
337
|
thenable.reject(nextResult.error);
|
|
331
|
-
} else if (
|
|
338
|
+
} else if (hasResultData) {
|
|
332
339
|
thenable.resolve(nextResult.data);
|
|
333
340
|
}
|
|
334
341
|
};
|
|
@@ -344,12 +351,12 @@ var QueryObserver = class extends Subscribable {
|
|
|
344
351
|
}
|
|
345
352
|
break;
|
|
346
353
|
case "fulfilled":
|
|
347
|
-
if (
|
|
354
|
+
if (isErrorWithoutData || nextResult.data !== prevThenable.value) {
|
|
348
355
|
recreateThenable();
|
|
349
356
|
}
|
|
350
357
|
break;
|
|
351
358
|
case "rejected":
|
|
352
|
-
if (
|
|
359
|
+
if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {
|
|
353
360
|
recreateThenable();
|
|
354
361
|
}
|
|
355
362
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryObserver.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/queryObserver.js"],"sourcesContent":["// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\" && !this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const finalizeThenableIfPossible = (thenable) => {\n if (nextResult.status === \"error\") {\n thenable.reject(nextResult.error);\n } else if (nextResult.data !== void 0) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (nextResult.status === \"error\" || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (nextResult.status !== \"error\" || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"queryObserver.js","sources":["../../../../../../node_modules/@tanstack/query-core/build/modern/queryObserver.js"],"sourcesContent":["// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (environmentManager.isServer() || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (environmentManager.isServer() || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: query.isFetched(),\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|