@instantdb/react 0.22.74-experimental.reactivity-bug.19831240023.1 → 0.22.74-experimental.test-type-tests.19832232884.1
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/dist/commonjs/Cursors.js +1 -1
- package/dist/commonjs/Cursors.js.map +1 -1
- package/dist/commonjs/InstantReactWebDatabase.d.ts +1 -1
- package/dist/commonjs/InstantReactWebDatabase.d.ts.map +1 -1
- package/dist/commonjs/InstantReactWebDatabase.js.map +1 -1
- package/dist/commonjs/__types__/typeUtils.d.ts +20 -0
- package/dist/commonjs/__types__/typeUtils.d.ts.map +1 -0
- package/dist/commonjs/__types__/typeUtils.js +5 -0
- package/dist/commonjs/__types__/typeUtils.js.map +1 -0
- package/dist/commonjs/__types__/typesTests.d.ts +2 -0
- package/dist/commonjs/__types__/typesTests.d.ts.map +1 -0
- package/dist/commonjs/__types__/typesTests.js +53 -0
- package/dist/commonjs/__types__/typesTests.js.map +1 -0
- package/dist/commonjs/init.d.ts +3 -1
- package/dist/commonjs/init.d.ts.map +1 -1
- package/dist/commonjs/init.js +7 -2
- package/dist/commonjs/init.js.map +1 -1
- package/dist/esm/Cursors.js +1 -1
- package/dist/esm/Cursors.js.map +1 -1
- package/dist/esm/InstantReactWebDatabase.d.ts +1 -1
- package/dist/esm/InstantReactWebDatabase.d.ts.map +1 -1
- package/dist/esm/InstantReactWebDatabase.js.map +1 -1
- package/dist/esm/__types__/typeUtils.d.ts +20 -0
- package/dist/esm/__types__/typeUtils.d.ts.map +1 -0
- package/dist/esm/__types__/typeUtils.js +4 -0
- package/dist/esm/__types__/typeUtils.js.map +1 -0
- package/dist/esm/__types__/typesTests.d.ts +2 -0
- package/dist/esm/__types__/typesTests.d.ts.map +1 -0
- package/dist/esm/__types__/typesTests.js +51 -0
- package/dist/esm/__types__/typesTests.js.map +1 -0
- package/dist/esm/init.d.ts +3 -1
- package/dist/esm/init.d.ts.map +1 -1
- package/dist/esm/init.js +7 -2
- package/dist/esm/init.js.map +1 -1
- package/dist/standalone/index.js +26 -16
- package/dist/standalone/index.umd.cjs +10 -10
- package/package.json +6 -4
- package/src/Cursors.tsx +2 -2
- package/src/InstantReactWebDatabase.ts +4 -3
- package/src/__types__/typeUtils.ts +39 -0
- package/src/__types__/typesTests.ts +86 -0
- package/src/init.ts +17 -8
- package/tsconfig.json +3 -2
- package/tsconfig.test.json +5 -0
package/dist/commonjs/Cursors.js
CHANGED
|
@@ -69,7 +69,7 @@ function Cursors({ as = 'div', spaceId: _spaceId, room, className, style, userCu
|
|
|
69
69
|
return null;
|
|
70
70
|
return ((0, jsx_runtime_1.jsx)("div", { style: Object.assign(Object.assign({}, absStyles), { transform: `translate(${cursor.xPercent}%, ${cursor.yPercent}%)`, transformOrigin: '0 0', transition: 'transform 100ms' }), children: renderCursor ? (renderCursor({
|
|
71
71
|
color: cursor.color,
|
|
72
|
-
presence: fullPresence.peers[id],
|
|
72
|
+
presence: fullPresence === null || fullPresence === void 0 ? void 0 : fullPresence.peers[id],
|
|
73
73
|
})) : ((0, jsx_runtime_1.jsx)(Cursor, Object.assign({}, cursor))) }, id));
|
|
74
74
|
}) }, spaceId),
|
|
75
75
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cursors.js","sourceRoot":"","sources":["../../src/Cursors.tsx"],"names":[],"mappings":";;AAUA,0BAiJC;;AA3JD,iCAMe;AAIf,SAAgB,OAAO,CAGrB,EACA,EAAE,GAAG,KAAK,EACV,OAAO,EAAE,QAAQ,EACjB,IAAI,EACJ,SAAS,EACT,KAAK,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,MAAM,GAeP;IACC,MAAM,OAAO,GACX,QAAQ,IAAI,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;IAEvE,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"Cursors.js","sourceRoot":"","sources":["../../src/Cursors.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createElement,\n type ReactNode,\n type MouseEvent,\n type TouchEvent,\n type CSSProperties,\n} from 'react';\nimport { type InstantReactRoom } from '@instantdb/react-common';\nimport type { RoomSchemaShape } from '@instantdb/core';\n\nexport function Cursors<\n RoomSchema extends RoomSchemaShape,\n RoomType extends keyof RoomSchema,\n>({\n as = 'div',\n spaceId: _spaceId,\n room,\n className,\n style,\n userCursorColor,\n children,\n renderCursor,\n propagate,\n zIndex,\n}: {\n spaceId?: string;\n room: InstantReactRoom<any, RoomSchema, RoomType>;\n style?: React.CSSProperties;\n userCursorColor?: string;\n as?: any;\n className?: string;\n children?: ReactNode;\n renderCursor?: (props: {\n color: string;\n presence: RoomSchema[RoomType]['presence'];\n }) => ReactNode;\n propagate?: boolean;\n zIndex?: number;\n}) {\n const spaceId =\n _spaceId || `cursors-space-default--${String(room.type)}-${room.id}`;\n\n const cursorsPresence = room.usePresence({\n keys: [spaceId] as (keyof RoomSchema[RoomType]['presence'])[],\n });\n\n const fullPresence = room._core._reactor.getPresence(room.type, room.id);\n\n function publishCursor(\n rect: DOMRect,\n touch: { clientX: number; clientY: number },\n ) {\n const x = touch.clientX;\n const y = touch.clientY;\n const xPercent = ((x - rect.left) / rect.width) * 100;\n const yPercent = ((y - rect.top) / rect.height) * 100;\n cursorsPresence.publishPresence({\n [spaceId]: {\n x,\n y,\n xPercent,\n yPercent,\n color: userCursorColor,\n },\n } as RoomSchema[RoomType]['presence']);\n }\n\n function onMouseMove(e: MouseEvent) {\n if (!propagate) {\n e.stopPropagation();\n }\n\n const rect = e.currentTarget.getBoundingClientRect();\n publishCursor(rect, e);\n }\n\n function onMouseOut(e: MouseEvent) {\n cursorsPresence.publishPresence({\n [spaceId]: undefined,\n } as RoomSchema[RoomType]['presence']);\n }\n\n function onTouchMove(e: TouchEvent) {\n if (e.touches.length !== 1) {\n return;\n }\n\n const touch = e.touches[0];\n\n if (touch.target instanceof Element) {\n if (!propagate) {\n e.stopPropagation();\n }\n const rect = touch.target.getBoundingClientRect();\n publishCursor(rect, touch);\n }\n }\n\n function onTouchEnd(e: TouchEvent) {\n cursorsPresence.publishPresence({\n [spaceId]: undefined,\n } as RoomSchema[RoomType]['presence']);\n }\n\n return createElement(\n as,\n {\n onMouseMove,\n onMouseOut,\n onTouchMove,\n onTouchEnd,\n className,\n style: {\n position: 'relative',\n ...style,\n },\n },\n [\n children,\n <div\n key={spaceId}\n style={{\n ...absStyles,\n ...inertStyles,\n zIndex: zIndex !== undefined ? zIndex : defaultZ,\n }}\n >\n {Object.entries(cursorsPresence.peers).map(([id, presence]) => {\n const cursor = presence[spaceId];\n if (!cursor) return null;\n\n return (\n <div\n key={id}\n style={{\n ...absStyles,\n transform: `translate(${cursor.xPercent}%, ${cursor.yPercent}%)`,\n transformOrigin: '0 0',\n transition: 'transform 100ms',\n }}\n >\n {renderCursor ? (\n renderCursor({\n color: cursor.color,\n presence: fullPresence?.peers[id],\n })\n ) : (\n <Cursor {...cursor} />\n )}\n </div>\n );\n })}\n </div>,\n ],\n );\n}\n\nfunction Cursor({ color }: { color: string }) {\n const size = 35;\n const fill = color || 'black';\n\n return (\n <svg\n style={{ height: size, width: size }}\n viewBox={`0 0 ${size} ${size}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g\n fill=\"rgba(0,0,0,.2)\"\n transform=\"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)\"\n >\n <path d=\"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z\" />\n <path d=\"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z\" />\n </g>\n <g\n fill=\"white\"\n transform=\"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)\"\n >\n <path d=\"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z\" />\n <path d=\"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z\" />\n </g>\n <g\n fill={fill}\n transform=\"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)\"\n >\n <path d=\"m19.751 24.4155-1.844.774-3.1-7.374 1.841-.775z\" />\n <path d=\"m13 10.814v11.188l2.969-2.866.428-.139h4.768z\" />\n </g>\n </svg>\n );\n}\n\nconst absStyles: CSSProperties = {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n};\n\nconst inertStyles: CSSProperties = {\n overflow: 'hidden',\n pointerEvents: 'none',\n userSelect: 'none',\n};\n\nconst defaultZ = 99999;\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { InstantConfig, InstantSchemaDef } from '@instantdb/core';
|
|
2
2
|
import { InstantReactAbstractDatabase } from '@instantdb/react-common';
|
|
3
3
|
import { EventSource } from 'eventsource';
|
|
4
|
-
export default class InstantReactWebDatabase<Schema extends InstantSchemaDef<any, any, any>, Config extends InstantConfig<Schema,
|
|
4
|
+
export default class InstantReactWebDatabase<Schema extends InstantSchemaDef<any, any, any>, UseDates extends boolean = false, Config extends InstantConfig<Schema, UseDates> = InstantConfig<Schema, UseDates>> extends InstantReactAbstractDatabase<Schema, UseDates, Config> {
|
|
5
5
|
static EventSourceImpl: typeof EventSource;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=InstantReactWebDatabase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstantReactWebDatabase.d.ts","sourceRoot":"","sources":["../../src/InstantReactWebDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,uBAAuB,CAC1C,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9C,MAAM,SAAS,aAAa,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"InstantReactWebDatabase.d.ts","sourceRoot":"","sources":["../../src/InstantReactWebDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,uBAAuB,CAC1C,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9C,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,MAAM,SAAS,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,aAAa,CAC5D,MAAM,EACN,QAAQ,CACT,CACD,SAAQ,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;IAC9D,MAAM,CAAC,eAAe,qBAAe;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstantReactWebDatabase.js","sourceRoot":"","sources":["../../src/InstantReactWebDatabase.ts"],"names":[],"mappings":";;AACA,0DAAuE;AACvE,6CAA0C;AAE1C,MAAqB,
|
|
1
|
+
{"version":3,"file":"InstantReactWebDatabase.js","sourceRoot":"","sources":["../../src/InstantReactWebDatabase.ts"],"names":[],"mappings":";;AACA,0DAAuE;AACvE,6CAA0C;AAE1C,MAAqB,uBAOnB,SAAQ,2CAAsD;;AACvD,uCAAe,GAAG,yBAAW,CAAC;kBARlB,uBAAuB","sourcesContent":["import type { InstantConfig, InstantSchemaDef } from '@instantdb/core';\nimport { InstantReactAbstractDatabase } from '@instantdb/react-common';\nimport { EventSource } from 'eventsource';\n\nexport default class InstantReactWebDatabase<\n Schema extends InstantSchemaDef<any, any, any>,\n UseDates extends boolean = false,\n Config extends InstantConfig<Schema, UseDates> = InstantConfig<\n Schema,\n UseDates\n >,\n> extends InstantReactAbstractDatabase<Schema, UseDates, Config> {\n static EventSourceImpl = EventSource;\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type Expect<T extends true> = T;
|
|
2
|
+
export type ExpectTrue<T extends true> = T;
|
|
3
|
+
export type ExpectFalse<T extends false> = T;
|
|
4
|
+
export type IsTrue<T extends true> = T;
|
|
5
|
+
export type IsFalse<T extends false> = T;
|
|
6
|
+
export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
|
|
7
|
+
export type NotEqual<X, Y> = true extends Equal<X, Y> ? false : true;
|
|
8
|
+
export type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
9
|
+
export type NotAny<T> = true extends IsAny<T> ? false : true;
|
|
10
|
+
export type Debug<T> = {
|
|
11
|
+
[K in keyof T]: T[K];
|
|
12
|
+
};
|
|
13
|
+
export type MergeInsertions<T> = T extends object ? {
|
|
14
|
+
[K in keyof T]: MergeInsertions<T[K]>;
|
|
15
|
+
} : T;
|
|
16
|
+
export type Alike<X, Y> = Equal<MergeInsertions<X>, MergeInsertions<Y>>;
|
|
17
|
+
export type ExpectExtends<VALUE, EXPECTED> = EXPECTED extends VALUE ? true : false;
|
|
18
|
+
export type ExpectValidArgs<FUNC extends (...args: any[]) => any, ARGS extends any[]> = ARGS extends Parameters<FUNC> ? true : false;
|
|
19
|
+
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
20
|
+
//# sourceMappingURL=typeUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../../../src/__types__/typeUtils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AACvC,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AAC3C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;AAC7C,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AACvC,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;AAEzC,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IACpB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAC/D,IAAI,GACJ,KAAK,CAAC;AACZ,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAGrE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACtD,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAE7D,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAChD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC7C;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACzC,CAAC,CAAC;AAEN,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,aAAa,CAAC,KAAK,EAAE,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAC/D,IAAI,GACJ,KAAK,CAAC;AACV,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACpC,IAAI,SAAS,GAAG,EAAE,IAChB,IAAI,SAAS,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAEjD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CACnC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CACvC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAC1B,CAAC,GACD,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeUtils.js","sourceRoot":"","sources":["../../../src/__types__/typeUtils.ts"],"names":[],"mappings":";AAAA,0BAA0B;AAC1B,gFAAgF","sourcesContent":["// Type testing utils from\n// https://github.com/type-challenges/type-challenges/blob/main/utils/index.d.ts\n\nexport type Expect<T extends true> = T;\nexport type ExpectTrue<T extends true> = T;\nexport type ExpectFalse<T extends false> = T;\nexport type IsTrue<T extends true> = T;\nexport type IsFalse<T extends false> = T;\n\nexport type Equal<X, Y> =\n (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2\n ? true\n : false;\nexport type NotEqual<X, Y> = true extends Equal<X, Y> ? false : true;\n\n// https://stackoverflow.com/questions/49927523/disallow-call-with-any/49928360#49928360\nexport type IsAny<T> = 0 extends 1 & T ? true : false;\nexport type NotAny<T> = true extends IsAny<T> ? false : true;\n\nexport type Debug<T> = { [K in keyof T]: T[K] };\nexport type MergeInsertions<T> = T extends object\n ? { [K in keyof T]: MergeInsertions<T[K]> }\n : T;\n\nexport type Alike<X, Y> = Equal<MergeInsertions<X>, MergeInsertions<Y>>;\n\nexport type ExpectExtends<VALUE, EXPECTED> = EXPECTED extends VALUE\n ? true\n : false;\nexport type ExpectValidArgs<\n FUNC extends (...args: any[]) => any,\n ARGS extends any[],\n> = ARGS extends Parameters<FUNC> ? true : false;\n\nexport type UnionToIntersection<U> = (\n U extends any ? (k: U) => void : never\n) extends (k: infer I) => void\n ? I\n : never;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typesTests.d.ts","sourceRoot":"","sources":["../../../src/__types__/typesTests.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_ts_1 = require("../index.js");
|
|
4
|
+
const schema = index_ts_1.i.schema({
|
|
5
|
+
entities: {
|
|
6
|
+
tbl: index_ts_1.i.entity({
|
|
7
|
+
d: index_ts_1.i.date().indexed(),
|
|
8
|
+
dOptional: index_ts_1.i.date().optional(),
|
|
9
|
+
}),
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
function _testUseDatesTest() {
|
|
13
|
+
const db = (0, index_ts_1.init)({
|
|
14
|
+
schema,
|
|
15
|
+
appId: '123',
|
|
16
|
+
useDateObjects: true,
|
|
17
|
+
});
|
|
18
|
+
const { data } = db.useQuery({ tbl: {} });
|
|
19
|
+
const item = data === null || data === void 0 ? void 0 : data.tbl[0];
|
|
20
|
+
if (item) {
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function _testUseDatesFalseTest() {
|
|
24
|
+
const db = (0, index_ts_1.init)({
|
|
25
|
+
schema,
|
|
26
|
+
appId: '123',
|
|
27
|
+
useDateObjects: false,
|
|
28
|
+
});
|
|
29
|
+
const { data } = db.useQuery({ tbl: {} });
|
|
30
|
+
const item = data === null || data === void 0 ? void 0 : data.tbl[0];
|
|
31
|
+
if (item) {
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function _testUseDatesUndefinedTest() {
|
|
35
|
+
const db = (0, index_ts_1.init)({
|
|
36
|
+
schema,
|
|
37
|
+
appId: '123',
|
|
38
|
+
});
|
|
39
|
+
const { data } = db.useQuery({ tbl: {} });
|
|
40
|
+
const item = data === null || data === void 0 ? void 0 : data.tbl[0];
|
|
41
|
+
if (item) {
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function _testDataNoSchema() {
|
|
45
|
+
const db = (0, index_ts_1.init)({
|
|
46
|
+
appId: '123',
|
|
47
|
+
});
|
|
48
|
+
const { data } = db.useQuery({ tbl: {} });
|
|
49
|
+
const item = data === null || data === void 0 ? void 0 : data.tbl[0];
|
|
50
|
+
if (item) {
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=typesTests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typesTests.js","sourceRoot":"","sources":["../../../src/__types__/typesTests.ts"],"names":[],"mappings":";;AACA,0CAAsC;AAEtC,MAAM,MAAM,GAAG,YAAC,CAAC,MAAM,CAAC;IACtB,QAAQ,EAAE;QACR,GAAG,EAAE,YAAC,CAAC,MAAM,CAAC;YACZ,CAAC,EAAE,YAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;YACrB,SAAS,EAAE,YAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;KACH;CACF,CAAC,CAAC;AAEH,SAAS,iBAAiB;IACxB,MAAM,EAAE,GAAG,IAAA,eAAI,EAAC;QACd,MAAM;QACN,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;IASX,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,EAAE,GAAG,IAAA,eAAI,EAAC;QACd,MAAM;QACN,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;IASX,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B;IACjC,MAAM,EAAE,GAAG,IAAA,eAAI,EAAC;QACd,MAAM;QACN,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;IASX,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,EAAE,GAAG,IAAA,eAAI,EAAC;QACd,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;IAGX,CAAC;AACH,CAAC","sourcesContent":["import type { Equal, Expect, IsAny, NotAny } from './typeUtils.ts';\nimport { i, init } from '../index.ts';\n\nconst schema = i.schema({\n entities: {\n tbl: i.entity({\n d: i.date().indexed(),\n dOptional: i.date().optional(),\n }),\n },\n});\n\nfunction _testUseDatesTest() {\n const db = init({\n schema,\n appId: '123',\n useDateObjects: true,\n });\n\n const { data } = db.useQuery({ tbl: {} });\n const item = data?.tbl[0];\n if (item) {\n type t = typeof item.d;\n type _cases = [Expect<NotAny<t>>, Expect<Equal<t, Date>>];\n\n type tOpt = typeof item.dOptional;\n type _cases_2 = [\n Expect<NotAny<tOpt>>,\n Expect<Equal<tOpt, Date | undefined>>,\n ];\n }\n}\n\nfunction _testUseDatesFalseTest() {\n const db = init({\n schema,\n appId: '123',\n useDateObjects: false,\n });\n\n const { data } = db.useQuery({ tbl: {} });\n const item = data?.tbl[0];\n if (item) {\n type t = typeof item.d;\n type _cases = [Expect<NotAny<t>>, Expect<Equal<t, string | number>>];\n\n type tOpt = typeof item.dOptional;\n type _cases_2 = [\n Expect<NotAny<tOpt>>,\n Expect<Equal<tOpt, string | number | undefined>>,\n ];\n }\n}\n\nfunction _testUseDatesUndefinedTest() {\n const db = init({\n schema,\n appId: '123',\n });\n\n const { data } = db.useQuery({ tbl: {} });\n const item = data?.tbl[0];\n if (item) {\n type t = typeof item.d;\n type _cases = [Expect<NotAny<t>>, Expect<Equal<t, string | number>>];\n\n type tOpt = typeof item.dOptional;\n type _cases_2 = [\n Expect<NotAny<tOpt>>,\n Expect<Equal<tOpt, string | number | undefined>>,\n ];\n }\n}\n\nfunction _testDataNoSchema() {\n const db = init({\n appId: '123',\n });\n\n const { data } = db.useQuery({ tbl: {} });\n const item = data?.tbl[0];\n if (item) {\n type t = typeof item.d;\n type _cases = [Expect<IsAny<t>>, Expect<Equal<typeof item.id, string>>];\n }\n}\n"]}
|
package/dist/commonjs/init.d.ts
CHANGED
|
@@ -20,7 +20,9 @@ import InstantReactWebDatabase from './InstantReactWebDatabase.ts';
|
|
|
20
20
|
*
|
|
21
21
|
* // To learn more: https://instantdb.com/docs/modeling-data
|
|
22
22
|
*/
|
|
23
|
-
export declare function init<Schema extends InstantSchemaDef<any, any, any> = InstantUnknownSchema, UseDates extends boolean = false>(config: InstantConfig<Schema, UseDates>
|
|
23
|
+
export declare function init<Schema extends InstantSchemaDef<any, any, any> = InstantUnknownSchema, UseDates extends boolean = false>(config: Omit<InstantConfig<Schema, UseDates>, 'useDateObjects'> & {
|
|
24
|
+
useDateObjects?: UseDates;
|
|
25
|
+
}): InstantReactWebDatabase<Schema, UseDates, InstantConfig<Schema, UseDates>>;
|
|
24
26
|
/**
|
|
25
27
|
* @deprecated
|
|
26
28
|
* `init_experimental` is deprecated. You can replace it with `init`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,IAAI,CAClB,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,oBAAoB,EACrE,QAAQ,SAAS,OAAO,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,IAAI,CAClB,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,oBAAoB,EACrE,QAAQ,SAAS,OAAO,GAAG,KAAK,EAIhC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAAG;IAChE,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B,GACA,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAY5E;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,aAAO,CAAC"}
|
package/dist/commonjs/init.js
CHANGED
|
@@ -27,8 +27,13 @@ const version_ts_1 = __importDefault(require("./version.js"));
|
|
|
27
27
|
*
|
|
28
28
|
* // To learn more: https://instantdb.com/docs/modeling-data
|
|
29
29
|
*/
|
|
30
|
-
function init(
|
|
31
|
-
|
|
30
|
+
function init(
|
|
31
|
+
// Allows config with missing `useDateObjects`, but keeps `UseDates`
|
|
32
|
+
// as a non-nullable in the InstantConfig type.
|
|
33
|
+
config) {
|
|
34
|
+
var _a;
|
|
35
|
+
const configStrict = Object.assign(Object.assign({}, config), { useDateObjects: ((_a = config.useDateObjects) !== null && _a !== void 0 ? _a : false) });
|
|
36
|
+
return new InstantReactWebDatabase_ts_1.default(configStrict, {
|
|
32
37
|
'@instantdb/react': version_ts_1.default,
|
|
33
38
|
});
|
|
34
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":";;;;;;AA6BA,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":";;;;;;AA6BA,oBAqBC;AA5CD,8FAAmE;AACnE,8DAAmC;AAEnC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,IAAI;AAIlB,oEAAoE;AACpE,+CAA+C;AAC/C,MAEC;;IAED,MAAM,YAAY,mCACb,MAAM,KACT,cAAc,EAAE,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,KAAK,CAAa,GAC7D,CAAC;IACF,OAAO,IAAI,oCAAuB,CAIhC,YAAY,EAAE;QACd,kBAAkB,EAAE,oBAAO;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACU,QAAA,iBAAiB,GAAG,IAAI,CAAC","sourcesContent":["import type {\n InstantConfig,\n InstantSchemaDef,\n InstantUnknownSchema,\n} from '@instantdb/core';\n\nimport InstantReactWebDatabase from './InstantReactWebDatabase.ts';\nimport version from './version.ts';\n\n/**\n *\n * The first step: init your application!\n *\n * Visit https://instantdb.com/dash to get your `appId` :)\n *\n * @example\n * import { init } from \"@instantdb/react\"\n *\n * const db = init({ appId: \"my-app-id\" })\n *\n * // You can also provide a schema for type safety and editor autocomplete!\n *\n * import { init } from \"@instantdb/react\"\n * import schema from \"\"../instant.schema.ts\";\n *\n * const db = init({ appId: \"my-app-id\", schema })\n *\n * // To learn more: https://instantdb.com/docs/modeling-data\n */\nexport function init<\n Schema extends InstantSchemaDef<any, any, any> = InstantUnknownSchema,\n UseDates extends boolean = false,\n>(\n // Allows config with missing `useDateObjects`, but keeps `UseDates`\n // as a non-nullable in the InstantConfig type.\n config: Omit<InstantConfig<Schema, UseDates>, 'useDateObjects'> & {\n useDateObjects?: UseDates;\n },\n): InstantReactWebDatabase<Schema, UseDates, InstantConfig<Schema, UseDates>> {\n const configStrict = {\n ...config,\n useDateObjects: (config.useDateObjects ?? false) as UseDates,\n };\n return new InstantReactWebDatabase<\n Schema,\n UseDates,\n InstantConfig<Schema, UseDates>\n >(configStrict, {\n '@instantdb/react': version,\n });\n}\n\n/**\n * @deprecated\n * `init_experimental` is deprecated. You can replace it with `init`.\n *\n * @example\n *\n * // Before\n * import { init_experimental } from \"@instantdb/react\"\n * const db = init_experimental({ ... });\n *\n * // After\n * import { init } from \"@instantdb/react\"\n * const db = init({ ... });\n */\nexport const init_experimental = init;\n"]}
|
package/dist/esm/Cursors.js
CHANGED
|
@@ -66,7 +66,7 @@ export function Cursors({ as = 'div', spaceId: _spaceId, room, className, style,
|
|
|
66
66
|
return null;
|
|
67
67
|
return (_jsx("div", { style: Object.assign(Object.assign({}, absStyles), { transform: `translate(${cursor.xPercent}%, ${cursor.yPercent}%)`, transformOrigin: '0 0', transition: 'transform 100ms' }), children: renderCursor ? (renderCursor({
|
|
68
68
|
color: cursor.color,
|
|
69
|
-
presence: fullPresence.peers[id],
|
|
69
|
+
presence: fullPresence === null || fullPresence === void 0 ? void 0 : fullPresence.peers[id],
|
|
70
70
|
})) : (_jsx(Cursor, Object.assign({}, cursor))) }, id));
|
|
71
71
|
}) }, spaceId),
|
|
72
72
|
]);
|
package/dist/esm/Cursors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cursors.js","sourceRoot":"","sources":["../../src/Cursors.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,GAKd,MAAM,OAAO,CAAC;AAIf,MAAM,UAAU,OAAO,CAGrB,EACA,EAAE,GAAG,KAAK,EACV,OAAO,EAAE,QAAQ,EACjB,IAAI,EACJ,SAAS,EACT,KAAK,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,MAAM,GAeP;IACC,MAAM,OAAO,GACX,QAAQ,IAAI,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;IAEvE,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"Cursors.js","sourceRoot":"","sources":["../../src/Cursors.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createElement,\n type ReactNode,\n type MouseEvent,\n type TouchEvent,\n type CSSProperties,\n} from 'react';\nimport { type InstantReactRoom } from '@instantdb/react-common';\nimport type { RoomSchemaShape } from '@instantdb/core';\n\nexport function Cursors<\n RoomSchema extends RoomSchemaShape,\n RoomType extends keyof RoomSchema,\n>({\n as = 'div',\n spaceId: _spaceId,\n room,\n className,\n style,\n userCursorColor,\n children,\n renderCursor,\n propagate,\n zIndex,\n}: {\n spaceId?: string;\n room: InstantReactRoom<any, RoomSchema, RoomType>;\n style?: React.CSSProperties;\n userCursorColor?: string;\n as?: any;\n className?: string;\n children?: ReactNode;\n renderCursor?: (props: {\n color: string;\n presence: RoomSchema[RoomType]['presence'];\n }) => ReactNode;\n propagate?: boolean;\n zIndex?: number;\n}) {\n const spaceId =\n _spaceId || `cursors-space-default--${String(room.type)}-${room.id}`;\n\n const cursorsPresence = room.usePresence({\n keys: [spaceId] as (keyof RoomSchema[RoomType]['presence'])[],\n });\n\n const fullPresence = room._core._reactor.getPresence(room.type, room.id);\n\n function publishCursor(\n rect: DOMRect,\n touch: { clientX: number; clientY: number },\n ) {\n const x = touch.clientX;\n const y = touch.clientY;\n const xPercent = ((x - rect.left) / rect.width) * 100;\n const yPercent = ((y - rect.top) / rect.height) * 100;\n cursorsPresence.publishPresence({\n [spaceId]: {\n x,\n y,\n xPercent,\n yPercent,\n color: userCursorColor,\n },\n } as RoomSchema[RoomType]['presence']);\n }\n\n function onMouseMove(e: MouseEvent) {\n if (!propagate) {\n e.stopPropagation();\n }\n\n const rect = e.currentTarget.getBoundingClientRect();\n publishCursor(rect, e);\n }\n\n function onMouseOut(e: MouseEvent) {\n cursorsPresence.publishPresence({\n [spaceId]: undefined,\n } as RoomSchema[RoomType]['presence']);\n }\n\n function onTouchMove(e: TouchEvent) {\n if (e.touches.length !== 1) {\n return;\n }\n\n const touch = e.touches[0];\n\n if (touch.target instanceof Element) {\n if (!propagate) {\n e.stopPropagation();\n }\n const rect = touch.target.getBoundingClientRect();\n publishCursor(rect, touch);\n }\n }\n\n function onTouchEnd(e: TouchEvent) {\n cursorsPresence.publishPresence({\n [spaceId]: undefined,\n } as RoomSchema[RoomType]['presence']);\n }\n\n return createElement(\n as,\n {\n onMouseMove,\n onMouseOut,\n onTouchMove,\n onTouchEnd,\n className,\n style: {\n position: 'relative',\n ...style,\n },\n },\n [\n children,\n <div\n key={spaceId}\n style={{\n ...absStyles,\n ...inertStyles,\n zIndex: zIndex !== undefined ? zIndex : defaultZ,\n }}\n >\n {Object.entries(cursorsPresence.peers).map(([id, presence]) => {\n const cursor = presence[spaceId];\n if (!cursor) return null;\n\n return (\n <div\n key={id}\n style={{\n ...absStyles,\n transform: `translate(${cursor.xPercent}%, ${cursor.yPercent}%)`,\n transformOrigin: '0 0',\n transition: 'transform 100ms',\n }}\n >\n {renderCursor ? (\n renderCursor({\n color: cursor.color,\n presence: fullPresence?.peers[id],\n })\n ) : (\n <Cursor {...cursor} />\n )}\n </div>\n );\n })}\n </div>,\n ],\n );\n}\n\nfunction Cursor({ color }: { color: string }) {\n const size = 35;\n const fill = color || 'black';\n\n return (\n <svg\n style={{ height: size, width: size }}\n viewBox={`0 0 ${size} ${size}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g\n fill=\"rgba(0,0,0,.2)\"\n transform=\"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)\"\n >\n <path d=\"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z\" />\n <path d=\"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z\" />\n </g>\n <g\n fill=\"white\"\n transform=\"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)\"\n >\n <path d=\"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z\" />\n <path d=\"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z\" />\n </g>\n <g\n fill={fill}\n transform=\"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)\"\n >\n <path d=\"m19.751 24.4155-1.844.774-3.1-7.374 1.841-.775z\" />\n <path d=\"m13 10.814v11.188l2.969-2.866.428-.139h4.768z\" />\n </g>\n </svg>\n );\n}\n\nconst absStyles: CSSProperties = {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n};\n\nconst inertStyles: CSSProperties = {\n overflow: 'hidden',\n pointerEvents: 'none',\n userSelect: 'none',\n};\n\nconst defaultZ = 99999;\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { InstantConfig, InstantSchemaDef } from '@instantdb/core';
|
|
2
2
|
import { InstantReactAbstractDatabase } from '@instantdb/react-common';
|
|
3
3
|
import { EventSource } from 'eventsource';
|
|
4
|
-
export default class InstantReactWebDatabase<Schema extends InstantSchemaDef<any, any, any>, Config extends InstantConfig<Schema,
|
|
4
|
+
export default class InstantReactWebDatabase<Schema extends InstantSchemaDef<any, any, any>, UseDates extends boolean = false, Config extends InstantConfig<Schema, UseDates> = InstantConfig<Schema, UseDates>> extends InstantReactAbstractDatabase<Schema, UseDates, Config> {
|
|
5
5
|
static EventSourceImpl: typeof EventSource;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=InstantReactWebDatabase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstantReactWebDatabase.d.ts","sourceRoot":"","sources":["../../src/InstantReactWebDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,uBAAuB,CAC1C,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9C,MAAM,SAAS,aAAa,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"InstantReactWebDatabase.d.ts","sourceRoot":"","sources":["../../src/InstantReactWebDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,uBAAuB,CAC1C,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9C,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,MAAM,SAAS,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,aAAa,CAC5D,MAAM,EACN,QAAQ,CACT,CACD,SAAQ,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;IAC9D,MAAM,CAAC,eAAe,qBAAe;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstantReactWebDatabase.js","sourceRoot":"","sources":["../../src/InstantReactWebDatabase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAqB,
|
|
1
|
+
{"version":3,"file":"InstantReactWebDatabase.js","sourceRoot":"","sources":["../../src/InstantReactWebDatabase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAqB,uBAOnB,SAAQ,4BAAsD;;AACvD,uCAAe,GAAG,WAAW,CAAC;eARlB,uBAAuB","sourcesContent":["import type { InstantConfig, InstantSchemaDef } from '@instantdb/core';\nimport { InstantReactAbstractDatabase } from '@instantdb/react-common';\nimport { EventSource } from 'eventsource';\n\nexport default class InstantReactWebDatabase<\n Schema extends InstantSchemaDef<any, any, any>,\n UseDates extends boolean = false,\n Config extends InstantConfig<Schema, UseDates> = InstantConfig<\n Schema,\n UseDates\n >,\n> extends InstantReactAbstractDatabase<Schema, UseDates, Config> {\n static EventSourceImpl = EventSource;\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type Expect<T extends true> = T;
|
|
2
|
+
export type ExpectTrue<T extends true> = T;
|
|
3
|
+
export type ExpectFalse<T extends false> = T;
|
|
4
|
+
export type IsTrue<T extends true> = T;
|
|
5
|
+
export type IsFalse<T extends false> = T;
|
|
6
|
+
export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
|
|
7
|
+
export type NotEqual<X, Y> = true extends Equal<X, Y> ? false : true;
|
|
8
|
+
export type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
9
|
+
export type NotAny<T> = true extends IsAny<T> ? false : true;
|
|
10
|
+
export type Debug<T> = {
|
|
11
|
+
[K in keyof T]: T[K];
|
|
12
|
+
};
|
|
13
|
+
export type MergeInsertions<T> = T extends object ? {
|
|
14
|
+
[K in keyof T]: MergeInsertions<T[K]>;
|
|
15
|
+
} : T;
|
|
16
|
+
export type Alike<X, Y> = Equal<MergeInsertions<X>, MergeInsertions<Y>>;
|
|
17
|
+
export type ExpectExtends<VALUE, EXPECTED> = EXPECTED extends VALUE ? true : false;
|
|
18
|
+
export type ExpectValidArgs<FUNC extends (...args: any[]) => any, ARGS extends any[]> = ARGS extends Parameters<FUNC> ? true : false;
|
|
19
|
+
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
20
|
+
//# sourceMappingURL=typeUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../../../src/__types__/typeUtils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AACvC,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AAC3C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;AAC7C,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AACvC,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;AAEzC,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IACpB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAC/D,IAAI,GACJ,KAAK,CAAC;AACZ,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAGrE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACtD,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAE7D,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAChD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC7C;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACzC,CAAC,CAAC;AAEN,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,aAAa,CAAC,KAAK,EAAE,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAC/D,IAAI,GACJ,KAAK,CAAC;AACV,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACpC,IAAI,SAAS,GAAG,EAAE,IAChB,IAAI,SAAS,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAEjD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CACnC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CACvC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAC1B,CAAC,GACD,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeUtils.js","sourceRoot":"","sources":["../../../src/__types__/typeUtils.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,gFAAgF","sourcesContent":["// Type testing utils from\n// https://github.com/type-challenges/type-challenges/blob/main/utils/index.d.ts\n\nexport type Expect<T extends true> = T;\nexport type ExpectTrue<T extends true> = T;\nexport type ExpectFalse<T extends false> = T;\nexport type IsTrue<T extends true> = T;\nexport type IsFalse<T extends false> = T;\n\nexport type Equal<X, Y> =\n (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2\n ? true\n : false;\nexport type NotEqual<X, Y> = true extends Equal<X, Y> ? false : true;\n\n// https://stackoverflow.com/questions/49927523/disallow-call-with-any/49928360#49928360\nexport type IsAny<T> = 0 extends 1 & T ? true : false;\nexport type NotAny<T> = true extends IsAny<T> ? false : true;\n\nexport type Debug<T> = { [K in keyof T]: T[K] };\nexport type MergeInsertions<T> = T extends object\n ? { [K in keyof T]: MergeInsertions<T[K]> }\n : T;\n\nexport type Alike<X, Y> = Equal<MergeInsertions<X>, MergeInsertions<Y>>;\n\nexport type ExpectExtends<VALUE, EXPECTED> = EXPECTED extends VALUE\n ? true\n : false;\nexport type ExpectValidArgs<\n FUNC extends (...args: any[]) => any,\n ARGS extends any[],\n> = ARGS extends Parameters<FUNC> ? true : false;\n\nexport type UnionToIntersection<U> = (\n U extends any ? (k: U) => void : never\n) extends (k: infer I) => void\n ? I\n : never;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typesTests.d.ts","sourceRoot":"","sources":["../../../src/__types__/typesTests.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { i, init } from "../index.js";
|
|
2
|
+
const schema = i.schema({
|
|
3
|
+
entities: {
|
|
4
|
+
tbl: i.entity({
|
|
5
|
+
d: i.date().indexed(),
|
|
6
|
+
dOptional: i.date().optional(),
|
|
7
|
+
}),
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
function _testUseDatesTest() {
|
|
11
|
+
const db = init({
|
|
12
|
+
schema,
|
|
13
|
+
appId: '123',
|
|
14
|
+
useDateObjects: true,
|
|
15
|
+
});
|
|
16
|
+
const { data } = db.useQuery({ tbl: {} });
|
|
17
|
+
const item = data === null || data === void 0 ? void 0 : data.tbl[0];
|
|
18
|
+
if (item) {
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function _testUseDatesFalseTest() {
|
|
22
|
+
const db = init({
|
|
23
|
+
schema,
|
|
24
|
+
appId: '123',
|
|
25
|
+
useDateObjects: false,
|
|
26
|
+
});
|
|
27
|
+
const { data } = db.useQuery({ tbl: {} });
|
|
28
|
+
const item = data === null || data === void 0 ? void 0 : data.tbl[0];
|
|
29
|
+
if (item) {
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function _testUseDatesUndefinedTest() {
|
|
33
|
+
const db = init({
|
|
34
|
+
schema,
|
|
35
|
+
appId: '123',
|
|
36
|
+
});
|
|
37
|
+
const { data } = db.useQuery({ tbl: {} });
|
|
38
|
+
const item = data === null || data === void 0 ? void 0 : data.tbl[0];
|
|
39
|
+
if (item) {
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function _testDataNoSchema() {
|
|
43
|
+
const db = init({
|
|
44
|
+
appId: '123',
|
|
45
|
+
});
|
|
46
|
+
const { data } = db.useQuery({ tbl: {} });
|
|
47
|
+
const item = data === null || data === void 0 ? void 0 : data.tbl[0];
|
|
48
|
+
if (item) {
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=typesTests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typesTests.js","sourceRoot":"","sources":["../../../src/__types__/typesTests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,QAAQ,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;YACZ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;YACrB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;KACH;CACF,CAAC,CAAC;AAEH,SAAS,iBAAiB;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC;QACd,MAAM;QACN,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;IASX,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,EAAE,GAAG,IAAI,CAAC;QACd,MAAM;QACN,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;IASX,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B;IACjC,MAAM,EAAE,GAAG,IAAI,CAAC;QACd,MAAM;QACN,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;IASX,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC;QACd,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;IAGX,CAAC;AACH,CAAC","sourcesContent":["import type { Equal, Expect, IsAny, NotAny } from './typeUtils.ts';\nimport { i, init } from '../index.ts';\n\nconst schema = i.schema({\n entities: {\n tbl: i.entity({\n d: i.date().indexed(),\n dOptional: i.date().optional(),\n }),\n },\n});\n\nfunction _testUseDatesTest() {\n const db = init({\n schema,\n appId: '123',\n useDateObjects: true,\n });\n\n const { data } = db.useQuery({ tbl: {} });\n const item = data?.tbl[0];\n if (item) {\n type t = typeof item.d;\n type _cases = [Expect<NotAny<t>>, Expect<Equal<t, Date>>];\n\n type tOpt = typeof item.dOptional;\n type _cases_2 = [\n Expect<NotAny<tOpt>>,\n Expect<Equal<tOpt, Date | undefined>>,\n ];\n }\n}\n\nfunction _testUseDatesFalseTest() {\n const db = init({\n schema,\n appId: '123',\n useDateObjects: false,\n });\n\n const { data } = db.useQuery({ tbl: {} });\n const item = data?.tbl[0];\n if (item) {\n type t = typeof item.d;\n type _cases = [Expect<NotAny<t>>, Expect<Equal<t, string | number>>];\n\n type tOpt = typeof item.dOptional;\n type _cases_2 = [\n Expect<NotAny<tOpt>>,\n Expect<Equal<tOpt, string | number | undefined>>,\n ];\n }\n}\n\nfunction _testUseDatesUndefinedTest() {\n const db = init({\n schema,\n appId: '123',\n });\n\n const { data } = db.useQuery({ tbl: {} });\n const item = data?.tbl[0];\n if (item) {\n type t = typeof item.d;\n type _cases = [Expect<NotAny<t>>, Expect<Equal<t, string | number>>];\n\n type tOpt = typeof item.dOptional;\n type _cases_2 = [\n Expect<NotAny<tOpt>>,\n Expect<Equal<tOpt, string | number | undefined>>,\n ];\n }\n}\n\nfunction _testDataNoSchema() {\n const db = init({\n appId: '123',\n });\n\n const { data } = db.useQuery({ tbl: {} });\n const item = data?.tbl[0];\n if (item) {\n type t = typeof item.d;\n type _cases = [Expect<IsAny<t>>, Expect<Equal<typeof item.id, string>>];\n }\n}\n"]}
|
package/dist/esm/init.d.ts
CHANGED
|
@@ -20,7 +20,9 @@ import InstantReactWebDatabase from './InstantReactWebDatabase.ts';
|
|
|
20
20
|
*
|
|
21
21
|
* // To learn more: https://instantdb.com/docs/modeling-data
|
|
22
22
|
*/
|
|
23
|
-
export declare function init<Schema extends InstantSchemaDef<any, any, any> = InstantUnknownSchema, UseDates extends boolean = false>(config: InstantConfig<Schema, UseDates>
|
|
23
|
+
export declare function init<Schema extends InstantSchemaDef<any, any, any> = InstantUnknownSchema, UseDates extends boolean = false>(config: Omit<InstantConfig<Schema, UseDates>, 'useDateObjects'> & {
|
|
24
|
+
useDateObjects?: UseDates;
|
|
25
|
+
}): InstantReactWebDatabase<Schema, UseDates, InstantConfig<Schema, UseDates>>;
|
|
24
26
|
/**
|
|
25
27
|
* @deprecated
|
|
26
28
|
* `init_experimental` is deprecated. You can replace it with `init`.
|
package/dist/esm/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,IAAI,CAClB,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,oBAAoB,EACrE,QAAQ,SAAS,OAAO,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,IAAI,CAClB,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,oBAAoB,EACrE,QAAQ,SAAS,OAAO,GAAG,KAAK,EAIhC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAAG;IAChE,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B,GACA,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAY5E;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,aAAO,CAAC"}
|
package/dist/esm/init.js
CHANGED
|
@@ -20,8 +20,13 @@ import version from "./version.js";
|
|
|
20
20
|
*
|
|
21
21
|
* // To learn more: https://instantdb.com/docs/modeling-data
|
|
22
22
|
*/
|
|
23
|
-
export function init(
|
|
24
|
-
|
|
23
|
+
export function init(
|
|
24
|
+
// Allows config with missing `useDateObjects`, but keeps `UseDates`
|
|
25
|
+
// as a non-nullable in the InstantConfig type.
|
|
26
|
+
config) {
|
|
27
|
+
var _a;
|
|
28
|
+
const configStrict = Object.assign(Object.assign({}, config), { useDateObjects: ((_a = config.useDateObjects) !== null && _a !== void 0 ? _a : false) });
|
|
29
|
+
return new InstantReactWebDatabase(configStrict, {
|
|
25
30
|
'@instantdb/react': version,
|
|
26
31
|
});
|
|
27
32
|
}
|
package/dist/esm/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAMA,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,IAAI,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAMA,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,IAAI;AAIlB,oEAAoE;AACpE,+CAA+C;AAC/C,MAEC;;IAED,MAAM,YAAY,mCACb,MAAM,KACT,cAAc,EAAE,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,KAAK,CAAa,GAC7D,CAAC;IACF,OAAO,IAAI,uBAAuB,CAIhC,YAAY,EAAE;QACd,kBAAkB,EAAE,OAAO;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC","sourcesContent":["import type {\n InstantConfig,\n InstantSchemaDef,\n InstantUnknownSchema,\n} from '@instantdb/core';\n\nimport InstantReactWebDatabase from './InstantReactWebDatabase.ts';\nimport version from './version.ts';\n\n/**\n *\n * The first step: init your application!\n *\n * Visit https://instantdb.com/dash to get your `appId` :)\n *\n * @example\n * import { init } from \"@instantdb/react\"\n *\n * const db = init({ appId: \"my-app-id\" })\n *\n * // You can also provide a schema for type safety and editor autocomplete!\n *\n * import { init } from \"@instantdb/react\"\n * import schema from \"\"../instant.schema.ts\";\n *\n * const db = init({ appId: \"my-app-id\", schema })\n *\n * // To learn more: https://instantdb.com/docs/modeling-data\n */\nexport function init<\n Schema extends InstantSchemaDef<any, any, any> = InstantUnknownSchema,\n UseDates extends boolean = false,\n>(\n // Allows config with missing `useDateObjects`, but keeps `UseDates`\n // as a non-nullable in the InstantConfig type.\n config: Omit<InstantConfig<Schema, UseDates>, 'useDateObjects'> & {\n useDateObjects?: UseDates;\n },\n): InstantReactWebDatabase<Schema, UseDates, InstantConfig<Schema, UseDates>> {\n const configStrict = {\n ...config,\n useDateObjects: (config.useDateObjects ?? false) as UseDates,\n };\n return new InstantReactWebDatabase<\n Schema,\n UseDates,\n InstantConfig<Schema, UseDates>\n >(configStrict, {\n '@instantdb/react': version,\n });\n}\n\n/**\n * @deprecated\n * `init_experimental` is deprecated. You can replace it with `init`.\n *\n * @example\n *\n * // Before\n * import { init_experimental } from \"@instantdb/react\"\n * const db = init_experimental({ ... });\n *\n * // After\n * import { init } from \"@instantdb/react\"\n * const db = init({ ... });\n */\nexport const init_experimental = init;\n"]}
|
package/dist/standalone/index.js
CHANGED
|
@@ -3550,7 +3550,7 @@ function Nr(t) {
|
|
|
3550
3550
|
}, e;
|
|
3551
3551
|
}, {});
|
|
3552
3552
|
}
|
|
3553
|
-
const Bn = "v0.22.74-experimental.
|
|
3553
|
+
const Bn = "v0.22.74-experimental.test-type-tests.19832232884.1";
|
|
3554
3554
|
function fu(t, e) {
|
|
3555
3555
|
return {
|
|
3556
3556
|
info: t ? (...n) => console.info(...n, e()) : () => {
|
|
@@ -6150,11 +6150,12 @@ function fc(t, e) {
|
|
|
6150
6150
|
return ei(t._reactor.config.schema) !== ei(e);
|
|
6151
6151
|
}
|
|
6152
6152
|
function lc(t, e, n, r, i) {
|
|
6153
|
-
|
|
6154
|
-
|
|
6155
|
-
|
|
6156
|
-
|
|
6157
|
-
|
|
6153
|
+
var s;
|
|
6154
|
+
const o = Object.assign(Object.assign({}, t), { useDateObjects: (s = t.useDateObjects) !== null && s !== void 0 ? s : !1 }), a = mn[wn(o)];
|
|
6155
|
+
if (a)
|
|
6156
|
+
return fc(a, o.schema) && a._reactor.updateSchema(o.schema), a;
|
|
6157
|
+
const u = new Ku(Object.assign(Object.assign(Object.assign({}, ic), o), { cardinalityInference: !!o.schema }), e || Ki, n || qi, Object.assign(Object.assign({}, r || {}), { "@instantdb/core": Bn }), i), d = new dc(u);
|
|
6158
|
+
return mn[wn(o)] = d, hc(o.appId, o.devtool), d;
|
|
6158
6159
|
}
|
|
6159
6160
|
function hc(t, e) {
|
|
6160
6161
|
if (typeof window > "u" || typeof window.location > "u" || typeof document > "u" || typeof e == "boolean" && !e)
|
|
@@ -6804,7 +6805,15 @@ function gc(t, e, n) {
|
|
|
6804
6805
|
e && n && "ruleParams" in n && (e = Object.assign({ $$ruleParams: n.ruleParams }, e));
|
|
6805
6806
|
const r = e ? cc(e) : null, i = z(r), s = at(ri(t._reactor.getPreviousResult(r))), o = ge(
|
|
6806
6807
|
(u) => (s.current = ri(t._reactor.getPreviousResult(r)), r ? t.subscribeQuery(r, (c) => {
|
|
6807
|
-
s.current = Object.assign({
|
|
6808
|
+
s.current = Object.assign({
|
|
6809
|
+
isLoading: !c,
|
|
6810
|
+
// @ts-expect-error: ts thinks this will always be overwritten
|
|
6811
|
+
data: void 0,
|
|
6812
|
+
// @ts-expect-error: ts thinks this will always be overwritten
|
|
6813
|
+
pageInfo: void 0,
|
|
6814
|
+
// @ts-expect-error: ts thinks this will always be overwritten
|
|
6815
|
+
error: void 0
|
|
6816
|
+
}, c), u();
|
|
6808
6817
|
}) : () => {
|
|
6809
6818
|
}),
|
|
6810
6819
|
// Build a new subscribe function if the query changes
|
|
@@ -6818,10 +6827,10 @@ function Tc() {
|
|
|
6818
6827
|
n();
|
|
6819
6828
|
}, []);
|
|
6820
6829
|
function e(r, i) {
|
|
6821
|
-
|
|
6830
|
+
n(), t.current = setTimeout(i, r);
|
|
6822
6831
|
}
|
|
6823
6832
|
function n() {
|
|
6824
|
-
clearTimeout(t.current);
|
|
6833
|
+
t.current && clearTimeout(t.current);
|
|
6825
6834
|
}
|
|
6826
6835
|
return { set: e, clear: n };
|
|
6827
6836
|
}
|
|
@@ -7385,12 +7394,13 @@ const Qn = class Qn extends Cc {
|
|
|
7385
7394
|
Qn.EventSourceImpl = kt;
|
|
7386
7395
|
let In = Qn;
|
|
7387
7396
|
function xc(t) {
|
|
7388
|
-
|
|
7389
|
-
t,
|
|
7390
|
-
|
|
7391
|
-
|
|
7392
|
-
|
|
7393
|
-
|
|
7397
|
+
const e = {
|
|
7398
|
+
...t,
|
|
7399
|
+
useDateObjects: t.useDateObjects ?? !1
|
|
7400
|
+
};
|
|
7401
|
+
return new In(e, {
|
|
7402
|
+
"@instantdb/react": Bn
|
|
7403
|
+
});
|
|
7394
7404
|
}
|
|
7395
7405
|
const qc = xc;
|
|
7396
7406
|
function Wc({
|
|
@@ -7481,7 +7491,7 @@ function Wc({
|
|
|
7481
7491
|
},
|
|
7482
7492
|
children: a ? a({
|
|
7483
7493
|
color: E.color,
|
|
7484
|
-
presence: l.peers[g]
|
|
7494
|
+
presence: l == null ? void 0 : l.peers[g]
|
|
7485
7495
|
}) : /* @__PURE__ */ W.jsx($c, { ...E })
|
|
7486
7496
|
},
|
|
7487
7497
|
g
|