@rebasepro/server-core 0.0.1-canary.f81da60 → 0.1.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/app/frontend/node_modules/esbuild/LICENSE.md +21 -0
- package/app/frontend/node_modules/esbuild/README.md +3 -0
- package/app/frontend/node_modules/esbuild/bin/esbuild +220 -0
- package/app/frontend/node_modules/esbuild/install.js +285 -0
- package/app/frontend/node_modules/esbuild/lib/main.d.ts +705 -0
- package/app/frontend/node_modules/esbuild/lib/main.js +2239 -0
- package/app/frontend/node_modules/esbuild/package.json +46 -0
- package/dist/index.es.js +140 -28
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +140 -28
- package/dist/index.umd.js.map +1 -1
- package/dist/server-core/src/auth/google-oauth.d.ts +33 -3
- package/dist/server-core/src/auth/index.d.ts +1 -0
- package/dist/server-core/src/init.d.ts +1 -0
- package/dist/types/src/controllers/auth.d.ts +8 -2
- package/dist/types/src/controllers/client.d.ts +13 -0
- package/dist/types/src/controllers/navigation.d.ts +18 -6
- package/dist/types/src/controllers/registry.d.ts +9 -1
- package/dist/types/src/controllers/side_entity_controller.d.ts +7 -0
- package/dist/types/src/rebase_context.d.ts +17 -0
- package/dist/types/src/types/collections.d.ts +20 -1
- package/dist/types/src/types/component_ref.d.ts +47 -0
- package/dist/types/src/types/entity_views.d.ts +2 -1
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/properties.d.ts +15 -3
- package/dist/types/src/types/translations.d.ts +2 -0
- package/examples/firebase/node_modules/esbuild/LICENSE.md +21 -0
- package/examples/firebase/node_modules/esbuild/README.md +3 -0
- package/examples/firebase/node_modules/esbuild/bin/esbuild +220 -0
- package/examples/firebase/node_modules/esbuild/install.js +285 -0
- package/examples/firebase/node_modules/esbuild/lib/main.d.ts +705 -0
- package/examples/firebase/node_modules/esbuild/lib/main.js +2239 -0
- package/examples/firebase/node_modules/esbuild/package.json +46 -0
- package/examples/medmot-staging/frontend/node_modules/esbuild/LICENSE.md +21 -0
- package/examples/medmot-staging/frontend/node_modules/esbuild/README.md +3 -0
- package/examples/medmot-staging/frontend/node_modules/esbuild/bin/esbuild +220 -0
- package/examples/medmot-staging/frontend/node_modules/esbuild/install.js +285 -0
- package/examples/medmot-staging/frontend/node_modules/esbuild/lib/main.d.ts +705 -0
- package/examples/medmot-staging/frontend/node_modules/esbuild/lib/main.js +2239 -0
- package/examples/medmot-staging/frontend/node_modules/esbuild/package.json +46 -0
- package/examples/sdk-demo/node_modules/esbuild/LICENSE.md +21 -0
- package/examples/sdk-demo/node_modules/esbuild/README.md +3 -0
- package/examples/sdk-demo/node_modules/esbuild/bin/esbuild +223 -0
- package/examples/sdk-demo/node_modules/esbuild/install.js +289 -0
- package/examples/sdk-demo/node_modules/esbuild/lib/main.d.ts +716 -0
- package/examples/sdk-demo/node_modules/esbuild/lib/main.js +2242 -0
- package/examples/sdk-demo/node_modules/esbuild/package.json +49 -0
- package/package.json +7 -7
- package/packages/client/node_modules/esbuild/LICENSE.md +21 -0
- package/packages/client/node_modules/esbuild/README.md +3 -0
- package/packages/client/node_modules/esbuild/bin/esbuild +220 -0
- package/packages/client/node_modules/esbuild/install.js +285 -0
- package/packages/client/node_modules/esbuild/lib/main.d.ts +705 -0
- package/packages/client/node_modules/esbuild/lib/main.js +2239 -0
- package/packages/client/node_modules/esbuild/package.json +46 -0
- package/packages/client-postgresql/node_modules/esbuild/LICENSE.md +21 -0
- package/packages/client-postgresql/node_modules/esbuild/README.md +3 -0
- package/packages/client-postgresql/node_modules/esbuild/bin/esbuild +220 -0
- package/packages/client-postgresql/node_modules/esbuild/install.js +285 -0
- package/packages/client-postgresql/node_modules/esbuild/lib/main.d.ts +705 -0
- package/packages/client-postgresql/node_modules/esbuild/lib/main.js +2239 -0
- package/packages/client-postgresql/node_modules/esbuild/package.json +46 -0
- package/packages/common/node_modules/esbuild/LICENSE.md +21 -0
- package/packages/common/node_modules/esbuild/README.md +3 -0
- package/packages/common/node_modules/esbuild/bin/esbuild +220 -0
- package/packages/common/node_modules/esbuild/install.js +285 -0
- package/packages/common/node_modules/esbuild/lib/main.d.ts +705 -0
- package/packages/common/node_modules/esbuild/lib/main.js +2239 -0
- package/packages/common/node_modules/esbuild/package.json +46 -0
- package/packages/server-mongodb/node_modules/esbuild/LICENSE.md +21 -0
- package/packages/server-mongodb/node_modules/esbuild/README.md +3 -0
- package/packages/server-mongodb/node_modules/esbuild/bin/esbuild +220 -0
- package/packages/server-mongodb/node_modules/esbuild/install.js +285 -0
- package/packages/server-mongodb/node_modules/esbuild/lib/main.d.ts +705 -0
- package/packages/server-mongodb/node_modules/esbuild/lib/main.js +2239 -0
- package/packages/server-mongodb/node_modules/esbuild/package.json +46 -0
- package/packages/server-postgresql/node_modules/esbuild/LICENSE.md +21 -0
- package/packages/server-postgresql/node_modules/esbuild/README.md +3 -0
- package/packages/server-postgresql/node_modules/esbuild/bin/esbuild +220 -0
- package/packages/server-postgresql/node_modules/esbuild/install.js +285 -0
- package/packages/server-postgresql/node_modules/esbuild/lib/main.d.ts +705 -0
- package/packages/server-postgresql/node_modules/esbuild/lib/main.js +2239 -0
- package/packages/server-postgresql/node_modules/esbuild/package.json +46 -0
- package/packages/types/node_modules/esbuild/LICENSE.md +21 -0
- package/packages/types/node_modules/esbuild/README.md +3 -0
- package/packages/types/node_modules/esbuild/bin/esbuild +220 -0
- package/packages/types/node_modules/esbuild/install.js +285 -0
- package/packages/types/node_modules/esbuild/lib/main.d.ts +705 -0
- package/packages/types/node_modules/esbuild/lib/main.js +2239 -0
- package/packages/types/node_modules/esbuild/package.json +46 -0
- package/packages/utils/node_modules/esbuild/LICENSE.md +21 -0
- package/packages/utils/node_modules/esbuild/README.md +3 -0
- package/packages/utils/node_modules/esbuild/bin/esbuild +220 -0
- package/packages/utils/node_modules/esbuild/install.js +285 -0
- package/packages/utils/node_modules/esbuild/lib/main.d.ts +705 -0
- package/packages/utils/node_modules/esbuild/lib/main.js +2239 -0
- package/packages/utils/node_modules/esbuild/package.json +46 -0
- package/src/api/errors.ts +3 -2
- package/src/api/server.ts +5 -2
- package/src/auth/google-oauth.ts +148 -17
- package/src/auth/index.ts +1 -0
- package/src/auth/routes.ts +25 -5
- package/src/collections/loader.ts +3 -3
- package/src/init.ts +14 -2
- package/history_diff.log +0 -385
- package/scratch.ts +0 -9
- package/test-ast.ts +0 -28
- package/test_output.txt +0 -1133
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "esbuild",
|
|
3
|
+
"version": "0.21.5",
|
|
4
|
+
"description": "An extremely fast JavaScript and CSS bundler and minifier.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/evanw/esbuild.git"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"postinstall": "node install.js"
|
|
11
|
+
},
|
|
12
|
+
"main": "lib/main.js",
|
|
13
|
+
"types": "lib/main.d.ts",
|
|
14
|
+
"engines": {
|
|
15
|
+
"node": ">=12"
|
|
16
|
+
},
|
|
17
|
+
"bin": {
|
|
18
|
+
"esbuild": "bin/esbuild"
|
|
19
|
+
},
|
|
20
|
+
"optionalDependencies": {
|
|
21
|
+
"@esbuild/aix-ppc64": "0.21.5",
|
|
22
|
+
"@esbuild/android-arm": "0.21.5",
|
|
23
|
+
"@esbuild/android-arm64": "0.21.5",
|
|
24
|
+
"@esbuild/android-x64": "0.21.5",
|
|
25
|
+
"@esbuild/darwin-arm64": "0.21.5",
|
|
26
|
+
"@esbuild/darwin-x64": "0.21.5",
|
|
27
|
+
"@esbuild/freebsd-arm64": "0.21.5",
|
|
28
|
+
"@esbuild/freebsd-x64": "0.21.5",
|
|
29
|
+
"@esbuild/linux-arm": "0.21.5",
|
|
30
|
+
"@esbuild/linux-arm64": "0.21.5",
|
|
31
|
+
"@esbuild/linux-ia32": "0.21.5",
|
|
32
|
+
"@esbuild/linux-loong64": "0.21.5",
|
|
33
|
+
"@esbuild/linux-mips64el": "0.21.5",
|
|
34
|
+
"@esbuild/linux-ppc64": "0.21.5",
|
|
35
|
+
"@esbuild/linux-riscv64": "0.21.5",
|
|
36
|
+
"@esbuild/linux-s390x": "0.21.5",
|
|
37
|
+
"@esbuild/linux-x64": "0.21.5",
|
|
38
|
+
"@esbuild/netbsd-x64": "0.21.5",
|
|
39
|
+
"@esbuild/openbsd-x64": "0.21.5",
|
|
40
|
+
"@esbuild/sunos-x64": "0.21.5",
|
|
41
|
+
"@esbuild/win32-arm64": "0.21.5",
|
|
42
|
+
"@esbuild/win32-ia32": "0.21.5",
|
|
43
|
+
"@esbuild/win32-x64": "0.21.5"
|
|
44
|
+
},
|
|
45
|
+
"license": "MIT"
|
|
46
|
+
}
|
package/dist/index.es.js
CHANGED
|
@@ -1020,7 +1020,8 @@ var object_hash = { exports: {} };
|
|
|
1020
1020
|
}, { buffer: 3, lYpoI2: 11 }] }, {}, [1])(1);
|
|
1021
1021
|
});
|
|
1022
1022
|
})(object_hash);
|
|
1023
|
-
const
|
|
1023
|
+
const tokenizeRegex = /[A-Z]{2,}(?=[A-Z][a-z]|\b)|[A-Z]?[a-z]+|[0-9]+(?:[a-z](?![a-z]))?|[A-Z]/g;
|
|
1024
|
+
const snakeCaseRegex = tokenizeRegex;
|
|
1024
1025
|
const toSnakeCase = (str) => {
|
|
1025
1026
|
const regExpMatchArray = str.match(snakeCaseRegex);
|
|
1026
1027
|
if (!regExpMatchArray) return "";
|
|
@@ -3474,8 +3475,7 @@ async function loadCollectionsFromDirectory(directory) {
|
|
|
3474
3475
|
const filePath = path$3.join(directory, file);
|
|
3475
3476
|
try {
|
|
3476
3477
|
const fileUrl = pathToFileURL(filePath).href;
|
|
3477
|
-
const
|
|
3478
|
-
const module = await dynamicImport(fileUrl);
|
|
3478
|
+
const module = await import(fileUrl);
|
|
3479
3479
|
if (module && module.default) {
|
|
3480
3480
|
collections.push(module.default);
|
|
3481
3481
|
} else {
|
|
@@ -3633,7 +3633,8 @@ const errorHandler = (err, c) => {
|
|
|
3633
3633
|
console.error(`❌ [API] ${c.req.method} ${c.req.path} → ${statusCode} ${code2}: ${logMessage}`);
|
|
3634
3634
|
const causePg = error2.cause && typeof error2.cause === "object" ? error2.cause : void 0;
|
|
3635
3635
|
const pgErrorCode = causePg?.code || error2.code;
|
|
3636
|
-
|
|
3636
|
+
const suppressStack = pgErrorCode === "42703" || pgErrorCode === "42P01" || statusCode < 500 && code2 === "BAD_REQUEST";
|
|
3637
|
+
if (!suppressStack) {
|
|
3637
3638
|
console.error(error2.stack || error2);
|
|
3638
3639
|
}
|
|
3639
3640
|
let clientMessage = "An unexpected error occurred";
|
|
@@ -21632,15 +21633,19 @@ ZodEnum.create;
|
|
|
21632
21633
|
ZodPromise.create;
|
|
21633
21634
|
ZodOptional.create;
|
|
21634
21635
|
ZodNullable.create;
|
|
21635
|
-
function createGoogleProvider(
|
|
21636
|
-
const
|
|
21636
|
+
function createGoogleProvider(config) {
|
|
21637
|
+
const clientId = typeof config === "string" ? config : config.clientId;
|
|
21638
|
+
const clientSecret = typeof config === "string" ? void 0 : config.clientSecret;
|
|
21639
|
+
const googleClient = new src$4.OAuth2Client(clientId, clientSecret);
|
|
21637
21640
|
return {
|
|
21638
21641
|
id: "google",
|
|
21639
21642
|
schema: objectType({
|
|
21640
21643
|
idToken: stringType().min(1).optional(),
|
|
21641
|
-
accessToken: stringType().min(1).optional()
|
|
21642
|
-
|
|
21643
|
-
|
|
21644
|
+
accessToken: stringType().min(1).optional(),
|
|
21645
|
+
code: stringType().min(1).optional(),
|
|
21646
|
+
redirectUri: stringType().min(1).optional()
|
|
21647
|
+
}).refine((data) => data.idToken || data.accessToken || data.code && data.redirectUri, {
|
|
21648
|
+
message: "One of idToken, accessToken, or code+redirectUri is required"
|
|
21644
21649
|
}),
|
|
21645
21650
|
verify: async (payload) => {
|
|
21646
21651
|
try {
|
|
@@ -21651,7 +21656,7 @@ function createGoogleProvider(clientId) {
|
|
|
21651
21656
|
});
|
|
21652
21657
|
const content = ticket.getPayload();
|
|
21653
21658
|
if (!content) {
|
|
21654
|
-
|
|
21659
|
+
throw new Error("Google ID token payload was empty");
|
|
21655
21660
|
}
|
|
21656
21661
|
return {
|
|
21657
21662
|
providerId: content.sub,
|
|
@@ -21667,12 +21672,11 @@ function createGoogleProvider(clientId) {
|
|
|
21667
21672
|
}
|
|
21668
21673
|
});
|
|
21669
21674
|
if (!res.ok) {
|
|
21670
|
-
|
|
21671
|
-
return null;
|
|
21675
|
+
throw new Error(`Google userinfo request failed with status ${res.status}`);
|
|
21672
21676
|
}
|
|
21673
21677
|
const info = await res.json();
|
|
21674
21678
|
if (!info.sub || !info.email) {
|
|
21675
|
-
|
|
21679
|
+
throw new Error("Google userinfo response missing sub or email");
|
|
21676
21680
|
}
|
|
21677
21681
|
return {
|
|
21678
21682
|
providerId: info.sub,
|
|
@@ -21681,10 +21685,73 @@ function createGoogleProvider(clientId) {
|
|
|
21681
21685
|
photoUrl: info.picture || null
|
|
21682
21686
|
};
|
|
21683
21687
|
}
|
|
21684
|
-
|
|
21688
|
+
if (payload.code && payload.redirectUri) {
|
|
21689
|
+
if (!clientSecret) {
|
|
21690
|
+
throw new Error("Google authorization code flow requires clientSecret. Configure GOOGLE_CLIENT_SECRET in your environment.");
|
|
21691
|
+
}
|
|
21692
|
+
const tokenResponse = await fetch("https://oauth2.googleapis.com/token", {
|
|
21693
|
+
method: "POST",
|
|
21694
|
+
headers: {
|
|
21695
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
21696
|
+
},
|
|
21697
|
+
body: new URLSearchParams({
|
|
21698
|
+
code: payload.code,
|
|
21699
|
+
client_id: clientId,
|
|
21700
|
+
client_secret: clientSecret,
|
|
21701
|
+
redirect_uri: payload.redirectUri,
|
|
21702
|
+
grant_type: "authorization_code"
|
|
21703
|
+
})
|
|
21704
|
+
});
|
|
21705
|
+
if (!tokenResponse.ok) {
|
|
21706
|
+
const errorBody = await tokenResponse.text();
|
|
21707
|
+
throw new Error(`Google token exchange failed (${tokenResponse.status}): ${errorBody}`);
|
|
21708
|
+
}
|
|
21709
|
+
const tokenData = await tokenResponse.json();
|
|
21710
|
+
if (tokenData.error) {
|
|
21711
|
+
throw new Error(`Google token exchange error: ${tokenData.error} – ${tokenData.error_description || "no details"}`);
|
|
21712
|
+
}
|
|
21713
|
+
if (tokenData.id_token) {
|
|
21714
|
+
const ticket = await googleClient.verifyIdToken({
|
|
21715
|
+
idToken: tokenData.id_token,
|
|
21716
|
+
audience: clientId
|
|
21717
|
+
});
|
|
21718
|
+
const content = ticket.getPayload();
|
|
21719
|
+
if (!content) {
|
|
21720
|
+
throw new Error("Google ID token payload was empty after code exchange");
|
|
21721
|
+
}
|
|
21722
|
+
return {
|
|
21723
|
+
providerId: content.sub,
|
|
21724
|
+
email: content.email || "",
|
|
21725
|
+
displayName: content.name || null,
|
|
21726
|
+
photoUrl: content.picture || null
|
|
21727
|
+
};
|
|
21728
|
+
}
|
|
21729
|
+
if (tokenData.access_token) {
|
|
21730
|
+
const userInfoRes = await fetch("https://www.googleapis.com/oauth2/v3/userinfo", {
|
|
21731
|
+
headers: {
|
|
21732
|
+
Authorization: `Bearer ${tokenData.access_token}`
|
|
21733
|
+
}
|
|
21734
|
+
});
|
|
21735
|
+
if (!userInfoRes.ok) {
|
|
21736
|
+
throw new Error(`Google userinfo request failed after code exchange (${userInfoRes.status})`);
|
|
21737
|
+
}
|
|
21738
|
+
const info = await userInfoRes.json();
|
|
21739
|
+
if (!info.sub || !info.email) {
|
|
21740
|
+
return null;
|
|
21741
|
+
}
|
|
21742
|
+
return {
|
|
21743
|
+
providerId: info.sub,
|
|
21744
|
+
email: info.email,
|
|
21745
|
+
displayName: info.name || null,
|
|
21746
|
+
photoUrl: info.picture || null
|
|
21747
|
+
};
|
|
21748
|
+
}
|
|
21749
|
+
throw new Error("Google token exchange returned neither id_token nor access_token");
|
|
21750
|
+
}
|
|
21751
|
+
throw new Error("No valid Google credential provided (expected idToken, accessToken, or code+redirectUri)");
|
|
21685
21752
|
} catch (error2) {
|
|
21686
|
-
console.error("
|
|
21687
|
-
|
|
21753
|
+
console.error("Google OAuth verification failed:", error2);
|
|
21754
|
+
throw error2;
|
|
21688
21755
|
}
|
|
21689
21756
|
}
|
|
21690
21757
|
};
|
|
@@ -22892,7 +22959,11 @@ function createAuthRoutes(config) {
|
|
|
22892
22959
|
passwordHash,
|
|
22893
22960
|
displayName: displayName || void 0
|
|
22894
22961
|
});
|
|
22895
|
-
|
|
22962
|
+
const existingUsers = await authRepo.listUsers();
|
|
22963
|
+
const isFirstUser = existingUsers.length === 1 && existingUsers[0].id === user.id;
|
|
22964
|
+
if (isFirstUser) {
|
|
22965
|
+
await authRepo.setUserRoles(user.id, ["admin"]);
|
|
22966
|
+
} else if (config.defaultRole) {
|
|
22896
22967
|
await authRepo.assignDefaultRole(user.id, config.defaultRole);
|
|
22897
22968
|
}
|
|
22898
22969
|
const {
|
|
@@ -22933,7 +23004,13 @@ function createAuthRoutes(config) {
|
|
|
22933
23004
|
for (const provider of config.oauthProviders) {
|
|
22934
23005
|
router.post(`/${provider.id}`, defaultAuthLimiter, async (c) => {
|
|
22935
23006
|
const payload = parseBody2(provider.schema, await c.req.json());
|
|
22936
|
-
|
|
23007
|
+
let externalUser;
|
|
23008
|
+
try {
|
|
23009
|
+
externalUser = await provider.verify(payload);
|
|
23010
|
+
} catch (err) {
|
|
23011
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
23012
|
+
throw ApiError.unauthorized(`${provider.id} login failed: ${msg}`, "OAUTH_ERROR");
|
|
23013
|
+
}
|
|
22937
23014
|
if (!externalUser) {
|
|
22938
23015
|
throw ApiError.unauthorized(`Invalid ${provider.id} credentials`, "INVALID_TOKEN");
|
|
22939
23016
|
}
|
|
@@ -22957,7 +23034,11 @@ function createAuthRoutes(config) {
|
|
|
22957
23034
|
await authRepo.linkUserIdentity(user.id, provider.id, externalUser.providerId, {
|
|
22958
23035
|
email: externalUser.email
|
|
22959
23036
|
});
|
|
22960
|
-
|
|
23037
|
+
const allUsers = await authRepo.listUsers();
|
|
23038
|
+
const isFirstUser = allUsers.length === 1 && allUsers[0].id === user.id;
|
|
23039
|
+
if (isFirstUser) {
|
|
23040
|
+
await authRepo.setUserRoles(user.id, ["admin"]);
|
|
23041
|
+
} else if (config.defaultRole) {
|
|
22961
23042
|
await authRepo.assignDefaultRole(user.id, config.defaultRole);
|
|
22962
23043
|
}
|
|
22963
23044
|
sendWelcomeEmail({
|
|
@@ -24950,20 +25031,21 @@ function createAuth(transport, options2) {
|
|
|
24950
25031
|
refreshToken: session.refreshToken
|
|
24951
25032
|
};
|
|
24952
25033
|
}
|
|
24953
|
-
async function signInWithGoogle(
|
|
25034
|
+
async function signInWithGoogle(tokenOrPayload) {
|
|
24954
25035
|
const fetchFn = getFetch();
|
|
25036
|
+
const body = typeof tokenOrPayload === "string" ? {
|
|
25037
|
+
idToken: tokenOrPayload
|
|
25038
|
+
} : tokenOrPayload;
|
|
24955
25039
|
const res = await fetchFn(authUrl("/google"), {
|
|
24956
25040
|
method: "POST",
|
|
24957
25041
|
headers: {
|
|
24958
25042
|
"Content-Type": "application/json"
|
|
24959
25043
|
},
|
|
24960
|
-
body: JSON.stringify(
|
|
24961
|
-
idToken
|
|
24962
|
-
})
|
|
25044
|
+
body: JSON.stringify(body)
|
|
24963
25045
|
});
|
|
24964
|
-
const
|
|
24965
|
-
if (!res.ok) throwApiError(res.status,
|
|
24966
|
-
const session = handleAuthResponse(
|
|
25046
|
+
const responseBody = await res.json().catch(() => ({}));
|
|
25047
|
+
if (!res.ok) throwApiError(res.status, responseBody, res.statusText);
|
|
25048
|
+
const session = handleAuthResponse(responseBody, "SIGNED_IN");
|
|
24967
25049
|
return {
|
|
24968
25050
|
user: session.user,
|
|
24969
25051
|
accessToken: session.accessToken,
|
|
@@ -25625,6 +25707,25 @@ function createCollectionClient(transport, slug, ws) {
|
|
|
25625
25707
|
};
|
|
25626
25708
|
return client;
|
|
25627
25709
|
}
|
|
25710
|
+
function createFunctionsClient(transport) {
|
|
25711
|
+
return {
|
|
25712
|
+
async invoke(name2, payload, options2) {
|
|
25713
|
+
const method = options2?.method ?? "POST";
|
|
25714
|
+
const subPath = options2?.path ? `/${options2.path.replace(/^\//, "")}` : "";
|
|
25715
|
+
const routePath = `/functions/${encodeURIComponent(name2)}${subPath}`;
|
|
25716
|
+
const init = {
|
|
25717
|
+
method
|
|
25718
|
+
};
|
|
25719
|
+
if (payload !== void 0 && method !== "GET") {
|
|
25720
|
+
init.body = JSON.stringify(payload);
|
|
25721
|
+
}
|
|
25722
|
+
if (options2?.headers) {
|
|
25723
|
+
init.headers = options2.headers;
|
|
25724
|
+
}
|
|
25725
|
+
return transport.request(routePath, init);
|
|
25726
|
+
}
|
|
25727
|
+
};
|
|
25728
|
+
}
|
|
25628
25729
|
function createStorage(transport) {
|
|
25629
25730
|
const urlsCache = /* @__PURE__ */ new Map();
|
|
25630
25731
|
async function putObject({
|
|
@@ -25758,6 +25859,7 @@ function createRebaseClient(options2) {
|
|
|
25758
25859
|
const admin = createAdmin(transport, options2.admin);
|
|
25759
25860
|
const cron = createCron(transport, options2.cron);
|
|
25760
25861
|
const storage = createStorage(transport);
|
|
25862
|
+
const functions = createFunctionsClient(transport);
|
|
25761
25863
|
let ws;
|
|
25762
25864
|
if (!options2.onUnauthorized) {
|
|
25763
25865
|
transport.setOnUnauthorized(async () => {
|
|
@@ -25796,6 +25898,7 @@ function createRebaseClient(options2) {
|
|
|
25796
25898
|
auth,
|
|
25797
25899
|
admin,
|
|
25798
25900
|
cron,
|
|
25901
|
+
functions,
|
|
25799
25902
|
storage,
|
|
25800
25903
|
ws,
|
|
25801
25904
|
setToken: transport.setToken,
|
|
@@ -37123,7 +37226,7 @@ async function _initializeRebaseBackend(config) {
|
|
|
37123
37226
|
const {
|
|
37124
37227
|
createGoogleProvider: createGoogleProvider2
|
|
37125
37228
|
} = await import("./index-DXVBFp5V.js");
|
|
37126
|
-
oauthProviders.push(createGoogleProvider2(config.auth.google
|
|
37229
|
+
oauthProviders.push(createGoogleProvider2(config.auth.google));
|
|
37127
37230
|
}
|
|
37128
37231
|
if (config.auth.linkedin?.clientId && config.auth.linkedin?.clientSecret) {
|
|
37129
37232
|
const {
|
|
@@ -37324,6 +37427,13 @@ async function _initializeRebaseBackend(config) {
|
|
|
37324
37427
|
}
|
|
37325
37428
|
_initRebase(serverClient);
|
|
37326
37429
|
logger.info("Rebase singleton initialized");
|
|
37430
|
+
if (defaultDriverResult.internals) {
|
|
37431
|
+
const internals = defaultDriverResult.internals;
|
|
37432
|
+
const driver = internals.driver;
|
|
37433
|
+
if (driver && "client" in driver) {
|
|
37434
|
+
driver.client = serverClient;
|
|
37435
|
+
}
|
|
37436
|
+
}
|
|
37327
37437
|
if (config.functionsDir) {
|
|
37328
37438
|
const {
|
|
37329
37439
|
loadFunctionsFromDirectory: loadFunctionsFromDirectory2
|
|
@@ -48194,7 +48304,9 @@ class RebaseApiServer {
|
|
|
48194
48304
|
* Setup Hono middleware
|
|
48195
48305
|
*/
|
|
48196
48306
|
setupMiddleware() {
|
|
48197
|
-
this.router.use("/*", secureHeaders(
|
|
48307
|
+
this.router.use("/*", secureHeaders({
|
|
48308
|
+
crossOriginOpenerPolicy: "same-origin-allow-popups"
|
|
48309
|
+
}));
|
|
48198
48310
|
if (this.config.cors) {
|
|
48199
48311
|
const origin = this.config.cors.origin;
|
|
48200
48312
|
this.router.use("/*", cors({
|