convex 1.31.1 → 1.31.3
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 +27 -0
- package/dist/browser.bundle.js +93 -4
- package/dist/browser.bundle.js.map +2 -2
- package/dist/cjs/browser/simple_client.js +2 -2
- package/dist/cjs/browser/simple_client.js.map +1 -1
- package/dist/cjs/browser/sync/web_socket_manager.js +90 -1
- package/dist/cjs/browser/sync/web_socket_manager.js.map +2 -2
- package/dist/cjs/bundler/debugBundle.js +3 -1
- package/dist/cjs/bundler/debugBundle.js.map +2 -2
- package/dist/cjs/bundler/index.js +28 -11
- package/dist/cjs/bundler/index.js.map +2 -2
- package/dist/cjs/cli/codegen_templates/component_api.js +37 -53
- package/dist/cjs/cli/codegen_templates/component_api.js.map +2 -2
- package/dist/cjs/cli/codegen_templates/validator_helpers.js +1 -3
- package/dist/cjs/cli/codegen_templates/validator_helpers.js.map +2 -2
- package/dist/cjs/cli/configure.js +4 -4
- package/dist/cjs/cli/configure.js.map +2 -2
- package/dist/cjs/cli/generatedApi.js.map +1 -1
- package/dist/cjs/cli/integration.js +41 -36
- package/dist/cjs/cli/integration.js.map +2 -2
- package/dist/cjs/cli/lib/components/definition/bundle.js +37 -28
- package/dist/cjs/cli/lib/components/definition/bundle.js.map +2 -2
- package/dist/cjs/cli/lib/components.js +28 -26
- package/dist/cjs/cli/lib/components.js.map +2 -2
- package/dist/cjs/cli/lib/config.js +29 -122
- package/dist/cjs/cli/lib/config.js.map +3 -3
- package/dist/cjs/cli/lib/deploymentSelection.js +1 -1
- package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/cjs/cli/lib/usage.js +1 -1
- package/dist/cjs/cli/lib/usage.js.map +2 -2
- package/dist/cjs/cli/lib/workos/platformApi.js +19 -12
- package/dist/cjs/cli/lib/workos/platformApi.js.map +2 -2
- package/dist/cjs/cli/lib/workos/workos.js +24 -6
- package/dist/cjs/cli/lib/workos/workos.js.map +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/server/database.js.map +1 -1
- package/dist/cjs/server/impl/registration_impl.js +12 -12
- package/dist/cjs/server/impl/registration_impl.js.map +1 -1
- package/dist/cjs-types/browser/sync/web_socket_manager.d.ts +13 -0
- package/dist/cjs-types/browser/sync/web_socket_manager.d.ts.map +1 -1
- package/dist/cjs-types/bundler/debugBundle.d.ts +3 -1
- package/dist/cjs-types/bundler/debugBundle.d.ts.map +1 -1
- package/dist/cjs-types/bundler/index.d.ts +11 -1
- package/dist/cjs-types/bundler/index.d.ts.map +1 -1
- package/dist/cjs-types/cli/codegen_templates/component_api.d.ts.map +1 -1
- package/dist/cjs-types/cli/codegen_templates/validator_helpers.d.ts.map +1 -1
- package/dist/cjs-types/cli/configure.d.ts +1 -1
- package/dist/cjs-types/cli/configure.d.ts.map +1 -1
- package/dist/cjs-types/cli/generatedApi.d.ts +62 -4
- package/dist/cjs-types/cli/generatedApi.d.ts.map +1 -1
- package/dist/cjs-types/cli/integration.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/components/definition/bundle.d.ts +9 -1
- package/dist/cjs-types/cli/lib/components/definition/bundle.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/components.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/config.d.ts +4 -12
- package/dist/cjs-types/cli/lib/config.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/usage.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/workos/platformApi.d.ts +2 -2
- package/dist/cjs-types/cli/lib/workos/platformApi.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/workos/workos.d.ts.map +1 -1
- package/dist/cjs-types/index.d.ts +1 -1
- package/dist/cjs-types/server/database.d.ts +4 -4
- package/dist/cjs-types/server/database.d.ts.map +1 -1
- package/dist/cli.bundle.cjs +2331 -1570
- package/dist/cli.bundle.cjs.map +4 -4
- package/dist/esm/browser/simple_client.js +2 -2
- package/dist/esm/browser/simple_client.js.map +1 -1
- package/dist/esm/browser/sync/web_socket_manager.js +90 -1
- package/dist/esm/browser/sync/web_socket_manager.js.map +2 -2
- package/dist/esm/bundler/debugBundle.js +3 -1
- package/dist/esm/bundler/debugBundle.js.map +2 -2
- package/dist/esm/bundler/index.js +28 -11
- package/dist/esm/bundler/index.js.map +2 -2
- package/dist/esm/cli/codegen_templates/component_api.js +37 -53
- package/dist/esm/cli/codegen_templates/component_api.js.map +2 -2
- package/dist/esm/cli/codegen_templates/validator_helpers.js +1 -5
- package/dist/esm/cli/codegen_templates/validator_helpers.js.map +2 -2
- package/dist/esm/cli/configure.js +4 -4
- package/dist/esm/cli/configure.js.map +2 -2
- package/dist/esm/cli/integration.js +41 -36
- package/dist/esm/cli/integration.js.map +2 -2
- package/dist/esm/cli/lib/components/definition/bundle.js +37 -28
- package/dist/esm/cli/lib/components/definition/bundle.js.map +2 -2
- package/dist/esm/cli/lib/components.js +28 -26
- package/dist/esm/cli/lib/components.js.map +2 -2
- package/dist/esm/cli/lib/config.js +29 -123
- package/dist/esm/cli/lib/config.js.map +3 -3
- package/dist/esm/cli/lib/deploymentSelection.js +1 -1
- package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/esm/cli/lib/usage.js +1 -1
- package/dist/esm/cli/lib/usage.js.map +2 -2
- package/dist/esm/cli/lib/workos/platformApi.js +19 -12
- package/dist/esm/cli/lib/workos/platformApi.js.map +2 -2
- package/dist/esm/cli/lib/workos/workos.js +24 -6
- package/dist/esm/cli/lib/workos/workos.js.map +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server/impl/registration_impl.js +12 -12
- package/dist/esm/server/impl/registration_impl.js.map +1 -1
- package/dist/esm-types/browser/sync/web_socket_manager.d.ts +13 -0
- package/dist/esm-types/browser/sync/web_socket_manager.d.ts.map +1 -1
- package/dist/esm-types/bundler/debugBundle.d.ts +3 -1
- package/dist/esm-types/bundler/debugBundle.d.ts.map +1 -1
- package/dist/esm-types/bundler/index.d.ts +11 -1
- package/dist/esm-types/bundler/index.d.ts.map +1 -1
- package/dist/esm-types/cli/codegen_templates/component_api.d.ts.map +1 -1
- package/dist/esm-types/cli/codegen_templates/validator_helpers.d.ts.map +1 -1
- package/dist/esm-types/cli/configure.d.ts +1 -1
- package/dist/esm-types/cli/configure.d.ts.map +1 -1
- package/dist/esm-types/cli/generatedApi.d.ts +62 -4
- package/dist/esm-types/cli/generatedApi.d.ts.map +1 -1
- package/dist/esm-types/cli/integration.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/components/definition/bundle.d.ts +9 -1
- package/dist/esm-types/cli/lib/components/definition/bundle.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/components.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/config.d.ts +4 -12
- package/dist/esm-types/cli/lib/config.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/usage.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/workos/platformApi.d.ts +2 -2
- package/dist/esm-types/cli/lib/workos/platformApi.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/workos/workos.d.ts.map +1 -1
- package/dist/esm-types/index.d.ts +1 -1
- package/dist/esm-types/server/database.d.ts +4 -4
- package/dist/esm-types/server/database.d.ts.map +1 -1
- package/dist/react.bundle.js +91 -2
- package/dist/react.bundle.js.map +2 -2
- package/package.json +12 -12
- package/schemas/convex.schema.json +11 -0
- package/src/browser/sync/web_socket_manager.ts +121 -1
- package/src/bundler/debugBundle.ts +3 -0
- package/src/bundler/index.test.ts +9 -2
- package/src/bundler/index.ts +35 -16
- package/src/cli/codegen_templates/component_api.ts +49 -65
- package/src/cli/codegen_templates/validator_helpers.ts +3 -6
- package/src/cli/configure.ts +9 -5
- package/src/cli/generatedApi.ts +62 -4
- package/src/cli/integration.ts +48 -40
- package/src/cli/lib/components/definition/bundle.ts +42 -32
- package/src/cli/lib/components.ts +32 -27
- package/src/cli/lib/config.ts +45 -162
- package/src/cli/lib/deploymentSelection.ts +4 -1
- package/src/cli/lib/usage.ts +2 -1
- package/src/cli/lib/workos/platformApi.ts +27 -14
- package/src/cli/lib/workos/workos.ts +21 -6
- package/src/index.ts +1 -1
- package/src/server/database.ts +8 -8
- package/src/server/database_api.test.ts +84 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.31.3
|
|
4
|
+
|
|
5
|
+
- `CONVEX_AGENT_MODE=anonymous` can now be used while logged in.
|
|
6
|
+
|
|
7
|
+
- The client will try to reconnect immediately after being offline instead of
|
|
8
|
+
waiting for the scheduled backoff delay.
|
|
9
|
+
|
|
10
|
+
- Optimize bundling during code push, and add `includeSourcesContent` option in
|
|
11
|
+
`convex.json` to configure whether to include source code content in bundled
|
|
12
|
+
sourcemaps.
|
|
13
|
+
|
|
14
|
+
## 1.31.2
|
|
15
|
+
|
|
16
|
+
- Bug fix: the TypeScript types of the new `ctx.db` APIs introduced in 1.31.0
|
|
17
|
+
incorrectly allowed passing IDs with types broader than the table name
|
|
18
|
+
argument (e.g. `db.get("table1", id)` where `id` is
|
|
19
|
+
`Id<"table1"> | Id<"table2">`). This issue is fixed in 1.31.2.
|
|
20
|
+
|
|
21
|
+
## 1.31.1
|
|
22
|
+
|
|
23
|
+
- You can now increase the speed of type checking when using `npx convex dev` by
|
|
24
|
+
enabling the
|
|
25
|
+
[TypeScript native preview](https://devblogs.microsoft.com/typescript/announcing-typescript-native-previews/)
|
|
26
|
+
([TypeScript 7](https://devblogs.microsoft.com/typescript/typescript-native-port/)).
|
|
27
|
+
To do so, add `@typescript/native-preview` as a dev dependency and
|
|
28
|
+
[set `typescriptCompiler: "tsGo"` in `convex.json`](https://docs.convex.dev/production/project-configuration#configuring-the-typescript-compiler).
|
|
29
|
+
|
|
3
30
|
## 1.31.0
|
|
4
31
|
|
|
5
32
|
- `db.get`, `db.patch`, `db.replace`, and `db.delete` now accept a table name as
|
package/dist/browser.bundle.js
CHANGED
|
@@ -28,7 +28,7 @@ var convex = (() => {
|
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
// src/index.ts
|
|
31
|
-
var version = "1.31.
|
|
31
|
+
var version = "1.31.3";
|
|
32
32
|
|
|
33
33
|
// src/values/base64.ts
|
|
34
34
|
var base64_exports = {};
|
|
@@ -1654,6 +1654,7 @@ var convex = (() => {
|
|
|
1654
1654
|
this.onMessage = callbacks.onMessage;
|
|
1655
1655
|
this.onServerDisconnectError = callbacks.onServerDisconnectError;
|
|
1656
1656
|
this.logger = logger;
|
|
1657
|
+
this.setupNetworkListener();
|
|
1657
1658
|
this.connect();
|
|
1658
1659
|
}
|
|
1659
1660
|
socket;
|
|
@@ -1672,6 +1673,11 @@ var convex = (() => {
|
|
|
1672
1673
|
* in ms */
|
|
1673
1674
|
serverInactivityThreshold;
|
|
1674
1675
|
reconnectDueToServerInactivityTimeout;
|
|
1676
|
+
/** Scheduled reconnect state: timeout handle and timing info */
|
|
1677
|
+
scheduledReconnect = null;
|
|
1678
|
+
networkOnlineHandler = null;
|
|
1679
|
+
/** Pending event to send after reconnecting due to network recovery */
|
|
1680
|
+
pendingNetworkRecoveryInfo = null;
|
|
1675
1681
|
uri;
|
|
1676
1682
|
onOpen;
|
|
1677
1683
|
onResume;
|
|
@@ -1686,6 +1692,27 @@ var convex = (() => {
|
|
|
1686
1692
|
);
|
|
1687
1693
|
this.markConnectionStateDirty();
|
|
1688
1694
|
}
|
|
1695
|
+
setupNetworkListener() {
|
|
1696
|
+
if (typeof window === "undefined") {
|
|
1697
|
+
return;
|
|
1698
|
+
}
|
|
1699
|
+
if (this.networkOnlineHandler !== null) {
|
|
1700
|
+
return;
|
|
1701
|
+
}
|
|
1702
|
+
this.networkOnlineHandler = () => {
|
|
1703
|
+
this._logVerbose("network online event detected");
|
|
1704
|
+
this.tryReconnectImmediately();
|
|
1705
|
+
};
|
|
1706
|
+
window.addEventListener("online", this.networkOnlineHandler);
|
|
1707
|
+
this._logVerbose("network online event listener registered");
|
|
1708
|
+
}
|
|
1709
|
+
cleanupNetworkListener() {
|
|
1710
|
+
if (this.networkOnlineHandler && typeof window !== "undefined") {
|
|
1711
|
+
window.removeEventListener("online", this.networkOnlineHandler);
|
|
1712
|
+
this.networkOnlineHandler = null;
|
|
1713
|
+
this._logVerbose("network online event listener removed");
|
|
1714
|
+
}
|
|
1715
|
+
}
|
|
1689
1716
|
assembleTransition(chunk) {
|
|
1690
1717
|
if (chunk.partNumber < 0 || chunk.partNumber >= chunk.totalParts || chunk.totalParts === 0 || this.transitionChunkBuffer && (this.transitionChunkBuffer.totalParts !== chunk.totalParts || this.transitionChunkBuffer.transitionId !== chunk.transitionId)) {
|
|
1691
1718
|
this.transitionChunkBuffer = null;
|
|
@@ -1769,6 +1796,18 @@ var convex = (() => {
|
|
|
1769
1796
|
}
|
|
1770
1797
|
this.connectionCount += 1;
|
|
1771
1798
|
this.lastCloseReason = null;
|
|
1799
|
+
if (this.pendingNetworkRecoveryInfo !== null) {
|
|
1800
|
+
const { timeSavedMs } = this.pendingNetworkRecoveryInfo;
|
|
1801
|
+
this.pendingNetworkRecoveryInfo = null;
|
|
1802
|
+
this.sendMessage({
|
|
1803
|
+
type: "Event",
|
|
1804
|
+
eventType: "NetworkRecoveryReconnect",
|
|
1805
|
+
event: { timeSavedMs }
|
|
1806
|
+
});
|
|
1807
|
+
this.logger.log(
|
|
1808
|
+
`Network recovery reconnect saved ~${Math.round(timeSavedMs / 1e3)}s of waiting`
|
|
1809
|
+
);
|
|
1810
|
+
}
|
|
1772
1811
|
};
|
|
1773
1812
|
ws.onerror = (error) => {
|
|
1774
1813
|
this.transitionChunkBuffer = null;
|
|
@@ -1892,11 +1931,26 @@ var convex = (() => {
|
|
|
1892
1931
|
}, this.serverInactivityThreshold);
|
|
1893
1932
|
}
|
|
1894
1933
|
scheduleReconnect(reason) {
|
|
1934
|
+
if (this.scheduledReconnect) {
|
|
1935
|
+
clearTimeout(this.scheduledReconnect.timeout);
|
|
1936
|
+
this.scheduledReconnect = null;
|
|
1937
|
+
}
|
|
1895
1938
|
this.socket = { state: "disconnected" };
|
|
1896
1939
|
const backoff = this.nextBackoff(reason);
|
|
1897
1940
|
this.markConnectionStateDirty();
|
|
1898
1941
|
this.logger.log(`Attempting reconnect in ${Math.round(backoff)}ms`);
|
|
1899
|
-
|
|
1942
|
+
const scheduledAt = monotonicMillis();
|
|
1943
|
+
const timeoutId = setTimeout(() => {
|
|
1944
|
+
if (this.scheduledReconnect?.timeout === timeoutId) {
|
|
1945
|
+
this.scheduledReconnect = null;
|
|
1946
|
+
this.connect();
|
|
1947
|
+
}
|
|
1948
|
+
}, backoff);
|
|
1949
|
+
this.scheduledReconnect = {
|
|
1950
|
+
timeout: timeoutId,
|
|
1951
|
+
scheduledAt,
|
|
1952
|
+
backoffMs: backoff
|
|
1953
|
+
};
|
|
1900
1954
|
}
|
|
1901
1955
|
/**
|
|
1902
1956
|
* Close the WebSocket and schedule a reconnect.
|
|
@@ -1980,6 +2034,11 @@ var convex = (() => {
|
|
|
1980
2034
|
if (this.reconnectDueToServerInactivityTimeout) {
|
|
1981
2035
|
clearTimeout(this.reconnectDueToServerInactivityTimeout);
|
|
1982
2036
|
}
|
|
2037
|
+
if (this.scheduledReconnect) {
|
|
2038
|
+
clearTimeout(this.scheduledReconnect.timeout);
|
|
2039
|
+
this.scheduledReconnect = null;
|
|
2040
|
+
}
|
|
2041
|
+
this.cleanupNetworkListener();
|
|
1983
2042
|
switch (this.socket.state) {
|
|
1984
2043
|
case "terminated":
|
|
1985
2044
|
case "stopped":
|
|
@@ -2006,6 +2065,7 @@ var convex = (() => {
|
|
|
2006
2065
|
case "stopped":
|
|
2007
2066
|
case "disconnected":
|
|
2008
2067
|
case "ready": {
|
|
2068
|
+
this.cleanupNetworkListener();
|
|
2009
2069
|
const result = this.close();
|
|
2010
2070
|
this.socket = { state: "stopped" };
|
|
2011
2071
|
return result;
|
|
@@ -2034,6 +2094,7 @@ var convex = (() => {
|
|
|
2034
2094
|
this.socket;
|
|
2035
2095
|
}
|
|
2036
2096
|
}
|
|
2097
|
+
this.setupNetworkListener();
|
|
2037
2098
|
this.connect();
|
|
2038
2099
|
}
|
|
2039
2100
|
pause() {
|
|
@@ -2053,6 +2114,34 @@ var convex = (() => {
|
|
|
2053
2114
|
}
|
|
2054
2115
|
}
|
|
2055
2116
|
}
|
|
2117
|
+
/**
|
|
2118
|
+
* Try to reconnect immediately, canceling any scheduled reconnect.
|
|
2119
|
+
* This is useful when detecting network recovery.
|
|
2120
|
+
* Only takes action if we're in disconnected state (waiting to reconnect).
|
|
2121
|
+
*/
|
|
2122
|
+
tryReconnectImmediately() {
|
|
2123
|
+
this._logVerbose("tryReconnectImmediately called");
|
|
2124
|
+
if (this.socket.state !== "disconnected") {
|
|
2125
|
+
this._logVerbose(
|
|
2126
|
+
`tryReconnectImmediately called but socket state is ${this.socket.state}, no action taken`
|
|
2127
|
+
);
|
|
2128
|
+
return;
|
|
2129
|
+
}
|
|
2130
|
+
let timeSavedMs = null;
|
|
2131
|
+
if (this.scheduledReconnect) {
|
|
2132
|
+
const elapsed = monotonicMillis() - this.scheduledReconnect.scheduledAt;
|
|
2133
|
+
timeSavedMs = Math.max(0, this.scheduledReconnect.backoffMs - elapsed);
|
|
2134
|
+
this._logVerbose(
|
|
2135
|
+
`would have waited ${Math.round(timeSavedMs)}ms more (backoff was ${Math.round(this.scheduledReconnect.backoffMs)}ms, elapsed ${Math.round(elapsed)}ms)`
|
|
2136
|
+
);
|
|
2137
|
+
clearTimeout(this.scheduledReconnect.timeout);
|
|
2138
|
+
this.scheduledReconnect = null;
|
|
2139
|
+
this._logVerbose("canceled scheduled reconnect");
|
|
2140
|
+
}
|
|
2141
|
+
this.logger.log("Network recovery detected, reconnecting immediately");
|
|
2142
|
+
this.pendingNetworkRecoveryInfo = timeSavedMs !== null ? { timeSavedMs } : null;
|
|
2143
|
+
this.connect();
|
|
2144
|
+
}
|
|
2056
2145
|
/**
|
|
2057
2146
|
* Resume the state machine if previously paused.
|
|
2058
2147
|
*/
|
|
@@ -3852,8 +3941,8 @@ var convex = (() => {
|
|
|
3852
3941
|
return this.client.hasLocalQueryResultByToken(queryToken);
|
|
3853
3942
|
}
|
|
3854
3943
|
createDisabledUnsubscribe() {
|
|
3855
|
-
const disabledUnsubscribe = () => {
|
|
3856
|
-
};
|
|
3944
|
+
const disabledUnsubscribe = (() => {
|
|
3945
|
+
});
|
|
3857
3946
|
const unsubscribeProps = {
|
|
3858
3947
|
unsubscribe: disabledUnsubscribe,
|
|
3859
3948
|
getCurrentValue: () => void 0,
|