adminforth 2.4.0-next.2 → 2.4.0-next.200
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/commands/callTsProxy.js +14 -4
- package/commands/cli.js +12 -4
- package/commands/createApp/templates/.env.local.hbs +2 -2
- package/commands/createApp/templates/custom/tsconfig.json.hbs +2 -3
- package/commands/createApp/templates/index.ts.hbs +11 -6
- package/commands/createApp/templates/package.json.hbs +1 -1
- package/commands/createApp/utils.js +40 -7
- package/commands/createCustomComponent/configLoader.js +3 -0
- package/commands/createCustomComponent/configUpdater.js +25 -21
- package/commands/createCustomComponent/fileGenerator.js +1 -1
- package/commands/createCustomComponent/main.js +3 -1
- package/commands/createCustomComponent/templates/customCrud/beforeActionButtons.vue.hbs +38 -0
- package/commands/createCustomComponent/templates/login/beforeLogin.vue.hbs +18 -0
- package/commands/createPlugin/templates/custom/tsconfig.json.hbs +2 -5
- package/commands/createPlugin/templates/package.json.hbs +1 -1
- package/dist/auth.d.ts +9 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +15 -2
- package/dist/auth.js.map +1 -1
- package/dist/dataConnectors/baseConnector.d.ts.map +1 -1
- package/dist/dataConnectors/baseConnector.js +46 -15
- package/dist/dataConnectors/baseConnector.js.map +1 -1
- package/dist/dataConnectors/clickhouse.d.ts.map +1 -1
- package/dist/dataConnectors/clickhouse.js +15 -0
- package/dist/dataConnectors/clickhouse.js.map +1 -1
- package/dist/dataConnectors/mongo.d.ts.map +1 -1
- package/dist/dataConnectors/mongo.js +44 -15
- package/dist/dataConnectors/mongo.js.map +1 -1
- package/dist/dataConnectors/mysql.d.ts.map +1 -1
- package/dist/dataConnectors/mysql.js +11 -0
- package/dist/dataConnectors/mysql.js.map +1 -1
- package/dist/dataConnectors/postgres.d.ts.map +1 -1
- package/dist/dataConnectors/postgres.js +11 -0
- package/dist/dataConnectors/postgres.js.map +1 -1
- package/dist/dataConnectors/sqlite.d.ts.map +1 -1
- package/dist/dataConnectors/sqlite.js +11 -0
- package/dist/dataConnectors/sqlite.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -9
- package/dist/index.js.map +1 -1
- package/dist/modules/codeInjector.d.ts +2 -0
- package/dist/modules/codeInjector.d.ts.map +1 -1
- package/dist/modules/codeInjector.js +55 -12
- package/dist/modules/codeInjector.js.map +1 -1
- package/dist/modules/configValidator.d.ts.map +1 -1
- package/dist/modules/configValidator.js +76 -8
- package/dist/modules/configValidator.js.map +1 -1
- package/dist/modules/restApi.d.ts.map +1 -1
- package/dist/modules/restApi.js +149 -25
- package/dist/modules/restApi.js.map +1 -1
- package/dist/modules/styles.d.ts +485 -13
- package/dist/modules/styles.d.ts.map +1 -1
- package/dist/modules/styles.js +541 -31
- package/dist/modules/styles.js.map +1 -1
- package/dist/modules/utils.d.ts +2 -0
- package/dist/modules/utils.d.ts.map +1 -1
- package/dist/modules/utils.js +16 -0
- package/dist/modules/utils.js.map +1 -1
- package/dist/servers/express.d.ts.map +1 -1
- package/dist/servers/express.js +14 -0
- package/dist/servers/express.js.map +1 -1
- package/dist/spa/index.html +1 -1
- package/dist/spa/package-lock.json +5 -4
- package/dist/spa/package.json +1 -1
- package/dist/spa/src/App.vue +54 -169
- package/dist/spa/src/adminforth.ts +42 -18
- package/dist/spa/src/afcl/BarChart.vue +2 -2
- package/dist/spa/src/afcl/Button.vue +6 -6
- package/dist/spa/src/afcl/ButtonGroup.vue +91 -0
- package/dist/spa/src/afcl/Card.vue +25 -0
- package/dist/spa/src/afcl/Checkbox.vue +21 -13
- package/dist/spa/src/afcl/CountryFlag.vue +4 -1
- package/dist/spa/src/{components/CustomDatePicker.vue → afcl/DatePicker.vue} +95 -9
- package/dist/spa/src/afcl/Dialog.vue +44 -27
- package/dist/spa/src/afcl/Dropzone.vue +15 -13
- package/dist/spa/src/afcl/Input.vue +9 -7
- package/dist/spa/src/afcl/JsonViewer.vue +25 -0
- package/dist/spa/src/afcl/Link.vue +1 -1
- package/dist/spa/src/afcl/LinkButton.vue +3 -3
- package/dist/spa/src/afcl/PieChart.vue +5 -5
- package/dist/spa/src/afcl/ProgressBar.vue +7 -7
- package/dist/spa/src/afcl/Select.vue +68 -34
- package/dist/spa/src/afcl/Skeleton.vue +6 -6
- package/dist/spa/src/afcl/Table.vue +213 -74
- package/dist/spa/src/afcl/Textarea.vue +31 -0
- package/dist/spa/src/afcl/Toggle.vue +32 -0
- package/dist/spa/src/afcl/Tooltip.vue +2 -3
- package/dist/spa/src/afcl/VerticalTabs.vue +16 -7
- package/dist/spa/src/afcl/index.ts +6 -3
- package/dist/spa/src/components/AcceptModal.vue +7 -7
- package/dist/spa/src/components/Breadcrumbs.vue +5 -5
- package/dist/spa/src/components/ColumnValueInput.vue +38 -18
- package/dist/spa/src/components/ColumnValueInputWrapper.vue +4 -3
- package/dist/spa/src/components/CustomDateRangePicker.vue +9 -8
- package/dist/spa/src/components/CustomRangePicker.vue +37 -8
- package/dist/spa/src/components/ErrorMessage.vue +21 -0
- package/dist/spa/src/components/Filters.vue +85 -39
- package/dist/spa/src/components/GroupsTable.vue +9 -8
- package/dist/spa/src/components/MenuLink.vue +90 -23
- package/dist/spa/src/components/ResourceForm.vue +94 -51
- package/dist/spa/src/components/ResourceListTable.vue +78 -80
- package/dist/spa/src/components/ResourceListTableVirtual.vue +70 -72
- package/dist/spa/src/components/ShowTable.vue +17 -12
- package/dist/spa/src/components/Sidebar.vue +443 -0
- package/dist/spa/src/components/SingleSkeletLoader.vue +6 -6
- package/dist/spa/src/components/SkeleteLoader.vue +3 -3
- package/dist/spa/src/components/ThreeDotsMenu.vue +73 -14
- package/dist/spa/src/components/Toast.vue +27 -9
- package/dist/spa/src/components/UserMenuSettingsButton.vue +68 -0
- package/dist/spa/src/components/ValueRenderer.vue +43 -16
- package/dist/spa/src/controls/BoolToggle.vue +34 -0
- package/dist/spa/src/i18n.ts +1 -1
- package/dist/spa/src/renderers/CompactField.vue +1 -1
- package/dist/spa/src/renderers/CompactUUID.vue +1 -1
- package/dist/spa/src/router/index.ts +8 -0
- package/dist/spa/src/shims-vue.d.ts +5 -0
- package/dist/spa/src/spa_types/core.ts +13 -1
- package/dist/spa/src/stores/core.ts +1 -1
- package/dist/spa/src/stores/filters.ts +29 -2
- package/dist/spa/src/stores/modal.ts +6 -1
- package/dist/spa/src/stores/toast.ts +22 -3
- package/dist/spa/src/types/Back.ts +139 -22
- package/dist/spa/src/types/Common.ts +68 -32
- package/dist/spa/src/types/FrontendAPI.ts +31 -5
- package/dist/spa/src/types/adapters/CaptchaAdapter.ts +34 -0
- package/dist/spa/src/types/adapters/CompletionAdapter.ts +25 -0
- package/dist/spa/src/types/adapters/EmailAdapter.ts +27 -0
- package/dist/spa/src/types/adapters/ImageGenerationAdapter.ts +50 -0
- package/dist/spa/src/types/adapters/ImageVisionAdapter.ts +30 -0
- package/dist/spa/src/types/adapters/KeyValueAdapter.ts +16 -0
- package/dist/spa/src/types/adapters/OAuth2Adapter.ts +34 -0
- package/dist/spa/src/types/adapters/StorageAdapter.ts +73 -0
- package/dist/spa/src/types/adapters/index.ts +8 -0
- package/dist/spa/src/utils.ts +219 -8
- package/dist/spa/src/views/CreateView.vue +18 -19
- package/dist/spa/src/views/EditView.vue +25 -19
- package/dist/spa/src/views/ListView.vue +139 -86
- package/dist/spa/src/views/LoginView.vue +65 -55
- package/dist/spa/src/views/ResourceParent.vue +2 -2
- package/dist/spa/src/views/SettingsView.vue +121 -0
- package/dist/spa/src/views/ShowView.vue +59 -39
- package/dist/spa/src/websocket.ts +6 -1
- package/dist/spa/tsconfig.app.json +1 -1
- package/dist/spa/vite.config.ts +45 -2
- package/dist/types/Back.d.ts +117 -14
- package/dist/types/Back.d.ts.map +1 -1
- package/dist/types/Back.js +15 -0
- package/dist/types/Back.js.map +1 -1
- package/dist/types/Common.d.ts +60 -29
- package/dist/types/Common.d.ts.map +1 -1
- package/dist/types/Common.js.map +1 -1
- package/dist/types/FrontendAPI.d.ts +31 -3
- package/dist/types/FrontendAPI.d.ts.map +1 -1
- package/dist/types/FrontendAPI.js.map +1 -1
- package/dist/types/adapters/CaptchaAdapter.d.ts +30 -0
- package/dist/types/adapters/CaptchaAdapter.d.ts.map +1 -0
- package/dist/types/adapters/CaptchaAdapter.js +5 -0
- package/dist/types/adapters/CaptchaAdapter.js.map +1 -0
- package/dist/types/adapters/CompletionAdapter.d.ts +20 -0
- package/dist/types/adapters/CompletionAdapter.d.ts.map +1 -0
- package/dist/types/adapters/CompletionAdapter.js +2 -0
- package/dist/types/adapters/CompletionAdapter.js.map +1 -0
- package/dist/types/adapters/EmailAdapter.d.ts +20 -0
- package/dist/types/adapters/EmailAdapter.d.ts.map +1 -0
- package/dist/types/adapters/EmailAdapter.js +2 -0
- package/dist/types/adapters/EmailAdapter.js.map +1 -0
- package/dist/types/adapters/ImageGenerationAdapter.d.ts +37 -0
- package/dist/types/adapters/ImageGenerationAdapter.d.ts.map +1 -0
- package/dist/types/adapters/ImageGenerationAdapter.js +2 -0
- package/dist/types/adapters/ImageGenerationAdapter.js.map +1 -0
- package/dist/types/adapters/ImageVisionAdapter.d.ts +25 -0
- package/dist/types/adapters/ImageVisionAdapter.d.ts.map +1 -0
- package/dist/types/adapters/ImageVisionAdapter.js +2 -0
- package/dist/types/adapters/ImageVisionAdapter.js.map +1 -0
- package/dist/types/adapters/KeyValueAdapter.d.ts +10 -0
- package/dist/types/adapters/KeyValueAdapter.d.ts.map +1 -0
- package/dist/types/adapters/KeyValueAdapter.js +2 -0
- package/dist/types/adapters/KeyValueAdapter.js.map +1 -0
- package/dist/types/adapters/OAuth2Adapter.d.ts +32 -0
- package/dist/types/adapters/OAuth2Adapter.d.ts.map +1 -0
- package/dist/types/adapters/OAuth2Adapter.js +2 -0
- package/dist/types/adapters/OAuth2Adapter.js.map +1 -0
- package/dist/types/adapters/StorageAdapter.d.ts +63 -0
- package/dist/types/adapters/StorageAdapter.d.ts.map +1 -0
- package/dist/types/adapters/StorageAdapter.js +2 -0
- package/dist/types/adapters/StorageAdapter.js.map +1 -0
- package/dist/types/adapters/index.d.ts +9 -0
- package/dist/types/adapters/index.d.ts.map +1 -0
- package/dist/types/adapters/index.js +2 -0
- package/dist/types/adapters/index.js.map +1 -0
- package/package.json +3 -2
- package/dist/spa/src/types/Adapters.ts +0 -213
- package/dist/types/Adapters.d.ts +0 -168
- package/dist/types/Adapters.d.ts.map +0 -1
- package/dist/types/Adapters.js +0 -2
- package/dist/types/Adapters.js.map +0 -1
package/commands/callTsProxy.js
CHANGED
|
@@ -3,18 +3,28 @@ import { spawn } from "child_process";
|
|
|
3
3
|
import path from "path";
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import chalk from "chalk";
|
|
6
|
+
import dotenv from "dotenv";
|
|
6
7
|
|
|
7
8
|
const currentFilePath = import.meta.url;
|
|
8
9
|
const currentFileFolder = path.dirname(currentFilePath).replace("file:", "");
|
|
9
10
|
|
|
10
11
|
export function callTsProxy(tsCode, silent=false) {
|
|
11
12
|
|
|
13
|
+
const currentDirectory = process.cwd();
|
|
14
|
+
const envPath = path.resolve(currentDirectory, ".env");
|
|
15
|
+
const envLocalPath = path.resolve(currentDirectory, ".env.local");
|
|
16
|
+
if (fs.existsSync(envLocalPath)) {
|
|
17
|
+
dotenv.config({ path: envLocalPath, override: true });
|
|
18
|
+
}
|
|
19
|
+
if (fs.existsSync(envPath)) {
|
|
20
|
+
dotenv.config({ path: envPath, override: true });
|
|
21
|
+
}
|
|
22
|
+
|
|
12
23
|
process.env.HEAVY_DEBUG && console.log("🌐 Calling tsproxy with code:", path.join(currentFileFolder, "proxy.ts"));
|
|
13
24
|
return new Promise((resolve, reject) => {
|
|
14
|
-
const child = spawn("tsx", [
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
const child = spawn("tsx", [path.join(currentFileFolder, "proxy.ts")], {
|
|
26
|
+
env: process.env,
|
|
27
|
+
});
|
|
18
28
|
let stdout = "";
|
|
19
29
|
let stderr = "";
|
|
20
30
|
|
package/commands/cli.js
CHANGED
|
@@ -12,6 +12,7 @@ import createResource from "./createResource/main.js";
|
|
|
12
12
|
import chalk from "chalk";
|
|
13
13
|
import path from "path";
|
|
14
14
|
import fs from "fs";
|
|
15
|
+
import { fileURLToPath } from 'url';
|
|
15
16
|
|
|
16
17
|
function showHelp() {
|
|
17
18
|
console.log(
|
|
@@ -20,23 +21,30 @@ function showHelp() {
|
|
|
20
21
|
chalk.green(' create-plugin') + chalk.white(' Create a plugin for your AdminForth app\n') +
|
|
21
22
|
chalk.green(' generate-models') + chalk.white(' Generate TypeScript models from your databases\n') +
|
|
22
23
|
chalk.green(' bundle') + chalk.white(' Bundles your AdminForth app SPA for production\n') +
|
|
23
|
-
chalk.green(' component') + chalk.white(' Scaffold a custom Vue component\n')
|
|
24
|
+
chalk.green(' component') + chalk.white(' Scaffold a custom Vue component\n') +
|
|
25
|
+
chalk.green(' resource') + chalk.white(' Scaffold a custom resource\n')
|
|
24
26
|
);
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
function currentFileDir(importMetaUrl) {
|
|
28
|
-
const filePath = importMetaUrl
|
|
29
|
+
export function currentFileDir(importMetaUrl) {
|
|
30
|
+
const filePath = fileURLToPath(importMetaUrl);
|
|
29
31
|
const fileDir = path.dirname(filePath);
|
|
30
32
|
return fileDir;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
function
|
|
35
|
+
export function getVersion() {
|
|
34
36
|
const ADMIN_FORTH_ABSOLUTE_PATH = path.join(currentFileDir(import.meta.url), '..');
|
|
35
37
|
|
|
36
38
|
const package_json = JSON.parse(fs.readFileSync(path.join(ADMIN_FORTH_ABSOLUTE_PATH, 'package.json'), 'utf8'));
|
|
37
39
|
|
|
38
40
|
const ADMINFORTH_VERSION = package_json.version;
|
|
39
41
|
|
|
42
|
+
return ADMINFORTH_VERSION;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function showVersion() {
|
|
46
|
+
const ADMINFORTH_VERSION = getVersion();
|
|
47
|
+
|
|
40
48
|
console.log(
|
|
41
49
|
chalk.white('AdminForth CLI version: ') +
|
|
42
50
|
chalk.cyan.bold(ADMINFORTH_VERSION)
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"baseUrl": ".",
|
|
4
4
|
"paths": {
|
|
5
|
-
"
|
|
6
|
-
"": "
|
|
7
|
-
"@@/*": "."
|
|
5
|
+
"@/*": ["../node_modules/adminforth/dist/spa/src/*"],
|
|
6
|
+
"@@/*": ["./*"]
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
}
|
|
@@ -3,7 +3,8 @@ import AdminForth from 'adminforth';
|
|
|
3
3
|
import usersResource from "./resources/adminuser.js";
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
5
|
import path from 'path';
|
|
6
|
-
|
|
6
|
+
import { Filters } from 'adminforth';
|
|
7
|
+
|
|
7
8
|
const ADMIN_BASE_URL = '';
|
|
8
9
|
|
|
9
10
|
export const admin = new AdminForth({
|
|
@@ -15,6 +16,12 @@ export const admin = new AdminForth({
|
|
|
15
16
|
rememberMeDays: 30,
|
|
16
17
|
loginBackgroundImage: 'https://images.unsplash.com/photo-1534239697798-120952b76f2b?q=80&w=3389&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
|
|
17
18
|
loginBackgroundPosition: '1/2',
|
|
19
|
+
loginPromptHTML: async () => {
|
|
20
|
+
const adminforthUserExists = await admin.resource("adminuser").count(Filters.EQ('email', 'adminforth')) > 0;
|
|
21
|
+
if (adminforthUserExists) {
|
|
22
|
+
return "Please use <b>adminforth</b> as username and <b>adminforth</b> as password"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
18
25
|
},
|
|
19
26
|
customization: {
|
|
20
27
|
brandName: "{{appName}}",
|
|
@@ -23,7 +30,8 @@ export const admin = new AdminForth({
|
|
|
23
30
|
brandLogo: '@@/assets/logo.svg',
|
|
24
31
|
datesFormat: 'DD MMM',
|
|
25
32
|
timeFormat: 'HH:mm a',
|
|
26
|
-
|
|
33
|
+
showBrandNameInSidebar: true,
|
|
34
|
+
showBrandLogoInSidebar: true,
|
|
27
35
|
emptyFieldPlaceholder: '-',
|
|
28
36
|
styles: {
|
|
29
37
|
colors: {
|
|
@@ -57,10 +65,7 @@ export const admin = new AdminForth({
|
|
|
57
65
|
],
|
|
58
66
|
});
|
|
59
67
|
|
|
60
|
-
|
|
61
|
-
const executedFilePath = path.resolve(process.argv[1]);
|
|
62
|
-
|
|
63
|
-
if (currentFilePath === executedFilePath) {
|
|
68
|
+
if (fileURLToPath(import.meta.url) === path.resolve(process.argv[1])) {
|
|
64
69
|
const app = express();
|
|
65
70
|
app.use(express.json());
|
|
66
71
|
|
|
@@ -11,9 +11,31 @@ import { exec } from 'child_process';
|
|
|
11
11
|
|
|
12
12
|
import Handlebars from 'handlebars';
|
|
13
13
|
import { promisify } from 'util';
|
|
14
|
+
import { getVersion } from '../cli.js';
|
|
14
15
|
|
|
15
16
|
const execAsync = promisify(exec);
|
|
16
17
|
|
|
18
|
+
function detectAdminforthVersion() {
|
|
19
|
+
try {
|
|
20
|
+
const version = getVersion();
|
|
21
|
+
|
|
22
|
+
if (typeof version !== 'string') {
|
|
23
|
+
throw new Error('Invalid version format');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (version.includes('next')) {
|
|
27
|
+
return 'next';
|
|
28
|
+
}
|
|
29
|
+
return 'latest';
|
|
30
|
+
} catch (err) {
|
|
31
|
+
console.warn('⚠️ Could not detect AdminForth version, defaulting to "latest".');
|
|
32
|
+
return 'latest';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const adminforthVersion = detectAdminforthVersion();
|
|
37
|
+
|
|
38
|
+
|
|
17
39
|
export function parseArgumentsIntoOptions(rawArgs) {
|
|
18
40
|
const args = arg(
|
|
19
41
|
{
|
|
@@ -203,7 +225,10 @@ async function writeTemplateFiles(dirname, cwd, options) {
|
|
|
203
225
|
{
|
|
204
226
|
src: 'package.json.hbs',
|
|
205
227
|
dest: 'package.json',
|
|
206
|
-
data: {
|
|
228
|
+
data: {
|
|
229
|
+
appName,
|
|
230
|
+
adminforthVersion: adminforthVersion,
|
|
231
|
+
},
|
|
207
232
|
},
|
|
208
233
|
{
|
|
209
234
|
src: 'index.ts.hbs',
|
|
@@ -285,13 +310,21 @@ async function writeTemplateFiles(dirname, cwd, options) {
|
|
|
285
310
|
|
|
286
311
|
async function installDependencies(ctx, cwd) {
|
|
287
312
|
const isWindows = process.platform === 'win32';
|
|
288
|
-
|
|
289
|
-
|
|
313
|
+
|
|
314
|
+
const nodeBinary = process.execPath;
|
|
315
|
+
const npmPath = path.join(path.dirname(nodeBinary), isWindows ? 'npm.cmd' : 'npm');
|
|
290
316
|
const customDir = ctx.customDir;
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
317
|
+
if (isWindows) {
|
|
318
|
+
const res = await Promise.all([
|
|
319
|
+
await execAsync(`npm install`, { cwd, env: { PATH: process.env.PATH } }),
|
|
320
|
+
await execAsync(`npm install`, { cwd: customDir, env: { PATH: process.env.PATH } }),
|
|
321
|
+
]);
|
|
322
|
+
} else {
|
|
323
|
+
const res = await Promise.all([
|
|
324
|
+
await execAsync(`${nodeBinary} ${npmPath} install`, { cwd, env: { PATH: process.env.PATH } }),
|
|
325
|
+
await execAsync(`${nodeBinary} ${npmPath} install`, { cwd: customDir, env: { PATH: process.env.PATH } }),
|
|
326
|
+
]);
|
|
327
|
+
}
|
|
295
328
|
// console.log(chalk.dim(`Dependencies installed in ${cwd} and ${customDir}: \n${res[0].stdout}${res[1].stdout}`));
|
|
296
329
|
}
|
|
297
330
|
|
|
@@ -2,7 +2,10 @@ import fs from 'fs/promises';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import jiti from 'jiti';
|
|
5
|
+
import dotenv from "dotenv";
|
|
5
6
|
|
|
7
|
+
dotenv.config({ path: '.env.local', override: true });
|
|
8
|
+
dotenv.config({ path: '.env', override: true });
|
|
6
9
|
|
|
7
10
|
export async function loadAdminForthConfig() {
|
|
8
11
|
const configFileName = 'index.ts';
|
|
@@ -254,7 +254,7 @@ export async function updateResourceConfig(resourceId, columnName, fieldType, co
|
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
|
|
257
|
-
export async function injectLoginComponent(indexFilePath, componentPath) {
|
|
257
|
+
export async function injectLoginComponent(indexFilePath, componentPath, injectionType) {
|
|
258
258
|
console.log(chalk.dim(`Reading file: ${indexFilePath}`));
|
|
259
259
|
const content = await fs.readFile(indexFilePath, 'utf-8');
|
|
260
260
|
const ast = recast.parse(content, {
|
|
@@ -263,6 +263,7 @@ export async function injectLoginComponent(indexFilePath, componentPath) {
|
|
|
263
263
|
|
|
264
264
|
let updated = false;
|
|
265
265
|
let injectionLine = null;
|
|
266
|
+
let targetProperty = null;
|
|
266
267
|
|
|
267
268
|
recast.visit(ast, {
|
|
268
269
|
visitNewExpression(path) {
|
|
@@ -293,20 +294,23 @@ export async function injectLoginComponent(indexFilePath, componentPath) {
|
|
|
293
294
|
const loginPageInjections = getOrCreateProp(customization, 'loginPageInjections');
|
|
294
295
|
if (!n.ObjectExpression.check(loginPageInjections)) return false;
|
|
295
296
|
|
|
296
|
-
|
|
297
|
-
|
|
297
|
+
// Determine target property based on injection type
|
|
298
|
+
targetProperty = injectionType === 'beforeLogin' ? 'panelHeader' : 'underInputs';
|
|
299
|
+
|
|
300
|
+
let targetProp = loginPageInjections.properties.find(
|
|
301
|
+
p => n.ObjectProperty.check(p) && n.Identifier.check(p.key) && p.key.name === targetProperty
|
|
298
302
|
);
|
|
299
303
|
|
|
300
|
-
if (
|
|
301
|
-
const currentVal =
|
|
302
|
-
injectionLine =
|
|
304
|
+
if (targetProp) {
|
|
305
|
+
const currentVal = targetProp.value;
|
|
306
|
+
injectionLine = targetProp.loc?.start.line ?? null;
|
|
303
307
|
if (n.StringLiteral.check(currentVal)) {
|
|
304
308
|
if (currentVal.value !== componentPath) {
|
|
305
|
-
|
|
309
|
+
targetProp.value = b.arrayExpression([
|
|
306
310
|
b.stringLiteral(currentVal.value),
|
|
307
311
|
b.stringLiteral(componentPath),
|
|
308
312
|
]);
|
|
309
|
-
console.log(chalk.dim(`Converted '
|
|
313
|
+
console.log(chalk.dim(`Converted '${targetProperty}' to array with existing + new path.`));
|
|
310
314
|
} else {
|
|
311
315
|
console.log(chalk.dim(`Component path already present as string. Skipping.`));
|
|
312
316
|
}
|
|
@@ -316,26 +320,26 @@ export async function injectLoginComponent(indexFilePath, componentPath) {
|
|
|
316
320
|
);
|
|
317
321
|
if (!exists) {
|
|
318
322
|
currentVal.elements.push(b.stringLiteral(componentPath));
|
|
319
|
-
console.log(chalk.dim(`Appended new component path to existing '
|
|
323
|
+
console.log(chalk.dim(`Appended new component path to existing '${targetProperty}' array.`));
|
|
320
324
|
} else {
|
|
321
325
|
console.log(chalk.dim(`Component path already present in array. Skipping.`));
|
|
322
326
|
}
|
|
323
327
|
} else {
|
|
324
|
-
console.warn(chalk.yellow(`⚠️ '
|
|
328
|
+
console.warn(chalk.yellow(`⚠️ '${targetProperty}' is not a string or array. Skipping.`));
|
|
325
329
|
return false;
|
|
326
330
|
}
|
|
327
331
|
} else {
|
|
328
332
|
const newProperty = b.objectProperty(
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
333
|
+
b.identifier(targetProperty),
|
|
334
|
+
b.stringLiteral(componentPath)
|
|
335
|
+
);
|
|
336
|
+
|
|
337
|
+
if (newProperty.loc) {
|
|
338
|
+
console.log(chalk.dim(`Adding '${targetProperty}' at line: ${newProperty.loc.start.line}`));
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
loginPageInjections.properties.push(newProperty);
|
|
342
|
+
console.log(chalk.dim(`Added '${targetProperty}': ${componentPath}`));
|
|
339
343
|
}
|
|
340
344
|
|
|
341
345
|
updated = true;
|
|
@@ -353,7 +357,7 @@ export async function injectLoginComponent(indexFilePath, componentPath) {
|
|
|
353
357
|
await fs.writeFile(indexFilePath, outputCode, 'utf-8');
|
|
354
358
|
console.log(
|
|
355
359
|
chalk.green(
|
|
356
|
-
`✅ Successfully updated
|
|
360
|
+
`✅ Successfully updated login ${targetProperty} injection in: ${indexFilePath}` +
|
|
357
361
|
(injectionLine !== null ? `:${injectionLine}` : '')
|
|
358
362
|
)
|
|
359
363
|
);
|
|
@@ -129,7 +129,7 @@ export async function generateLoginOrGlobalComponentFile(componentFileName, inje
|
|
|
129
129
|
const __filename = fileURLToPath(import.meta.url);
|
|
130
130
|
const __dirname = path.dirname(__filename);
|
|
131
131
|
let templatePath;
|
|
132
|
-
if (injectionType === 'afterLogin') {
|
|
132
|
+
if (injectionType === 'afterLogin' || injectionType === 'beforeLogin') {
|
|
133
133
|
templatePath = path.join(__dirname, 'templates', 'login', `${injectionType}.vue.hbs`);
|
|
134
134
|
} else {
|
|
135
135
|
templatePath = path.join(__dirname, 'templates', 'global', `${injectionType}.vue.hbs`);
|
|
@@ -189,6 +189,7 @@ async function handleCrudPageInjectionCreation(config, resources) {
|
|
|
189
189
|
message: 'Where exactly do you want to inject the component?',
|
|
190
190
|
choices: [
|
|
191
191
|
{ name: '⬆️ Before Breadcrumbs', value: 'beforeBreadcrumbs' },
|
|
192
|
+
{ name: '➡️ Before Action Buttons', value: 'beforeActionButtons' },
|
|
192
193
|
{ name: '⬇️ After Breadcrumbs', value: 'afterBreadcrumbs' },
|
|
193
194
|
{ name: '📄 After Page', value: 'bottom' },
|
|
194
195
|
{ name: '⋯ threeDotsDropdownItems', value: 'threeDotsDropdownItems' },
|
|
@@ -257,6 +258,7 @@ async function handleLoginPageInjectionCreation(config) {
|
|
|
257
258
|
const injectionType = await select({
|
|
258
259
|
message: 'Select injection type:',
|
|
259
260
|
choices: [
|
|
261
|
+
{ name: 'Before Login and password inputs', value: 'beforeLogin' },
|
|
260
262
|
{ name: 'After Login and password inputs', value: 'afterLogin' },
|
|
261
263
|
{ name: '🔙 BACK', value: '__BACK__' },
|
|
262
264
|
],
|
|
@@ -287,7 +289,7 @@ async function handleLoginPageInjectionCreation(config) {
|
|
|
287
289
|
console.log(chalk.dim(`Component generation successful: ${absoluteComponentPath}`));
|
|
288
290
|
const configFilePath = path.resolve(process.cwd(), 'index.ts');
|
|
289
291
|
console.log(chalk.dim(`Injecting component: ${configFilePath}, ${componentFileName}`));
|
|
290
|
-
await injectLoginComponent(configFilePath, `@@/${componentFileName}
|
|
292
|
+
await injectLoginComponent(configFilePath, `@@/${componentFileName}`, injectionType);
|
|
291
293
|
|
|
292
294
|
console.log(
|
|
293
295
|
chalk.bold.greenBright('You can now open the component in your IDE:'),
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex items-center p-4 md:p-5 gap-2">
|
|
3
|
+
<button
|
|
4
|
+
type="button"
|
|
5
|
+
@click="handleClick"
|
|
6
|
+
class="text-white bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2.5 text-center dark:bg-blue-500 dark:hover:bg-blue-600 dark:focus:ring-blue-800"
|
|
7
|
+
>
|
|
8
|
+
{{ '{{' }} $t('Example') {{ '}}' }}
|
|
9
|
+
</button>
|
|
10
|
+
</div>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script setup lang="ts">
|
|
14
|
+
import { onMounted } from 'vue';
|
|
15
|
+
import { useI18n } from 'vue-i18n';
|
|
16
|
+
import adminforth from '@/adminforth';
|
|
17
|
+
import { AdminForthResourceCommon, AdminUser } from "@/types/Common";
|
|
18
|
+
|
|
19
|
+
const { t } = useI18n();
|
|
20
|
+
|
|
21
|
+
const props = defineProps<{
|
|
22
|
+
record: any
|
|
23
|
+
resource: AdminForthResourceCommon
|
|
24
|
+
adminUser: AdminUser
|
|
25
|
+
meta?: any
|
|
26
|
+
}>();
|
|
27
|
+
|
|
28
|
+
onMounted(() => {
|
|
29
|
+
// Logic on mount if needed
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
function handleClick() {
|
|
33
|
+
adminforth.alert({
|
|
34
|
+
message: t('Confirmed'),
|
|
35
|
+
variant: 'success',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
</script>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="text-center text-gray-500 text-sm mt-4">
|
|
3
|
+
Login Page Text
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script setup>
|
|
8
|
+
import { onMounted } from 'vue';
|
|
9
|
+
|
|
10
|
+
const props = defineProps<{
|
|
11
|
+
reason: String
|
|
12
|
+
}>();
|
|
13
|
+
|
|
14
|
+
onMounted(() => {
|
|
15
|
+
// Logic on mount if needed
|
|
16
|
+
});
|
|
17
|
+
</script>
|
|
18
|
+
|
|
@@ -3,15 +3,12 @@
|
|
|
3
3
|
"baseUrl": ".", // This should point to your project root
|
|
4
4
|
"paths": {
|
|
5
5
|
"@/*": [
|
|
6
|
-
|
|
7
|
-
"../../../spa/src/*"
|
|
6
|
+
"../node_modules/adminforth/dist/spa/src/*"
|
|
8
7
|
],
|
|
9
8
|
"*": [
|
|
10
|
-
|
|
11
|
-
"../../../spa/node_modules/*"
|
|
9
|
+
"../node_modules/adminforth/dist/spa/node_modules/*"
|
|
12
10
|
],
|
|
13
11
|
"@@/*": [
|
|
14
|
-
// "node_modules/adminforth/dist/spa/src/*"
|
|
15
12
|
"."
|
|
16
13
|
]
|
|
17
14
|
}
|
package/dist/auth.d.ts
CHANGED
|
@@ -20,10 +20,18 @@ declare class AdminForthAuth implements IAdminForthAuth {
|
|
|
20
20
|
payload: {
|
|
21
21
|
name: string;
|
|
22
22
|
value: string;
|
|
23
|
-
expiry: number;
|
|
23
|
+
expiry: number | undefined;
|
|
24
|
+
expirySeconds: number | undefined;
|
|
24
25
|
httpOnly: boolean;
|
|
25
26
|
};
|
|
26
27
|
}): void;
|
|
28
|
+
getCustomCookie({ cookies, name }: {
|
|
29
|
+
cookies: {
|
|
30
|
+
key: string;
|
|
31
|
+
value: string;
|
|
32
|
+
}[];
|
|
33
|
+
name: string;
|
|
34
|
+
}): string | null;
|
|
27
35
|
issueJWT(payload: Object, type: string, expiresIn?: string): string;
|
|
28
36
|
verify(jwtToken: string, mustHaveType: string, decodeUser?: boolean | undefined): Promise<Object>;
|
|
29
37
|
static generatePasswordHash(password: any): Promise<string>;
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../auth.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkClD,cAAM,cAAe,YAAW,eAAe;IAC7C,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,KAAA;IAItB,WAAW,CAAC,OAAO,EAAE,MAAM;IA4B3B,gBAAgB,CAAC,QAAQ,KAAA;IAKzB,aAAa,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAC,EAAE;QACrD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,GAAG,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAClB;IAYD,kBAAkB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC;;;KAAA;IAKnC,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QACrC,QAAQ,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../auth.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkClD,cAAM,cAAe,YAAW,eAAe;IAC7C,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,KAAA;IAItB,WAAW,CAAC,OAAO,EAAE,MAAM;IA4B3B,gBAAgB,CAAC,QAAQ,KAAA;IAKzB,aAAa,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAC,EAAE;QACrD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,GAAG,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAClB;IAYD,kBAAkB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC;;;KAAA;IAKnC,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QACrC,QAAQ,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAA;KAC1I;IAiBD,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjC,OAAO,EAAE;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAC,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KACtD,GAAG,MAAM,GAAG,IAAI;IAKjB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,MAAM;IAWpE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAE,OAAO,GAAG,SAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;WAsChG,oBAAoB,CAAC,QAAQ,KAAA;WAM7B,cAAc,CAAC,QAAQ,KAAA,EAAE,cAAc,KAAA;CAOrD;AAED,eAAe,cAAc,CAAC"}
|
package/dist/auth.js
CHANGED
|
@@ -80,9 +80,22 @@ class AdminForthAuth {
|
|
|
80
80
|
response.setHeader('Set-Cookie', `adminforth_${brandSlug}_${name}=; Path=${this.adminforth.config.baseUrl || '/'}; HttpOnly; SameSite=Strict; Expires=Thu, 01 Jan 1970 00:00:00 GMT`);
|
|
81
81
|
}
|
|
82
82
|
setCustomCookie({ response, payload }) {
|
|
83
|
-
const { name, value, expiry, httpOnly } = payload;
|
|
83
|
+
const { name, value, expiry, httpOnly, expirySeconds } = payload;
|
|
84
|
+
let expiryMs = 24 * 60 * 60 * 1000; // default 1 day
|
|
85
|
+
if (expirySeconds !== undefined) {
|
|
86
|
+
expiryMs = expirySeconds * 1000;
|
|
87
|
+
}
|
|
88
|
+
else if (expiry !== undefined) {
|
|
89
|
+
console.warn('setCustomCookie: expiry(in ms) is deprecated, use expirySeconds instead (seconds), traceback:', new Error().stack);
|
|
90
|
+
expiryMs = expiry;
|
|
91
|
+
}
|
|
92
|
+
const brandSlug = this.adminforth.config.customization.brandNameSlug;
|
|
93
|
+
response.setHeader('Set-Cookie', `adminforth_${brandSlug}_${name}=${value}; Path=${this.adminforth.config.baseUrl || '/'};${httpOnly ? ' HttpOnly;' : ''} SameSite=Strict; Expires=${new Date(Date.now() + expiryMs).toUTCString()} `);
|
|
94
|
+
}
|
|
95
|
+
getCustomCookie({ cookies, name }) {
|
|
96
|
+
var _a;
|
|
84
97
|
const brandSlug = this.adminforth.config.customization.brandNameSlug;
|
|
85
|
-
|
|
98
|
+
return ((_a = cookies.find((cookie) => cookie.key === `adminforth_${brandSlug}_${name}`)) === null || _a === void 0 ? void 0 : _a.value) || null;
|
|
86
99
|
}
|
|
87
100
|
issueJWT(payload, type, expiresIn = '24h') {
|
|
88
101
|
// read ADMINFORH_SECRET from environment if not drop error
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../auth.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,oDAAoD;AACpD,SAAS,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG,QAAQ;IAC9F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;YAC/E,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qCAAqC;AACrC,SAAS,YAAY,CAAC,MAAM,GAAG,EAAE;IAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,KAAK,CAAC;QACf,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC9B;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,cAAc;IAGlB,YAAY,UAAU;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,OAAe;;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QAElE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5D,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,SAAS,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,mEAAmE;YACnE,sCAAsC;YACtC,uCAAuC;YACvC,OAAO,CAAA,MAAA,YAAY,CAAC,iBAAiB,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE;gBAChE,YAAY,CAAC,WAAW,CAAC;gBACzB,YAAY,CAAC,aAAa,CAAC;gBAC3B,YAAY,CAAC,qBAAqB,CAAC;gBACnC,YAAY,CAAC,WAAW,CAAC;gBACzB,YAAY,CAAC,aAAa,CAAC;gBAC3B,YAAY,CAAC,WAAW,CAAC;gBACzB,YAAY,CAAC,gBAAgB,CAAC;gBAC9B,YAAY,CAAC,QAAQ,CAAC;gBACtB,YAAY,CAAC,QAAQ,CAAC;gBACtB,YAAY,CAAC,MAAM,CAAC;gBACpB,SAAS,CAAC;QACb,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,QAAQ;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;QACrE,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,SAAS,eAAe,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,oEAAoE,CAAC,CAAC;IACpL,CAAC;IAED,aAAa,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAKnD;QACC,MAAM,SAAS,GAAW,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,KAAK,CAAC,CAAC;QAC/G,2BAA2B;QAC3B,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAEnD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAChE,MAAM,mBAAmB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAErF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;QACrE,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,SAAS,QAAQ,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,wCAAwC,mBAAmB,EAAE,CAAC,CAAC;IACrL,CAAC;IAED,kBAAkB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;QACrE,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,SAAS,IAAI,IAAI,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,oEAAoE,CAAC,CAAC;IACxL,CAAC;IAED,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAElC;QACC,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;QAEhE,IAAI,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,gBAAgB;QACpD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC;QAClC,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,+FAA+F,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;YACjI,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;QACrE,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,SAAS,IAAI,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,IACtH,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAC5B,6BAA6B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAE9B;;QACC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;QACrE,OAAO,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,cAAc,SAAS,IAAI,IAAI,EAAE,CAAC,0CAAE,KAAK,KAAI,IAAI,CAAC;IACnG,CAAC;IAED,QAAQ,CAAC,OAAe,EAAE,IAAY,EAAE,YAAoB,KAAK;QAC/D,2DAA2D;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,kBAAkB;QAClB,OAAO,GAAG,CAAC,IAAI,iCAAK,OAAO,KAAE,CAAC,EAAE,IAAI,KAAG,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,YAAoB,EAAE,aAAkC,IAAI;QACzF,2DAA2D;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,mBAAmB;YACnB,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACrC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;iBAAO,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,KAAK,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,aAAa,YAAY,EAAE,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;gBAC1D,qCAAqC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAC1B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ;QACxC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,GAAG,IAAI,IAAI,cAAc,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc;QAClD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,OAAO,KAAK,IAAI,CAAC;IAC1B,CAAC;CAGF;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseConnector.d.ts","sourceRoot":"","sources":["../../dataConnectors/baseConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAAE,kCAAkC,EACtD,wBAAwB,EACxB,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EACjE,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAkD,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAI9G,MAAM,CAAC,OAAO,OAAO,uBAAwB,YAAW,kCAAkC;IAExF,MAAM,EAAE,GAAG,CAAC;IAEZ,IAAI,EAAE,QAGL;IAED,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,aAAa,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM;IAQ7C,sCAAsC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAWpG,gCAAgC,CAAC,MAAM,EAAE,uBAAuB,GAAG,sBAAsB,GAAG,KAAK,CAAC,uBAAuB,GAAG,sBAAsB,CAAC,GAAG,SAAS,GAAG,sBAAsB;IAqBxL,2BAA2B,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,GAAG,KAAK,CAAC,uBAAuB,GAAG,sBAAsB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"baseConnector.d.ts","sourceRoot":"","sources":["../../dataConnectors/baseConnector.ts"],"names":[],"mappings":"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"}
|