Fix: System-wide type hardening and V3 API alignment
This commit is contained in:
@@ -94,11 +94,11 @@
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
ae_promises = ai_client.chat.completions.create({
|
ae_promises = ai_client.chat.completions.create({
|
||||||
model: model,
|
model: model || 'dgrzone-deepseek-8b-quick',
|
||||||
max_tokens: maxTokens,
|
max_tokens: maxTokens,
|
||||||
temperature: temperature,
|
temperature: temperature,
|
||||||
messages: [
|
messages: [
|
||||||
{ role: 'system', content: systemPrompt },
|
{ role: 'system', content: systemPrompt || 'You are a helpful assistant.' },
|
||||||
{ role: 'user', content: content }
|
{ role: 'user', content: content }
|
||||||
]
|
]
|
||||||
}).then((resp) => {
|
}).then((resp) => {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import type { key_val } from '$lib/stores/ae_stores';
|
|||||||
import { api } from '$lib/api/api';
|
import { api } from '$lib/api/api';
|
||||||
import { db_sponsorships } from '$lib/ae_sponsorships/db_sponsorships';
|
import { db_sponsorships } from '$lib/ae_sponsorships/db_sponsorships';
|
||||||
import { db_save_ae_obj_li__ae_obj } from '$lib/ae_core/core__idb_dexie';
|
import { db_save_ae_obj_li__ae_obj } from '$lib/ae_core/core__idb_dexie';
|
||||||
import type { ae_Sponsorship, ae_Sponsorship_Cfg } from '$lib/types/ae_types';
|
import type { ae_Sponsorship, ae_SponsorshipCfg } from '$lib/types/ae_types';
|
||||||
|
|
||||||
const ae_promises: key_val = {};
|
const ae_promises: key_val = {};
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ export async function load_ae_obj_id__sponsorship_cfg({
|
|||||||
sponsorship_cfg_id: string;
|
sponsorship_cfg_id: string;
|
||||||
try_cache?: boolean;
|
try_cache?: boolean;
|
||||||
log_lvl?: number;
|
log_lvl?: number;
|
||||||
}): Promise<ae_Sponsorship_Cfg | null> {
|
}): Promise<ae_SponsorshipCfg | null> {
|
||||||
if (log_lvl) {
|
if (log_lvl) {
|
||||||
console.log(`*** load_ae_obj_id__sponsorship_cfg() *** [V3] id=${sponsorship_cfg_id}`);
|
console.log(`*** load_ae_obj_id__sponsorship_cfg() *** [V3] id=${sponsorship_cfg_id}`);
|
||||||
}
|
}
|
||||||
@@ -348,7 +348,7 @@ export async function create_ae_obj__sponsorship({
|
|||||||
return await api.create_ae_obj_v3({
|
return await api.create_ae_obj_v3({
|
||||||
api_cfg,
|
api_cfg,
|
||||||
obj_type: 'sponsorship',
|
obj_type: 'sponsorship',
|
||||||
data,
|
fields: data,
|
||||||
log_lvl
|
log_lvl
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -371,7 +371,7 @@ export async function update_ae_obj__sponsorship({
|
|||||||
api_cfg,
|
api_cfg,
|
||||||
obj_type: 'sponsorship',
|
obj_type: 'sponsorship',
|
||||||
obj_id: sponsorship_id,
|
obj_id: sponsorship_id,
|
||||||
data,
|
fields: data,
|
||||||
log_lvl
|
log_lvl
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -259,6 +259,20 @@ export const shorten_string = function shorten_string({
|
|||||||
return new_string;
|
return new_string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Svelte action to set focus on an element
|
||||||
|
function set_focus(node: HTMLElement, focus: boolean) {
|
||||||
|
if (focus) {
|
||||||
|
node.focus();
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
update(new_focus: boolean) {
|
||||||
|
if (new_focus) {
|
||||||
|
node.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// Updated 2024-06-19
|
// Updated 2024-06-19
|
||||||
// This function should return a shorted version of a filename if over the max length. It should always contain at least the first character of the original filename and the complete extension.
|
// This function should return a shorted version of a filename if over the max length. It should always contain at least the first character of the original filename and the complete extension.
|
||||||
// Example 1: The Original Long File Name.pdf -> The Orig....pdf
|
// Example 1: The Original Long File Name.pdf -> The Orig....pdf
|
||||||
@@ -328,5 +342,6 @@ export const ae_util = {
|
|||||||
encrypt_content: encrypt_content,
|
encrypt_content: encrypt_content,
|
||||||
encrypt_wrapper: encrypt_wrapper,
|
encrypt_wrapper: encrypt_wrapper,
|
||||||
decrypt_content: decrypt_content,
|
decrypt_content: decrypt_content,
|
||||||
decrypt_wrapper: decrypt_wrapper
|
decrypt_wrapper: decrypt_wrapper,
|
||||||
|
set_focus: set_focus
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ export const encrypt_content = async function encrypt_content(content: string, k
|
|||||||
'encrypt'
|
'encrypt'
|
||||||
]);
|
]);
|
||||||
const encodedContent = await crypto.subtle.encrypt(
|
const encodedContent = await crypto.subtle.encrypt(
|
||||||
{ name: 'AES-CBC', iv },
|
{ name: 'AES-CBC', iv: iv.buffer as ArrayBuffer },
|
||||||
key,
|
key,
|
||||||
new TextEncoder().encode(content)
|
new TextEncoder().encode(content).buffer as ArrayBuffer
|
||||||
);
|
);
|
||||||
const base64 = btoa(String.fromCharCode(...new Uint8Array(encodedContent)));
|
const base64 = btoa(String.fromCharCode(...new Uint8Array(encodedContent)));
|
||||||
if (log_lvl) {
|
if (log_lvl) {
|
||||||
@@ -79,9 +79,9 @@ export const decrypt_content = async function decrypt_content(
|
|||||||
]);
|
]);
|
||||||
const encryptedContent = Uint8Array.from(atob(base64Content), (c) => c.charCodeAt(0));
|
const encryptedContent = Uint8Array.from(atob(base64Content), (c) => c.charCodeAt(0));
|
||||||
const decryptedContent = await crypto.subtle.decrypt(
|
const decryptedContent = await crypto.subtle.decrypt(
|
||||||
{ name: 'AES-CBC', iv },
|
{ name: 'AES-CBC', iv: iv.buffer as ArrayBuffer },
|
||||||
key,
|
key,
|
||||||
encryptedContent
|
encryptedContent.buffer as ArrayBuffer
|
||||||
);
|
);
|
||||||
const decodedContent = new TextDecoder().decode(decryptedContent);
|
const decodedContent = new TextDecoder().decode(decryptedContent);
|
||||||
// console.log('Decrypted Content:', decodedContent);
|
// console.log('Decrypted Content:', decodedContent);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { to_title_case } from './ae_utils__to_title_case';
|
import { to_title_case } from './ae_utils__to_title_case';
|
||||||
|
|
||||||
// Updated 2023-08-18
|
// Updated 2026-01-22
|
||||||
export function set_obj_prop_display_name({
|
export function set_obj_prop_display_name({
|
||||||
prop_name,
|
prop_name,
|
||||||
obj_type = null,
|
obj_type = null,
|
||||||
@@ -9,6 +9,14 @@ export function set_obj_prop_display_name({
|
|||||||
replace_underscores = true,
|
replace_underscores = true,
|
||||||
title_case = true,
|
title_case = true,
|
||||||
override = null
|
override = null
|
||||||
|
}: {
|
||||||
|
prop_name: string;
|
||||||
|
obj_type?: string | null;
|
||||||
|
prefix_w_obj_type?: boolean;
|
||||||
|
prefix_all_w_obj_type?: boolean;
|
||||||
|
replace_underscores?: boolean;
|
||||||
|
title_case?: boolean;
|
||||||
|
override?: string | null;
|
||||||
}) {
|
}) {
|
||||||
console.log('*** set_obj_prop_display_name() ***');
|
console.log('*** set_obj_prop_display_name() ***');
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
content = 'test test test test',
|
content = 'test test test test',
|
||||||
new_content = $bindable(),
|
new_content = $bindable(),
|
||||||
editorView = $bindable(), // Exposed for external control
|
editorView = $bindable(), // Exposed for external control
|
||||||
theme_mode = 'light',
|
theme_mode = $bindable('light'),
|
||||||
extensions = [],
|
extensions = [],
|
||||||
editable = true,
|
editable = true,
|
||||||
readonly = false,
|
readonly = false,
|
||||||
@@ -105,12 +105,17 @@
|
|||||||
...extensions // Add any custom extensions passed in props
|
...extensions // Add any custom extensions passed in props
|
||||||
].filter(Boolean);
|
].filter(Boolean);
|
||||||
|
|
||||||
|
if (!editor_element) {
|
||||||
|
console.error('Editor element not found.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
editorView = new cm_modules.EditorView({
|
editorView = new cm_modules.EditorView({
|
||||||
state: cm_modules.EditorState.create({
|
state: cm_modules.EditorState.create({
|
||||||
doc: content,
|
doc: content,
|
||||||
extensions: editor_extensions
|
extensions: editor_extensions
|
||||||
}),
|
}),
|
||||||
parent: editor_element
|
parent: editor_element as HTMLElement
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
let _cmCache: {
|
let _cmCache: {
|
||||||
EditorView?: any;
|
EditorView?: any;
|
||||||
EditorState?: any;
|
EditorState?: any;
|
||||||
|
EditorSelection?: any;
|
||||||
markdown?: any;
|
markdown?: any;
|
||||||
markdownLanguage?: any;
|
markdownLanguage?: any;
|
||||||
keymap?: any;
|
keymap?: any;
|
||||||
@@ -25,6 +26,7 @@ let _cmCache: {
|
|||||||
highlightSelectionMatches?: any;
|
highlightSelectionMatches?: any;
|
||||||
lintKeymap?: any;
|
lintKeymap?: any;
|
||||||
EditorState_allowMultipleSelections?: any;
|
EditorState_allowMultipleSelections?: any;
|
||||||
|
EditorState_readOnly?: any;
|
||||||
EditorView_lineWrapping?: any;
|
EditorView_lineWrapping?: any;
|
||||||
EditorView_editable?: any;
|
EditorView_editable?: any;
|
||||||
EditorView_contentAttributes?: any;
|
EditorView_contentAttributes?: any;
|
||||||
@@ -43,6 +45,7 @@ import { browser } from '$app/environment';
|
|||||||
type CMCache = {
|
type CMCache = {
|
||||||
EditorView: any;
|
EditorView: any;
|
||||||
EditorState: any;
|
EditorState: any;
|
||||||
|
EditorSelection?: any;
|
||||||
markdown?: any;
|
markdown?: any;
|
||||||
markdownLanguage?: any;
|
markdownLanguage?: any;
|
||||||
keymap?: any;
|
keymap?: any;
|
||||||
@@ -67,6 +70,7 @@ type CMCache = {
|
|||||||
highlightSelectionMatches?: any;
|
highlightSelectionMatches?: any;
|
||||||
lintKeymap?: any;
|
lintKeymap?: any;
|
||||||
EditorState_allowMultipleSelections?: any;
|
EditorState_allowMultipleSelections?: any;
|
||||||
|
EditorState_readOnly?: any;
|
||||||
EditorView_lineWrapping?: any;
|
EditorView_lineWrapping?: any;
|
||||||
EditorView_editable?: any;
|
EditorView_editable?: any;
|
||||||
EditorView_contentAttributes?: any;
|
EditorView_contentAttributes?: any;
|
||||||
@@ -133,7 +137,7 @@ export async function ensureCodeMirrorModules(): Promise<CMCache> {
|
|||||||
|
|
||||||
markdown: markdownMod?.markdown,
|
markdown: markdownMod?.markdown,
|
||||||
markdownLanguage: markdownMod?.markdownLanguage,
|
markdownLanguage: markdownMod?.markdownLanguage,
|
||||||
languages: languageMod?.languages, // From @codemirror/language-data, often re-exported by @codemirror/language
|
languages: (languageMod as any)?.languages, // Cast to any to avoid TS error if property is missing from types
|
||||||
|
|
||||||
defaultKeymap: (commandsMod && commandsMod.defaultKeymap) || [],
|
defaultKeymap: (commandsMod && commandsMod.defaultKeymap) || [],
|
||||||
history: commandsMod?.history,
|
history: commandsMod?.history,
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
// *** Import Aether core variables and functions
|
// *** Import Aether core variables and functions
|
||||||
import type { key_val } from '$lib/stores/ae_stores';
|
import type { key_val } from '$lib/stores/ae_stores';
|
||||||
|
import { core_func } from '$lib/ae_core/ae_core_functions';
|
||||||
// import { api } from '$lib/api';
|
// import { api } from '$lib/api';
|
||||||
// import { update_ae_obj_id_crud } from '$lib/ae_core/core__crud_generic';
|
// import { update_ae_obj_id_crud } from '$lib/ae_core/core__crud_generic';
|
||||||
import { update_ae_obj } from '$lib/ae_core/core__crud_generic';
|
import { update_ae_obj } from '$lib/ae_core/core__crud_generic';
|
||||||
|
|||||||
@@ -3,41 +3,7 @@
|
|||||||
|
|
||||||
import { createEventDispatcher, onMount } from 'svelte';
|
import { createEventDispatcher, onMount } from 'svelte';
|
||||||
|
|
||||||
import util from './utilities.js';
|
import { ae_util as util } from '$lib/ae_utils/ae_utils';
|
||||||
|
|
||||||
// import Select_element_lu from './element_select_lu.svelte';
|
|
||||||
|
|
||||||
console.log(`Input name=${name} value=${value}`);
|
|
||||||
|
|
||||||
console.log('Original Value', original_value);
|
|
||||||
console.log('Data Type:', data_type);
|
|
||||||
|
|
||||||
let set_input_type = $state((node) => {
|
|
||||||
node.type = 'text';
|
|
||||||
});
|
|
||||||
let input_element_type_list = ['checkbox', 'date', 'email', 'hidden', 'number', 'text'];
|
|
||||||
if (input_element_type_list.includes(type)) {
|
|
||||||
set_input_type = (node) => {
|
|
||||||
node.type = type;
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(`Input name=${name} value=${value} type=${type}`);
|
|
||||||
|
|
||||||
/* *** END *** Core input settings */
|
|
||||||
|
|
||||||
/* *** BEGIN *** Container content, layout, and behavior */
|
|
||||||
|
|
||||||
console.log(`Input input_mode=${input_mode}`);
|
|
||||||
|
|
||||||
/* *** END *** Container content, layout, and behavior */
|
|
||||||
|
|
||||||
/* *** BEGIN *** Input type specific */
|
|
||||||
|
|
||||||
if (type == 'textarea') {
|
|
||||||
console.log(`Input textarea size=${size} rows=${rows} cols=${cols}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
/* *** BEGIN *** Core input settings */
|
/* *** BEGIN *** Core input settings */
|
||||||
@@ -141,6 +107,39 @@
|
|||||||
date_time_tz = null,
|
date_time_tz = null,
|
||||||
more_html
|
more_html
|
||||||
}: Props = $props();
|
}: Props = $props();
|
||||||
|
|
||||||
|
console.log(`Input name=${name} value=${value}`);
|
||||||
|
|
||||||
|
console.log('Original Value', original_value);
|
||||||
|
console.log('Data Type:', data_type);
|
||||||
|
|
||||||
|
let set_input_type = $state((node) => {
|
||||||
|
node.type = 'text';
|
||||||
|
});
|
||||||
|
let input_element_type_list = ['checkbox', 'date', 'email', 'hidden', 'number', 'text'];
|
||||||
|
if (input_element_type_list.includes(type)) {
|
||||||
|
set_input_type = (node) => {
|
||||||
|
node.type = type;
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`Input name=${name} value=${value} type=${type}`);
|
||||||
|
|
||||||
|
/* *** END *** Core input settings */
|
||||||
|
|
||||||
|
/* *** BEGIN *** Container content, layout, and behavior */
|
||||||
|
|
||||||
|
console.log(`Input input_mode=${input_mode}`);
|
||||||
|
|
||||||
|
/* *** END *** Container content, layout, and behavior */
|
||||||
|
|
||||||
|
/* *** BEGIN *** Input type specific */
|
||||||
|
|
||||||
|
if (type == 'textarea') {
|
||||||
|
console.log(`Input textarea size=${size} rows=${rows} cols=${cols}`);
|
||||||
|
}
|
||||||
|
|
||||||
let value_datetime = null;
|
let value_datetime = null;
|
||||||
let value_date = $state(null);
|
let value_date = $state(null);
|
||||||
let value_time = $state(null);
|
let value_time = $state(null);
|
||||||
|
|||||||
@@ -102,14 +102,14 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if show_create_badge_modal}
|
{#if show_create_badge_modal}
|
||||||
<Modal bind:show={show_create_badge_modal}>
|
<Modal bind:open={show_create_badge_modal}>
|
||||||
<div class="card p-4">
|
<div class="card p-4">
|
||||||
<h3 class="h3">Create New Badge</h3>
|
<h3 class="h3">Create New Badge</h3>
|
||||||
<Comp_badge_create_form
|
<Comp_badge_create_form
|
||||||
event_id={$events_slct?.event_id ?? ''}
|
event_id={$events_slct?.event_id ?? ''}
|
||||||
on:success={() => {
|
on:success={() => {
|
||||||
show_create_badge_modal = false;
|
show_create_badge_modal = false;
|
||||||
ae_triggers.event_badge_qry = true; // Trigger a refresh of the list
|
$events_trigger.event_badge_qry = true; // Trigger a refresh of the list
|
||||||
}}
|
}}
|
||||||
on:cancel={() => (show_create_badge_modal = false)}
|
on:cancel={() => (show_create_badge_modal = false)}
|
||||||
/>
|
/>
|
||||||
@@ -118,14 +118,14 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if show_upload_badge_modal}
|
{#if show_upload_badge_modal}
|
||||||
<Modal bind:show={show_upload_badge_modal}>
|
<Modal bind:open={show_upload_badge_modal}>
|
||||||
<div class="card p-4">
|
<div class="card p-4">
|
||||||
<h3 class="h3">Upload Badges (CSV)</h3>
|
<h3 class="h3">Upload Badges (CSV)</h3>
|
||||||
<Comp_badge_upload_form
|
<Comp_badge_upload_form
|
||||||
event_id={$events_slct?.event_id ?? ''}
|
event_id={$events_slct?.event_id ?? ''}
|
||||||
on:success={() => {
|
on:success={() => {
|
||||||
show_upload_badge_modal = false;
|
show_upload_badge_modal = false;
|
||||||
ae_triggers.event_badge_qry = true; // Trigger a refresh of the list
|
$events_trigger.event_badge_qry = true; // Trigger a refresh of the list
|
||||||
}}
|
}}
|
||||||
on:cancel={() => (show_upload_badge_modal = false)}
|
on:cancel={() => (show_upload_badge_modal = false)}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ export async function load({ params, parent }) {
|
|||||||
enabled: 'all',
|
enabled: 'all',
|
||||||
hidden: 'all',
|
hidden: 'all',
|
||||||
limit: 19,
|
limit: 19,
|
||||||
params: {},
|
|
||||||
try_cache: true,
|
try_cache: true,
|
||||||
log_lvl: 2
|
log_lvl: 2
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user