@rolder/kit 3.0.0-alpha.115 → 3.0.0-alpha.117

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.
Files changed (91) hide show
  1. package/dist/ai/ui/chat/chatInput/store/input.js +1 -1
  2. package/dist/ui/JsonInput.js +1 -1
  3. package/package.json +6 -6
  4. package/dist/betterAuth/client/getAuthClient.d.ts +0 -3050
  5. package/dist/betterAuth/client/getAuthClient.js +0 -18
  6. package/dist/betterAuth/client/index.d.ts +0 -1
  7. package/dist/betterAuth/client/index.js +0 -1
  8. package/dist/betterAuth/index.d.ts +0 -3
  9. package/dist/betterAuth/index.js +0 -3
  10. package/dist/betterAuth/server/defaultAuthServerConfig.d.ts +0 -223
  11. package/dist/betterAuth/server/defaultAuthServerConfig.js +0 -48
  12. package/dist/betterAuth/server/env.d.ts +0 -1
  13. package/dist/betterAuth/server/env.js +0 -8
  14. package/dist/betterAuth/server/getDBSession.d.ts +0 -2
  15. package/dist/betterAuth/server/getDBSession.js +0 -85
  16. package/dist/betterAuth/server/getSessionToken.d.ts +0 -1
  17. package/dist/betterAuth/server/getSessionToken.js +0 -14
  18. package/dist/betterAuth/server/getSessionUser.d.ts +0 -1
  19. package/dist/betterAuth/server/getSessionUser.js +0 -22
  20. package/dist/betterAuth/server/index.d.ts +0 -10
  21. package/dist/betterAuth/server/index.js +0 -11
  22. package/dist/betterAuth/server/surrealDbAdapter/adapter.d.ts +0 -8
  23. package/dist/betterAuth/server/surrealDbAdapter/adapter.js +0 -64
  24. package/dist/betterAuth/server/surrealDbAdapter/adapter.test.d.ts +0 -1
  25. package/dist/betterAuth/server/surrealDbAdapter/adapter.test.js +0 -84
  26. package/dist/betterAuth/server/surrealDbAdapter/db/getDB.d.ts +0 -2
  27. package/dist/betterAuth/server/surrealDbAdapter/db/getDB.js +0 -26
  28. package/dist/betterAuth/server/surrealDbAdapter/db/index.d.ts +0 -1
  29. package/dist/betterAuth/server/surrealDbAdapter/db/index.js +0 -1
  30. package/dist/betterAuth/server/surrealDbAdapter/db/schema.d.ts +0 -1
  31. package/dist/betterAuth/server/surrealDbAdapter/db/schema.js +0 -97
  32. package/dist/betterAuth/server/surrealDbAdapter/index.d.ts +0 -1
  33. package/dist/betterAuth/server/surrealDbAdapter/index.js +0 -1
  34. package/dist/betterAuth/server/surrealDbAdapter/methods/count.d.ts +0 -2
  35. package/dist/betterAuth/server/surrealDbAdapter/methods/count.js +0 -17
  36. package/dist/betterAuth/server/surrealDbAdapter/methods/create.d.ts +0 -2
  37. package/dist/betterAuth/server/surrealDbAdapter/methods/create.js +0 -21
  38. package/dist/betterAuth/server/surrealDbAdapter/methods/delete.d.ts +0 -2
  39. package/dist/betterAuth/server/surrealDbAdapter/methods/delete.js +0 -18
  40. package/dist/betterAuth/server/surrealDbAdapter/methods/deleteMany.d.ts +0 -2
  41. package/dist/betterAuth/server/surrealDbAdapter/methods/deleteMany.js +0 -19
  42. package/dist/betterAuth/server/surrealDbAdapter/methods/findMany.d.ts +0 -2
  43. package/dist/betterAuth/server/surrealDbAdapter/methods/findMany.js +0 -51
  44. package/dist/betterAuth/server/surrealDbAdapter/methods/findOne.d.ts +0 -2
  45. package/dist/betterAuth/server/surrealDbAdapter/methods/findOne.js +0 -42
  46. package/dist/betterAuth/server/surrealDbAdapter/methods/index.d.ts +0 -8
  47. package/dist/betterAuth/server/surrealDbAdapter/methods/index.js +0 -8
  48. package/dist/betterAuth/server/surrealDbAdapter/methods/types.d.ts +0 -56
  49. package/dist/betterAuth/server/surrealDbAdapter/methods/types.js +0 -0
  50. package/dist/betterAuth/server/surrealDbAdapter/methods/update.d.ts +0 -2
  51. package/dist/betterAuth/server/surrealDbAdapter/methods/update.js +0 -25
  52. package/dist/betterAuth/server/surrealDbAdapter/methods/updateMany.d.ts +0 -2
  53. package/dist/betterAuth/server/surrealDbAdapter/methods/updateMany.js +0 -21
  54. package/dist/betterAuth/server/surrealDbAdapter/types.d.ts +0 -2
  55. package/dist/betterAuth/server/surrealDbAdapter/types.js +0 -0
  56. package/dist/betterAuth/server/surrealDbAdapter/utils/applyJoinMappings.d.ts +0 -2
  57. package/dist/betterAuth/server/surrealDbAdapter/utils/applyJoinMappings.js +0 -31
  58. package/dist/betterAuth/server/surrealDbAdapter/utils/buildExpression.d.ts +0 -3
  59. package/dist/betterAuth/server/surrealDbAdapter/utils/buildExpression.js +0 -58
  60. package/dist/betterAuth/server/surrealDbAdapter/utils/buildJoinPlan.d.ts +0 -9
  61. package/dist/betterAuth/server/surrealDbAdapter/utils/buildJoinPlan.js +0 -46
  62. package/dist/betterAuth/server/surrealDbAdapter/utils/buildSelectFields.d.ts +0 -1
  63. package/dist/betterAuth/server/surrealDbAdapter/utils/buildSelectFields.js +0 -5
  64. package/dist/betterAuth/server/surrealDbAdapter/utils/index.d.ts +0 -6
  65. package/dist/betterAuth/server/surrealDbAdapter/utils/index.js +0 -6
  66. package/dist/betterAuth/server/surrealDbAdapter/utils/normalizeOutputRecordIds.d.ts +0 -2
  67. package/dist/betterAuth/server/surrealDbAdapter/utils/normalizeOutputRecordIds.js +0 -43
  68. package/dist/betterAuth/server/surrealDbAdapter/utils/normalizeRecordIds.d.ts +0 -2
  69. package/dist/betterAuth/server/surrealDbAdapter/utils/normalizeRecordIds.js +0 -38
  70. package/dist/betterAuth/server/surrealDbAdapter/utils/normalizeWhereValue.d.ts +0 -2
  71. package/dist/betterAuth/server/surrealDbAdapter/utils/normalizeWhereValue.js +0 -33
  72. package/dist/betterAuth/server/surrealDbAdapter/utils/types.d.ts +0 -34
  73. package/dist/betterAuth/server/surrealDbAdapter/utils/types.js +0 -0
  74. package/dist/betterAuth/server/types.d.ts +0 -8
  75. package/dist/betterAuth/server/types.js +0 -0
  76. package/dist/betterAuth/useSessionUser.d.ts +0 -1
  77. package/dist/betterAuth/useSessionUser.js +0 -8
  78. package/dist/surrealDB/deafaultCrud.d.ts +0 -2
  79. package/dist/surrealDB/deafaultCrud.js +0 -19
  80. package/dist/surrealDB/deserialize.d.ts +0 -17
  81. package/dist/surrealDB/deserialize.js +0 -46
  82. package/dist/surrealDB/encryption.d.ts +0 -6
  83. package/dist/surrealDB/encryption.js +0 -30
  84. package/dist/surrealDB/getDBInstance.d.ts +0 -3
  85. package/dist/surrealDB/getDBInstance.js +0 -38
  86. package/dist/surrealDB/getDBInstanceTanstack.d.ts +0 -3
  87. package/dist/surrealDB/getDBInstanceTanstack.js +0 -49
  88. package/dist/surrealDB/index.d.ts +0 -7
  89. package/dist/surrealDB/index.js +0 -7
  90. package/dist/surrealDB/types.d.ts +0 -10
  91. package/dist/surrealDB/types.js +0 -0
@@ -1 +0,0 @@
1
- export declare const buildSelectFields: (select: string[] | undefined, mapField: (field: string) => string) => string;
@@ -1,5 +0,0 @@
1
- const buildSelectFields = (select, mapField)=>{
2
- if (!select || 0 === select.length) return '*';
3
- return select.map(mapField).join(', ');
4
- };
5
- export { buildSelectFields };
@@ -1,6 +0,0 @@
1
- export * from './applyJoinMappings';
2
- export * from './buildExpression';
3
- export * from './buildJoinPlan';
4
- export * from './buildSelectFields';
5
- export * from './normalizeOutputRecordIds';
6
- export * from './normalizeRecordIds';
@@ -1,6 +0,0 @@
1
- export * from "./applyJoinMappings.js";
2
- export * from "./buildExpression.js";
3
- export * from "./buildJoinPlan.js";
4
- export * from "./buildSelectFields.js";
5
- export * from "./normalizeOutputRecordIds.js";
6
- export * from "./normalizeRecordIds.js";
@@ -1,2 +0,0 @@
1
- import type { NormalizeOutputRecordIds } from './types';
2
- export declare const normalizeOutputRecordIds: ({ model, data, getDefaultModelName, getDefaultFieldName, getFieldAttributes, }: NormalizeOutputRecordIds) => Record<string, unknown> | null;
@@ -1,43 +0,0 @@
1
- import { RecordId } from "surrealdb";
2
- const normalizeOutputRecordIds = ({ model, data, getDefaultModelName, getDefaultFieldName, getFieldAttributes })=>{
3
- if (!data) return data;
4
- const normalized = {
5
- ...data
6
- };
7
- const defaultModelName = getDefaultModelName(model);
8
- const stripRecordId = (raw)=>{
9
- if (raw instanceof RecordId) return stripRecordId(String(raw));
10
- if ('string' != typeof raw) return raw;
11
- const separatorIndex = raw.indexOf(':');
12
- if (-1 === separatorIndex) return raw;
13
- let id = raw.slice(separatorIndex + 1);
14
- if (id.startsWith('⟨') && id.endsWith('⟩')) id = id.slice(1, -1);
15
- return id;
16
- };
17
- for (const [field, value] of Object.entries(normalized)){
18
- let defaultField;
19
- try {
20
- defaultField = getDefaultFieldName({
21
- model: defaultModelName,
22
- field
23
- });
24
- } catch {
25
- continue;
26
- }
27
- const applyStrip = (targetValue)=>{
28
- if (Array.isArray(targetValue)) return targetValue.map((entry)=>stripRecordId(entry));
29
- return stripRecordId(targetValue);
30
- };
31
- if ('id' === defaultField) {
32
- normalized[field] = applyStrip(value);
33
- continue;
34
- }
35
- const fieldAttr = getFieldAttributes({
36
- model: defaultModelName,
37
- field: defaultField
38
- });
39
- if (fieldAttr?.references?.field === 'id') normalized[field] = applyStrip(value);
40
- }
41
- return normalized;
42
- };
43
- export { normalizeOutputRecordIds };
@@ -1,2 +0,0 @@
1
- import type { NormalizeRecordIds } from './types';
2
- export declare const normalizeRecordIds: ({ model, data, getDefaultModelName, getDefaultFieldName, getFieldAttributes, getModelName, }: NormalizeRecordIds) => Record<string, unknown>;
@@ -1,38 +0,0 @@
1
- import { RecordId } from "surrealdb";
2
- import { deserialize } from "../../../../surrealDB/index.js";
3
- const normalizeRecordIds = ({ model, data, getDefaultModelName, getDefaultFieldName, getFieldAttributes, getModelName })=>{
4
- const normalized = {
5
- ...data
6
- };
7
- const defaultModelName = getDefaultModelName(model);
8
- const toRecordId = (target, raw)=>{
9
- if (raw instanceof RecordId) return raw;
10
- if ('string' == typeof raw) return raw.includes(':') ? deserialize(raw) : new RecordId(target, raw);
11
- return raw;
12
- };
13
- for (const [field, value] of Object.entries(normalized)){
14
- let defaultField;
15
- try {
16
- defaultField = getDefaultFieldName({
17
- model: defaultModelName,
18
- field
19
- });
20
- } catch {
21
- continue;
22
- }
23
- if ('id' === defaultField) continue;
24
- const fieldAttr = getFieldAttributes({
25
- model: defaultModelName,
26
- field: defaultField
27
- });
28
- if (fieldAttr?.references?.field !== 'id') continue;
29
- const targetModel = getModelName(fieldAttr.references.model);
30
- if (Array.isArray(value)) {
31
- normalized[field] = value.map((entry)=>toRecordId(targetModel, entry));
32
- continue;
33
- }
34
- normalized[field] = toRecordId(targetModel, value);
35
- }
36
- return normalized;
37
- };
38
- export { normalizeRecordIds };
@@ -1,2 +0,0 @@
1
- import type { NormalizeWhereValue } from './types';
2
- export declare const normalizeWhereValue: ({ model, field, value, getDefaultModelName, getDefaultFieldName, getModelName, getFieldAttributes, }: NormalizeWhereValue) => unknown;
@@ -1,33 +0,0 @@
1
- import { RecordId } from "surrealdb";
2
- import { deserialize } from "../../../../surrealDB/index.js";
3
- const normalizeWhereValue = ({ model, field, value, getDefaultModelName, getDefaultFieldName, getModelName, getFieldAttributes })=>{
4
- const defaultModelName = getDefaultModelName(model);
5
- const toRecordId = (target, raw)=>{
6
- if (raw instanceof RecordId) return raw;
7
- if ('string' == typeof raw) return raw.includes(':') ? deserialize(raw) : new RecordId(target, raw);
8
- return raw;
9
- };
10
- let defaultField;
11
- try {
12
- defaultField = getDefaultFieldName({
13
- model: defaultModelName,
14
- field
15
- });
16
- } catch {
17
- return value;
18
- }
19
- if ('id' === defaultField) {
20
- const targetModel = getModelName(defaultModelName);
21
- if (Array.isArray(value)) return value.map((entry)=>toRecordId(targetModel, entry));
22
- return toRecordId(targetModel, value);
23
- }
24
- const fieldAttr = getFieldAttributes({
25
- model: defaultModelName,
26
- field: defaultField
27
- });
28
- if (fieldAttr?.references?.field !== 'id') return value;
29
- const targetModel = getModelName(fieldAttr.references.model);
30
- if (Array.isArray(value)) return value.map((entry)=>toRecordId(targetModel, entry));
31
- return toRecordId(targetModel, value);
32
- };
33
- export { normalizeWhereValue };
@@ -1,34 +0,0 @@
1
- import type { JoinConfig, Where } from 'better-auth/adapters';
2
- import type { Args } from '../types';
3
- export type NormalizeRecordIds = Args & {
4
- model: string;
5
- data: object;
6
- };
7
- export type NormalizeOutputRecordIds = Args & {
8
- model: string;
9
- data: object | null;
10
- };
11
- export type NormalizeWhereValue = Args & {
12
- model: string;
13
- field: string;
14
- value: unknown;
15
- };
16
- export type BuildExpression = Args & {
17
- model: string;
18
- where: Required<Where>[] | undefined;
19
- };
20
- export type BuildJoinPlan = Args & {
21
- model: string;
22
- join?: JoinConfig;
23
- };
24
- export type ApplyJoinMappings = Args & {
25
- row: object | null;
26
- mappings: Array<{
27
- modelName: string;
28
- sourceField: string;
29
- }>;
30
- };
31
- export type SortBy = {
32
- field: string;
33
- direction: 'asc' | 'desc';
34
- };
@@ -1,8 +0,0 @@
1
- export type * from 'better-auth/client/plugins';
2
- export type * from 'better-auth/minimal';
3
- export type * from 'better-auth/plugins';
4
- export type InferUserWithRoles<TInferredUser extends {
5
- role?: string | null;
6
- }, TRoles extends Record<string, unknown>> = Omit<TInferredUser, 'role'> & {
7
- role: keyof TRoles;
8
- };
File without changes
@@ -1 +0,0 @@
1
- export declare const useSessionUser: <TUser = unknown>() => TUser | undefined;
@@ -1,8 +0,0 @@
1
- import { useRouteContext } from "@tanstack/react-router";
2
- const useSessionUser = ()=>{
3
- const { user } = useRouteContext({
4
- from: '__root__'
5
- });
6
- return user;
7
- };
8
- export { useSessionUser };
@@ -1,2 +0,0 @@
1
- export declare const surrealDeleteFn: import("@tanstack/react-start").RequiredFetcher<undefined, import("zod").ZodString, Promise<void>>;
2
- export declare const surrealUnsubscribeFn: import("@tanstack/react-start").RequiredFetcher<undefined, import("zod").ZodString, Promise<void>>;
@@ -1,19 +0,0 @@
1
- import { createServerFn } from "@tanstack/react-start";
2
- import { getDBSession } from "../betterAuth/index.js";
3
- import { zodSchemas } from "../zodSchemas.js";
4
- import { deserialize } from "./deserialize.js";
5
- const surrealDeleteFn = createServerFn({
6
- method: 'POST'
7
- }).inputValidator(zodSchemas.id).handler(async ({ data })=>{
8
- const db = await getDBSession();
9
- const id = deserialize(data);
10
- await db.delete(id);
11
- });
12
- const surrealUnsubscribeFn = createServerFn({
13
- method: 'POST'
14
- }).inputValidator(zodSchemas.id).handler(async ({ data })=>{
15
- const db = await getDBSession();
16
- const live = await db.liveOf(data);
17
- await live.kill();
18
- });
19
- export { surrealDeleteFn, surrealUnsubscribeFn };
@@ -1,17 +0,0 @@
1
- import { RecordId } from 'surrealdb';
2
- /**
3
- * Type that converts specified string paths to RecordId, others stay as their original types
4
- */
5
- type DeserializeResult<T, IdPaths extends string = never> = T extends string ? RecordId<string> : T extends (infer U)[] ? U extends object ? {
6
- [K in keyof U]: K extends IdPaths ? RecordId<string> : U[K];
7
- }[] : DeserializeResult<U, IdPaths>[] : T extends object ? T extends Date ? T : {
8
- [K in keyof T]: K extends IdPaths ? RecordId<string> : T[K];
9
- } : T;
10
- /**
11
- * Deserializes DTO back to SurrealDB Record recursively based on specified ID paths
12
- */
13
- export declare function deserialize<T, K extends keyof T & string>(dto: T[], idPaths: K[]): DeserializeResult<T, K>[];
14
- export declare function deserialize<T, K extends keyof T & string>(dto: T, idPaths: K[]): DeserializeResult<T, K>;
15
- export declare function deserialize<T>(dto: T[]): DeserializeResult<T>[];
16
- export declare function deserialize<T>(dto: T): DeserializeResult<T>;
17
- export {};
@@ -1,46 +0,0 @@
1
- import { RecordId } from "surrealdb";
2
- const extractTableName = (str)=>{
3
- const match = str.match(/^([^:]+):/);
4
- return match ? match[1] : null;
5
- };
6
- const isRecordIdFormat = (str)=>/^[^:]+:.+$/.test(str);
7
- function deserialize(dto, idPaths) {
8
- if (Array.isArray(dto)) return dto.map((item)=>convertStringsToRecordIds(item, idPaths || []));
9
- return convertStringsToRecordIds(dto, idPaths || []);
10
- }
11
- const convertStringsToRecordIds = (obj, idPaths, currentPath = '')=>{
12
- if (null == obj) return obj;
13
- if (Array.isArray(obj)) {
14
- if (idPaths.includes(currentPath)) return obj.map((item)=>{
15
- if ('string' == typeof item && isRecordIdFormat(item)) {
16
- const tableName = extractTableName(item);
17
- if (tableName) return new RecordId(tableName, item.split(':')[1]);
18
- }
19
- return item;
20
- });
21
- return obj.map((item, index)=>convertStringsToRecordIds(item, idPaths, `${currentPath}[${index}]`));
22
- }
23
- if ('object' == typeof obj && !(obj instanceof Date)) {
24
- const result = {};
25
- for (const [key, value] of Object.entries(obj)){
26
- const fieldPath = currentPath ? `${currentPath}.${key}` : key;
27
- if ('string' == typeof value) {
28
- const shouldConvert = idPaths.includes(fieldPath) && isRecordIdFormat(value);
29
- if (shouldConvert) {
30
- const tableName = extractTableName(value);
31
- if (tableName) result[key] = new RecordId(tableName, value.split(':')[1]);
32
- else result[key] = value;
33
- } else result[key] = value;
34
- } else result[key] = convertStringsToRecordIds(value, idPaths, fieldPath);
35
- }
36
- return result;
37
- }
38
- if ('string' == typeof obj) {
39
- if (0 === idPaths.length && isRecordIdFormat(obj)) {
40
- const tableName = extractTableName(obj);
41
- if (tableName) return new RecordId(tableName, obj.split(':')[1]);
42
- }
43
- }
44
- return obj;
45
- };
46
- export { deserialize };
@@ -1,6 +0,0 @@
1
- type EncryptionInstance = {
2
- encrypt(text: string): string;
3
- decrypt(encryptedText: string): string;
4
- };
5
- export declare const encryptionFn: (secretHash: string) => EncryptionInstance;
6
- export {};
@@ -1,30 +0,0 @@
1
- import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
2
- import { createServerOnlyFn } from "@tanstack/react-start";
3
- const encryptionFn = createServerOnlyFn((secretHash)=>{
4
- class Encryption {
5
- key;
6
- constructor(secretHash){
7
- this.key = Buffer.from(secretHash, 'hex');
8
- }
9
- encrypt(text) {
10
- const algorithm = 'aes-256-cbc';
11
- const iv = randomBytes(16);
12
- const cipher = createCipheriv(algorithm, this.key, iv);
13
- let encrypted = cipher.update(text, 'utf8', 'hex');
14
- encrypted += cipher.final('hex');
15
- return `${iv.toString('hex')}:${encrypted}`;
16
- }
17
- decrypt(encryptedText) {
18
- const algorithm = 'aes-256-cbc';
19
- const parts = encryptedText.split(':');
20
- const iv = Buffer.from(parts[0], 'hex');
21
- const encrypted = parts[1];
22
- const decipher = createDecipheriv(algorithm, this.key, iv);
23
- let decrypted = decipher.update(encrypted, 'hex', 'utf8');
24
- decrypted += decipher.final('utf8');
25
- return decrypted;
26
- }
27
- }
28
- return new Encryption(secretHash);
29
- });
30
- export { encryptionFn };
@@ -1,3 +0,0 @@
1
- import { Surreal } from 'surrealdb';
2
- import type { SurrealDBProps } from './types';
3
- export declare const getDBInstance: (params?: SurrealDBProps | undefined) => Promise<Surreal>;
@@ -1,38 +0,0 @@
1
- import { Surreal, applyDiagnostics, createRemoteEngines } from "surrealdb";
2
- let db = null;
3
- const getDBInstance = async (params = {})=>{
4
- if (db?.isConnected) return db;
5
- const instance = new Surreal(params.debug ? {
6
- engines: applyDiagnostics(createRemoteEngines(), (event)=>{
7
- console.log('Surreal debug:', event);
8
- })
9
- } : void 0);
10
- try {
11
- const url = params.url || process.env.SURREALDB_URL;
12
- if (!url) throw new Error('Missing required SurrealDB URL');
13
- const namespace = params.namespace || process.env.SURREALDB_NAMESPACE;
14
- if (!namespace) throw new Error('Missing required SurrealDB namespace');
15
- const database = params.database || process.env.SURREALDB_DATABASE;
16
- if (!database) throw new Error('Missing required SurrealDB database');
17
- const username = params.username || process.env.SURREALDB_USERNAME;
18
- const password = params.password || process.env.SURREALDB_PASSWORD;
19
- if (username && password) await instance.connect(url, {
20
- authentication: {
21
- username,
22
- password
23
- }
24
- });
25
- else await instance.connect(url);
26
- await instance.use({
27
- namespace,
28
- database
29
- });
30
- db = instance;
31
- return instance;
32
- } catch (error) {
33
- console.error('Failed to connect to SurrealDB:', error);
34
- db = null;
35
- throw error;
36
- }
37
- };
38
- export { getDBInstance };
@@ -1,3 +0,0 @@
1
- import { Surreal } from 'surrealdb';
2
- import type { SurrealDBProps } from './types';
3
- export declare const getDBInstanceTanstack: (params?: SurrealDBProps | undefined) => Promise<Surreal>;
@@ -1,49 +0,0 @@
1
- import { createServerOnlyFn } from "@tanstack/react-start";
2
- import { getCookie } from "@tanstack/react-start/server";
3
- import { DateTime, Surreal } from "surrealdb";
4
- let db = null;
5
- const getDBInstanceTanstack = createServerOnlyFn(async (params = {})=>{
6
- if (db?.isConnected) return db;
7
- const locale = getCookie('locale') || 'ru-RU';
8
- const timeZone = getCookie('tz') || 'UTC';
9
- const instance = new Surreal({
10
- codecOptions: params.codecOptions || {
11
- valueDecodeVisitor (value) {
12
- if (value instanceof DateTime) return new Date(value.toDate()).toLocaleDateString(locale, {
13
- hour: 'numeric',
14
- minute: 'numeric',
15
- timeZone
16
- });
17
- return value;
18
- }
19
- }
20
- });
21
- try {
22
- const url = params.url || process.env.SURREALDB_URL;
23
- if (!url) throw new Error('Missing required SurrealDB URL');
24
- const namespace = params.namespace || process.env.SURREALDB_NAMESPACE;
25
- if (!namespace) throw new Error('Missing required SurrealDB namespace');
26
- const database = params.database || process.env.SURREALDB_DATABASE;
27
- if (!database) throw new Error('Missing required SurrealDB database');
28
- const username = params.username || process.env.SURREALDB_USERNAME;
29
- const password = params.password || process.env.SURREALDB_PASSWORD;
30
- if (username && password) await instance.connect(url, {
31
- authentication: {
32
- username,
33
- password
34
- }
35
- });
36
- else await instance.connect(url);
37
- await instance.use({
38
- namespace,
39
- database
40
- });
41
- db = instance;
42
- return instance;
43
- } catch (error) {
44
- console.error('Failed to connect to SurrealDB:', error);
45
- db = null;
46
- throw error;
47
- }
48
- });
49
- export { getDBInstanceTanstack };
@@ -1,7 +0,0 @@
1
- export * from 'surrealdb';
2
- export * from './deafaultCrud';
3
- export * from './deserialize';
4
- export * from './encryption';
5
- export * from './getDBInstance';
6
- export * from './getDBInstanceTanstack';
7
- export * from './types';
@@ -1,7 +0,0 @@
1
- export * from "surrealdb";
2
- export * from "./deafaultCrud.js";
3
- export * from "./deserialize.js";
4
- export * from "./encryption.js";
5
- export * from "./getDBInstance.js";
6
- export * from "./getDBInstanceTanstack.js";
7
- export * from "./types.js";
@@ -1,10 +0,0 @@
1
- import type { CodecOptions } from 'surrealdb';
2
- export interface SurrealDBProps {
3
- url?: string;
4
- namespace?: string;
5
- database?: string;
6
- username?: string;
7
- password?: string;
8
- codecOptions?: CodecOptions;
9
- debug?: boolean;
10
- }
File without changes