eigent/package/@stackframe/stack-shared/dist/interface/crud/projects.js

225 lines
12 KiB
JavaScript

"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/interface/crud/projects.ts
var projects_exports = {};
__export(projects_exports, {
adminUserProjectsCrud: () => adminUserProjectsCrud,
clientProjectsCrud: () => clientProjectsCrud,
emailConfigSchema: () => emailConfigSchema,
emailConfigWithoutPasswordSchema: () => emailConfigWithoutPasswordSchema,
projectsCrud: () => projectsCrud,
projectsCrudAdminCreateSchema: () => projectsCrudAdminCreateSchema,
projectsCrudAdminDeleteSchema: () => projectsCrudAdminDeleteSchema,
projectsCrudAdminReadSchema: () => projectsCrudAdminReadSchema,
projectsCrudAdminUpdateSchema: () => projectsCrudAdminUpdateSchema,
projectsCrudClientReadSchema: () => projectsCrudClientReadSchema
});
module.exports = __toCommonJS(projects_exports);
var import_crud = require("../../crud");
var schemaFields = __toESM(require("../../schema-fields"));
var import_schema_fields = require("../../schema-fields");
var teamPermissionSchema = (0, import_schema_fields.yupObject)({
id: (0, import_schema_fields.yupString)().defined()
}).defined();
var oauthProviderSchema = (0, import_schema_fields.yupObject)({
id: schemaFields.oauthIdSchema.defined(),
type: schemaFields.oauthTypeSchema.defined(),
client_id: schemaFields.yupDefinedAndNonEmptyWhen(
schemaFields.oauthClientIdSchema,
{ type: "standard" }
),
client_secret: schemaFields.yupDefinedAndNonEmptyWhen(
schemaFields.oauthClientSecretSchema,
{ type: "standard" }
),
// extra params
facebook_config_id: schemaFields.oauthFacebookConfigIdSchema.optional(),
microsoft_tenant_id: schemaFields.oauthMicrosoftTenantIdSchema.optional()
});
var enabledOAuthProviderSchema = (0, import_schema_fields.yupObject)({
id: schemaFields.oauthIdSchema.defined()
});
var emailConfigSchema = (0, import_schema_fields.yupObject)({
type: schemaFields.emailTypeSchema.defined(),
host: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailHostSchema, {
type: "standard"
}),
port: schemaFields.yupDefinedWhen(schemaFields.emailPortSchema, {
type: "standard"
}),
username: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailUsernameSchema, {
type: "standard"
}),
password: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailPasswordSchema, {
type: "standard"
}),
sender_name: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderNameSchema, {
type: "standard"
}),
sender_email: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderEmailSchema, {
type: "standard"
})
});
var emailConfigWithoutPasswordSchema = emailConfigSchema.pick(["type", "host", "port", "username", "sender_name", "sender_email"]);
var domainSchema = (0, import_schema_fields.yupObject)({
domain: schemaFields.urlSchema.defined().matches(/^https?:\/\//, "URL must start with http:// or https://").meta({ openapiField: { description: "URL. Must start with http:// or https://", exampleValue: "https://example.com" } }),
handler_path: schemaFields.handlerPathSchema.defined()
});
var projectsCrudAdminReadSchema = (0, import_schema_fields.yupObject)({
id: schemaFields.projectIdSchema.defined(),
display_name: schemaFields.projectDisplayNameSchema.defined(),
description: schemaFields.projectDescriptionSchema.nonNullable().defined(),
created_at_millis: schemaFields.projectCreatedAtMillisSchema.defined(),
user_count: schemaFields.projectUserCountSchema.defined(),
is_production_mode: schemaFields.projectIsProductionModeSchema.defined(),
/** @deprecated */
config: (0, import_schema_fields.yupObject)({
allow_localhost: schemaFields.projectAllowLocalhostSchema.defined(),
sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),
credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),
magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),
passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),
// TODO: remove this
client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),
client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),
allow_user_api_keys: schemaFields.yupBoolean().defined(),
allow_team_api_keys: schemaFields.yupBoolean().defined(),
oauth_providers: (0, import_schema_fields.yupArray)(oauthProviderSchema.defined()).defined(),
enabled_oauth_providers: (0, import_schema_fields.yupArray)(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),
domains: (0, import_schema_fields.yupArray)(domainSchema.defined()).defined(),
email_config: emailConfigSchema.defined(),
create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.defined(),
team_creator_default_permissions: (0, import_schema_fields.yupArray)(teamPermissionSchema.defined()).defined(),
team_member_default_permissions: (0, import_schema_fields.yupArray)(teamPermissionSchema.defined()).defined(),
user_default_permissions: (0, import_schema_fields.yupArray)(teamPermissionSchema.defined()).defined(),
oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.defined()
}).defined().meta({ openapiField: { hidden: true } })
}).defined();
var projectsCrudClientReadSchema = (0, import_schema_fields.yupObject)({
id: schemaFields.projectIdSchema.defined(),
display_name: schemaFields.projectDisplayNameSchema.defined(),
config: (0, import_schema_fields.yupObject)({
sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),
credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),
magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),
passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),
client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),
client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),
allow_user_api_keys: schemaFields.yupBoolean().defined(),
allow_team_api_keys: schemaFields.yupBoolean().defined(),
enabled_oauth_providers: (0, import_schema_fields.yupArray)(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } })
}).defined().meta({ openapiField: { hidden: true } })
}).defined();
var projectsCrudAdminUpdateSchema = (0, import_schema_fields.yupObject)({
display_name: schemaFields.projectDisplayNameSchema.optional(),
description: schemaFields.projectDescriptionSchema.optional(),
is_production_mode: schemaFields.projectIsProductionModeSchema.optional(),
config: (0, import_schema_fields.yupObject)({
sign_up_enabled: schemaFields.projectSignUpEnabledSchema.optional(),
credential_enabled: schemaFields.projectCredentialEnabledSchema.optional(),
magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.optional(),
passkey_enabled: schemaFields.projectPasskeyEnabledSchema.optional(),
client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.optional(),
client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.optional(),
allow_localhost: schemaFields.projectAllowLocalhostSchema.optional(),
allow_user_api_keys: schemaFields.yupBoolean().optional(),
allow_team_api_keys: schemaFields.yupBoolean().optional(),
email_config: emailConfigSchema.optional().default(void 0),
domains: (0, import_schema_fields.yupArray)(domainSchema.defined()).optional().default(void 0),
oauth_providers: (0, import_schema_fields.yupArray)(oauthProviderSchema.defined()).optional().default(void 0),
create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.optional(),
team_creator_default_permissions: (0, import_schema_fields.yupArray)(teamPermissionSchema.defined()).optional(),
team_member_default_permissions: (0, import_schema_fields.yupArray)(teamPermissionSchema.defined()).optional(),
user_default_permissions: (0, import_schema_fields.yupArray)(teamPermissionSchema.defined()).optional(),
oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.optional()
}).optional().default(void 0)
}).defined();
var projectsCrudAdminCreateSchema = projectsCrudAdminUpdateSchema.concat((0, import_schema_fields.yupObject)({
display_name: schemaFields.projectDisplayNameSchema.defined()
}).defined());
var projectsCrudAdminDeleteSchema = schemaFields.yupMixed();
var clientProjectsCrud = (0, import_crud.createCrud)({
clientReadSchema: projectsCrudClientReadSchema,
docs: {
clientRead: {
summary: "Get the current project",
description: "Get the current project information including display name, OAuth providers and authentication methods. Useful for display the available login options to the user.",
tags: ["Projects"]
}
}
});
var projectsCrud = (0, import_crud.createCrud)({
adminReadSchema: projectsCrudAdminReadSchema,
adminUpdateSchema: projectsCrudAdminUpdateSchema,
adminDeleteSchema: projectsCrudAdminDeleteSchema,
docs: {
adminRead: {
summary: "Get the current project",
description: "Get the current project information and configuration including display name, OAuth providers, email configuration, etc.",
tags: ["Projects"]
},
adminUpdate: {
summary: "Update the current project",
description: "Update the current project information and configuration including display name, OAuth providers, email configuration, etc.",
tags: ["Projects"]
},
adminDelete: {
summary: "Delete the current project",
description: "Delete the current project and all associated data (including users, teams, API keys, project configs, etc.). Be careful, this action is irreversible.",
tags: ["Projects"]
}
}
});
var adminUserProjectsCrud = (0, import_crud.createCrud)({
clientReadSchema: projectsCrudAdminReadSchema,
clientCreateSchema: projectsCrudAdminCreateSchema,
docs: {
clientList: {
hidden: true
},
clientCreate: {
hidden: true
}
}
});
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
adminUserProjectsCrud,
clientProjectsCrud,
emailConfigSchema,
emailConfigWithoutPasswordSchema,
projectsCrud,
projectsCrudAdminCreateSchema,
projectsCrudAdminDeleteSchema,
projectsCrudAdminReadSchema,
projectsCrudAdminUpdateSchema,
projectsCrudClientReadSchema
});
//# sourceMappingURL=projects.js.map