feat: publish Dever core with project scaffolding and versioned AI skills
This commit is contained in:
1 parent
70fa73cdc2
commit
ac458ffa7f
960 files changed
+221319
-1163
No files matched your search
@@ -0,0 +1,354 @@
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub(crate) enum Intrinsic {
|
||||
TestAssert,
|
||||
TestAssertEq,
|
||||
TestSecret,
|
||||
JobServe,
|
||||
TestJobDrain,
|
||||
TestClockAdvance,
|
||||
CryptoToken,
|
||||
CryptoPasswordHash,
|
||||
CryptoPasswordVerify,
|
||||
CryptoSha256,
|
||||
CryptoHmacSha256,
|
||||
CryptoConstantTimeEq,
|
||||
TextTrim,
|
||||
TextLower,
|
||||
TextUpper,
|
||||
TextCodepoint,
|
||||
TextFromCodepoint,
|
||||
TextAt,
|
||||
TextSlice,
|
||||
TextIndexOf,
|
||||
TextContains,
|
||||
TextStartsWith,
|
||||
TextEndsWith,
|
||||
TextSplit,
|
||||
TextReplace,
|
||||
IntParse,
|
||||
IntToText,
|
||||
DecimalParse,
|
||||
DecimalToText,
|
||||
DecimalFromInt,
|
||||
FloatParse,
|
||||
FloatToText,
|
||||
ProcessArguments,
|
||||
TimeUnixMillis,
|
||||
TimeNow,
|
||||
TimeParseDateTime,
|
||||
TimeFormatDateTime,
|
||||
TimeParseDate,
|
||||
TimeFormatDate,
|
||||
TimeParseTime,
|
||||
TimeFormatTime,
|
||||
TimeDuration,
|
||||
TimeAdd,
|
||||
TimeSubtract,
|
||||
TimeDifference,
|
||||
TimeMonotonicNanos,
|
||||
TimeSleep,
|
||||
TaskSleep,
|
||||
TaskTicks,
|
||||
TaskTimeout,
|
||||
TaskRace,
|
||||
StreamOf,
|
||||
TlsSystem,
|
||||
TlsClient,
|
||||
TlsServer,
|
||||
HttpClientNew,
|
||||
HttpRequest,
|
||||
HttpOpen,
|
||||
HttpOpenStream,
|
||||
HttpCloseClient,
|
||||
HttpServeTls,
|
||||
HttpServeLiveTls,
|
||||
WsOpen,
|
||||
DecimalRound,
|
||||
FloatFromInt,
|
||||
FloatSqrt,
|
||||
FloatSin,
|
||||
FloatCos,
|
||||
FloatLog,
|
||||
FloatPow,
|
||||
FloatIsNan,
|
||||
FloatIsFinite,
|
||||
FloatIsInfinite,
|
||||
StdoutWrite,
|
||||
LogDebug,
|
||||
LogInfo,
|
||||
LogWarn,
|
||||
LogError,
|
||||
IdFromText,
|
||||
IdToText,
|
||||
UuidParse,
|
||||
UuidToText,
|
||||
BytesFromText,
|
||||
BytesToText,
|
||||
BytesFromInts,
|
||||
BytesLength,
|
||||
BytesAt,
|
||||
BytesSlice,
|
||||
BytesConcat,
|
||||
FileOpen,
|
||||
FileCreate,
|
||||
FileRead,
|
||||
FileWrite,
|
||||
FileClose,
|
||||
FileChunks,
|
||||
TcpConnect,
|
||||
TcpConnectTimeout,
|
||||
TcpListen,
|
||||
TcpAccept,
|
||||
TcpPort,
|
||||
TcpRead,
|
||||
TcpWrite,
|
||||
TcpTimeout,
|
||||
TcpClose,
|
||||
TcpCloseListener,
|
||||
TcpChunks,
|
||||
TcpConnections,
|
||||
HttpServe,
|
||||
ApiServe,
|
||||
UploadFilename,
|
||||
UploadContentType,
|
||||
UploadSize,
|
||||
UploadClose,
|
||||
UploadStore,
|
||||
ApiRequestId,
|
||||
ApiMethod,
|
||||
ApiPath,
|
||||
ApiClientAddress,
|
||||
ApiHeader,
|
||||
ApiCookie,
|
||||
ApiSecretCookie,
|
||||
ApiResponseHeader,
|
||||
ApiResponseCookie,
|
||||
ApiResponseSecretCookie,
|
||||
AuthIssue,
|
||||
AuthIssueCookie,
|
||||
AuthClearCookie,
|
||||
AuthOwnsUser,
|
||||
AuthId,
|
||||
AuthSession,
|
||||
AuthUserId,
|
||||
AuthTenantId,
|
||||
AuthPermissions,
|
||||
AuthSaveRole,
|
||||
AuthGrantRole,
|
||||
AuthRevokeRole,
|
||||
AuthDisableRole,
|
||||
SiteKey,
|
||||
HttpSend,
|
||||
HttpServeLive,
|
||||
HttpRespond,
|
||||
HttpStart,
|
||||
HttpWrite,
|
||||
HttpFinish,
|
||||
SseStart,
|
||||
SseSend,
|
||||
WsAccept,
|
||||
WsConnect,
|
||||
WsSend,
|
||||
WsReceive,
|
||||
WsMessages,
|
||||
WsClose,
|
||||
}
|
||||
|
||||
impl Intrinsic {
|
||||
pub fn is_async(self) -> bool {
|
||||
matches!(
|
||||
self,
|
||||
Self::UploadStore
|
||||
| Self::HttpClientNew
|
||||
| Self::HttpRequest
|
||||
| Self::HttpOpen
|
||||
| Self::HttpOpenStream
|
||||
| Self::HttpCloseClient
|
||||
| Self::HttpServeTls
|
||||
| Self::HttpServeLiveTls
|
||||
| Self::WsOpen
|
||||
| Self::TaskTicks
|
||||
| Self::TaskSleep
|
||||
| Self::TaskTimeout
|
||||
| Self::TaskRace
|
||||
| Self::TcpConnect
|
||||
| Self::TcpConnectTimeout
|
||||
| Self::TcpListen
|
||||
| Self::TcpAccept
|
||||
| Self::TcpRead
|
||||
| Self::TcpWrite
|
||||
| Self::HttpServe
|
||||
| Self::ApiServe
|
||||
| Self::JobServe
|
||||
| Self::TestJobDrain
|
||||
| Self::HttpSend
|
||||
| Self::HttpServeLive
|
||||
| Self::HttpRespond
|
||||
| Self::HttpStart
|
||||
| Self::HttpWrite
|
||||
| Self::HttpFinish
|
||||
| Self::SseStart
|
||||
| Self::SseSend
|
||||
| Self::AuthPermissions
|
||||
| Self::AuthSaveRole
|
||||
| Self::AuthGrantRole
|
||||
| Self::AuthRevokeRole
|
||||
| Self::AuthDisableRole
|
||||
| Self::WsAccept
|
||||
| Self::WsConnect
|
||||
| Self::WsSend
|
||||
| Self::WsReceive
|
||||
| Self::WsClose
|
||||
)
|
||||
}
|
||||
|
||||
pub fn from_name(name: &str) -> Option<Self> {
|
||||
match name {
|
||||
"dever.test.drain_jobs" => return Some(Self::TestJobDrain),
|
||||
"dever.test.advance_clock" => return Some(Self::TestClockAdvance),
|
||||
"dever.auth.owns_user" => return Some(Self::AuthOwnsUser),
|
||||
_ => {}
|
||||
}
|
||||
Some(match name.strip_prefix("dever.system.")? {
|
||||
"job_serve" => Self::JobServe,
|
||||
"text_trim" => Self::TextTrim,
|
||||
"text_lower" => Self::TextLower,
|
||||
"text_upper" => Self::TextUpper,
|
||||
"text_codepoint" => Self::TextCodepoint,
|
||||
"text_from_codepoint" => Self::TextFromCodepoint,
|
||||
"text_at" => Self::TextAt,
|
||||
"text_slice" => Self::TextSlice,
|
||||
"text_index_of" => Self::TextIndexOf,
|
||||
"text_contains" => Self::TextContains,
|
||||
"text_starts_with" => Self::TextStartsWith,
|
||||
"text_ends_with" => Self::TextEndsWith,
|
||||
"text_split" => Self::TextSplit,
|
||||
"text_replace" => Self::TextReplace,
|
||||
"int_parse" => Self::IntParse,
|
||||
"int_to_text" => Self::IntToText,
|
||||
"decimal_parse" => Self::DecimalParse,
|
||||
"decimal_to_text" => Self::DecimalToText,
|
||||
"decimal_from_int" => Self::DecimalFromInt,
|
||||
"float_parse" => Self::FloatParse,
|
||||
"float_to_text" => Self::FloatToText,
|
||||
"process_arguments" => Self::ProcessArguments,
|
||||
"crypto_token" => Self::CryptoToken,
|
||||
"crypto_password_hash" => Self::CryptoPasswordHash,
|
||||
"crypto_password_verify" => Self::CryptoPasswordVerify,
|
||||
"crypto_sha256" => Self::CryptoSha256,
|
||||
"crypto_hmac_sha256" => Self::CryptoHmacSha256,
|
||||
"crypto_constant_time_eq" => Self::CryptoConstantTimeEq,
|
||||
"time_unix_millis" => Self::TimeUnixMillis,
|
||||
"time_now" => Self::TimeNow,
|
||||
"time_parse_datetime" => Self::TimeParseDateTime,
|
||||
"time_format_datetime" => Self::TimeFormatDateTime,
|
||||
"time_parse_date" => Self::TimeParseDate,
|
||||
"time_format_date" => Self::TimeFormatDate,
|
||||
"time_parse_time" => Self::TimeParseTime,
|
||||
"time_format_time" => Self::TimeFormatTime,
|
||||
"time_duration" => Self::TimeDuration,
|
||||
"time_add" => Self::TimeAdd,
|
||||
"time_subtract" => Self::TimeSubtract,
|
||||
"time_difference" => Self::TimeDifference,
|
||||
"time_monotonic_nanos" => Self::TimeMonotonicNanos,
|
||||
"time_sleep" => Self::TimeSleep,
|
||||
"task_sleep" => Self::TaskSleep,
|
||||
"task_ticks" => Self::TaskTicks,
|
||||
"tls_system" => Self::TlsSystem,
|
||||
"tls_client" => Self::TlsClient,
|
||||
"tls_server" => Self::TlsServer,
|
||||
"http_client" => Self::HttpClientNew,
|
||||
"http_request" => Self::HttpRequest,
|
||||
"http_open" => Self::HttpOpen,
|
||||
"http_open_stream" => Self::HttpOpenStream,
|
||||
"http_close_client" => Self::HttpCloseClient,
|
||||
"http_serve_tls" => Self::HttpServeTls,
|
||||
"http_serve_live_tls" => Self::HttpServeLiveTls,
|
||||
"ws_open" => Self::WsOpen,
|
||||
"decimal_round" => Self::DecimalRound,
|
||||
"float_from_int" => Self::FloatFromInt,
|
||||
"float_sqrt" => Self::FloatSqrt,
|
||||
"float_sin" => Self::FloatSin,
|
||||
"float_cos" => Self::FloatCos,
|
||||
"float_log" => Self::FloatLog,
|
||||
"float_pow" => Self::FloatPow,
|
||||
"float_is_nan" => Self::FloatIsNan,
|
||||
"float_is_finite" => Self::FloatIsFinite,
|
||||
"float_is_infinite" => Self::FloatIsInfinite,
|
||||
"stdout_write" => Self::StdoutWrite,
|
||||
"log_debug" => Self::LogDebug,
|
||||
"log_info" => Self::LogInfo,
|
||||
"log_warn" => Self::LogWarn,
|
||||
"log_error" => Self::LogError,
|
||||
"id_from_text" => Self::IdFromText,
|
||||
"id_to_text" => Self::IdToText,
|
||||
"uuid_parse" => Self::UuidParse,
|
||||
"uuid_to_text" => Self::UuidToText,
|
||||
"bytes_from_text" => Self::BytesFromText,
|
||||
"bytes_to_text" => Self::BytesToText,
|
||||
"bytes_from_ints" => Self::BytesFromInts,
|
||||
"bytes_length" => Self::BytesLength,
|
||||
"bytes_at" => Self::BytesAt,
|
||||
"bytes_slice" => Self::BytesSlice,
|
||||
"bytes_concat" => Self::BytesConcat,
|
||||
"file_open" => Self::FileOpen,
|
||||
"file_create" => Self::FileCreate,
|
||||
"file_read" => Self::FileRead,
|
||||
"file_write" => Self::FileWrite,
|
||||
"file_close" => Self::FileClose,
|
||||
"file_chunks" => Self::FileChunks,
|
||||
"tcp_connect" => Self::TcpConnect,
|
||||
"tcp_connect_timeout" => Self::TcpConnectTimeout,
|
||||
"tcp_listen" => Self::TcpListen,
|
||||
"tcp_accept" => Self::TcpAccept,
|
||||
"tcp_port" => Self::TcpPort,
|
||||
"tcp_read" => Self::TcpRead,
|
||||
"tcp_write" => Self::TcpWrite,
|
||||
"tcp_timeout" => Self::TcpTimeout,
|
||||
"tcp_close" => Self::TcpClose,
|
||||
"tcp_close_listener" => Self::TcpCloseListener,
|
||||
"tcp_chunks" => Self::TcpChunks,
|
||||
"tcp_connections" => Self::TcpConnections,
|
||||
"http_serve" => Self::HttpServe,
|
||||
"api_serve" => Self::ApiServe,
|
||||
"api_request_id" => Self::ApiRequestId,
|
||||
"api_method" => Self::ApiMethod,
|
||||
"api_path" => Self::ApiPath,
|
||||
"api_client_address" => Self::ApiClientAddress,
|
||||
"api_header" => Self::ApiHeader,
|
||||
"api_cookie" => Self::ApiCookie,
|
||||
"api_secret_cookie" => Self::ApiSecretCookie,
|
||||
"api_response_header" => Self::ApiResponseHeader,
|
||||
"api_response_cookie" => Self::ApiResponseCookie,
|
||||
"api_response_secret_cookie" => Self::ApiResponseSecretCookie,
|
||||
"auth_issue" => Self::AuthIssue,
|
||||
"auth_issue_cookie" => Self::AuthIssueCookie,
|
||||
"auth_clear_cookie" => Self::AuthClearCookie,
|
||||
"auth_id" => Self::AuthId,
|
||||
"auth_session" => Self::AuthSession,
|
||||
"auth_user_id" => Self::AuthUserId,
|
||||
"auth_tenant_id" => Self::AuthTenantId,
|
||||
"auth_permissions" => Self::AuthPermissions,
|
||||
"auth_save_role" => Self::AuthSaveRole,
|
||||
"auth_grant_role" => Self::AuthGrantRole,
|
||||
"auth_revoke_role" => Self::AuthRevokeRole,
|
||||
"auth_disable_role" => Self::AuthDisableRole,
|
||||
"site_key" => Self::SiteKey,
|
||||
"http_send" => Self::HttpSend,
|
||||
"http_serve_live" => Self::HttpServeLive,
|
||||
"http_respond" => Self::HttpRespond,
|
||||
"http_start" => Self::HttpStart,
|
||||
"http_write" => Self::HttpWrite,
|
||||
"http_finish" => Self::HttpFinish,
|
||||
"sse_start" => Self::SseStart,
|
||||
"sse_send" => Self::SseSend,
|
||||
"ws_accept" => Self::WsAccept,
|
||||
"ws_connect" => Self::WsConnect,
|
||||
"ws_send" => Self::WsSend,
|
||||
"ws_receive" => Self::WsReceive,
|
||||
"ws_messages" => Self::WsMessages,
|
||||
"ws_close" => Self::WsClose,
|
||||
_ => return None,
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user