wcz-test 6.27.3 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{FileHooks-DCznEPaA.js → FileHooks-CstZ4QII.js} +21 -20
- package/dist/{FileHooks-DCznEPaA.js.map → FileHooks-CstZ4QII.js.map} +1 -1
- package/dist/GraphQueries-BOAnio_H.js +28021 -0
- package/dist/GraphQueries-BOAnio_H.js.map +1 -0
- package/dist/auth.d.ts +14 -0
- package/dist/auth.js +38 -0
- package/dist/auth.js.map +1 -0
- package/dist/bun-sqlite-dialect-z0b9N0QU.js +143 -0
- package/dist/bun-sqlite-dialect-z0b9N0QU.js.map +1 -0
- package/dist/components.js +1138 -1117
- package/dist/components.js.map +1 -1
- package/dist/hooks.js +1 -2
- package/dist/hooks.js.map +1 -1
- package/dist/index-C8xwvJpf.js +159 -0
- package/dist/index-C8xwvJpf.js.map +1 -0
- package/dist/index-CbycwLQM.js +227 -0
- package/dist/index-CbycwLQM.js.map +1 -0
- package/dist/{utils-DV30kRxW.js → index-Y_pgyGkL.js} +365 -441
- package/dist/index-Y_pgyGkL.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +569 -547
- package/dist/index.js.map +1 -1
- package/dist/node-sqlite-dialect-CfkKTzbw.js +143 -0
- package/dist/node-sqlite-dialect-CfkKTzbw.js.map +1 -0
- package/dist/queries.d.ts +0 -3
- package/dist/queries.js +113 -113
- package/dist/queries.js.map +1 -1
- package/dist/utils-araYIHAE.js +81 -0
- package/dist/utils-araYIHAE.js.map +1 -0
- package/dist/utils.js +6 -5
- package/dist/utils.js.map +1 -1
- package/package.json +7 -4
- package/dist/utils-DV30kRxW.js.map +0 -1
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { authenticationMiddleware } from '../lib/auth/middleware';
|
|
2
|
+
import { authorizationMiddleware } from '../lib/auth/middleware';
|
|
3
|
+
import { getAccessToken } from '../lib/auth/authFn';
|
|
4
|
+
import { getSession } from '../lib/auth/authFn';
|
|
5
|
+
|
|
6
|
+
export { authenticationMiddleware }
|
|
7
|
+
|
|
8
|
+
export { authorizationMiddleware }
|
|
9
|
+
|
|
10
|
+
export { getAccessToken }
|
|
11
|
+
|
|
12
|
+
export { getSession }
|
|
13
|
+
|
|
14
|
+
export { }
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { a as i } from "./GraphQueries-BOAnio_H.js";
|
|
2
|
+
import { b as p, g as l } from "./GraphQueries-BOAnio_H.js";
|
|
3
|
+
import { createMiddleware as o, json as a } from "@tanstack/react-start";
|
|
4
|
+
import { getRequestHeaders as n } from "@tanstack/react-start/server";
|
|
5
|
+
const c = o().server(async ({
|
|
6
|
+
next: s
|
|
7
|
+
}) => {
|
|
8
|
+
const e = n(), t = await i.api.getSession({
|
|
9
|
+
headers: e
|
|
10
|
+
});
|
|
11
|
+
if (!t) throw a({
|
|
12
|
+
message: "Session not found"
|
|
13
|
+
}, {
|
|
14
|
+
status: 401
|
|
15
|
+
});
|
|
16
|
+
return await s({
|
|
17
|
+
context: {
|
|
18
|
+
session: t
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}), w = (s) => o().middleware([c]).server(async ({
|
|
22
|
+
context: e,
|
|
23
|
+
next: t
|
|
24
|
+
}) => {
|
|
25
|
+
if (!s.some((r) => e.session.user.groups.includes(r))) throw a({
|
|
26
|
+
message: `User ${e.session.user.name} is not in allowed groups: ${s.join(", ")}`
|
|
27
|
+
}, {
|
|
28
|
+
status: 403
|
|
29
|
+
});
|
|
30
|
+
return await t();
|
|
31
|
+
});
|
|
32
|
+
export {
|
|
33
|
+
c as authenticationMiddleware,
|
|
34
|
+
w as authorizationMiddleware,
|
|
35
|
+
p as getAccessToken,
|
|
36
|
+
l as getSession
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../src/lib/auth/middleware.ts"],"sourcesContent":["import { createMiddleware, json } from \"@tanstack/react-start\";\r\nimport { getRequestHeaders } from \"@tanstack/react-start/server\";\r\nimport { auth } from \"./auth\";\r\n\r\nexport const authenticationMiddleware = createMiddleware()\r\n .server(async ({ next }) => {\r\n const headers = getRequestHeaders();\r\n const session = await auth.api.getSession({ headers });\r\n if (!session) throw json({ message: \"Session not found\" }, { status: 401 });\r\n return await next({ context: { session } });\r\n });\r\n\r\nexport const authorizationMiddleware = (allowedGroups: Array<string>) => createMiddleware()\r\n .middleware([authenticationMiddleware])\r\n .server(async ({ context, next }) => {\r\n const hasAccess = allowedGroups.some((group) => context.session.user.groups.includes(group));\r\n if (!hasAccess) throw json({ message: `User ${context.session.user.name} is not in allowed groups: ${allowedGroups.join(\", \")}` }, { status: 403 });\r\n return await next();\r\n });\r\n"],"names":["authenticationMiddleware","createMiddleware","server","next","headers","getRequestHeaders","session","auth","api","getSession","json","message","status","context","authorizationMiddleware","allowedGroups","middleware","some","group","user","groups","includes","name","join"],"mappings":";;;;AAIO,MAAMA,IAA2BC,IACnCC,OAAO,OAAO;AAAA,EAAEC,MAAAA;AAAK,MAAM;AACxB,QAAMC,IAAUC,EAAAA,GACVC,IAAU,MAAMC,EAAKC,IAAIC,WAAW;AAAA,IAAEL,SAAAA;AAAAA,EAAAA,CAAS;AACrD,MAAI,CAACE,EAAS,OAAMI,EAAK;AAAA,IAAEC,SAAS;AAAA,EAAA,GAAuB;AAAA,IAAEC,QAAQ;AAAA,EAAA,CAAK;AAC1E,SAAO,MAAMT,EAAK;AAAA,IAAEU,SAAS;AAAA,MAAEP,SAAAA;AAAAA,IAAAA;AAAAA,EAAQ,CAAG;AAC9C,CAAC,GAEQQ,IAA0BA,CAACC,MAAiCd,EAAAA,EACpEe,WAAW,CAAChB,CAAwB,CAAC,EACrCE,OAAO,OAAO;AAAA,EAAEW,SAAAA;AAAAA,EAASV,MAAAA;AAAK,MAAM;AAEjC,MAAI,CADcY,EAAcE,KAAMC,CAAAA,MAAUL,EAAQP,QAAQa,KAAKC,OAAOC,SAASH,CAAK,CAAC,EAC3E,OAAMR,EAAK;AAAA,IAAEC,SAAS,QAAQE,EAAQP,QAAQa,KAAKG,IAAI,8BAA8BP,EAAcQ,KAAK,IAAI,CAAC;AAAA,EAAA,GAAM;AAAA,IAAEX,QAAQ;AAAA,EAAA,CAAK;AAClJ,SAAO,MAAMT,EAAAA;AACjB,CAAC;"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { C as s, D as n, f as i, h as o, s as c } from "./GraphQueries-BOAnio_H.js";
|
|
2
|
+
var l = class {
|
|
3
|
+
get supportsCreateIfNotExists() {
|
|
4
|
+
return !0;
|
|
5
|
+
}
|
|
6
|
+
get supportsTransactionalDdl() {
|
|
7
|
+
return !1;
|
|
8
|
+
}
|
|
9
|
+
get supportsReturning() {
|
|
10
|
+
return !0;
|
|
11
|
+
}
|
|
12
|
+
async acquireMigrationLock() {
|
|
13
|
+
}
|
|
14
|
+
async releaseMigrationLock() {
|
|
15
|
+
}
|
|
16
|
+
get supportsOutput() {
|
|
17
|
+
return !0;
|
|
18
|
+
}
|
|
19
|
+
}, u = class {
|
|
20
|
+
#e;
|
|
21
|
+
#t = new h();
|
|
22
|
+
#r;
|
|
23
|
+
#a;
|
|
24
|
+
constructor(e) {
|
|
25
|
+
this.#e = { ...e };
|
|
26
|
+
}
|
|
27
|
+
async init() {
|
|
28
|
+
this.#r = this.#e.database, this.#a = new m(this.#r), this.#e.onCreateConnection && await this.#e.onCreateConnection(this.#a);
|
|
29
|
+
}
|
|
30
|
+
async acquireConnection() {
|
|
31
|
+
return await this.#t.lock(), this.#a;
|
|
32
|
+
}
|
|
33
|
+
async beginTransaction(e) {
|
|
34
|
+
await e.executeQuery(s.raw("begin"));
|
|
35
|
+
}
|
|
36
|
+
async commitTransaction(e) {
|
|
37
|
+
await e.executeQuery(s.raw("commit"));
|
|
38
|
+
}
|
|
39
|
+
async rollbackTransaction(e) {
|
|
40
|
+
await e.executeQuery(s.raw("rollback"));
|
|
41
|
+
}
|
|
42
|
+
async releaseConnection() {
|
|
43
|
+
this.#t.unlock();
|
|
44
|
+
}
|
|
45
|
+
async destroy() {
|
|
46
|
+
this.#r?.close();
|
|
47
|
+
}
|
|
48
|
+
}, m = class {
|
|
49
|
+
#e;
|
|
50
|
+
constructor(e) {
|
|
51
|
+
this.#e = e;
|
|
52
|
+
}
|
|
53
|
+
executeQuery(e) {
|
|
54
|
+
const { sql: r, parameters: a } = e, t = this.#e.prepare(r);
|
|
55
|
+
return Promise.resolve({ rows: t.all(a) });
|
|
56
|
+
}
|
|
57
|
+
async *streamQuery() {
|
|
58
|
+
throw new Error("Streaming query is not supported by SQLite driver.");
|
|
59
|
+
}
|
|
60
|
+
}, h = class {
|
|
61
|
+
#e;
|
|
62
|
+
#t;
|
|
63
|
+
async lock() {
|
|
64
|
+
for (; this.#e; ) await this.#e;
|
|
65
|
+
this.#e = new Promise((e) => {
|
|
66
|
+
this.#t = e;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
unlock() {
|
|
70
|
+
const e = this.#t;
|
|
71
|
+
this.#e = void 0, this.#t = void 0, e?.();
|
|
72
|
+
}
|
|
73
|
+
}, p = class {
|
|
74
|
+
#e;
|
|
75
|
+
constructor(e) {
|
|
76
|
+
this.#e = e;
|
|
77
|
+
}
|
|
78
|
+
async getSchemas() {
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
async getTables(e = { withInternalKyselyTables: !1 }) {
|
|
82
|
+
let r = this.#e.selectFrom("sqlite_schema").where("type", "=", "table").where("name", "not like", "sqlite_%").select("name").$castTo();
|
|
83
|
+
e.withInternalKyselyTables || (r = r.where("name", "!=", i).where("name", "!=", o));
|
|
84
|
+
const a = await r.execute();
|
|
85
|
+
return Promise.all(a.map(({ name: t }) => this.#t(t)));
|
|
86
|
+
}
|
|
87
|
+
async getMetadata(e) {
|
|
88
|
+
return { tables: await this.getTables(e) };
|
|
89
|
+
}
|
|
90
|
+
async #t(e) {
|
|
91
|
+
const r = this.#e, a = (await r.selectFrom("sqlite_master").where("name", "=", e).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find((t) => t.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g, "");
|
|
92
|
+
return {
|
|
93
|
+
name: e,
|
|
94
|
+
columns: (await r.selectFrom(c`pragma_table_info(${e})`.as("table_info")).select([
|
|
95
|
+
"name",
|
|
96
|
+
"type",
|
|
97
|
+
"notnull",
|
|
98
|
+
"dflt_value"
|
|
99
|
+
]).execute()).map((t) => ({
|
|
100
|
+
name: t.name,
|
|
101
|
+
dataType: t.type,
|
|
102
|
+
isNullable: !t.notnull,
|
|
103
|
+
isAutoIncrementing: t.name === a,
|
|
104
|
+
hasDefaultValue: t.dflt_value != null
|
|
105
|
+
})),
|
|
106
|
+
isView: !0
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}, y = class extends n {
|
|
110
|
+
getCurrentParameterPlaceholder() {
|
|
111
|
+
return "?";
|
|
112
|
+
}
|
|
113
|
+
getLeftIdentifierWrapper() {
|
|
114
|
+
return '"';
|
|
115
|
+
}
|
|
116
|
+
getRightIdentifierWrapper() {
|
|
117
|
+
return '"';
|
|
118
|
+
}
|
|
119
|
+
getAutoIncrement() {
|
|
120
|
+
return "autoincrement";
|
|
121
|
+
}
|
|
122
|
+
}, d = class {
|
|
123
|
+
#e;
|
|
124
|
+
constructor(e) {
|
|
125
|
+
this.#e = { ...e };
|
|
126
|
+
}
|
|
127
|
+
createDriver() {
|
|
128
|
+
return new u(this.#e);
|
|
129
|
+
}
|
|
130
|
+
createQueryCompiler() {
|
|
131
|
+
return new y();
|
|
132
|
+
}
|
|
133
|
+
createAdapter() {
|
|
134
|
+
return new l();
|
|
135
|
+
}
|
|
136
|
+
createIntrospector(e) {
|
|
137
|
+
return new p(e);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
export {
|
|
141
|
+
d as BunSqliteDialect
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=bun-sqlite-dialect-z0b9N0QU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun-sqlite-dialect-z0b9N0QU.js","sources":["../node_modules/better-auth/dist/adapters/kysely-adapter/bun-sqlite-dialect.mjs"],"sourcesContent":["import { CompiledQuery, DEFAULT_MIGRATION_LOCK_TABLE, DEFAULT_MIGRATION_TABLE, DefaultQueryCompiler, sql } from \"kysely\";\n\n//#region src/adapters/kysely-adapter/bun-sqlite-dialect.ts\nvar BunSqliteAdapter = class {\n\tget supportsCreateIfNotExists() {\n\t\treturn true;\n\t}\n\tget supportsTransactionalDdl() {\n\t\treturn false;\n\t}\n\tget supportsReturning() {\n\t\treturn true;\n\t}\n\tasync acquireMigrationLock() {}\n\tasync releaseMigrationLock() {}\n\tget supportsOutput() {\n\t\treturn true;\n\t}\n};\nvar BunSqliteDriver = class {\n\t#config;\n\t#connectionMutex = new ConnectionMutex();\n\t#db;\n\t#connection;\n\tconstructor(config) {\n\t\tthis.#config = { ...config };\n\t}\n\tasync init() {\n\t\tthis.#db = this.#config.database;\n\t\tthis.#connection = new BunSqliteConnection(this.#db);\n\t\tif (this.#config.onCreateConnection) await this.#config.onCreateConnection(this.#connection);\n\t}\n\tasync acquireConnection() {\n\t\tawait this.#connectionMutex.lock();\n\t\treturn this.#connection;\n\t}\n\tasync beginTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"begin\"));\n\t}\n\tasync commitTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"commit\"));\n\t}\n\tasync rollbackTransaction(connection) {\n\t\tawait connection.executeQuery(CompiledQuery.raw(\"rollback\"));\n\t}\n\tasync releaseConnection() {\n\t\tthis.#connectionMutex.unlock();\n\t}\n\tasync destroy() {\n\t\tthis.#db?.close();\n\t}\n};\nvar BunSqliteConnection = class {\n\t#db;\n\tconstructor(db) {\n\t\tthis.#db = db;\n\t}\n\texecuteQuery(compiledQuery) {\n\t\tconst { sql: sql$1, parameters } = compiledQuery;\n\t\tconst stmt = this.#db.prepare(sql$1);\n\t\treturn Promise.resolve({ rows: stmt.all(parameters) });\n\t}\n\tasync *streamQuery() {\n\t\tthrow new Error(\"Streaming query is not supported by SQLite driver.\");\n\t}\n};\nvar ConnectionMutex = class {\n\t#promise;\n\t#resolve;\n\tasync lock() {\n\t\twhile (this.#promise) await this.#promise;\n\t\tthis.#promise = new Promise((resolve) => {\n\t\t\tthis.#resolve = resolve;\n\t\t});\n\t}\n\tunlock() {\n\t\tconst resolve = this.#resolve;\n\t\tthis.#promise = void 0;\n\t\tthis.#resolve = void 0;\n\t\tresolve?.();\n\t}\n};\nvar BunSqliteIntrospector = class {\n\t#db;\n\tconstructor(db) {\n\t\tthis.#db = db;\n\t}\n\tasync getSchemas() {\n\t\treturn [];\n\t}\n\tasync getTables(options = { withInternalKyselyTables: false }) {\n\t\tlet query = this.#db.selectFrom(\"sqlite_schema\").where(\"type\", \"=\", \"table\").where(\"name\", \"not like\", \"sqlite_%\").select(\"name\").$castTo();\n\t\tif (!options.withInternalKyselyTables) query = query.where(\"name\", \"!=\", DEFAULT_MIGRATION_TABLE).where(\"name\", \"!=\", DEFAULT_MIGRATION_LOCK_TABLE);\n\t\tconst tables = await query.execute();\n\t\treturn Promise.all(tables.map(({ name }) => this.#getTableMetadata(name)));\n\t}\n\tasync getMetadata(options) {\n\t\treturn { tables: await this.getTables(options) };\n\t}\n\tasync #getTableMetadata(table) {\n\t\tconst db = this.#db;\n\t\tconst autoIncrementCol = (await db.selectFrom(\"sqlite_master\").where(\"name\", \"=\", table).select(\"sql\").$castTo().execute())[0]?.sql?.split(/[\\(\\),]/)?.find((it) => it.toLowerCase().includes(\"autoincrement\"))?.split(/\\s+/)?.[0]?.replace(/[\"`]/g, \"\");\n\t\treturn {\n\t\t\tname: table,\n\t\t\tcolumns: (await db.selectFrom(sql`pragma_table_info(${table})`.as(\"table_info\")).select([\n\t\t\t\t\"name\",\n\t\t\t\t\"type\",\n\t\t\t\t\"notnull\",\n\t\t\t\t\"dflt_value\"\n\t\t\t]).execute()).map((col) => ({\n\t\t\t\tname: col.name,\n\t\t\t\tdataType: col.type,\n\t\t\t\tisNullable: !col.notnull,\n\t\t\t\tisAutoIncrementing: col.name === autoIncrementCol,\n\t\t\t\thasDefaultValue: col.dflt_value != null\n\t\t\t})),\n\t\t\tisView: true\n\t\t};\n\t}\n};\nvar BunSqliteQueryCompiler = class extends DefaultQueryCompiler {\n\tgetCurrentParameterPlaceholder() {\n\t\treturn \"?\";\n\t}\n\tgetLeftIdentifierWrapper() {\n\t\treturn \"\\\"\";\n\t}\n\tgetRightIdentifierWrapper() {\n\t\treturn \"\\\"\";\n\t}\n\tgetAutoIncrement() {\n\t\treturn \"autoincrement\";\n\t}\n};\nvar BunSqliteDialect = class {\n\t#config;\n\tconstructor(config) {\n\t\tthis.#config = { ...config };\n\t}\n\tcreateDriver() {\n\t\treturn new BunSqliteDriver(this.#config);\n\t}\n\tcreateQueryCompiler() {\n\t\treturn new BunSqliteQueryCompiler();\n\t}\n\tcreateAdapter() {\n\t\treturn new BunSqliteAdapter();\n\t}\n\tcreateIntrospector(db) {\n\t\treturn new BunSqliteIntrospector(db);\n\t}\n};\n\n//#endregion\nexport { BunSqliteDialect };\n//# sourceMappingURL=bun-sqlite-dialect.mjs.map"],"names":["BunSqliteAdapter","BunSqliteDriver","#config","#connectionMutex","ConnectionMutex","#db","#connection","config","BunSqliteConnection","connection","CompiledQuery","db","compiledQuery","sql$1","parameters","stmt","#promise","#resolve","resolve","BunSqliteIntrospector","options","query","DEFAULT_MIGRATION_TABLE","DEFAULT_MIGRATION_LOCK_TABLE","tables","name","#getTableMetadata","table","autoIncrementCol","it","sql","col","BunSqliteQueryCompiler","DefaultQueryCompiler","BunSqliteDialect"],"mappings":"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","x_google_ignoreList":[0]}
|