@buoy-gg/react-query 2.1.9 → 2.1.11
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/lib/commonjs/react-query/components/ReactQueryDevToolsModal.js +18 -15
- package/lib/commonjs/react-query/components/query-browser/MutationButton.js +8 -13
- package/lib/commonjs/react-query/components/query-browser/QueryRow.js +9 -25
- package/lib/module/react-query/components/ReactQueryDevToolsModal.js +18 -15
- package/lib/module/react-query/components/query-browser/MutationButton.js +9 -14
- package/lib/module/react-query/components/query-browser/QueryRow.js +10 -26
- package/lib/typescript/react-query/components/ReactQueryDevToolsModal.d.ts.map +1 -1
- package/lib/typescript/react-query/components/query-browser/MutationButton.d.ts.map +1 -1
- package/lib/typescript/react-query/components/query-browser/QueryRow.d.ts.map +1 -1
- package/package.json +11 -10
- package/LICENSE +0 -58
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ReactQueryDevToolsModal = ReactQueryDevToolsModal;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactQuery = require("@tanstack/react-query");
|
|
9
|
+
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
9
10
|
var _ReactQueryModal = require("./modals/ReactQueryModal");
|
|
10
11
|
var _reactQueryEventStore = require("../stores/reactQueryEventStore");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -69,20 +70,22 @@ function ReactQueryDevToolsModal({
|
|
|
69
70
|
if (!visible) {
|
|
70
71
|
return null;
|
|
71
72
|
}
|
|
72
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
73
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TickProvider, {
|
|
74
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReactQueryModal.ReactQueryModal, {
|
|
75
|
+
visible: visible,
|
|
76
|
+
selectedQueryKey: selectedQueryKey,
|
|
77
|
+
selectedMutationId: selectedMutationId,
|
|
78
|
+
onQuerySelect: handleQuerySelect,
|
|
79
|
+
onMutationSelect: handleMutationSelect,
|
|
80
|
+
onClose: handleClose,
|
|
81
|
+
onMinimize: onMinimize,
|
|
82
|
+
activeFilter: activeFilter,
|
|
83
|
+
onFilterChange: handleFilterChange,
|
|
84
|
+
activeTab: activeTab,
|
|
85
|
+
onTabChange: handleTabChange,
|
|
86
|
+
searchText: searchText,
|
|
87
|
+
onSearchChange: handleSearchChange,
|
|
88
|
+
enableSharedModalDimensions: enableSharedModalDimensions
|
|
89
|
+
})
|
|
87
90
|
});
|
|
88
91
|
}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = MutationButton;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _svgs = require("./svgs");
|
|
9
|
-
var _formatRelativeTime = require("../../utils/formatRelativeTime");
|
|
10
9
|
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
11
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
11
|
const getMutationText = mutation => {
|
|
@@ -24,24 +23,20 @@ function MutationButton({
|
|
|
24
23
|
}) {
|
|
25
24
|
const submittedAt = new Date(mutation.state.submittedAt).toLocaleTimeString();
|
|
26
25
|
|
|
27
|
-
// Get
|
|
28
|
-
const
|
|
26
|
+
// Get the best available timestamp for this mutation
|
|
27
|
+
const bestTimestamp = (() => {
|
|
29
28
|
if (mutation.state.submittedAt && mutation.state.submittedAt > 0) {
|
|
30
|
-
return
|
|
29
|
+
return mutation.state.submittedAt;
|
|
31
30
|
}
|
|
32
|
-
|
|
33
31
|
// @ts-ignore - exploring state fields for debugging
|
|
34
32
|
const stateAny = mutation.state;
|
|
35
|
-
|
|
36
|
-
// Try other timestamp fields
|
|
37
33
|
if (stateAny.updatedAt && stateAny.updatedAt > 0) {
|
|
38
|
-
return
|
|
34
|
+
return stateAny.updatedAt;
|
|
39
35
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
const lastUpdated = getTimestamp();
|
|
36
|
+
return null;
|
|
37
|
+
})();
|
|
38
|
+
const relativeTime = (0, _sharedUi.useRelativeTime)(bestTimestamp);
|
|
39
|
+
const lastUpdated = relativeTime || `N/A (${mutation.state.submittedAt || 0})`;
|
|
45
40
|
const getStatusInfo = () => {
|
|
46
41
|
if (mutation.state.isPaused) {
|
|
47
42
|
return {
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _getQueryStatusLabel = require("../../utils/getQueryStatusLabel");
|
|
8
|
-
var _formatRelativeTime = require("../../utils/formatRelativeTime");
|
|
9
8
|
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
10
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
10
|
const getQueryText = query => {
|
|
@@ -48,36 +47,21 @@ const QueryRow = ({
|
|
|
48
47
|
const isDisabled = query.isDisabled();
|
|
49
48
|
const queryHash = getQueryText(query);
|
|
50
49
|
|
|
51
|
-
// Get
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
if (isDisabled) {
|
|
55
|
-
return "Disabled";
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Primary: dataUpdatedAt (when data was last fetched/updated)
|
|
50
|
+
// Get the best available timestamp for this query
|
|
51
|
+
const bestTimestamp = (() => {
|
|
52
|
+
if (isDisabled) return null;
|
|
59
53
|
if (query.state.dataUpdatedAt && query.state.dataUpdatedAt > 0) {
|
|
60
|
-
return
|
|
54
|
+
return query.state.dataUpdatedAt;
|
|
61
55
|
}
|
|
62
|
-
|
|
63
|
-
// Fallback: Check other potential timestamp fields
|
|
64
56
|
// @ts-ignore - exploring state fields for debugging
|
|
65
57
|
const stateAny = query.state;
|
|
66
|
-
|
|
67
|
-
// Try fetchedAt or other common timestamp fields
|
|
68
58
|
if (stateAny.fetchedAt && stateAny.fetchedAt > 0) {
|
|
69
|
-
return
|
|
59
|
+
return stateAny.fetchedAt;
|
|
70
60
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// Debug fallback - show what we have
|
|
78
|
-
return `N/A (${query.state.dataUpdatedAt || 0})`;
|
|
79
|
-
};
|
|
80
|
-
const lastUpdated = getTimestamp();
|
|
61
|
+
return null;
|
|
62
|
+
})();
|
|
63
|
+
const relativeTime = (0, _sharedUi.useRelativeTime)(bestTimestamp);
|
|
64
|
+
const lastUpdated = isDisabled ? "Disabled" : relativeTime || (query.state.dataUpdatedAt === 0 ? "Not fetched" : `N/A (${query.state.dataUpdatedAt || 0})`);
|
|
81
65
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.CompactRow, {
|
|
82
66
|
statusDotColor: getStatusHexColor(status),
|
|
83
67
|
statusLabel: status.charAt(0).toUpperCase() + status.slice(1),
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useState, useEffect } from "react";
|
|
4
4
|
import { useQueryClient } from "@tanstack/react-query";
|
|
5
|
+
import { TickProvider } from "@buoy-gg/shared-ui";
|
|
5
6
|
import { ReactQueryModal } from "./modals/ReactQueryModal";
|
|
6
7
|
import { reactQueryEventStore } from "../stores/reactQueryEventStore";
|
|
7
8
|
|
|
@@ -65,20 +66,22 @@ export function ReactQueryDevToolsModal({
|
|
|
65
66
|
if (!visible) {
|
|
66
67
|
return null;
|
|
67
68
|
}
|
|
68
|
-
return /*#__PURE__*/_jsx(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
69
|
+
return /*#__PURE__*/_jsx(TickProvider, {
|
|
70
|
+
children: /*#__PURE__*/_jsx(ReactQueryModal, {
|
|
71
|
+
visible: visible,
|
|
72
|
+
selectedQueryKey: selectedQueryKey,
|
|
73
|
+
selectedMutationId: selectedMutationId,
|
|
74
|
+
onQuerySelect: handleQuerySelect,
|
|
75
|
+
onMutationSelect: handleMutationSelect,
|
|
76
|
+
onClose: handleClose,
|
|
77
|
+
onMinimize: onMinimize,
|
|
78
|
+
activeFilter: activeFilter,
|
|
79
|
+
onFilterChange: handleFilterChange,
|
|
80
|
+
activeTab: activeTab,
|
|
81
|
+
onTabChange: handleTabChange,
|
|
82
|
+
searchText: searchText,
|
|
83
|
+
onSearchChange: handleSearchChange,
|
|
84
|
+
enableSharedModalDimensions: enableSharedModalDimensions
|
|
85
|
+
})
|
|
83
86
|
});
|
|
84
87
|
}
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { TouchableOpacity, Text, View, StyleSheet } from "react-native";
|
|
4
4
|
import { CheckCircle, LoadingCircle, PauseCircle, XCircle } from "./svgs";
|
|
5
|
-
import {
|
|
6
|
-
import { buoyColors } from "@buoy-gg/shared-ui";
|
|
5
|
+
import { buoyColors, useRelativeTime } from "@buoy-gg/shared-ui";
|
|
7
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
7
|
const getMutationText = mutation => {
|
|
9
8
|
if (!mutation.options.mutationKey) return "Anonymous Mutation";
|
|
@@ -20,24 +19,20 @@ export default function MutationButton({
|
|
|
20
19
|
}) {
|
|
21
20
|
const submittedAt = new Date(mutation.state.submittedAt).toLocaleTimeString();
|
|
22
21
|
|
|
23
|
-
// Get
|
|
24
|
-
const
|
|
22
|
+
// Get the best available timestamp for this mutation
|
|
23
|
+
const bestTimestamp = (() => {
|
|
25
24
|
if (mutation.state.submittedAt && mutation.state.submittedAt > 0) {
|
|
26
|
-
return
|
|
25
|
+
return mutation.state.submittedAt;
|
|
27
26
|
}
|
|
28
|
-
|
|
29
27
|
// @ts-ignore - exploring state fields for debugging
|
|
30
28
|
const stateAny = mutation.state;
|
|
31
|
-
|
|
32
|
-
// Try other timestamp fields
|
|
33
29
|
if (stateAny.updatedAt && stateAny.updatedAt > 0) {
|
|
34
|
-
return
|
|
30
|
+
return stateAny.updatedAt;
|
|
35
31
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
const lastUpdated = getTimestamp();
|
|
32
|
+
return null;
|
|
33
|
+
})();
|
|
34
|
+
const relativeTime = useRelativeTime(bestTimestamp);
|
|
35
|
+
const lastUpdated = relativeTime || `N/A (${mutation.state.submittedAt || 0})`;
|
|
41
36
|
const getStatusInfo = () => {
|
|
42
37
|
if (mutation.state.isPaused) {
|
|
43
38
|
return {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { getQueryStatusLabel } from "../../utils/getQueryStatusLabel";
|
|
4
|
-
import {
|
|
5
|
-
import { CompactRow, buoyColors } from "@buoy-gg/shared-ui";
|
|
4
|
+
import { CompactRow, buoyColors, useRelativeTime } from "@buoy-gg/shared-ui";
|
|
6
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
6
|
const getQueryText = query => {
|
|
8
7
|
if (!query?.queryKey) return "Unknown Query";
|
|
@@ -44,36 +43,21 @@ const QueryRow = ({
|
|
|
44
43
|
const isDisabled = query.isDisabled();
|
|
45
44
|
const queryHash = getQueryText(query);
|
|
46
45
|
|
|
47
|
-
// Get
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
if (isDisabled) {
|
|
51
|
-
return "Disabled";
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Primary: dataUpdatedAt (when data was last fetched/updated)
|
|
46
|
+
// Get the best available timestamp for this query
|
|
47
|
+
const bestTimestamp = (() => {
|
|
48
|
+
if (isDisabled) return null;
|
|
55
49
|
if (query.state.dataUpdatedAt && query.state.dataUpdatedAt > 0) {
|
|
56
|
-
return
|
|
50
|
+
return query.state.dataUpdatedAt;
|
|
57
51
|
}
|
|
58
|
-
|
|
59
|
-
// Fallback: Check other potential timestamp fields
|
|
60
52
|
// @ts-ignore - exploring state fields for debugging
|
|
61
53
|
const stateAny = query.state;
|
|
62
|
-
|
|
63
|
-
// Try fetchedAt or other common timestamp fields
|
|
64
54
|
if (stateAny.fetchedAt && stateAny.fetchedAt > 0) {
|
|
65
|
-
return
|
|
55
|
+
return stateAny.fetchedAt;
|
|
66
56
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Debug fallback - show what we have
|
|
74
|
-
return `N/A (${query.state.dataUpdatedAt || 0})`;
|
|
75
|
-
};
|
|
76
|
-
const lastUpdated = getTimestamp();
|
|
57
|
+
return null;
|
|
58
|
+
})();
|
|
59
|
+
const relativeTime = useRelativeTime(bestTimestamp);
|
|
60
|
+
const lastUpdated = isDisabled ? "Disabled" : relativeTime || (query.state.dataUpdatedAt === 0 ? "Not fetched" : `N/A (${query.state.dataUpdatedAt || 0})`);
|
|
77
61
|
return /*#__PURE__*/_jsx(CompactRow, {
|
|
78
62
|
statusDotColor: getStatusHexColor(status),
|
|
79
63
|
statusLabel: status.charAt(0).toUpperCase() + status.slice(1),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactQueryDevToolsModal.d.ts","sourceRoot":"","sources":["../../../../src/react-query/components/ReactQueryDevToolsModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReactQueryDevToolsModal.d.ts","sourceRoot":"","sources":["../../../../src/react-query/components/ReactQueryDevToolsModal.tsx"],"names":[],"mappings":"AAMA,oFAAoF;AACpF,MAAM,WAAW,4BAA4B;IAC3C,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAQD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,UAAU,EACV,2BAAkC,GACnC,EAAE,4BAA4B,sCAsF9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutationButton.d.ts","sourceRoot":"","sources":["../../../../../src/react-query/components/query-browser/MutationButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"MutationButton.d.ts","sourceRoot":"","sources":["../../../../../src/react-query/components/query-browser/MutationButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAkBjD,UAAU,KAAK;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CACjC,KAAK,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAC,CAC3C,CAAC;IACF,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AACD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,QAAQ,EACR,mBAAmB,EACnB,QAAQ,GACT,EAAE,KAAK,+BAwFP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryRow.d.ts","sourceRoot":"","sources":["../../../../../src/react-query/components/query-browser/QueryRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryRow.d.ts","sourceRoot":"","sources":["../../../../../src/react-query/components/query-browser/QueryRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAiB9C,UAAU,aAAa;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA2DrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/react-query",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.11",
|
|
4
4
|
"description": "react-query package",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -25,9 +25,16 @@
|
|
|
25
25
|
"lib"
|
|
26
26
|
],
|
|
27
27
|
"sideEffects": false,
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "bob build",
|
|
30
|
+
"typecheck": "tsc --noEmit",
|
|
31
|
+
"prepublishOnly": "bob build",
|
|
32
|
+
"clean": "rimraf lib",
|
|
33
|
+
"test": "pnpm run typecheck"
|
|
34
|
+
},
|
|
28
35
|
"dependencies": {
|
|
29
|
-
"@buoy-gg/floating-tools-core": "
|
|
30
|
-
"@buoy-gg/shared-ui": "
|
|
36
|
+
"@buoy-gg/floating-tools-core": "workspace:*",
|
|
37
|
+
"@buoy-gg/shared-ui": "workspace:*"
|
|
31
38
|
},
|
|
32
39
|
"peerDependencies": {
|
|
33
40
|
"@tanstack/react-query": ">=5.0.0",
|
|
@@ -71,11 +78,5 @@
|
|
|
71
78
|
"publishConfig": {
|
|
72
79
|
"access": "public",
|
|
73
80
|
"tag": "latest"
|
|
74
|
-
},
|
|
75
|
-
"scripts": {
|
|
76
|
-
"build": "bob build",
|
|
77
|
-
"typecheck": "tsc --noEmit",
|
|
78
|
-
"clean": "rimraf lib",
|
|
79
|
-
"test": "pnpm run typecheck"
|
|
80
81
|
}
|
|
81
|
-
}
|
|
82
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
PROPRIETARY SOFTWARE LICENSE
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024-present Buoy. All rights reserved.
|
|
4
|
-
|
|
5
|
-
This software and its source code are proprietary and confidential.
|
|
6
|
-
|
|
7
|
-
NOTICE: This is NOT open source software. This software is licensed,
|
|
8
|
-
not sold, and is protected by copyright laws and international treaties.
|
|
9
|
-
|
|
10
|
-
TERMS AND CONDITIONS:
|
|
11
|
-
|
|
12
|
-
1. LICENSE GRANT
|
|
13
|
-
Subject to the terms of this Agreement and payment of applicable fees,
|
|
14
|
-
Buoy grants you a limited, non-exclusive, non-transferable license
|
|
15
|
-
to use the compiled software packages in your applications.
|
|
16
|
-
|
|
17
|
-
2. RESTRICTIONS
|
|
18
|
-
You may NOT:
|
|
19
|
-
- Copy, modify, or distribute the source code
|
|
20
|
-
- Reverse engineer, decompile, or disassemble the software
|
|
21
|
-
- Remove or alter any proprietary notices or labels
|
|
22
|
-
- Sublicense, rent, lease, or lend the software
|
|
23
|
-
- Use the software to create competing products
|
|
24
|
-
- Share access credentials with unauthorized parties
|
|
25
|
-
|
|
26
|
-
3. OWNERSHIP
|
|
27
|
-
React Buoy retains all right, title, and interest in the software,
|
|
28
|
-
including all intellectual property rights. This license does not
|
|
29
|
-
grant you any rights to trademarks or service marks.
|
|
30
|
-
|
|
31
|
-
4. TERMINATION
|
|
32
|
-
This license is effective until terminated. Your rights under this
|
|
33
|
-
license will terminate automatically without notice if you fail to
|
|
34
|
-
comply with any of its terms. Upon termination, you must cease all
|
|
35
|
-
use and destroy all copies of the software.
|
|
36
|
-
|
|
37
|
-
5. DISCLAIMER OF WARRANTIES
|
|
38
|
-
THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
|
|
39
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
40
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
|
|
41
|
-
|
|
42
|
-
6. LIMITATION OF LIABILITY
|
|
43
|
-
IN NO EVENT SHALL BUOY BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
|
|
44
|
-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN
|
|
45
|
-
CONNECTION WITH THIS LICENSE OR THE USE OF THE SOFTWARE.
|
|
46
|
-
|
|
47
|
-
7. GOVERNING LAW
|
|
48
|
-
This Agreement shall be governed by and construed in accordance with
|
|
49
|
-
the laws of the United States, without regard to its conflict of
|
|
50
|
-
law provisions.
|
|
51
|
-
|
|
52
|
-
For licensing inquiries and subscription information:
|
|
53
|
-
- Website: https://buoy.gg
|
|
54
|
-
- Email: AustinLovesWorking@gmail.com
|
|
55
|
-
|
|
56
|
-
Unauthorized reproduction or distribution of this software, or any
|
|
57
|
-
portion of it, may result in severe civil and criminal penalties,
|
|
58
|
-
and will be prosecuted to the maximum extent possible under the law.
|