@privateaim/client-vue 0.8.4 → 0.8.5
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/dist/components/analysis/wizard/FAnalysisWizard.vue.d.ts +79 -53
- package/dist/components/analysis/wizard/FAnalysisWizard.vue.d.ts.map +1 -1
- package/dist/components/analysis/wizard/FAnalysisWizardStepFiles.vue.d.ts +78 -52
- package/dist/components/analysis/wizard/FAnalysisWizardStepFiles.vue.d.ts.map +1 -1
- package/dist/components/analysis/wizard/FAnalysisWizardStepFinal.vue.d.ts +1 -1
- package/dist/components/analysis/wizard/FAnalysisWizardStepFinal.vue.d.ts.map +1 -1
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileManager.vue.d.ts +78 -52
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileManager.vue.d.ts.map +1 -1
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileUpload.vue.d.ts +76 -0
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileUpload.vue.d.ts.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/login/FLoginForm.vue.d.ts.map +1 -1
- package/dist/components/master-image/FMasterImagesSync.d.ts.map +1 -1
- package/dist/components/master-image-event-log/FMasterImageEventLog.d.ts +27 -0
- package/dist/components/master-image-event-log/FMasterImageEventLog.d.ts.map +1 -0
- package/dist/components/master-image-event-log/FMasterImageEventLogs.d.ts +5 -0
- package/dist/components/master-image-event-log/FMasterImageEventLogs.d.ts.map +1 -0
- package/dist/components/master-image-event-log/index.d.ts +3 -0
- package/dist/components/master-image-event-log/index.d.ts.map +1 -0
- package/dist/components/node/FNodeCrypto.vue.d.ts +30 -0
- package/dist/components/node/FNodeCrypto.vue.d.ts.map +1 -0
- package/dist/components/node/index.d.ts +1 -0
- package/dist/components/node/index.d.ts.map +1 -1
- package/dist/core/entity-manager/module.d.ts +2 -4
- package/dist/core/entity-manager/module.d.ts.map +1 -1
- package/dist/core/entity-manager/type.d.ts +2 -4
- package/dist/core/entity-manager/type.d.ts.map +1 -1
- package/dist/core/entity-socket/module.d.ts +2 -4
- package/dist/core/entity-socket/module.d.ts.map +1 -1
- package/dist/core/entity-socket/type.d.ts +6 -6
- package/dist/core/entity-socket/type.d.ts.map +1 -1
- package/dist/core/list/module.d.ts +2 -4
- package/dist/core/list/module.d.ts.map +1 -1
- package/dist/core/list/type.d.ts +9 -9
- package/dist/core/list/type.d.ts.map +1 -1
- package/dist/core/socket/install.d.ts.map +1 -1
- package/dist/index.cjs +1750 -559
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1759 -571
- package/dist/index.mjs.map +1 -1
- package/package.json +26 -25
package/dist/index.cjs
CHANGED
|
@@ -10,7 +10,7 @@ var useVuelidate = require('@vuelidate/core');
|
|
|
10
10
|
var validators = require('@vuelidate/validators');
|
|
11
11
|
var formControls = require('@vuecs/form-controls');
|
|
12
12
|
var coreKit = require('@privateaim/core-kit');
|
|
13
|
-
var crypto = require('crypto');
|
|
13
|
+
var crypto$1 = require('crypto');
|
|
14
14
|
var listControls = require('@vuecs/list-controls');
|
|
15
15
|
var rapiq = require('rapiq');
|
|
16
16
|
require('@authup/kit');
|
|
@@ -18,9 +18,9 @@ var coreHttpKit = require('@authup/core-http-kit');
|
|
|
18
18
|
var storageKit = require('@privateaim/storage-kit');
|
|
19
19
|
var coreKit$1 = require('@authup/core-kit');
|
|
20
20
|
var coreRealtimeKit = require('@authup/core-realtime-kit');
|
|
21
|
+
var timeago = require('@vuecs/timeago');
|
|
21
22
|
var link = require('@vuecs/link');
|
|
22
23
|
var bootstrapVueNext = require('bootstrap-vue-next');
|
|
23
|
-
var timeago = require('@vuecs/timeago');
|
|
24
24
|
var vue3FormWizard = require('vue3-form-wizard');
|
|
25
25
|
|
|
26
26
|
/*
|
|
@@ -71,7 +71,7 @@ var vue3FormWizard = require('vue3-form-wizard');
|
|
|
71
71
|
* Author Peter Placzek (tada5hi)
|
|
72
72
|
* For the full copyright and license information,
|
|
73
73
|
* view the LICENSE file that was distributed with this source code.
|
|
74
|
-
*/ function isObject$
|
|
74
|
+
*/ function isObject$4(input) {
|
|
75
75
|
return !!input && typeof input === 'object' && !Array.isArray(input);
|
|
76
76
|
}
|
|
77
77
|
function getPathValue(data, path) {
|
|
@@ -103,7 +103,7 @@ function setPathValue(data, path, value) {
|
|
|
103
103
|
let temp = data;
|
|
104
104
|
let index = 0;
|
|
105
105
|
while(index < parts.length){
|
|
106
|
-
/* istanbul ignore next */ if (!Array.isArray(temp) && !isObject$
|
|
106
|
+
/* istanbul ignore next */ if (!Array.isArray(temp) && !isObject$4(temp)) {
|
|
107
107
|
break;
|
|
108
108
|
}
|
|
109
109
|
const key = parts[index];
|
|
@@ -239,7 +239,7 @@ function installStoreManager(instance, key) {
|
|
|
239
239
|
return manager;
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
var _sfc_main$
|
|
242
|
+
var _sfc_main$i = vue.defineComponent({
|
|
243
243
|
components: {
|
|
244
244
|
IVuelidate: vuelidate.IVuelidate,
|
|
245
245
|
VCFormInput: formControls.VCFormInput,
|
|
@@ -255,6 +255,7 @@ var _sfc_main$g = vue.defineComponent({
|
|
|
255
255
|
'failed'
|
|
256
256
|
],
|
|
257
257
|
setup (props, { emit }) {
|
|
258
|
+
const store = clientWebKit.injectStore();
|
|
258
259
|
const realmId = vue.toRef(props, 'realmId');
|
|
259
260
|
const form = vue.reactive({
|
|
260
261
|
name: '',
|
|
@@ -280,7 +281,6 @@ var _sfc_main$g = vue.defineComponent({
|
|
|
280
281
|
},
|
|
281
282
|
realm_id: {}
|
|
282
283
|
}, form);
|
|
283
|
-
const store = clientWebKit.useStore();
|
|
284
284
|
const busy = vue.ref(false);
|
|
285
285
|
const submit = async ()=>{
|
|
286
286
|
try {
|
|
@@ -313,7 +313,7 @@ var _export_sfc = ((sfc, props)=>{
|
|
|
313
313
|
return target;
|
|
314
314
|
});
|
|
315
315
|
|
|
316
|
-
function _sfc_render$
|
|
316
|
+
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
317
317
|
const _component_VCFormInput = vue.resolveComponent("VCFormInput");
|
|
318
318
|
const _component_VCFormGroup = vue.resolveComponent("VCFormGroup");
|
|
319
319
|
const _component_IVuelidate = vue.resolveComponent("IVuelidate");
|
|
@@ -402,10 +402,10 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
402
402
|
])
|
|
403
403
|
], 32);
|
|
404
404
|
}
|
|
405
|
-
var FLoginForm = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
405
|
+
var FLoginForm = /* @__PURE__ */ _export_sfc(_sfc_main$i, [
|
|
406
406
|
[
|
|
407
407
|
"render",
|
|
408
|
-
_sfc_render$
|
|
408
|
+
_sfc_render$i
|
|
409
409
|
]
|
|
410
410
|
]);
|
|
411
411
|
|
|
@@ -421,32 +421,54 @@ var FLoginForm = /* @__PURE__ */ _export_sfc(_sfc_main$g, [
|
|
|
421
421
|
return ActionCommandElementType;
|
|
422
422
|
}({});
|
|
423
423
|
|
|
424
|
+
// It is best to make fewer, larger requests to the crypto module to
|
|
425
|
+
// avoid system call overhead. So, random numbers are generated in a
|
|
426
|
+
// pool. The pool is a Buffer that is larger than the initial random
|
|
427
|
+
// request size by this multiplier. The pool is enlarged if subsequent
|
|
428
|
+
// requests exceed the maximum buffer size.
|
|
424
429
|
const POOL_SIZE_MULTIPLIER = 128;
|
|
425
430
|
let pool, poolOffset;
|
|
426
431
|
let fillPool = (bytes)=>{
|
|
427
432
|
if (!pool || pool.length < bytes) {
|
|
428
433
|
pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
|
|
429
|
-
crypto.randomFillSync(pool);
|
|
434
|
+
crypto$1.randomFillSync(pool);
|
|
430
435
|
poolOffset = 0;
|
|
431
436
|
} else if (poolOffset + bytes > pool.length) {
|
|
432
|
-
crypto.randomFillSync(pool);
|
|
437
|
+
crypto$1.randomFillSync(pool);
|
|
433
438
|
poolOffset = 0;
|
|
434
439
|
}
|
|
435
440
|
poolOffset += bytes;
|
|
436
441
|
};
|
|
437
442
|
let random = (bytes)=>{
|
|
438
|
-
|
|
443
|
+
// `|=` convert `bytes` to number to prevent `valueOf` abusing and pool pollution
|
|
444
|
+
fillPool(bytes |= 0);
|
|
439
445
|
return pool.subarray(poolOffset - bytes, poolOffset);
|
|
440
446
|
};
|
|
441
447
|
let customRandom = (alphabet, defaultSize, getRandom)=>{
|
|
448
|
+
// First, a bitmask is necessary to generate the ID. The bitmask makes bytes
|
|
449
|
+
// values closer to the alphabet size. The bitmask calculates the closest
|
|
450
|
+
// `2^31 - 1` number, which exceeds the alphabet size.
|
|
451
|
+
// For example, the bitmask for the alphabet size 30 is 31 (00011111).
|
|
442
452
|
let mask = (2 << 31 - Math.clz32(alphabet.length - 1 | 1)) - 1;
|
|
453
|
+
// Though, the bitmask solution is not perfect since the bytes exceeding
|
|
454
|
+
// the alphabet size are refused. Therefore, to reliably generate the ID,
|
|
455
|
+
// the random bytes redundancy has to be satisfied.
|
|
456
|
+
// Note: every hardware random generator call is performance expensive,
|
|
457
|
+
// because the system call for entropy collection takes a lot of time.
|
|
458
|
+
// So, to avoid additional system calls, extra bytes are requested in advance.
|
|
459
|
+
// Next, a step determines how many random bytes to generate.
|
|
460
|
+
// The number of random bytes gets decided upon the ID size, mask,
|
|
461
|
+
// alphabet size, and magic number 1.6 (using 1.6 peaks at performance
|
|
462
|
+
// according to benchmarks).
|
|
443
463
|
let step = Math.ceil(1.6 * mask * defaultSize / alphabet.length);
|
|
444
464
|
return (size = defaultSize)=>{
|
|
445
465
|
let id = '';
|
|
446
466
|
while(true){
|
|
447
467
|
let bytes = getRandom(step);
|
|
468
|
+
// A compact alternative for `for (let i = 0; i < step; i++)`.
|
|
448
469
|
let i = step;
|
|
449
470
|
while(i--){
|
|
471
|
+
// Adding `|| ''` refuses a random byte that exceeds the alphabet size.
|
|
450
472
|
id += alphabet[bytes[i] & mask] || '';
|
|
451
473
|
if (id.length === size) return id;
|
|
452
474
|
}
|
|
@@ -455,6 +477,298 @@ let customRandom = (alphabet, defaultSize, getRandom)=>{
|
|
|
455
477
|
};
|
|
456
478
|
let customAlphabet = (alphabet, size = 21)=>customRandom(alphabet, size, random);
|
|
457
479
|
|
|
480
|
+
/*
|
|
481
|
+
* Copyright (c) 2024.
|
|
482
|
+
* Author Peter Placzek (tada5hi)
|
|
483
|
+
* For the full copyright and license information,
|
|
484
|
+
* view the LICENSE file that was distributed with this source code.
|
|
485
|
+
*/ var AsymmetricCryptoAlgorithmName = /*#__PURE__*/ function(AsymmetricCryptoAlgorithmName) {
|
|
486
|
+
AsymmetricCryptoAlgorithmName["RSA_OAEP"] = "RSA-OAEP";
|
|
487
|
+
AsymmetricCryptoAlgorithmName["ECDH"] = "ECDH";
|
|
488
|
+
return AsymmetricCryptoAlgorithmName;
|
|
489
|
+
}({});
|
|
490
|
+
/*
|
|
491
|
+
* Copyright (c) 2024.
|
|
492
|
+
* Author Peter Placzek (tada5hi)
|
|
493
|
+
* For the full copyright and license information,
|
|
494
|
+
* view the LICENSE file that was distributed with this source code.
|
|
495
|
+
*/ function asyncGeneratorStep$2$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
496
|
+
try {
|
|
497
|
+
var info = gen[key](arg);
|
|
498
|
+
var value = info.value;
|
|
499
|
+
} catch (error) {
|
|
500
|
+
reject(error);
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
if (info.done) {
|
|
504
|
+
resolve(value);
|
|
505
|
+
} else {
|
|
506
|
+
Promise.resolve(value).then(_next, _throw);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
function _async_to_generator$2$1(fn) {
|
|
510
|
+
return function() {
|
|
511
|
+
var self = this, args = arguments;
|
|
512
|
+
return new Promise(function(resolve, reject) {
|
|
513
|
+
var gen = fn.apply(self, args);
|
|
514
|
+
function _next(value) {
|
|
515
|
+
asyncGeneratorStep$2$1(gen, resolve, reject, _next, _throw, "next", value);
|
|
516
|
+
}
|
|
517
|
+
function _throw(err) {
|
|
518
|
+
asyncGeneratorStep$2$1(gen, resolve, reject, _next, _throw, "throw", err);
|
|
519
|
+
}
|
|
520
|
+
_next(undefined);
|
|
521
|
+
});
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
function arrayBufferToBase64(arrayBuffer) {
|
|
525
|
+
return btoa(String.fromCharCode.apply(null, new Uint8Array(arrayBuffer)));
|
|
526
|
+
}
|
|
527
|
+
function exportAsymmetricPublicKey(key) {
|
|
528
|
+
return _exportAsymmetricPublicKey.apply(this, arguments);
|
|
529
|
+
}
|
|
530
|
+
function _exportAsymmetricPublicKey() {
|
|
531
|
+
_exportAsymmetricPublicKey = _async_to_generator$2$1(function*(key) {
|
|
532
|
+
const exported = yield crypto.subtle.exportKey('spki', key);
|
|
533
|
+
return `-----BEGIN PUBLIC KEY-----\n${arrayBufferToBase64(exported)}\n-----END PUBLIC KEY-----`;
|
|
534
|
+
});
|
|
535
|
+
return _exportAsymmetricPublicKey.apply(this, arguments);
|
|
536
|
+
}
|
|
537
|
+
function exportAsymmetricPrivateKey(key) {
|
|
538
|
+
return _exportAsymmetricPrivateKey.apply(this, arguments);
|
|
539
|
+
}
|
|
540
|
+
function _exportAsymmetricPrivateKey() {
|
|
541
|
+
_exportAsymmetricPrivateKey = _async_to_generator$2$1(function*(key) {
|
|
542
|
+
const exported = yield crypto.subtle.exportKey('pkcs8', key);
|
|
543
|
+
return `-----BEGIN PRIVATE KEY-----\n${arrayBufferToBase64(exported)}\n-----END PRIVATE KEY-----`;
|
|
544
|
+
});
|
|
545
|
+
return _exportAsymmetricPrivateKey.apply(this, arguments);
|
|
546
|
+
}
|
|
547
|
+
/*
|
|
548
|
+
* Copyright (c) 2024.
|
|
549
|
+
* Author Peter Placzek (tada5hi)
|
|
550
|
+
* For the full copyright and license information,
|
|
551
|
+
* view the LICENSE file that was distributed with this source code.
|
|
552
|
+
*/ function asyncGeneratorStep$1$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
553
|
+
try {
|
|
554
|
+
var info = gen[key](arg);
|
|
555
|
+
var value = info.value;
|
|
556
|
+
} catch (error) {
|
|
557
|
+
reject(error);
|
|
558
|
+
return;
|
|
559
|
+
}
|
|
560
|
+
if (info.done) {
|
|
561
|
+
resolve(value);
|
|
562
|
+
} else {
|
|
563
|
+
Promise.resolve(value).then(_next, _throw);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
function _async_to_generator$1$1(fn) {
|
|
567
|
+
return function() {
|
|
568
|
+
var self = this, args = arguments;
|
|
569
|
+
return new Promise(function(resolve, reject) {
|
|
570
|
+
var gen = fn.apply(self, args);
|
|
571
|
+
function _next(value) {
|
|
572
|
+
asyncGeneratorStep$1$1(gen, resolve, reject, _next, _throw, "next", value);
|
|
573
|
+
}
|
|
574
|
+
function _throw(err) {
|
|
575
|
+
asyncGeneratorStep$1$1(gen, resolve, reject, _next, _throw, "throw", err);
|
|
576
|
+
}
|
|
577
|
+
_next(undefined);
|
|
578
|
+
});
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
function _define_property$1$1(obj, key, value) {
|
|
582
|
+
if (key in obj) {
|
|
583
|
+
Object.defineProperty(obj, key, {
|
|
584
|
+
value: value,
|
|
585
|
+
enumerable: true,
|
|
586
|
+
configurable: true,
|
|
587
|
+
writable: true
|
|
588
|
+
});
|
|
589
|
+
} else {
|
|
590
|
+
obj[key] = value;
|
|
591
|
+
}
|
|
592
|
+
return obj;
|
|
593
|
+
}
|
|
594
|
+
function _object_spread$4(target) {
|
|
595
|
+
for(var i = 1; i < arguments.length; i++){
|
|
596
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
597
|
+
var ownKeys = Object.keys(source);
|
|
598
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
599
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
600
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
601
|
+
}));
|
|
602
|
+
}
|
|
603
|
+
ownKeys.forEach(function(key) {
|
|
604
|
+
_define_property$1$1(target, key, source[key]);
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
return target;
|
|
608
|
+
}
|
|
609
|
+
function ownKeys(object, enumerableOnly) {
|
|
610
|
+
var keys = Object.keys(object);
|
|
611
|
+
if (Object.getOwnPropertySymbols) {
|
|
612
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
613
|
+
keys.push.apply(keys, symbols);
|
|
614
|
+
}
|
|
615
|
+
return keys;
|
|
616
|
+
}
|
|
617
|
+
function _object_spread_props(target, source) {
|
|
618
|
+
source = source != null ? source : {};
|
|
619
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
620
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
621
|
+
} else {
|
|
622
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
623
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
624
|
+
});
|
|
625
|
+
}
|
|
626
|
+
return target;
|
|
627
|
+
}
|
|
628
|
+
class CryptoAsymmetricAlgorithm {
|
|
629
|
+
buildImportParams() {
|
|
630
|
+
if (this.algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
631
|
+
return {
|
|
632
|
+
name: 'RSA-OAEP',
|
|
633
|
+
hash: 'SHA-256'
|
|
634
|
+
};
|
|
635
|
+
}
|
|
636
|
+
if (this.algorithm.name === AsymmetricCryptoAlgorithmName.ECDH) {
|
|
637
|
+
return {
|
|
638
|
+
name: 'ECDH',
|
|
639
|
+
namedCurve: this.algorithm.namedCurve,
|
|
640
|
+
hash: 'SHA-256'
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
throw new Error('Import params could not be created.');
|
|
644
|
+
}
|
|
645
|
+
generateKeyPair() {
|
|
646
|
+
var _this = this;
|
|
647
|
+
return _async_to_generator$1$1(function*() {
|
|
648
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
649
|
+
_this.keyPair = yield crypto.subtle.generateKey(_this.algorithm, true, [
|
|
650
|
+
'encrypt',
|
|
651
|
+
'decrypt'
|
|
652
|
+
]);
|
|
653
|
+
return _this.keyPair;
|
|
654
|
+
}
|
|
655
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.ECDH) {
|
|
656
|
+
_this.keyPair = yield crypto.subtle.generateKey(_this.algorithm, true, [
|
|
657
|
+
'deriveKey'
|
|
658
|
+
]);
|
|
659
|
+
return _this.keyPair;
|
|
660
|
+
}
|
|
661
|
+
throw new Error('The algorithm is not supported for key generation.');
|
|
662
|
+
})();
|
|
663
|
+
}
|
|
664
|
+
useKeyPair() {
|
|
665
|
+
var _this = this;
|
|
666
|
+
return _async_to_generator$1$1(function*() {
|
|
667
|
+
if (typeof _this.keyPair !== 'undefined') {
|
|
668
|
+
return _this.keyPair;
|
|
669
|
+
}
|
|
670
|
+
return _this.generateKeyPair();
|
|
671
|
+
})();
|
|
672
|
+
}
|
|
673
|
+
exportPublicKey() {
|
|
674
|
+
var _this = this;
|
|
675
|
+
return _async_to_generator$1$1(function*() {
|
|
676
|
+
const keyPair = yield _this.useKeyPair();
|
|
677
|
+
return exportAsymmetricPublicKey(keyPair.publicKey);
|
|
678
|
+
})();
|
|
679
|
+
}
|
|
680
|
+
exportPrivateKey() {
|
|
681
|
+
var _this = this;
|
|
682
|
+
return _async_to_generator$1$1(function*() {
|
|
683
|
+
const keyPair = yield _this.useKeyPair();
|
|
684
|
+
return exportAsymmetricPrivateKey(keyPair.privateKey);
|
|
685
|
+
})();
|
|
686
|
+
}
|
|
687
|
+
encrypt(data, remoteKey) {
|
|
688
|
+
var _this = this;
|
|
689
|
+
return _async_to_generator$1$1(function*() {
|
|
690
|
+
const keyPair = yield _this.useKeyPair();
|
|
691
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
692
|
+
return crypto.subtle.encrypt({
|
|
693
|
+
name: 'RSA-OAEP'
|
|
694
|
+
}, remoteKey || keyPair.publicKey, data);
|
|
695
|
+
}
|
|
696
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.ECDH) {
|
|
697
|
+
if (typeof remoteKey === 'undefined') {
|
|
698
|
+
throw new Error('Remote public key is required.');
|
|
699
|
+
}
|
|
700
|
+
const array = new Uint8Array(16);
|
|
701
|
+
const iv = crypto.getRandomValues(array);
|
|
702
|
+
const key = yield crypto.subtle.deriveKey({
|
|
703
|
+
name: 'ECDH',
|
|
704
|
+
public: remoteKey
|
|
705
|
+
}, keyPair.privateKey, {
|
|
706
|
+
name: 'AES-GCM',
|
|
707
|
+
length: 256
|
|
708
|
+
}, true, [
|
|
709
|
+
'encrypt'
|
|
710
|
+
]);
|
|
711
|
+
const arrayBuffer = yield crypto.subtle.encrypt({
|
|
712
|
+
name: 'AES-GCM',
|
|
713
|
+
length: 256,
|
|
714
|
+
iv
|
|
715
|
+
}, key, data);
|
|
716
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
717
|
+
return Buffer.concat([
|
|
718
|
+
iv,
|
|
719
|
+
buffer
|
|
720
|
+
]);
|
|
721
|
+
}
|
|
722
|
+
throw new Error('Unsupported algorithm for encryption.');
|
|
723
|
+
})();
|
|
724
|
+
}
|
|
725
|
+
decrypt(data, remoteKey) {
|
|
726
|
+
var _this = this;
|
|
727
|
+
return _async_to_generator$1$1(function*() {
|
|
728
|
+
const keyPair = yield _this.useKeyPair();
|
|
729
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
730
|
+
return crypto.subtle.decrypt({
|
|
731
|
+
name: 'RSA-OAEP'
|
|
732
|
+
}, keyPair.privateKey, data);
|
|
733
|
+
}
|
|
734
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.ECDH) {
|
|
735
|
+
if (typeof remoteKey === 'undefined') {
|
|
736
|
+
throw new Error('Remote public key is required.');
|
|
737
|
+
}
|
|
738
|
+
const iv = data.slice(0, 16);
|
|
739
|
+
const key = yield crypto.subtle.deriveKey({
|
|
740
|
+
name: 'ECDH',
|
|
741
|
+
public: remoteKey
|
|
742
|
+
}, keyPair.privateKey, {
|
|
743
|
+
name: 'AES-GCM',
|
|
744
|
+
length: 256
|
|
745
|
+
}, true, [
|
|
746
|
+
'decrypt'
|
|
747
|
+
]);
|
|
748
|
+
return crypto.subtle.decrypt({
|
|
749
|
+
name: 'AES-GCM',
|
|
750
|
+
length: 256,
|
|
751
|
+
iv
|
|
752
|
+
}, key, data.slice(16));
|
|
753
|
+
}
|
|
754
|
+
throw new Error('Unsupported algorithm for decryption.');
|
|
755
|
+
})();
|
|
756
|
+
}
|
|
757
|
+
constructor(algorithm){
|
|
758
|
+
_define_property$1$1(this, "algorithm", undefined);
|
|
759
|
+
_define_property$1$1(this, "keyPair", undefined);
|
|
760
|
+
if (algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
761
|
+
algorithm = _object_spread_props(_object_spread$4({}, algorithm), {
|
|
762
|
+
publicExponent: new Uint8Array([
|
|
763
|
+
1,
|
|
764
|
+
0,
|
|
765
|
+
1
|
|
766
|
+
])
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
this.algorithm = algorithm;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
458
772
|
/*
|
|
459
773
|
* Copyright (c) 2021-2024.
|
|
460
774
|
* Author Peter Placzek (tada5hi)
|
|
@@ -494,9 +808,27 @@ let customAlphabet = (alphabet, size = 21)=>customRandom(alphabet, size, random)
|
|
|
494
808
|
function hasOwnProperty(obj, prop) {
|
|
495
809
|
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
496
810
|
}
|
|
497
|
-
function isObject$
|
|
811
|
+
function isObject$3(item) {
|
|
498
812
|
return !!item && typeof item === 'object' && !Array.isArray(item);
|
|
499
813
|
}
|
|
814
|
+
/*
|
|
815
|
+
* Copyright (c) 2021-2024.
|
|
816
|
+
* Author Peter Placzek (tada5hi)
|
|
817
|
+
* For the full copyright and license information,
|
|
818
|
+
* view the LICENSE file that was distributed with this source code.
|
|
819
|
+
*/ function isHex(value) {
|
|
820
|
+
return /^[A-Fa-f0-9]+$/i.test(value);
|
|
821
|
+
}
|
|
822
|
+
function hexToUTF8(value) {
|
|
823
|
+
try {
|
|
824
|
+
return decodeURIComponent(`%${value.match(/.{1,2}/g).join('%')}`);
|
|
825
|
+
} catch (e) {
|
|
826
|
+
if (e instanceof URIError) {
|
|
827
|
+
return value;
|
|
828
|
+
}
|
|
829
|
+
throw e;
|
|
830
|
+
}
|
|
831
|
+
}
|
|
500
832
|
function createNanoID(alphabetOrLen, len) {
|
|
501
833
|
return customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', 21)();
|
|
502
834
|
}
|
|
@@ -831,7 +1163,7 @@ function parseQuery(parametersString = "") {
|
|
|
831
1163
|
continue;
|
|
832
1164
|
}
|
|
833
1165
|
const value = decodeQueryValue(s[2] || "");
|
|
834
|
-
if (object[key] ===
|
|
1166
|
+
if (object[key] === undefined) {
|
|
835
1167
|
object[key] = value;
|
|
836
1168
|
} else if (Array.isArray(object[key])) {
|
|
837
1169
|
object[key].push(value);
|
|
@@ -857,7 +1189,7 @@ function encodeQueryItem(key, value) {
|
|
|
857
1189
|
return `${encodeQueryKey(key)}=${encodeQueryValue(value)}`;
|
|
858
1190
|
}
|
|
859
1191
|
function stringifyQuery(query) {
|
|
860
|
-
return Object.keys(query).filter((k)=>query[k] !==
|
|
1192
|
+
return Object.keys(query).filter((k)=>query[k] !== undefined).map((k)=>encodeQueryItem(k, query[k])).filter(Boolean).join("&");
|
|
861
1193
|
}
|
|
862
1194
|
const PROTOCOL_STRICT_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{1,2})/;
|
|
863
1195
|
const PROTOCOL_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{2})?/;
|
|
@@ -984,7 +1316,7 @@ const e$1 = globalThis.Blob, o$1 = globalThis.File, a$1 = globalThis.FormData, s
|
|
|
984
1316
|
throw new Error("[node-fetch-native] Failed to fetch: `globalThis.fetch` is not available!");
|
|
985
1317
|
});
|
|
986
1318
|
|
|
987
|
-
function isObject$
|
|
1319
|
+
function isObject$2(item) {
|
|
988
1320
|
return !!item && typeof item === 'object' && !Array.isArray(item);
|
|
989
1321
|
}
|
|
990
1322
|
function createExtractOptionsFn(fn) {
|
|
@@ -1015,7 +1347,7 @@ function createExtractOptionsFn(fn) {
|
|
|
1015
1347
|
};
|
|
1016
1348
|
}
|
|
1017
1349
|
function isOptions(input) {
|
|
1018
|
-
if (!isObject$
|
|
1350
|
+
if (!isObject$2(input)) {
|
|
1019
1351
|
return false;
|
|
1020
1352
|
}
|
|
1021
1353
|
if (typeof input.message !== 'undefined' && typeof input.message !== 'string') {
|
|
@@ -1072,16 +1404,16 @@ class BaseError extends Error {
|
|
|
1072
1404
|
var n = Object.defineProperty;
|
|
1073
1405
|
var e = (t, r)=>n(t, "name", {
|
|
1074
1406
|
value: r,
|
|
1075
|
-
configurable:
|
|
1407
|
+
configurable: true
|
|
1076
1408
|
});
|
|
1077
1409
|
var i = Object.defineProperty, c = e((t, r)=>i(t, "name", {
|
|
1078
1410
|
value: r,
|
|
1079
|
-
configurable:
|
|
1411
|
+
configurable: true
|
|
1080
1412
|
}), "e");
|
|
1081
1413
|
function a() {
|
|
1082
1414
|
return {
|
|
1083
|
-
agent:
|
|
1084
|
-
dispatcher:
|
|
1415
|
+
agent: undefined,
|
|
1416
|
+
dispatcher: undefined
|
|
1085
1417
|
};
|
|
1086
1418
|
}
|
|
1087
1419
|
e(a, "createProxy"), c(a, "createProxy");
|
|
@@ -1117,35 +1449,35 @@ const Blob = gT.Blob || e$1;
|
|
|
1117
1449
|
* Author Peter Placzek (tada5hi)
|
|
1118
1450
|
* For the full copyright and license information,
|
|
1119
1451
|
* view the LICENSE file that was distributed with this source code.
|
|
1120
|
-
*/ var ResponseType
|
|
1121
|
-
(function(ResponseType) {
|
|
1452
|
+
*/ var ResponseType = /*#__PURE__*/ function(ResponseType) {
|
|
1122
1453
|
ResponseType["BLOB"] = "blob";
|
|
1123
1454
|
ResponseType["STREAM"] = "stream";
|
|
1124
1455
|
ResponseType["TEXT"] = "text";
|
|
1125
1456
|
ResponseType["ARRAY_BUFFER"] = "arrayBuffer";
|
|
1126
1457
|
ResponseType["JSON"] = "json";
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1458
|
+
return ResponseType;
|
|
1459
|
+
}({});
|
|
1460
|
+
var MethodName = /*#__PURE__*/ function(MethodName) {
|
|
1130
1461
|
MethodName["DELETE"] = "DELETE";
|
|
1131
1462
|
MethodName["GET"] = "GET";
|
|
1132
1463
|
MethodName["HEAD"] = "HEAD";
|
|
1133
1464
|
MethodName["PATCH"] = "PATCH";
|
|
1134
1465
|
MethodName["POST"] = "POST";
|
|
1135
1466
|
MethodName["PUT"] = "PUT";
|
|
1136
|
-
|
|
1467
|
+
return MethodName;
|
|
1468
|
+
}({});
|
|
1137
1469
|
/*
|
|
1138
1470
|
* Copyright (c) 2023.
|
|
1139
1471
|
* Author Peter Placzek (tada5hi)
|
|
1140
1472
|
* For the full copyright and license information,
|
|
1141
1473
|
* view the LICENSE file that was distributed with this source code.
|
|
1142
|
-
*/ var HookName
|
|
1143
|
-
(function(HookName) {
|
|
1474
|
+
*/ var HookName = /*#__PURE__*/ function(HookName) {
|
|
1144
1475
|
HookName["REQUEST"] = "request";
|
|
1145
1476
|
HookName["REQUEST_ERROR"] = "requestError";
|
|
1146
1477
|
HookName["RESPONSE"] = "response";
|
|
1147
1478
|
HookName["RESPONSE_ERROR"] = "responseError";
|
|
1148
|
-
|
|
1479
|
+
return HookName;
|
|
1480
|
+
}({});
|
|
1149
1481
|
function kindOf(input) {
|
|
1150
1482
|
return Object.prototype.toString.call(input).slice(8, -1).toLowerCase();
|
|
1151
1483
|
}
|
|
@@ -1153,11 +1485,11 @@ function kindOfTest(type, input) {
|
|
|
1153
1485
|
type = type.toLowerCase();
|
|
1154
1486
|
return kindOf(input) === type;
|
|
1155
1487
|
}
|
|
1156
|
-
function isObject(input) {
|
|
1488
|
+
function isObject$1(input) {
|
|
1157
1489
|
return typeof input === 'object' && input !== null && !!input && !Array.isArray(input);
|
|
1158
1490
|
}
|
|
1159
1491
|
function isStream(input) {
|
|
1160
|
-
return isObject(input) && typeof input.pipe === 'function';
|
|
1492
|
+
return isObject$1(input) && typeof input.pipe === 'function';
|
|
1161
1493
|
}
|
|
1162
1494
|
function isFormData(input) {
|
|
1163
1495
|
if (typeof FormData$1 !== 'undefined' && input instanceof FormData$1) {
|
|
@@ -1194,7 +1526,7 @@ function isURLSearchParams(input) {
|
|
|
1194
1526
|
return kindOfTest('URLSearchParams', input);
|
|
1195
1527
|
}
|
|
1196
1528
|
function verifyInstanceBySymbol(input, name) {
|
|
1197
|
-
if (!isObject(input) && typeof input !== 'function') {
|
|
1529
|
+
if (!isObject$1(input) && typeof input !== 'function') {
|
|
1198
1530
|
return false;
|
|
1199
1531
|
}
|
|
1200
1532
|
return input['@instanceof'] === Symbol.for(name);
|
|
@@ -1213,7 +1545,7 @@ function isJSONSerializable(input) {
|
|
|
1213
1545
|
if (Array.isArray(input)) {
|
|
1214
1546
|
return true;
|
|
1215
1547
|
}
|
|
1216
|
-
return isObject(input) || typeof input === 'function' && input.toJSON === 'function';
|
|
1548
|
+
return isObject$1(input) || typeof input === 'function' && input.toJSON === 'function';
|
|
1217
1549
|
}
|
|
1218
1550
|
/*
|
|
1219
1551
|
* Copyright (c) 2023.
|
|
@@ -1230,30 +1562,29 @@ function isJSONSerializable(input) {
|
|
|
1230
1562
|
* Author Peter Placzek (tada5hi)
|
|
1231
1563
|
* For the full copyright and license information,
|
|
1232
1564
|
* view the LICENSE file that was distributed with this source code.
|
|
1233
|
-
*/ var AuthorizationHeaderType
|
|
1234
|
-
(function(AuthorizationHeaderType) {
|
|
1565
|
+
*/ var AuthorizationHeaderType = /*#__PURE__*/ function(AuthorizationHeaderType) {
|
|
1235
1566
|
AuthorizationHeaderType["BEARER"] = "Bearer";
|
|
1236
1567
|
AuthorizationHeaderType["BASIC"] = "Basic";
|
|
1237
1568
|
AuthorizationHeaderType["X_API_KEY"] = "X-API-Key";
|
|
1238
1569
|
AuthorizationHeaderType["API_KEY"] = "API-Key";
|
|
1239
|
-
|
|
1570
|
+
return AuthorizationHeaderType;
|
|
1571
|
+
}({});
|
|
1240
1572
|
/*
|
|
1241
1573
|
* Copyright (c) 2022.
|
|
1242
1574
|
* Author Peter Placzek (tada5hi)
|
|
1243
1575
|
* For the full copyright and license information,
|
|
1244
1576
|
* view the LICENSE file that was distributed with this source code.
|
|
1245
|
-
*/ var ErrorCode
|
|
1246
|
-
(function(ErrorCode) {
|
|
1577
|
+
*/ var ErrorCode = /*#__PURE__*/ function(ErrorCode) {
|
|
1247
1578
|
ErrorCode["AUTHORIZATION_HEADER_INVALID"] = "auth_header_invalid";
|
|
1248
1579
|
ErrorCode["AUTHORIZATION_HEADER_PARSE"] = "auth_header_parse";
|
|
1249
1580
|
ErrorCode["AUTHORIZATION_HEADER_TYPE_PARSE"] = "auth_header_type_parse";
|
|
1250
1581
|
ErrorCode["CONNECTION_ABORTED"] = "ECONNABORTED";
|
|
1251
1582
|
ErrorCode["CONNECTION_CLOSED"] = "ECONNRESET";
|
|
1252
|
-
|
|
1583
|
+
return ErrorCode;
|
|
1584
|
+
}({});
|
|
1253
1585
|
class ClientError extends BaseError {
|
|
1254
1586
|
constructor(ctx){
|
|
1255
|
-
super();
|
|
1256
|
-
this['@instanceof'] = Symbol.for('ClientError');
|
|
1587
|
+
super(), this['@instanceof'] = Symbol.for('ClientError');
|
|
1257
1588
|
this.request = ctx.request;
|
|
1258
1589
|
this.response = ctx.response;
|
|
1259
1590
|
this.code = ctx.code;
|
|
@@ -1311,7 +1642,7 @@ function isClientError(error) {
|
|
|
1311
1642
|
if (error instanceof ClientError) {
|
|
1312
1643
|
return true;
|
|
1313
1644
|
}
|
|
1314
|
-
return isObject(error) && verifyInstanceBySymbol(error, 'ClientError');
|
|
1645
|
+
return isObject$1(error) && verifyInstanceBySymbol(error, 'ClientError');
|
|
1315
1646
|
}
|
|
1316
1647
|
function stringifyAuthorizationHeader(header) {
|
|
1317
1648
|
switch(header.type){
|
|
@@ -1333,12 +1664,12 @@ function stringifyAuthorizationHeader(header) {
|
|
|
1333
1664
|
* Author Peter Placzek (tada5hi)
|
|
1334
1665
|
* For the full copyright and license information,
|
|
1335
1666
|
* view the LICENSE file that was distributed with this source code.
|
|
1336
|
-
*/ var HeaderName
|
|
1337
|
-
(function(HeaderName) {
|
|
1667
|
+
*/ var HeaderName = /*#__PURE__*/ function(HeaderName) {
|
|
1338
1668
|
HeaderName["ACCEPT"] = "accept";
|
|
1339
1669
|
HeaderName["AUTHORIZATION"] = "authorization";
|
|
1340
1670
|
HeaderName["CONTENT_TYPE"] = "content-type";
|
|
1341
|
-
|
|
1671
|
+
return HeaderName;
|
|
1672
|
+
}({});
|
|
1342
1673
|
function createDefaultRequestTransformer() {
|
|
1343
1674
|
return (data, headers)=>{
|
|
1344
1675
|
if (isFormData(data)) {
|
|
@@ -1378,13 +1709,13 @@ function isRequestPayloadSupported(method = 'GET') {
|
|
|
1378
1709
|
return method === MethodName.PATCH || method === MethodName.POST || method === MethodName.PUT;
|
|
1379
1710
|
}
|
|
1380
1711
|
function isRequestOptions(input) {
|
|
1381
|
-
if (!isObject(input)) {
|
|
1712
|
+
if (!isObject$1(input)) {
|
|
1382
1713
|
return false;
|
|
1383
1714
|
}
|
|
1384
1715
|
return input.url === 'string';
|
|
1385
1716
|
}
|
|
1386
1717
|
function isResponse(input) {
|
|
1387
|
-
if (!isObject(input)) {
|
|
1718
|
+
if (!isObject$1(input)) {
|
|
1388
1719
|
return false;
|
|
1389
1720
|
}
|
|
1390
1721
|
return typeof input.headers !== 'undefined' && typeof input.ok === 'boolean';
|
|
@@ -1809,7 +2140,7 @@ let Client$1 = class Client {
|
|
|
1809
2140
|
function createClient(input) {
|
|
1810
2141
|
return new Client$1(input);
|
|
1811
2142
|
}
|
|
1812
|
-
function isClient(input) {
|
|
2143
|
+
function isClient$1(input) {
|
|
1813
2144
|
if (input instanceof Client$1) {
|
|
1814
2145
|
return true;
|
|
1815
2146
|
}
|
|
@@ -1838,11 +2169,11 @@ createClient();
|
|
|
1838
2169
|
class BaseAPI {
|
|
1839
2170
|
// -----------------------------------------------------------------------------------
|
|
1840
2171
|
setClient(input) {
|
|
1841
|
-
this.client = isClient(input) ? input : createClient(input);
|
|
2172
|
+
this.client = isClient$1(input) ? input : createClient(input);
|
|
1842
2173
|
}
|
|
1843
2174
|
// -----------------------------------------------------------------------------------
|
|
1844
2175
|
constructor(context){
|
|
1845
|
-
_define_property$5(this, "client",
|
|
2176
|
+
_define_property$5(this, "client", undefined);
|
|
1846
2177
|
context = context || {};
|
|
1847
2178
|
this.setClient(context.client);
|
|
1848
2179
|
}
|
|
@@ -1852,7 +2183,7 @@ class BaseAPI {
|
|
|
1852
2183
|
* Author Peter Placzek (tada5hi)
|
|
1853
2184
|
* For the full copyright and license information,
|
|
1854
2185
|
* view the LICENSE file that was distributed with this source code.
|
|
1855
|
-
*/ function asyncGeneratorStep$
|
|
2186
|
+
*/ function asyncGeneratorStep$e(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1856
2187
|
try {
|
|
1857
2188
|
var info = gen[key](arg);
|
|
1858
2189
|
var value = info.value;
|
|
@@ -1866,16 +2197,16 @@ class BaseAPI {
|
|
|
1866
2197
|
Promise.resolve(value).then(_next, _throw);
|
|
1867
2198
|
}
|
|
1868
2199
|
}
|
|
1869
|
-
function _async_to_generator$
|
|
2200
|
+
function _async_to_generator$e(fn) {
|
|
1870
2201
|
return function() {
|
|
1871
2202
|
var self = this, args = arguments;
|
|
1872
2203
|
return new Promise(function(resolve, reject) {
|
|
1873
2204
|
var gen = fn.apply(self, args);
|
|
1874
2205
|
function _next(value) {
|
|
1875
|
-
asyncGeneratorStep$
|
|
2206
|
+
asyncGeneratorStep$e(gen, resolve, reject, _next, _throw, "next", value);
|
|
1876
2207
|
}
|
|
1877
2208
|
function _throw(err) {
|
|
1878
|
-
asyncGeneratorStep$
|
|
2209
|
+
asyncGeneratorStep$e(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1879
2210
|
}
|
|
1880
2211
|
_next(undefined);
|
|
1881
2212
|
});
|
|
@@ -1884,21 +2215,21 @@ function _async_to_generator$d(fn) {
|
|
|
1884
2215
|
class MasterImageGroupAPI extends BaseAPI {
|
|
1885
2216
|
getMany(data) {
|
|
1886
2217
|
var _this = this;
|
|
1887
|
-
return _async_to_generator$
|
|
2218
|
+
return _async_to_generator$e(function*() {
|
|
1888
2219
|
const response = yield _this.client.get(`master-image-groups${rapiq.buildQuery(data)}`);
|
|
1889
2220
|
return response.data;
|
|
1890
2221
|
})();
|
|
1891
2222
|
}
|
|
1892
2223
|
getOne(id) {
|
|
1893
2224
|
var _this = this;
|
|
1894
|
-
return _async_to_generator$
|
|
2225
|
+
return _async_to_generator$e(function*() {
|
|
1895
2226
|
const response = yield _this.client.delete(`master-image-groups/${id}`);
|
|
1896
2227
|
return response.data;
|
|
1897
2228
|
})();
|
|
1898
2229
|
}
|
|
1899
2230
|
delete(id) {
|
|
1900
2231
|
var _this = this;
|
|
1901
|
-
return _async_to_generator$
|
|
2232
|
+
return _async_to_generator$e(function*() {
|
|
1902
2233
|
const response = yield _this.client.delete(`master-image-groups/${id}`);
|
|
1903
2234
|
return response.data;
|
|
1904
2235
|
})();
|
|
@@ -1909,7 +2240,7 @@ class MasterImageGroupAPI extends BaseAPI {
|
|
|
1909
2240
|
* Author Peter Placzek (tada5hi)
|
|
1910
2241
|
* For the full copyright and license information,
|
|
1911
2242
|
* view the LICENSE file that was distributed with this source code.
|
|
1912
|
-
*/ function asyncGeneratorStep$
|
|
2243
|
+
*/ function asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1913
2244
|
try {
|
|
1914
2245
|
var info = gen[key](arg);
|
|
1915
2246
|
var value = info.value;
|
|
@@ -1923,16 +2254,16 @@ class MasterImageGroupAPI extends BaseAPI {
|
|
|
1923
2254
|
Promise.resolve(value).then(_next, _throw);
|
|
1924
2255
|
}
|
|
1925
2256
|
}
|
|
1926
|
-
function _async_to_generator$
|
|
2257
|
+
function _async_to_generator$d(fn) {
|
|
1927
2258
|
return function() {
|
|
1928
2259
|
var self = this, args = arguments;
|
|
1929
2260
|
return new Promise(function(resolve, reject) {
|
|
1930
2261
|
var gen = fn.apply(self, args);
|
|
1931
2262
|
function _next(value) {
|
|
1932
|
-
asyncGeneratorStep$
|
|
2263
|
+
asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, "next", value);
|
|
1933
2264
|
}
|
|
1934
2265
|
function _throw(err) {
|
|
1935
|
-
asyncGeneratorStep$
|
|
2266
|
+
asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1936
2267
|
}
|
|
1937
2268
|
_next(undefined);
|
|
1938
2269
|
});
|
|
@@ -1969,28 +2300,28 @@ function _object_spread$3(target) {
|
|
|
1969
2300
|
class MasterImageAPI extends BaseAPI {
|
|
1970
2301
|
getMany(data) {
|
|
1971
2302
|
var _this = this;
|
|
1972
|
-
return _async_to_generator$
|
|
2303
|
+
return _async_to_generator$d(function*() {
|
|
1973
2304
|
const response = yield _this.client.get(`master-images${rapiq.buildQuery(data)}`);
|
|
1974
2305
|
return response.data;
|
|
1975
2306
|
})();
|
|
1976
2307
|
}
|
|
1977
2308
|
getOne(id, data) {
|
|
1978
2309
|
var _this = this;
|
|
1979
|
-
return _async_to_generator$
|
|
2310
|
+
return _async_to_generator$d(function*() {
|
|
1980
2311
|
const response = yield _this.client.get(`master-images/${id}${rapiq.buildQuery(data)}`);
|
|
1981
2312
|
return response.data;
|
|
1982
2313
|
})();
|
|
1983
2314
|
}
|
|
1984
2315
|
delete(id) {
|
|
1985
2316
|
var _this = this;
|
|
1986
|
-
return _async_to_generator$
|
|
2317
|
+
return _async_to_generator$d(function*() {
|
|
1987
2318
|
const response = yield _this.client.delete(`master-images/${id}`);
|
|
1988
2319
|
return response.data;
|
|
1989
2320
|
})();
|
|
1990
2321
|
}
|
|
1991
2322
|
runCommand(command, data = {}) {
|
|
1992
2323
|
var _this = this;
|
|
1993
|
-
return _async_to_generator$
|
|
2324
|
+
return _async_to_generator$d(function*() {
|
|
1994
2325
|
const actionData = _object_spread$3({
|
|
1995
2326
|
command
|
|
1996
2327
|
}, data);
|
|
@@ -1999,21 +2330,12 @@ class MasterImageAPI extends BaseAPI {
|
|
|
1999
2330
|
})();
|
|
2000
2331
|
}
|
|
2001
2332
|
}
|
|
2002
|
-
function nullifyEmptyObjectProperties(data) {
|
|
2003
|
-
const keys = Object.keys(data);
|
|
2004
|
-
for(let i = 0; i < keys.length; i++){
|
|
2005
|
-
if (data[keys[i]] === '') {
|
|
2006
|
-
data[keys[i]] = null;
|
|
2007
|
-
}
|
|
2008
|
-
}
|
|
2009
|
-
return data;
|
|
2010
|
-
}
|
|
2011
2333
|
/*
|
|
2012
2334
|
* Copyright (c) 2021-2024.
|
|
2013
2335
|
* Author Peter Placzek (tada5hi)
|
|
2014
2336
|
* For the full copyright and license information,
|
|
2015
2337
|
* view the LICENSE file that was distributed with this source code.
|
|
2016
|
-
*/ function asyncGeneratorStep$
|
|
2338
|
+
*/ function asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2017
2339
|
try {
|
|
2018
2340
|
var info = gen[key](arg);
|
|
2019
2341
|
var value = info.value;
|
|
@@ -2027,55 +2349,135 @@ function nullifyEmptyObjectProperties(data) {
|
|
|
2027
2349
|
Promise.resolve(value).then(_next, _throw);
|
|
2028
2350
|
}
|
|
2029
2351
|
}
|
|
2030
|
-
function _async_to_generator$
|
|
2352
|
+
function _async_to_generator$c(fn) {
|
|
2031
2353
|
return function() {
|
|
2032
2354
|
var self = this, args = arguments;
|
|
2033
2355
|
return new Promise(function(resolve, reject) {
|
|
2034
2356
|
var gen = fn.apply(self, args);
|
|
2035
2357
|
function _next(value) {
|
|
2036
|
-
asyncGeneratorStep$
|
|
2358
|
+
asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, "next", value);
|
|
2037
2359
|
}
|
|
2038
2360
|
function _throw(err) {
|
|
2039
|
-
asyncGeneratorStep$
|
|
2361
|
+
asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, "throw", err);
|
|
2040
2362
|
}
|
|
2041
2363
|
_next(undefined);
|
|
2042
2364
|
});
|
|
2043
2365
|
};
|
|
2044
2366
|
}
|
|
2045
|
-
class
|
|
2046
|
-
getMany(
|
|
2367
|
+
class MasterImageEventLogAPI extends BaseAPI {
|
|
2368
|
+
getMany(options) {
|
|
2047
2369
|
var _this = this;
|
|
2048
|
-
return _async_to_generator$
|
|
2049
|
-
const response = yield _this.client.get(`
|
|
2050
|
-
return response
|
|
2370
|
+
return _async_to_generator$c(function*() {
|
|
2371
|
+
const { data: response } = yield _this.client.get(`master-image-event-logs${rapiq.buildQuery(options)}`);
|
|
2372
|
+
return response;
|
|
2051
2373
|
})();
|
|
2052
2374
|
}
|
|
2053
|
-
getOne(id
|
|
2375
|
+
getOne(id) {
|
|
2054
2376
|
var _this = this;
|
|
2055
|
-
return _async_to_generator$
|
|
2056
|
-
const response = yield _this.client.get(`
|
|
2057
|
-
return response
|
|
2377
|
+
return _async_to_generator$c(function*() {
|
|
2378
|
+
const { data: response } = yield _this.client.get(`master-image-event-logs/${id}`);
|
|
2379
|
+
return response;
|
|
2058
2380
|
})();
|
|
2059
2381
|
}
|
|
2060
|
-
|
|
2382
|
+
delete(id) {
|
|
2061
2383
|
var _this = this;
|
|
2062
|
-
return _async_to_generator$
|
|
2063
|
-
const response = yield _this.client.
|
|
2064
|
-
return response
|
|
2384
|
+
return _async_to_generator$c(function*() {
|
|
2385
|
+
const { data: response } = yield _this.client.delete(`master-image-event-logs/${id}`);
|
|
2386
|
+
return response;
|
|
2065
2387
|
})();
|
|
2066
2388
|
}
|
|
2067
|
-
|
|
2389
|
+
update(id, data) {
|
|
2068
2390
|
var _this = this;
|
|
2069
|
-
return _async_to_generator$
|
|
2070
|
-
const response = yield _this.client.
|
|
2071
|
-
return response
|
|
2391
|
+
return _async_to_generator$c(function*() {
|
|
2392
|
+
const { data: response } = yield _this.client.post(`master-image-event-logs/${id}`, data);
|
|
2393
|
+
return response;
|
|
2072
2394
|
})();
|
|
2073
2395
|
}
|
|
2074
|
-
|
|
2396
|
+
create(data) {
|
|
2075
2397
|
var _this = this;
|
|
2076
|
-
return _async_to_generator$
|
|
2077
|
-
const response = yield _this.client.post(
|
|
2078
|
-
return response
|
|
2398
|
+
return _async_to_generator$c(function*() {
|
|
2399
|
+
const { data: response } = yield _this.client.post('master-image-event-logs', data);
|
|
2400
|
+
return response;
|
|
2401
|
+
})();
|
|
2402
|
+
}
|
|
2403
|
+
}
|
|
2404
|
+
function nullifyEmptyObjectProperties(data) {
|
|
2405
|
+
const keys = Object.keys(data);
|
|
2406
|
+
for(let i = 0; i < keys.length; i++){
|
|
2407
|
+
if (data[keys[i]] === '') {
|
|
2408
|
+
data[keys[i]] = null;
|
|
2409
|
+
}
|
|
2410
|
+
}
|
|
2411
|
+
return data;
|
|
2412
|
+
}
|
|
2413
|
+
/*
|
|
2414
|
+
* Copyright (c) 2021-2024.
|
|
2415
|
+
* Author Peter Placzek (tada5hi)
|
|
2416
|
+
* For the full copyright and license information,
|
|
2417
|
+
* view the LICENSE file that was distributed with this source code.
|
|
2418
|
+
*/ function asyncGeneratorStep$b(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2419
|
+
try {
|
|
2420
|
+
var info = gen[key](arg);
|
|
2421
|
+
var value = info.value;
|
|
2422
|
+
} catch (error) {
|
|
2423
|
+
reject(error);
|
|
2424
|
+
return;
|
|
2425
|
+
}
|
|
2426
|
+
if (info.done) {
|
|
2427
|
+
resolve(value);
|
|
2428
|
+
} else {
|
|
2429
|
+
Promise.resolve(value).then(_next, _throw);
|
|
2430
|
+
}
|
|
2431
|
+
}
|
|
2432
|
+
function _async_to_generator$b(fn) {
|
|
2433
|
+
return function() {
|
|
2434
|
+
var self = this, args = arguments;
|
|
2435
|
+
return new Promise(function(resolve, reject) {
|
|
2436
|
+
var gen = fn.apply(self, args);
|
|
2437
|
+
function _next(value) {
|
|
2438
|
+
asyncGeneratorStep$b(gen, resolve, reject, _next, _throw, "next", value);
|
|
2439
|
+
}
|
|
2440
|
+
function _throw(err) {
|
|
2441
|
+
asyncGeneratorStep$b(gen, resolve, reject, _next, _throw, "throw", err);
|
|
2442
|
+
}
|
|
2443
|
+
_next(undefined);
|
|
2444
|
+
});
|
|
2445
|
+
};
|
|
2446
|
+
}
|
|
2447
|
+
class ProjectAPI extends BaseAPI {
|
|
2448
|
+
getMany(record) {
|
|
2449
|
+
var _this = this;
|
|
2450
|
+
return _async_to_generator$b(function*() {
|
|
2451
|
+
const response = yield _this.client.get(`projects${rapiq.buildQuery(record)}`);
|
|
2452
|
+
return response.data;
|
|
2453
|
+
})();
|
|
2454
|
+
}
|
|
2455
|
+
getOne(id, requestRecord) {
|
|
2456
|
+
var _this = this;
|
|
2457
|
+
return _async_to_generator$b(function*() {
|
|
2458
|
+
const response = yield _this.client.get(`projects/${id}${rapiq.buildQuery(requestRecord)}`);
|
|
2459
|
+
return response.data;
|
|
2460
|
+
})();
|
|
2461
|
+
}
|
|
2462
|
+
create(data) {
|
|
2463
|
+
var _this = this;
|
|
2464
|
+
return _async_to_generator$b(function*() {
|
|
2465
|
+
const response = yield _this.client.post('projects', nullifyEmptyObjectProperties(data));
|
|
2466
|
+
return response.data;
|
|
2467
|
+
})();
|
|
2468
|
+
}
|
|
2469
|
+
delete(id) {
|
|
2470
|
+
var _this = this;
|
|
2471
|
+
return _async_to_generator$b(function*() {
|
|
2472
|
+
const response = yield _this.client.delete(`projects/${id}`);
|
|
2473
|
+
return response.data;
|
|
2474
|
+
})();
|
|
2475
|
+
}
|
|
2476
|
+
update(id, data) {
|
|
2477
|
+
var _this = this;
|
|
2478
|
+
return _async_to_generator$b(function*() {
|
|
2479
|
+
const response = yield _this.client.post(`projects/${id}`, nullifyEmptyObjectProperties(data));
|
|
2480
|
+
return response.data;
|
|
2079
2481
|
})();
|
|
2080
2482
|
}
|
|
2081
2483
|
}
|
|
@@ -2988,13 +3390,16 @@ class AnalysisBucketAPI extends BaseAPI {
|
|
|
2988
3390
|
}
|
|
2989
3391
|
class Client extends Client$1 {
|
|
2990
3392
|
constructor(config){
|
|
2991
|
-
super(config), _define_property(this, "masterImage",
|
|
3393
|
+
super(config), _define_property(this, "masterImage", undefined), _define_property(this, "masterImageGroup", undefined), _define_property(this, "masterImageEventLog", undefined), _define_property(this, "project", undefined), _define_property(this, "projectNode", undefined), _define_property(this, "registry", undefined), _define_property(this, "registryProject", undefined), _define_property(this, "node", undefined), _define_property(this, "analysis", undefined), _define_property(this, "analysisBucket", undefined), _define_property(this, "analysisBucketFile", undefined), _define_property(this, "analysisLog", undefined), _define_property(this, "analysisNode", undefined), _define_property(this, "analysisPermission", undefined), _define_property(this, "service", undefined);
|
|
2992
3394
|
this.masterImage = new MasterImageAPI({
|
|
2993
3395
|
client: this
|
|
2994
3396
|
});
|
|
2995
3397
|
this.masterImageGroup = new MasterImageGroupAPI({
|
|
2996
3398
|
client: this
|
|
2997
3399
|
});
|
|
3400
|
+
this.masterImageEventLog = new MasterImageEventLogAPI({
|
|
3401
|
+
client: this
|
|
3402
|
+
});
|
|
2998
3403
|
this.project = new ProjectAPI({
|
|
2999
3404
|
client: this
|
|
3000
3405
|
});
|
|
@@ -3152,18 +3557,15 @@ function injectSocketManager(app) {
|
|
|
3152
3557
|
}
|
|
3153
3558
|
|
|
3154
3559
|
function installSocketManager(app, options) {
|
|
3155
|
-
const store = clientWebKit.
|
|
3560
|
+
const store = clientWebKit.injectStore();
|
|
3156
3561
|
const { accessToken } = clientWebKit.storeToRefs(store);
|
|
3157
3562
|
const manager = new coreRealtimeKit.ClientManager({
|
|
3158
3563
|
url: options.baseURL,
|
|
3159
3564
|
token: ()=>accessToken.value
|
|
3160
3565
|
});
|
|
3161
|
-
const
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
oldValue.value = state.accessToken;
|
|
3165
|
-
Promise.resolve().then(()=>manager.reconnect());
|
|
3166
|
-
}
|
|
3566
|
+
const storeDispatcher = clientWebKit.injectStoreDispatcher();
|
|
3567
|
+
storeDispatcher.on(clientWebKit.StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, ()=>{
|
|
3568
|
+
Promise.resolve().then(()=>manager.reconnect());
|
|
3167
3569
|
});
|
|
3168
3570
|
provideSocketManager(manager, app);
|
|
3169
3571
|
}
|
|
@@ -3176,7 +3578,7 @@ function createEntitySocket(ctx) {
|
|
|
3176
3578
|
};
|
|
3177
3579
|
}
|
|
3178
3580
|
const socketManager = injectSocketManager();
|
|
3179
|
-
const store = clientWebKit.
|
|
3581
|
+
const store = clientWebKit.injectStore();
|
|
3180
3582
|
const storeRefs = clientWebKit.storeToRefs(store);
|
|
3181
3583
|
const realmId = vue.computed(()=>{
|
|
3182
3584
|
if (storeRefs.realmName.value === coreKit$1.REALM_MASTER_NAME) {
|
|
@@ -3282,8 +3684,7 @@ function createEntitySocket(ctx) {
|
|
|
3282
3684
|
vue.onUnmounted(()=>unmount());
|
|
3283
3685
|
vue.watch(targetId, (val, oldValue)=>{
|
|
3284
3686
|
if (val !== oldValue) {
|
|
3285
|
-
unmount();
|
|
3286
|
-
mount();
|
|
3687
|
+
Promise.resolve().then(()=>unmount()).then(()=>mount());
|
|
3287
3688
|
}
|
|
3288
3689
|
});
|
|
3289
3690
|
return {
|
|
@@ -3381,18 +3782,28 @@ function createList(context) {
|
|
|
3381
3782
|
busy.value = false;
|
|
3382
3783
|
meta.value.busy = false;
|
|
3383
3784
|
}
|
|
3384
|
-
if (context.loadAll
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3785
|
+
if (context.loadAll) {
|
|
3786
|
+
if (total.value > data.value.length) {
|
|
3787
|
+
await load({
|
|
3788
|
+
...meta.value,
|
|
3789
|
+
pagination: {
|
|
3790
|
+
...meta.value.pagination,
|
|
3791
|
+
offset: (meta.value.pagination?.offset ?? 0) + (meta.value.pagination?.limit ?? 0)
|
|
3792
|
+
}
|
|
3793
|
+
});
|
|
3794
|
+
return;
|
|
3795
|
+
}
|
|
3796
|
+
if (context.onLoaded) {
|
|
3797
|
+
context.onLoaded(meta.value);
|
|
3798
|
+
}
|
|
3799
|
+
return;
|
|
3800
|
+
}
|
|
3801
|
+
if (context.onLoaded) {
|
|
3802
|
+
context.onLoaded(meta.value);
|
|
3392
3803
|
}
|
|
3393
3804
|
}
|
|
3394
3805
|
const handleCreated = buildListCreatedHandler(data, (cbEntity)=>{
|
|
3395
|
-
total.value
|
|
3806
|
+
total.value++;
|
|
3396
3807
|
if (context.onCreated) {
|
|
3397
3808
|
context.onCreated(cbEntity, meta.value);
|
|
3398
3809
|
}
|
|
@@ -4276,7 +4687,7 @@ var FEntityDelete = vue.defineComponent({
|
|
|
4276
4687
|
const submit = async ()=>{
|
|
4277
4688
|
if (busy.value) return;
|
|
4278
4689
|
const domainAPI = apiClient[props.entityType];
|
|
4279
|
-
if (!isObject$
|
|
4690
|
+
if (!isObject$3(domainAPI)) {
|
|
4280
4691
|
return;
|
|
4281
4692
|
}
|
|
4282
4693
|
if (typeof domainAPI.delete !== 'function') {
|
|
@@ -4372,9 +4783,6 @@ var FMasterImagesSync = vue.defineComponent({
|
|
|
4372
4783
|
}
|
|
4373
4784
|
};
|
|
4374
4785
|
return ()=>vue.h('div', [
|
|
4375
|
-
vue.h('p', [
|
|
4376
|
-
'The master images and groups are extracted from the GitHub repository after executing the sync command and are then transferred to the database.' + ' ' + 'In addition, the master images are built and transferred to all registered registry instances.'
|
|
4377
|
-
]),
|
|
4378
4786
|
vue.h('div', {
|
|
4379
4787
|
class: 'mb-1'
|
|
4380
4788
|
}, [
|
|
@@ -4394,34 +4802,160 @@ var FMasterImagesSync = vue.defineComponent({
|
|
|
4394
4802
|
])
|
|
4395
4803
|
]),
|
|
4396
4804
|
vue.h(MasterImageList, {
|
|
4397
|
-
ref: itemList
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
[EntityListSlotName.ITEM_ACTIONS]: (props)=>vue.h(FEntityDelete, {
|
|
4410
|
-
class: 'btn btn-xs btn-danger',
|
|
4411
|
-
elementType: 'button',
|
|
4412
|
-
entityId: props.data.id,
|
|
4413
|
-
entityType: coreKit.DomainType.MASTER_IMAGE,
|
|
4414
|
-
withText: false,
|
|
4415
|
-
onDeleted (item) {
|
|
4416
|
-
return handleDeleted(item);
|
|
4417
|
-
}
|
|
4418
|
-
})
|
|
4419
|
-
}
|
|
4805
|
+
ref: itemList
|
|
4806
|
+
}, {
|
|
4807
|
+
[EntityListSlotName.ITEM_ACTIONS]: (props)=>vue.h(FEntityDelete, {
|
|
4808
|
+
class: 'btn btn-xs btn-danger',
|
|
4809
|
+
elementType: 'button',
|
|
4810
|
+
entityId: props.data.id,
|
|
4811
|
+
entityType: coreKit.DomainType.MASTER_IMAGE,
|
|
4812
|
+
withText: false,
|
|
4813
|
+
onDeleted (item) {
|
|
4814
|
+
return handleDeleted(item);
|
|
4815
|
+
}
|
|
4816
|
+
})
|
|
4420
4817
|
})
|
|
4421
4818
|
]);
|
|
4422
4819
|
}
|
|
4423
4820
|
});
|
|
4424
4821
|
|
|
4822
|
+
var FMasterImageEventLog = vue.defineComponent({
|
|
4823
|
+
props: {
|
|
4824
|
+
index: {
|
|
4825
|
+
type: Number,
|
|
4826
|
+
default: 0
|
|
4827
|
+
},
|
|
4828
|
+
entity: {
|
|
4829
|
+
type: Object,
|
|
4830
|
+
required: true
|
|
4831
|
+
}
|
|
4832
|
+
},
|
|
4833
|
+
setup (props) {
|
|
4834
|
+
const entity = vue.toRef(props, 'entity');
|
|
4835
|
+
const message = [
|
|
4836
|
+
'Event '
|
|
4837
|
+
];
|
|
4838
|
+
message.push(vue.h('strong', `${entity.value.name}`));
|
|
4839
|
+
if (entity.value.master_image) {
|
|
4840
|
+
message.push(vue.h('span', {
|
|
4841
|
+
class: 'ms-1'
|
|
4842
|
+
}, [
|
|
4843
|
+
`(${entity.value.master_image.virtual_path})`
|
|
4844
|
+
]));
|
|
4845
|
+
}
|
|
4846
|
+
message.push(' triggered.');
|
|
4847
|
+
// todo: render entity.value.data depending on event name
|
|
4848
|
+
return ()=>vue.h('div', {
|
|
4849
|
+
class: `line line-${props.index + 1}`
|
|
4850
|
+
}, [
|
|
4851
|
+
vue.h('div', {
|
|
4852
|
+
class: 'd-flex flex-row'
|
|
4853
|
+
}, [
|
|
4854
|
+
vue.h('div', {
|
|
4855
|
+
class: 'line-number'
|
|
4856
|
+
}, [
|
|
4857
|
+
props.index + 1
|
|
4858
|
+
]),
|
|
4859
|
+
vue.h('div', {
|
|
4860
|
+
class: 'line-content d-flex flex-row'
|
|
4861
|
+
}, [
|
|
4862
|
+
vue.h('div', {
|
|
4863
|
+
class: [
|
|
4864
|
+
'line-message'
|
|
4865
|
+
]
|
|
4866
|
+
}, [
|
|
4867
|
+
message
|
|
4868
|
+
]),
|
|
4869
|
+
vue.h('div', {
|
|
4870
|
+
class: 'ms-auto'
|
|
4871
|
+
}, [
|
|
4872
|
+
vue.h(timeago.VCTimeago, {
|
|
4873
|
+
datetime: entity.value.created_at
|
|
4874
|
+
})
|
|
4875
|
+
])
|
|
4876
|
+
])
|
|
4877
|
+
])
|
|
4878
|
+
]);
|
|
4879
|
+
}
|
|
4880
|
+
});
|
|
4881
|
+
|
|
4882
|
+
var FMasterImageEventLogs = vue.defineComponent({
|
|
4883
|
+
setup (props, setup) {
|
|
4884
|
+
const rootNode = vue.ref(null);
|
|
4885
|
+
const scrollToLastLine = (meta)=>{
|
|
4886
|
+
if (!rootNode.value) {
|
|
4887
|
+
return;
|
|
4888
|
+
}
|
|
4889
|
+
const el = rootNode.value.getElementsByClassName(`line-${meta.total}`)[0];
|
|
4890
|
+
if (el) {
|
|
4891
|
+
el.scrollIntoView({
|
|
4892
|
+
behavior: 'smooth'
|
|
4893
|
+
});
|
|
4894
|
+
}
|
|
4895
|
+
};
|
|
4896
|
+
const { render, setDefaults } = createList({
|
|
4897
|
+
type: `${coreKit.DomainType.MASTER_IMAGE_EVENT_LOG}`,
|
|
4898
|
+
onCreated (_entity, meta) {
|
|
4899
|
+
scrollToLastLine(meta);
|
|
4900
|
+
},
|
|
4901
|
+
onLoaded (meta) {
|
|
4902
|
+
vue.nextTick(()=>{
|
|
4903
|
+
scrollToLastLine(meta);
|
|
4904
|
+
});
|
|
4905
|
+
},
|
|
4906
|
+
socket: {
|
|
4907
|
+
processEvent (event) {
|
|
4908
|
+
return event.meta.roomName !== coreKit.buildDomainChannelName(coreKit.DomainType.MASTER_IMAGE_EVENT_LOG);
|
|
4909
|
+
}
|
|
4910
|
+
},
|
|
4911
|
+
props,
|
|
4912
|
+
setup,
|
|
4913
|
+
loadAll: true,
|
|
4914
|
+
query: {
|
|
4915
|
+
sort: {
|
|
4916
|
+
created_at: 'ASC'
|
|
4917
|
+
},
|
|
4918
|
+
relations: {
|
|
4919
|
+
master_image: true
|
|
4920
|
+
}
|
|
4921
|
+
}
|
|
4922
|
+
});
|
|
4923
|
+
setDefaults({
|
|
4924
|
+
noMore: {
|
|
4925
|
+
content: 'No more logs available...'
|
|
4926
|
+
},
|
|
4927
|
+
item: {
|
|
4928
|
+
content (item, slotProps) {
|
|
4929
|
+
return vue.h(FMasterImageEventLog, {
|
|
4930
|
+
entity: item,
|
|
4931
|
+
index: slotProps.index,
|
|
4932
|
+
onDeleted () {
|
|
4933
|
+
if (slotProps && slotProps.deleted) {
|
|
4934
|
+
slotProps.deleted(item);
|
|
4935
|
+
}
|
|
4936
|
+
},
|
|
4937
|
+
onUpdated: (e)=>{
|
|
4938
|
+
if (slotProps && slotProps.updated) {
|
|
4939
|
+
slotProps.updated(e);
|
|
4940
|
+
}
|
|
4941
|
+
}
|
|
4942
|
+
});
|
|
4943
|
+
}
|
|
4944
|
+
}
|
|
4945
|
+
});
|
|
4946
|
+
return ()=>vue.h('div', {
|
|
4947
|
+
ref: rootNode,
|
|
4948
|
+
class: 'log-container'
|
|
4949
|
+
}, [
|
|
4950
|
+
vue.h('div', {
|
|
4951
|
+
class: 'log-body'
|
|
4952
|
+
}, [
|
|
4953
|
+
render()
|
|
4954
|
+
])
|
|
4955
|
+
]);
|
|
4956
|
+
}
|
|
4957
|
+
});
|
|
4958
|
+
|
|
4425
4959
|
const FProject = vue.defineComponent({
|
|
4426
4960
|
props: defineEntityManagerProps(),
|
|
4427
4961
|
emits: defineEntityManagerEvents(),
|
|
@@ -5049,7 +5583,7 @@ const FProjectInForm = vue.defineComponent({
|
|
|
5049
5583
|
}
|
|
5050
5584
|
});
|
|
5051
5585
|
|
|
5052
|
-
var _sfc_main$
|
|
5586
|
+
var _sfc_main$h = vue.defineComponent({
|
|
5053
5587
|
components: {
|
|
5054
5588
|
BModal: bootstrapVueNext.BModal,
|
|
5055
5589
|
FProjectInForm,
|
|
@@ -5096,49 +5630,49 @@ var _sfc_main$f = vue.defineComponent({
|
|
|
5096
5630
|
}
|
|
5097
5631
|
});
|
|
5098
5632
|
|
|
5099
|
-
const _hoisted_1$
|
|
5633
|
+
const _hoisted_1$f = {
|
|
5100
5634
|
class: "d-flex flex-column gap-1 w-100"
|
|
5101
5635
|
};
|
|
5102
|
-
const _hoisted_2$
|
|
5636
|
+
const _hoisted_2$e = {
|
|
5103
5637
|
class: "w-100"
|
|
5104
5638
|
};
|
|
5105
|
-
const _hoisted_3$
|
|
5639
|
+
const _hoisted_3$c = {
|
|
5106
5640
|
class: "d-flex flex-row align-items-center"
|
|
5107
5641
|
};
|
|
5108
|
-
const _hoisted_4$
|
|
5642
|
+
const _hoisted_4$c = {
|
|
5109
5643
|
class: "ms-auto d-flex flex-row gap-1"
|
|
5110
5644
|
};
|
|
5111
|
-
const _hoisted_5$
|
|
5645
|
+
const _hoisted_5$8 = {
|
|
5112
5646
|
class: "row"
|
|
5113
5647
|
};
|
|
5114
|
-
const _hoisted_6$
|
|
5648
|
+
const _hoisted_6$7 = {
|
|
5115
5649
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
5116
5650
|
};
|
|
5117
|
-
const _hoisted_7$
|
|
5651
|
+
const _hoisted_7$6 = {
|
|
5118
5652
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
5119
5653
|
};
|
|
5120
|
-
const _hoisted_8$
|
|
5654
|
+
const _hoisted_8$6 = {
|
|
5121
5655
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
5122
5656
|
};
|
|
5123
|
-
const _hoisted_9$
|
|
5657
|
+
const _hoisted_9$4 = {
|
|
5124
5658
|
class: "d-flex flex-row"
|
|
5125
5659
|
};
|
|
5126
|
-
const _hoisted_10$
|
|
5660
|
+
const _hoisted_10$4 = {
|
|
5127
5661
|
class: ""
|
|
5128
5662
|
};
|
|
5129
5663
|
const _hoisted_11$3 = {
|
|
5130
5664
|
class: "ms-auto"
|
|
5131
5665
|
};
|
|
5132
|
-
function _sfc_render$
|
|
5666
|
+
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5133
5667
|
const _component_VCLink = vue.resolveComponent("VCLink");
|
|
5134
5668
|
const _component_FProjectNodeApprovalCommand = vue.resolveComponent("FProjectNodeApprovalCommand");
|
|
5135
5669
|
const _component_FProjectNodeApprovalStatus = vue.resolveComponent("FProjectNodeApprovalStatus");
|
|
5136
5670
|
const _component_VCTimeago = vue.resolveComponent("VCTimeago");
|
|
5137
5671
|
const _component_FProjectInForm = vue.resolveComponent("FProjectInForm");
|
|
5138
5672
|
const _component_BModal = vue.resolveComponent("BModal");
|
|
5139
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5140
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
5141
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
5673
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
|
|
5674
|
+
vue.createElementVNode("div", _hoisted_2$e, [
|
|
5675
|
+
vue.createElementVNode("div", _hoisted_3$c, [
|
|
5142
5676
|
vue.createElementVNode("div", null, [
|
|
5143
5677
|
vue.renderSlot(_ctx.$slots, "title", {
|
|
5144
5678
|
data: _ctx.entity
|
|
@@ -5159,7 +5693,7 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5159
5693
|
])
|
|
5160
5694
|
])
|
|
5161
5695
|
]),
|
|
5162
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
5696
|
+
vue.createElementVNode("div", _hoisted_4$c, [
|
|
5163
5697
|
vue.renderSlot(_ctx.$slots, "itemActions", {
|
|
5164
5698
|
data: _ctx.entity
|
|
5165
5699
|
}, ()=>[
|
|
@@ -5222,8 +5756,8 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5222
5756
|
vue.renderSlot(_ctx.$slots, "body", {
|
|
5223
5757
|
data: _ctx.entity
|
|
5224
5758
|
}, ()=>[
|
|
5225
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
5226
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
5759
|
+
vue.createElementVNode("div", _hoisted_5$8, [
|
|
5760
|
+
vue.createElementVNode("div", _hoisted_6$7, [
|
|
5227
5761
|
_cache[5] || (_cache[5] = vue.createElementVNode("div", null, [
|
|
5228
5762
|
vue.createElementVNode("strong", null, [
|
|
5229
5763
|
vue.createElementVNode("i", {
|
|
@@ -5234,7 +5768,7 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5234
5768
|
], -1)),
|
|
5235
5769
|
vue.createElementVNode("div", null, vue.toDisplayString(_ctx.entity.node.name), 1)
|
|
5236
5770
|
]),
|
|
5237
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
5771
|
+
vue.createElementVNode("div", _hoisted_7$6, [
|
|
5238
5772
|
_cache[6] || (_cache[6] = vue.createElementVNode("div", null, [
|
|
5239
5773
|
vue.createElementVNode("strong", null, [
|
|
5240
5774
|
vue.createElementVNode("i", {
|
|
@@ -5258,7 +5792,7 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5258
5792
|
])
|
|
5259
5793
|
])
|
|
5260
5794
|
]),
|
|
5261
|
-
vue.createElementVNode("div", _hoisted_8$
|
|
5795
|
+
vue.createElementVNode("div", _hoisted_8$6, [
|
|
5262
5796
|
_cache[7] || (_cache[7] = vue.createElementVNode("div", null, [
|
|
5263
5797
|
vue.createElementVNode("strong", null, [
|
|
5264
5798
|
vue.createElementVNode("i", {
|
|
@@ -5284,8 +5818,8 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5284
5818
|
vue.renderSlot(_ctx.$slots, "footer", {
|
|
5285
5819
|
data: _ctx.entity
|
|
5286
5820
|
}, ()=>[
|
|
5287
|
-
vue.createElementVNode("div", _hoisted_9$
|
|
5288
|
-
vue.createElementVNode("div", _hoisted_10$
|
|
5821
|
+
vue.createElementVNode("div", _hoisted_9$4, [
|
|
5822
|
+
vue.createElementVNode("div", _hoisted_10$4, [
|
|
5289
5823
|
vue.createElementVNode("small", null, [
|
|
5290
5824
|
_cache[8] || (_cache[8] = vue.createElementVNode("span", {
|
|
5291
5825
|
class: "text-muted"
|
|
@@ -5348,10 +5882,10 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5348
5882
|
])
|
|
5349
5883
|
]);
|
|
5350
5884
|
}
|
|
5351
|
-
var FProjectNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5885
|
+
var FProjectNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$h, [
|
|
5352
5886
|
[
|
|
5353
5887
|
"render",
|
|
5354
|
-
_sfc_render$
|
|
5888
|
+
_sfc_render$h
|
|
5355
5889
|
]
|
|
5356
5890
|
]);
|
|
5357
5891
|
|
|
@@ -5624,7 +6158,7 @@ const FProjectForm = vue.defineComponent({
|
|
|
5624
6158
|
}
|
|
5625
6159
|
});
|
|
5626
6160
|
|
|
5627
|
-
var _sfc_main$
|
|
6161
|
+
var _sfc_main$g = vue.defineComponent({
|
|
5628
6162
|
components: {
|
|
5629
6163
|
FEntityDelete,
|
|
5630
6164
|
VCLink: link.VCLink,
|
|
@@ -5658,46 +6192,46 @@ var _sfc_main$e = vue.defineComponent({
|
|
|
5658
6192
|
}
|
|
5659
6193
|
});
|
|
5660
6194
|
|
|
5661
|
-
const _hoisted_1$
|
|
6195
|
+
const _hoisted_1$e = {
|
|
5662
6196
|
class: "d-flex flex-column w-100"
|
|
5663
6197
|
};
|
|
5664
|
-
const _hoisted_2$
|
|
6198
|
+
const _hoisted_2$d = {
|
|
5665
6199
|
class: "w-100"
|
|
5666
6200
|
};
|
|
5667
|
-
const _hoisted_3$
|
|
6201
|
+
const _hoisted_3$b = {
|
|
5668
6202
|
class: "d-flex flex-row align-items-center"
|
|
5669
6203
|
};
|
|
5670
|
-
const _hoisted_4$
|
|
6204
|
+
const _hoisted_4$b = {
|
|
5671
6205
|
class: "ms-auto"
|
|
5672
6206
|
};
|
|
5673
|
-
const _hoisted_5$
|
|
6207
|
+
const _hoisted_5$7 = {
|
|
5674
6208
|
class: "d-flex justify-content-between flex-row"
|
|
5675
6209
|
};
|
|
5676
|
-
const _hoisted_6$
|
|
6210
|
+
const _hoisted_6$6 = {
|
|
5677
6211
|
class: "d-flex flex-grow-1 align-items-center flex-column"
|
|
5678
6212
|
};
|
|
5679
|
-
const _hoisted_7$
|
|
6213
|
+
const _hoisted_7$5 = {
|
|
5680
6214
|
class: "d-flex flex-grow-1 align-items-center flex-column"
|
|
5681
6215
|
};
|
|
5682
|
-
const _hoisted_8$
|
|
6216
|
+
const _hoisted_8$5 = {
|
|
5683
6217
|
class: "d-flex flex-grow-1 align-items-center flex-column"
|
|
5684
6218
|
};
|
|
5685
|
-
const _hoisted_9$
|
|
6219
|
+
const _hoisted_9$3 = {
|
|
5686
6220
|
class: "d-flex flex-row"
|
|
5687
6221
|
};
|
|
5688
|
-
const _hoisted_10$
|
|
6222
|
+
const _hoisted_10$3 = {
|
|
5689
6223
|
class: ""
|
|
5690
6224
|
};
|
|
5691
6225
|
const _hoisted_11$2 = {
|
|
5692
6226
|
class: "ms-auto"
|
|
5693
6227
|
};
|
|
5694
|
-
function _sfc_render$
|
|
6228
|
+
function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5695
6229
|
const _component_VCLink = vue.resolveComponent("VCLink");
|
|
5696
6230
|
const _component_FEntityDelete = vue.resolveComponent("FEntityDelete");
|
|
5697
6231
|
const _component_VCTimeago = vue.resolveComponent("VCTimeago");
|
|
5698
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5699
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
5700
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
6232
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
|
|
6233
|
+
vue.createElementVNode("div", _hoisted_2$d, [
|
|
6234
|
+
vue.createElementVNode("div", _hoisted_3$b, [
|
|
5701
6235
|
vue.createElementVNode("div", null, [
|
|
5702
6236
|
vue.renderSlot(_ctx.$slots, "title", {
|
|
5703
6237
|
data: _ctx.entity
|
|
@@ -5718,7 +6252,7 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5718
6252
|
])
|
|
5719
6253
|
])
|
|
5720
6254
|
]),
|
|
5721
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
6255
|
+
vue.createElementVNode("div", _hoisted_4$b, [
|
|
5722
6256
|
vue.renderSlot(_ctx.$slots, "itemActions", {
|
|
5723
6257
|
data: _ctx.entity
|
|
5724
6258
|
}, ()=>[
|
|
@@ -5757,8 +6291,8 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5757
6291
|
vue.renderSlot(_ctx.$slots, "body", {
|
|
5758
6292
|
data: _ctx.entity
|
|
5759
6293
|
}, ()=>[
|
|
5760
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
5761
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
6294
|
+
vue.createElementVNode("div", _hoisted_5$7, [
|
|
6295
|
+
vue.createElementVNode("div", _hoisted_6$6, [
|
|
5762
6296
|
_cache[2] || (_cache[2] = vue.createElementVNode("div", null, [
|
|
5763
6297
|
vue.createElementVNode("strong", null, [
|
|
5764
6298
|
vue.createElementVNode("i", {
|
|
@@ -5774,7 +6308,7 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5774
6308
|
})
|
|
5775
6309
|
}, vue.toDisplayString(_ctx.entity.analyses), 3)
|
|
5776
6310
|
]),
|
|
5777
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
6311
|
+
vue.createElementVNode("div", _hoisted_7$5, [
|
|
5778
6312
|
_cache[3] || (_cache[3] = vue.createElementVNode("div", null, [
|
|
5779
6313
|
vue.createElementVNode("strong", null, [
|
|
5780
6314
|
vue.createElementVNode("i", {
|
|
@@ -5790,7 +6324,7 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5790
6324
|
})
|
|
5791
6325
|
}, vue.toDisplayString(_ctx.entity.nodes), 3)
|
|
5792
6326
|
]),
|
|
5793
|
-
vue.createElementVNode("div", _hoisted_8$
|
|
6327
|
+
vue.createElementVNode("div", _hoisted_8$5, [
|
|
5794
6328
|
_cache[4] || (_cache[4] = vue.createElementVNode("div", null, [
|
|
5795
6329
|
vue.createElementVNode("strong", null, [
|
|
5796
6330
|
vue.createElementVNode("i", {
|
|
@@ -5816,8 +6350,8 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5816
6350
|
vue.renderSlot(_ctx.$slots, "footer", {
|
|
5817
6351
|
data: _ctx.entity
|
|
5818
6352
|
}, ()=>[
|
|
5819
|
-
vue.createElementVNode("div", _hoisted_9$
|
|
5820
|
-
vue.createElementVNode("div", _hoisted_10$
|
|
6353
|
+
vue.createElementVNode("div", _hoisted_9$3, [
|
|
6354
|
+
vue.createElementVNode("div", _hoisted_10$3, [
|
|
5821
6355
|
vue.createElementVNode("small", null, [
|
|
5822
6356
|
_cache[5] || (_cache[5] = vue.createElementVNode("span", {
|
|
5823
6357
|
class: "text-muted"
|
|
@@ -5845,10 +6379,10 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5845
6379
|
])
|
|
5846
6380
|
]);
|
|
5847
6381
|
}
|
|
5848
|
-
var FProjectItemCard = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6382
|
+
var FProjectItemCard = /* @__PURE__ */ _export_sfc(_sfc_main$g, [
|
|
5849
6383
|
[
|
|
5850
6384
|
"render",
|
|
5851
|
-
_sfc_render$
|
|
6385
|
+
_sfc_render$g
|
|
5852
6386
|
]
|
|
5853
6387
|
]);
|
|
5854
6388
|
|
|
@@ -6288,7 +6822,7 @@ var RegistryProjectDetails = vue.defineComponent({
|
|
|
6288
6822
|
}, [
|
|
6289
6823
|
vue.h('label', {
|
|
6290
6824
|
class: 'pe-1'
|
|
6291
|
-
}, '
|
|
6825
|
+
}, 'Project'),
|
|
6292
6826
|
vue.h('input', {
|
|
6293
6827
|
class: 'form-control',
|
|
6294
6828
|
type: 'text',
|
|
@@ -6302,7 +6836,7 @@ var RegistryProjectDetails = vue.defineComponent({
|
|
|
6302
6836
|
}, [
|
|
6303
6837
|
vue.h('label', {
|
|
6304
6838
|
class: 'pe-1'
|
|
6305
|
-
}, 'ID'),
|
|
6839
|
+
}, 'Account ID'),
|
|
6306
6840
|
vue.h('input', {
|
|
6307
6841
|
class: 'form-control',
|
|
6308
6842
|
type: 'text',
|
|
@@ -6313,7 +6847,7 @@ var RegistryProjectDetails = vue.defineComponent({
|
|
|
6313
6847
|
]),
|
|
6314
6848
|
formControls.buildFormGroup({
|
|
6315
6849
|
label: true,
|
|
6316
|
-
labelContent: 'Secret',
|
|
6850
|
+
labelContent: 'Account Secret',
|
|
6317
6851
|
validationMessages: translationsValidation.secret.value,
|
|
6318
6852
|
validationSeverity: vuelidate.getSeverity(vuelidate$1.value.secret),
|
|
6319
6853
|
content: formControls.buildFormInput({
|
|
@@ -6717,9 +7251,7 @@ var FNodeForm = vue.defineComponent({
|
|
|
6717
7251
|
realm_id: {
|
|
6718
7252
|
required: validators.required
|
|
6719
7253
|
},
|
|
6720
|
-
registry_id: {
|
|
6721
|
-
required: validators.required
|
|
6722
|
-
},
|
|
7254
|
+
registry_id: {},
|
|
6723
7255
|
external_name: {
|
|
6724
7256
|
alphaNumHyphenUnderscore: validators.helpers.regex(alphaNumHyphenUnderscoreRegex),
|
|
6725
7257
|
minLength: validators.minLength(3),
|
|
@@ -6907,7 +7439,536 @@ var FNodeForm = vue.defineComponent({
|
|
|
6907
7439
|
}
|
|
6908
7440
|
});
|
|
6909
7441
|
|
|
6910
|
-
|
|
7442
|
+
function tryOnScopeDispose(fn) {
|
|
7443
|
+
if (vue.getCurrentScope()) {
|
|
7444
|
+
vue.onScopeDispose(fn);
|
|
7445
|
+
return true;
|
|
7446
|
+
}
|
|
7447
|
+
return false;
|
|
7448
|
+
}
|
|
7449
|
+
function toValue(r) {
|
|
7450
|
+
return typeof r === "function" ? r() : vue.unref(r);
|
|
7451
|
+
}
|
|
7452
|
+
const isClient = typeof window !== "undefined" && typeof document !== "undefined";
|
|
7453
|
+
typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
|
|
7454
|
+
const toString = Object.prototype.toString;
|
|
7455
|
+
const isObject = (val)=>toString.call(val) === "[object Object]";
|
|
7456
|
+
const noop = ()=>{};
|
|
7457
|
+
function createSingletonPromise(fn) {
|
|
7458
|
+
let _promise;
|
|
7459
|
+
function wrapper() {
|
|
7460
|
+
if (!_promise) _promise = fn();
|
|
7461
|
+
return _promise;
|
|
7462
|
+
}
|
|
7463
|
+
wrapper.reset = async ()=>{
|
|
7464
|
+
const _prev = _promise;
|
|
7465
|
+
_promise = undefined;
|
|
7466
|
+
if (_prev) await _prev;
|
|
7467
|
+
};
|
|
7468
|
+
return wrapper;
|
|
7469
|
+
}
|
|
7470
|
+
function useTimeoutFn(cb, interval, options = {}) {
|
|
7471
|
+
const { immediate = true } = options;
|
|
7472
|
+
const isPending = vue.ref(false);
|
|
7473
|
+
let timer = null;
|
|
7474
|
+
function clear() {
|
|
7475
|
+
if (timer) {
|
|
7476
|
+
clearTimeout(timer);
|
|
7477
|
+
timer = null;
|
|
7478
|
+
}
|
|
7479
|
+
}
|
|
7480
|
+
function stop() {
|
|
7481
|
+
isPending.value = false;
|
|
7482
|
+
clear();
|
|
7483
|
+
}
|
|
7484
|
+
function start(...args) {
|
|
7485
|
+
clear();
|
|
7486
|
+
isPending.value = true;
|
|
7487
|
+
timer = setTimeout(()=>{
|
|
7488
|
+
isPending.value = false;
|
|
7489
|
+
timer = null;
|
|
7490
|
+
cb(...args);
|
|
7491
|
+
}, toValue(interval));
|
|
7492
|
+
}
|
|
7493
|
+
if (immediate) {
|
|
7494
|
+
isPending.value = true;
|
|
7495
|
+
if (isClient) start();
|
|
7496
|
+
}
|
|
7497
|
+
tryOnScopeDispose(stop);
|
|
7498
|
+
return {
|
|
7499
|
+
isPending: vue.readonly(isPending),
|
|
7500
|
+
start,
|
|
7501
|
+
stop
|
|
7502
|
+
};
|
|
7503
|
+
}
|
|
7504
|
+
|
|
7505
|
+
const defaultWindow = isClient ? window : undefined;
|
|
7506
|
+
const defaultNavigator = isClient ? window.navigator : undefined;
|
|
7507
|
+
function unrefElement(elRef) {
|
|
7508
|
+
var _a;
|
|
7509
|
+
const plain = toValue(elRef);
|
|
7510
|
+
return (_a = plain == null ? undefined : plain.$el) != null ? _a : plain;
|
|
7511
|
+
}
|
|
7512
|
+
function useEventListener(...args) {
|
|
7513
|
+
let target;
|
|
7514
|
+
let events;
|
|
7515
|
+
let listeners;
|
|
7516
|
+
let options;
|
|
7517
|
+
if (typeof args[0] === "string" || Array.isArray(args[0])) {
|
|
7518
|
+
[events, listeners, options] = args;
|
|
7519
|
+
target = defaultWindow;
|
|
7520
|
+
} else {
|
|
7521
|
+
[target, events, listeners, options] = args;
|
|
7522
|
+
}
|
|
7523
|
+
if (!target) return noop;
|
|
7524
|
+
if (!Array.isArray(events)) events = [
|
|
7525
|
+
events
|
|
7526
|
+
];
|
|
7527
|
+
if (!Array.isArray(listeners)) listeners = [
|
|
7528
|
+
listeners
|
|
7529
|
+
];
|
|
7530
|
+
const cleanups = [];
|
|
7531
|
+
const cleanup = ()=>{
|
|
7532
|
+
cleanups.forEach((fn)=>fn());
|
|
7533
|
+
cleanups.length = 0;
|
|
7534
|
+
};
|
|
7535
|
+
const register = (el, event, listener, options2)=>{
|
|
7536
|
+
el.addEventListener(event, listener, options2);
|
|
7537
|
+
return ()=>el.removeEventListener(event, listener, options2);
|
|
7538
|
+
};
|
|
7539
|
+
const stopWatch = vue.watch(()=>[
|
|
7540
|
+
unrefElement(target),
|
|
7541
|
+
toValue(options)
|
|
7542
|
+
], ([el, options2])=>{
|
|
7543
|
+
cleanup();
|
|
7544
|
+
if (!el) return;
|
|
7545
|
+
const optionsClone = isObject(options2) ? {
|
|
7546
|
+
...options2
|
|
7547
|
+
} : options2;
|
|
7548
|
+
cleanups.push(...events.flatMap((event)=>{
|
|
7549
|
+
return listeners.map((listener)=>register(el, event, listener, optionsClone));
|
|
7550
|
+
}));
|
|
7551
|
+
}, {
|
|
7552
|
+
immediate: true,
|
|
7553
|
+
flush: "post"
|
|
7554
|
+
});
|
|
7555
|
+
const stop = ()=>{
|
|
7556
|
+
stopWatch();
|
|
7557
|
+
cleanup();
|
|
7558
|
+
};
|
|
7559
|
+
tryOnScopeDispose(stop);
|
|
7560
|
+
return stop;
|
|
7561
|
+
}
|
|
7562
|
+
function useMounted() {
|
|
7563
|
+
const isMounted = vue.ref(false);
|
|
7564
|
+
const instance = vue.getCurrentInstance();
|
|
7565
|
+
if (instance) {
|
|
7566
|
+
vue.onMounted(()=>{
|
|
7567
|
+
isMounted.value = true;
|
|
7568
|
+
}, instance);
|
|
7569
|
+
}
|
|
7570
|
+
return isMounted;
|
|
7571
|
+
}
|
|
7572
|
+
function useSupported(callback) {
|
|
7573
|
+
const isMounted = useMounted();
|
|
7574
|
+
return vue.computed(()=>{
|
|
7575
|
+
isMounted.value;
|
|
7576
|
+
return Boolean(callback());
|
|
7577
|
+
});
|
|
7578
|
+
}
|
|
7579
|
+
function usePermission(permissionDesc, options = {}) {
|
|
7580
|
+
const { controls = false, navigator = defaultNavigator } = options;
|
|
7581
|
+
const isSupported = useSupported(()=>navigator && "permissions" in navigator);
|
|
7582
|
+
const permissionStatus = vue.shallowRef();
|
|
7583
|
+
const desc = typeof permissionDesc === "string" ? {
|
|
7584
|
+
name: permissionDesc
|
|
7585
|
+
} : permissionDesc;
|
|
7586
|
+
const state = vue.shallowRef();
|
|
7587
|
+
const update = ()=>{
|
|
7588
|
+
var _a, _b;
|
|
7589
|
+
state.value = (_b = (_a = permissionStatus.value) == null ? undefined : _a.state) != null ? _b : "prompt";
|
|
7590
|
+
};
|
|
7591
|
+
useEventListener(permissionStatus, "change", update);
|
|
7592
|
+
const query = createSingletonPromise(async ()=>{
|
|
7593
|
+
if (!isSupported.value) return;
|
|
7594
|
+
if (!permissionStatus.value) {
|
|
7595
|
+
try {
|
|
7596
|
+
permissionStatus.value = await navigator.permissions.query(desc);
|
|
7597
|
+
} catch (e) {
|
|
7598
|
+
permissionStatus.value = undefined;
|
|
7599
|
+
} finally{
|
|
7600
|
+
update();
|
|
7601
|
+
}
|
|
7602
|
+
}
|
|
7603
|
+
if (controls) return vue.toRaw(permissionStatus.value);
|
|
7604
|
+
});
|
|
7605
|
+
query();
|
|
7606
|
+
if (controls) {
|
|
7607
|
+
return {
|
|
7608
|
+
state,
|
|
7609
|
+
isSupported,
|
|
7610
|
+
query
|
|
7611
|
+
};
|
|
7612
|
+
} else {
|
|
7613
|
+
return state;
|
|
7614
|
+
}
|
|
7615
|
+
}
|
|
7616
|
+
function useClipboard(options = {}) {
|
|
7617
|
+
const { navigator = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;
|
|
7618
|
+
const isClipboardApiSupported = useSupported(()=>navigator && "clipboard" in navigator);
|
|
7619
|
+
const permissionRead = usePermission("clipboard-read");
|
|
7620
|
+
const permissionWrite = usePermission("clipboard-write");
|
|
7621
|
+
const isSupported = vue.computed(()=>isClipboardApiSupported.value || legacy);
|
|
7622
|
+
const text = vue.ref("");
|
|
7623
|
+
const copied = vue.ref(false);
|
|
7624
|
+
const timeout = useTimeoutFn(()=>copied.value = false, copiedDuring);
|
|
7625
|
+
function updateText() {
|
|
7626
|
+
if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {
|
|
7627
|
+
navigator.clipboard.readText().then((value)=>{
|
|
7628
|
+
text.value = value;
|
|
7629
|
+
});
|
|
7630
|
+
} else {
|
|
7631
|
+
text.value = legacyRead();
|
|
7632
|
+
}
|
|
7633
|
+
}
|
|
7634
|
+
if (isSupported.value && read) useEventListener([
|
|
7635
|
+
"copy",
|
|
7636
|
+
"cut"
|
|
7637
|
+
], updateText);
|
|
7638
|
+
async function copy(value = toValue(source)) {
|
|
7639
|
+
if (isSupported.value && value != null) {
|
|
7640
|
+
if (isClipboardApiSupported.value && isAllowed(permissionWrite.value)) await navigator.clipboard.writeText(value);
|
|
7641
|
+
else legacyCopy(value);
|
|
7642
|
+
text.value = value;
|
|
7643
|
+
copied.value = true;
|
|
7644
|
+
timeout.start();
|
|
7645
|
+
}
|
|
7646
|
+
}
|
|
7647
|
+
function legacyCopy(value) {
|
|
7648
|
+
const ta = document.createElement("textarea");
|
|
7649
|
+
ta.value = value != null ? value : "";
|
|
7650
|
+
ta.style.position = "absolute";
|
|
7651
|
+
ta.style.opacity = "0";
|
|
7652
|
+
document.body.appendChild(ta);
|
|
7653
|
+
ta.select();
|
|
7654
|
+
document.execCommand("copy");
|
|
7655
|
+
ta.remove();
|
|
7656
|
+
}
|
|
7657
|
+
function legacyRead() {
|
|
7658
|
+
var _a, _b, _c;
|
|
7659
|
+
return (_c = (_b = (_a = document == null ? undefined : document.getSelection) == null ? undefined : _a.call(document)) == null ? undefined : _b.toString()) != null ? _c : "";
|
|
7660
|
+
}
|
|
7661
|
+
function isAllowed(status) {
|
|
7662
|
+
return status === "granted" || status === "prompt";
|
|
7663
|
+
}
|
|
7664
|
+
return {
|
|
7665
|
+
isSupported,
|
|
7666
|
+
text,
|
|
7667
|
+
copied,
|
|
7668
|
+
copy
|
|
7669
|
+
};
|
|
7670
|
+
}
|
|
7671
|
+
|
|
7672
|
+
var _sfc_main$f = vue.defineComponent({
|
|
7673
|
+
props: {
|
|
7674
|
+
entity: {
|
|
7675
|
+
type: Object,
|
|
7676
|
+
required: true
|
|
7677
|
+
}
|
|
7678
|
+
},
|
|
7679
|
+
emits: [
|
|
7680
|
+
'updated',
|
|
7681
|
+
'failed',
|
|
7682
|
+
'keyCopied',
|
|
7683
|
+
'keyPairGenerated'
|
|
7684
|
+
],
|
|
7685
|
+
setup (props, { emit }) {
|
|
7686
|
+
const httpClient = injectCoreHTTPClient();
|
|
7687
|
+
const keyTypeOptions = [
|
|
7688
|
+
{
|
|
7689
|
+
id: 'rsa',
|
|
7690
|
+
value: 'RSA'
|
|
7691
|
+
},
|
|
7692
|
+
{
|
|
7693
|
+
id: 'ecdh',
|
|
7694
|
+
value: 'ECDH'
|
|
7695
|
+
}
|
|
7696
|
+
];
|
|
7697
|
+
const keyType = vue.ref('rsa');
|
|
7698
|
+
const privateKey = vue.ref(null);
|
|
7699
|
+
const publicKey = vue.ref(null);
|
|
7700
|
+
const clipboard = useClipboard();
|
|
7701
|
+
const init = ()=>{
|
|
7702
|
+
if (props.entity.public_key) {
|
|
7703
|
+
publicKey.value = isHex(props.entity.public_key) ? hexToUTF8(props.entity.public_key) : props.entity.public_key;
|
|
7704
|
+
}
|
|
7705
|
+
};
|
|
7706
|
+
init();
|
|
7707
|
+
const copy = (type)=>{
|
|
7708
|
+
if (type === 'privateKey') {
|
|
7709
|
+
if (!privateKey.value) {
|
|
7710
|
+
return;
|
|
7711
|
+
}
|
|
7712
|
+
clipboard.copy(privateKey.value);
|
|
7713
|
+
emit('keyCopied');
|
|
7714
|
+
return;
|
|
7715
|
+
}
|
|
7716
|
+
if (!publicKey.value) {
|
|
7717
|
+
return;
|
|
7718
|
+
}
|
|
7719
|
+
clipboard.copy(publicKey.value);
|
|
7720
|
+
emit('keyCopied');
|
|
7721
|
+
};
|
|
7722
|
+
const busy = vue.ref(false);
|
|
7723
|
+
const save = async ()=>{
|
|
7724
|
+
if (busy.value) return;
|
|
7725
|
+
busy.value = true;
|
|
7726
|
+
try {
|
|
7727
|
+
const response = await httpClient.node.update(props.entity.id, {
|
|
7728
|
+
public_key: publicKey.value
|
|
7729
|
+
});
|
|
7730
|
+
emit('updated', response);
|
|
7731
|
+
} catch (e) {
|
|
7732
|
+
emit('failed', e);
|
|
7733
|
+
} finally{
|
|
7734
|
+
busy.value = false;
|
|
7735
|
+
}
|
|
7736
|
+
};
|
|
7737
|
+
const generate = async ()=>{
|
|
7738
|
+
if (busy.value) return;
|
|
7739
|
+
busy.value = true;
|
|
7740
|
+
try {
|
|
7741
|
+
let algorithmOptions;
|
|
7742
|
+
if (keyType.value === 'ecdh') {
|
|
7743
|
+
algorithmOptions = {
|
|
7744
|
+
name: 'ECDH',
|
|
7745
|
+
namedCurve: 'P-384'
|
|
7746
|
+
};
|
|
7747
|
+
} else {
|
|
7748
|
+
algorithmOptions = {
|
|
7749
|
+
name: 'RSA-OAEP',
|
|
7750
|
+
modulusLength: 2048,
|
|
7751
|
+
hash: 'SHA-256',
|
|
7752
|
+
publicExponent: new Uint8Array([
|
|
7753
|
+
1,
|
|
7754
|
+
0,
|
|
7755
|
+
1
|
|
7756
|
+
])
|
|
7757
|
+
};
|
|
7758
|
+
}
|
|
7759
|
+
console.log(algorithmOptions);
|
|
7760
|
+
const algorithm = new CryptoAsymmetricAlgorithm(algorithmOptions);
|
|
7761
|
+
const keyPair = await algorithm.generateKeyPair();
|
|
7762
|
+
publicKey.value = await exportAsymmetricPublicKey(keyPair.publicKey);
|
|
7763
|
+
privateKey.value = await exportAsymmetricPrivateKey(keyPair.privateKey);
|
|
7764
|
+
emit('keyPairGenerated');
|
|
7765
|
+
} finally{
|
|
7766
|
+
busy.value = false;
|
|
7767
|
+
}
|
|
7768
|
+
};
|
|
7769
|
+
return {
|
|
7770
|
+
keyType,
|
|
7771
|
+
keyTypeOptions,
|
|
7772
|
+
busy,
|
|
7773
|
+
copy,
|
|
7774
|
+
generate,
|
|
7775
|
+
save,
|
|
7776
|
+
publicKey,
|
|
7777
|
+
privateKey
|
|
7778
|
+
};
|
|
7779
|
+
}
|
|
7780
|
+
});
|
|
7781
|
+
|
|
7782
|
+
const _hoisted_1$d = {
|
|
7783
|
+
class: "d-flex flex-column gap-1"
|
|
7784
|
+
};
|
|
7785
|
+
const _hoisted_2$c = {
|
|
7786
|
+
class: "row"
|
|
7787
|
+
};
|
|
7788
|
+
const _hoisted_3$a = {
|
|
7789
|
+
class: "col-4"
|
|
7790
|
+
};
|
|
7791
|
+
const _hoisted_4$a = {
|
|
7792
|
+
class: "d-flex flex-row"
|
|
7793
|
+
};
|
|
7794
|
+
const _hoisted_5$6 = {
|
|
7795
|
+
class: "ms-auto"
|
|
7796
|
+
};
|
|
7797
|
+
const _hoisted_6$5 = {
|
|
7798
|
+
class: "col-8"
|
|
7799
|
+
};
|
|
7800
|
+
const _hoisted_7$4 = {
|
|
7801
|
+
class: "d-flex flex-row"
|
|
7802
|
+
};
|
|
7803
|
+
const _hoisted_8$4 = {
|
|
7804
|
+
class: "ms-auto"
|
|
7805
|
+
};
|
|
7806
|
+
const _hoisted_9$2 = {
|
|
7807
|
+
key: 0,
|
|
7808
|
+
class: "alert alert-sm alert-warning"
|
|
7809
|
+
};
|
|
7810
|
+
const _hoisted_10$2 = {
|
|
7811
|
+
class: "d-flex flex-row gap-1"
|
|
7812
|
+
};
|
|
7813
|
+
const _hoisted_11$1 = [
|
|
7814
|
+
"disabled"
|
|
7815
|
+
];
|
|
7816
|
+
const _hoisted_12 = [
|
|
7817
|
+
"disabled"
|
|
7818
|
+
];
|
|
7819
|
+
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7820
|
+
const _component_VCFormTextarea = vue.resolveComponent("VCFormTextarea");
|
|
7821
|
+
const _component_VCFormGroup = vue.resolveComponent("VCFormGroup");
|
|
7822
|
+
const _component_VCFormSelect = vue.resolveComponent("VCFormSelect");
|
|
7823
|
+
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
7824
|
+
_cache[14] || (_cache[14] = vue.createElementVNode("h6", null, "KeyPair", -1)),
|
|
7825
|
+
_cache[15] || (_cache[15] = vue.createElementVNode("p", null, " The public key of the key pair is used to encrypt data that is transmitted between different nodes through the storage service. ", -1)),
|
|
7826
|
+
vue.createElementVNode("div", _hoisted_1$d, [
|
|
7827
|
+
vue.createElementVNode("div", _hoisted_2$c, [
|
|
7828
|
+
vue.createElementVNode("div", _hoisted_3$a, [
|
|
7829
|
+
vue.createVNode(_component_VCFormGroup, {
|
|
7830
|
+
"label-class": "w-100 mb-1"
|
|
7831
|
+
}, {
|
|
7832
|
+
label: vue.withCtx(()=>[
|
|
7833
|
+
vue.createElementVNode("div", _hoisted_4$a, [
|
|
7834
|
+
_cache[8] || (_cache[8] = vue.createElementVNode("div", null, " PublicKey ", -1)),
|
|
7835
|
+
vue.createElementVNode("div", _hoisted_5$6, [
|
|
7836
|
+
vue.withDirectives(vue.createElementVNode("button", {
|
|
7837
|
+
type: "button",
|
|
7838
|
+
class: "btn btn-xs btn-dark",
|
|
7839
|
+
onClick: _cache[0] || (_cache[0] = vue.withModifiers(($event)=>_ctx.copy("publicKey"), [
|
|
7840
|
+
"prevent"
|
|
7841
|
+
]))
|
|
7842
|
+
}, _cache[7] || (_cache[7] = [
|
|
7843
|
+
vue.createElementVNode("i", {
|
|
7844
|
+
class: "fa fa-copy"
|
|
7845
|
+
}, null, -1),
|
|
7846
|
+
vue.createTextVNode(" Copy ")
|
|
7847
|
+
]), 512), [
|
|
7848
|
+
[
|
|
7849
|
+
vue.vShow,
|
|
7850
|
+
!!_ctx.publicKey
|
|
7851
|
+
]
|
|
7852
|
+
])
|
|
7853
|
+
])
|
|
7854
|
+
])
|
|
7855
|
+
]),
|
|
7856
|
+
default: vue.withCtx(()=>[
|
|
7857
|
+
vue.createVNode(_component_VCFormTextarea, {
|
|
7858
|
+
modelValue: _ctx.publicKey,
|
|
7859
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.publicKey = $event),
|
|
7860
|
+
rows: "8"
|
|
7861
|
+
}, null, 8, [
|
|
7862
|
+
"modelValue"
|
|
7863
|
+
])
|
|
7864
|
+
]),
|
|
7865
|
+
_: 1
|
|
7866
|
+
})
|
|
7867
|
+
]),
|
|
7868
|
+
vue.createElementVNode("div", _hoisted_6$5, [
|
|
7869
|
+
vue.createVNode(_component_VCFormGroup, {
|
|
7870
|
+
"label-class": "w-100 mb-1"
|
|
7871
|
+
}, {
|
|
7872
|
+
label: vue.withCtx(()=>[
|
|
7873
|
+
vue.createElementVNode("div", _hoisted_7$4, [
|
|
7874
|
+
_cache[10] || (_cache[10] = vue.createElementVNode("div", null, " PrivateKey ", -1)),
|
|
7875
|
+
vue.createElementVNode("div", _hoisted_8$4, [
|
|
7876
|
+
vue.withDirectives(vue.createElementVNode("button", {
|
|
7877
|
+
type: "button",
|
|
7878
|
+
class: "btn btn-xs btn-dark",
|
|
7879
|
+
onClick: _cache[2] || (_cache[2] = vue.withModifiers(($event)=>_ctx.copy("privateKey"), [
|
|
7880
|
+
"prevent"
|
|
7881
|
+
]))
|
|
7882
|
+
}, _cache[9] || (_cache[9] = [
|
|
7883
|
+
vue.createElementVNode("i", {
|
|
7884
|
+
class: "fa fa-copy"
|
|
7885
|
+
}, null, -1),
|
|
7886
|
+
vue.createTextVNode(" Copy ")
|
|
7887
|
+
]), 512), [
|
|
7888
|
+
[
|
|
7889
|
+
vue.vShow,
|
|
7890
|
+
!!_ctx.privateKey
|
|
7891
|
+
]
|
|
7892
|
+
])
|
|
7893
|
+
])
|
|
7894
|
+
])
|
|
7895
|
+
]),
|
|
7896
|
+
default: vue.withCtx(()=>[
|
|
7897
|
+
vue.createVNode(_component_VCFormTextarea, {
|
|
7898
|
+
modelValue: _ctx.privateKey,
|
|
7899
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event)=>_ctx.privateKey = $event),
|
|
7900
|
+
disabled: true,
|
|
7901
|
+
rows: "8"
|
|
7902
|
+
}, null, 8, [
|
|
7903
|
+
"modelValue"
|
|
7904
|
+
])
|
|
7905
|
+
]),
|
|
7906
|
+
_: 1
|
|
7907
|
+
}),
|
|
7908
|
+
_ctx.privateKey ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$2, " Please copy the key to a safe location, as it is not stored remotely. ")) : vue.createCommentVNode("", true)
|
|
7909
|
+
])
|
|
7910
|
+
]),
|
|
7911
|
+
vue.createElementVNode("div", null, [
|
|
7912
|
+
vue.createVNode(_component_VCFormGroup, null, {
|
|
7913
|
+
label: vue.withCtx(()=>_cache[11] || (_cache[11] = [
|
|
7914
|
+
vue.createTextVNode(" KeyType ")
|
|
7915
|
+
])),
|
|
7916
|
+
default: vue.withCtx(()=>[
|
|
7917
|
+
vue.createVNode(_component_VCFormSelect, {
|
|
7918
|
+
modelValue: _ctx.keyType,
|
|
7919
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event)=>_ctx.keyType = $event),
|
|
7920
|
+
options: _ctx.keyTypeOptions
|
|
7921
|
+
}, null, 8, [
|
|
7922
|
+
"modelValue",
|
|
7923
|
+
"options"
|
|
7924
|
+
])
|
|
7925
|
+
]),
|
|
7926
|
+
_: 1
|
|
7927
|
+
})
|
|
7928
|
+
]),
|
|
7929
|
+
vue.createElementVNode("div", _hoisted_10$2, [
|
|
7930
|
+
vue.createElementVNode("div", null, [
|
|
7931
|
+
vue.createElementVNode("button", {
|
|
7932
|
+
disabled: _ctx.busy,
|
|
7933
|
+
type: "button",
|
|
7934
|
+
class: "btn btn-primary btn-xs",
|
|
7935
|
+
onClick: _cache[5] || (_cache[5] = vue.withModifiers((...args)=>_ctx.save && _ctx.save(...args), [
|
|
7936
|
+
"prevent"
|
|
7937
|
+
]))
|
|
7938
|
+
}, _cache[12] || (_cache[12] = [
|
|
7939
|
+
vue.createElementVNode("i", {
|
|
7940
|
+
class: "fa fa-save"
|
|
7941
|
+
}, null, -1),
|
|
7942
|
+
vue.createTextVNode(" Save ")
|
|
7943
|
+
]), 8, _hoisted_11$1)
|
|
7944
|
+
]),
|
|
7945
|
+
vue.createElementVNode("div", null, [
|
|
7946
|
+
vue.createElementVNode("button", {
|
|
7947
|
+
disabled: _ctx.busy,
|
|
7948
|
+
type: "button",
|
|
7949
|
+
class: "btn btn-dark btn-xs",
|
|
7950
|
+
onClick: _cache[6] || (_cache[6] = vue.withModifiers((...args)=>_ctx.generate && _ctx.generate(...args), [
|
|
7951
|
+
"prevent"
|
|
7952
|
+
]))
|
|
7953
|
+
}, _cache[13] || (_cache[13] = [
|
|
7954
|
+
vue.createElementVNode("i", {
|
|
7955
|
+
class: "fas fa-sync-alt"
|
|
7956
|
+
}, null, -1),
|
|
7957
|
+
vue.createTextVNode(" Generate ")
|
|
7958
|
+
]), 8, _hoisted_12)
|
|
7959
|
+
])
|
|
7960
|
+
])
|
|
7961
|
+
])
|
|
7962
|
+
]);
|
|
7963
|
+
}
|
|
7964
|
+
var FNodeCrypto = /* @__PURE__ */ _export_sfc(_sfc_main$f, [
|
|
7965
|
+
[
|
|
7966
|
+
"render",
|
|
7967
|
+
_sfc_render$f
|
|
7968
|
+
]
|
|
7969
|
+
]);
|
|
7970
|
+
|
|
7971
|
+
var FNodeRegistryProject = vue.defineComponent({
|
|
6911
7972
|
props: {
|
|
6912
7973
|
entity: {
|
|
6913
7974
|
type: Object,
|
|
@@ -7536,7 +8597,7 @@ var FAnalysisNodeRunStatus = vue.defineComponent({
|
|
|
7536
8597
|
}
|
|
7537
8598
|
});
|
|
7538
8599
|
|
|
7539
|
-
var _sfc_main$
|
|
8600
|
+
var _sfc_main$e = vue.defineComponent({
|
|
7540
8601
|
components: {
|
|
7541
8602
|
FAnalysisNodes,
|
|
7542
8603
|
FAnalysisNodeRunStatus
|
|
@@ -7580,25 +8641,25 @@ var _sfc_main$d = vue.defineComponent({
|
|
|
7580
8641
|
}
|
|
7581
8642
|
});
|
|
7582
8643
|
|
|
7583
|
-
const _hoisted_1$
|
|
8644
|
+
const _hoisted_1$c = {
|
|
7584
8645
|
key: 0,
|
|
7585
8646
|
class: "train-stations-progress"
|
|
7586
8647
|
};
|
|
7587
|
-
const _hoisted_2$
|
|
8648
|
+
const _hoisted_2$b = {
|
|
7588
8649
|
class: "icon"
|
|
7589
8650
|
};
|
|
7590
|
-
const _hoisted_3$
|
|
8651
|
+
const _hoisted_3$9 = {
|
|
7591
8652
|
key: 1,
|
|
7592
8653
|
class: "progress bg-white"
|
|
7593
8654
|
};
|
|
7594
|
-
const _hoisted_4$
|
|
8655
|
+
const _hoisted_4$9 = [
|
|
7595
8656
|
"aria-valuenow"
|
|
7596
8657
|
];
|
|
7597
|
-
function _sfc_render$
|
|
8658
|
+
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7598
8659
|
const _component_FAnalysisNodeRunStatus = vue.resolveComponent("FAnalysisNodeRunStatus");
|
|
7599
8660
|
const _component_FAnalysisNodes = vue.resolveComponent("FAnalysisNodes");
|
|
7600
8661
|
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
7601
|
-
_ctx.elementType === "steps" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
8662
|
+
_ctx.elementType === "steps" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
|
|
7602
8663
|
vue.createVNode(_component_FAnalysisNodes, {
|
|
7603
8664
|
header: false,
|
|
7604
8665
|
query: _ctx.query,
|
|
@@ -7625,7 +8686,7 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7625
8686
|
}
|
|
7626
8687
|
])
|
|
7627
8688
|
}, [
|
|
7628
|
-
vue.createElementVNode("span", _hoisted_2$
|
|
8689
|
+
vue.createElementVNode("span", _hoisted_2$b, vue.toDisplayString(item.node.name), 1)
|
|
7629
8690
|
], 2),
|
|
7630
8691
|
_cache[0] || (_cache[0] = vue.createElementVNode("div", {
|
|
7631
8692
|
class: "mt-1"
|
|
@@ -7648,7 +8709,7 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7648
8709
|
"realm-id",
|
|
7649
8710
|
"source-id"
|
|
7650
8711
|
])
|
|
7651
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
8712
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$9, [
|
|
7652
8713
|
vue.createElementVNode("div", {
|
|
7653
8714
|
class: vue.normalizeClass([
|
|
7654
8715
|
"progress-bar",
|
|
@@ -7663,14 +8724,14 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7663
8724
|
"aria-valuenow": _ctx.progressPercentage,
|
|
7664
8725
|
"aria-valuemin": "0",
|
|
7665
8726
|
"aria-valuemax": "100"
|
|
7666
|
-
}, null, 14, _hoisted_4$
|
|
8727
|
+
}, null, 14, _hoisted_4$9)
|
|
7667
8728
|
]))
|
|
7668
8729
|
]);
|
|
7669
8730
|
}
|
|
7670
|
-
var FAnalysisNodesProgress = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
8731
|
+
var FAnalysisNodesProgress = /* @__PURE__ */ _export_sfc(_sfc_main$e, [
|
|
7671
8732
|
[
|
|
7672
8733
|
"render",
|
|
7673
|
-
_sfc_render$
|
|
8734
|
+
_sfc_render$e
|
|
7674
8735
|
]
|
|
7675
8736
|
]);
|
|
7676
8737
|
|
|
@@ -7859,7 +8920,7 @@ var TrainName = vue.defineComponent({
|
|
|
7859
8920
|
}
|
|
7860
8921
|
});
|
|
7861
8922
|
|
|
7862
|
-
var _sfc_main$
|
|
8923
|
+
var _sfc_main$d = vue.defineComponent({
|
|
7863
8924
|
components: {
|
|
7864
8925
|
FAnalysisBucket,
|
|
7865
8926
|
FAnalysisBucketDownload,
|
|
@@ -7908,28 +8969,28 @@ var _sfc_main$c = vue.defineComponent({
|
|
|
7908
8969
|
}
|
|
7909
8970
|
});
|
|
7910
8971
|
|
|
7911
|
-
const _hoisted_1$
|
|
8972
|
+
const _hoisted_1$b = {
|
|
7912
8973
|
class: "d-flex flex-column gap-1 w-100"
|
|
7913
8974
|
};
|
|
7914
|
-
const _hoisted_2$
|
|
8975
|
+
const _hoisted_2$a = {
|
|
7915
8976
|
class: "w-100"
|
|
7916
8977
|
};
|
|
7917
|
-
const _hoisted_3$
|
|
8978
|
+
const _hoisted_3$8 = {
|
|
7918
8979
|
class: "d-flex flex-row align-items-center"
|
|
7919
8980
|
};
|
|
7920
|
-
const _hoisted_4$
|
|
8981
|
+
const _hoisted_4$8 = {
|
|
7921
8982
|
class: "ms-auto d-flex flex-row gap-1"
|
|
7922
8983
|
};
|
|
7923
|
-
const _hoisted_5$
|
|
8984
|
+
const _hoisted_5$5 = {
|
|
7924
8985
|
class: "row"
|
|
7925
8986
|
};
|
|
7926
|
-
const _hoisted_6$
|
|
8987
|
+
const _hoisted_6$4 = {
|
|
7927
8988
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
7928
8989
|
};
|
|
7929
|
-
const _hoisted_7$
|
|
8990
|
+
const _hoisted_7$3 = {
|
|
7930
8991
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
7931
8992
|
};
|
|
7932
|
-
const _hoisted_8$
|
|
8993
|
+
const _hoisted_8$3 = {
|
|
7933
8994
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
7934
8995
|
};
|
|
7935
8996
|
const _hoisted_9$1 = {
|
|
@@ -7938,10 +8999,10 @@ const _hoisted_9$1 = {
|
|
|
7938
8999
|
const _hoisted_10$1 = {
|
|
7939
9000
|
class: ""
|
|
7940
9001
|
};
|
|
7941
|
-
const _hoisted_11
|
|
9002
|
+
const _hoisted_11 = {
|
|
7942
9003
|
class: "ms-auto"
|
|
7943
9004
|
};
|
|
7944
|
-
function _sfc_render$
|
|
9005
|
+
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7945
9006
|
const _component_FAnalysisName = vue.resolveComponent("FAnalysisName");
|
|
7946
9007
|
const _component_VCLink = vue.resolveComponent("VCLink");
|
|
7947
9008
|
const _component_FAnalysisBucketDownload = vue.resolveComponent("FAnalysisBucketDownload");
|
|
@@ -7949,9 +9010,9 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7949
9010
|
const _component_FAnalysisNodeApprovalCommand = vue.resolveComponent("FAnalysisNodeApprovalCommand");
|
|
7950
9011
|
const _component_FAnalysisNodeApprovalStatus = vue.resolveComponent("FAnalysisNodeApprovalStatus");
|
|
7951
9012
|
const _component_VCTimeago = vue.resolveComponent("VCTimeago");
|
|
7952
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
7953
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
7954
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
9013
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
|
|
9014
|
+
vue.createElementVNode("div", _hoisted_2$a, [
|
|
9015
|
+
vue.createElementVNode("div", _hoisted_3$8, [
|
|
7955
9016
|
vue.createElementVNode("div", null, [
|
|
7956
9017
|
vue.renderSlot(_ctx.$slots, "title", {
|
|
7957
9018
|
data: _ctx.entity
|
|
@@ -7968,7 +9029,7 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7968
9029
|
])
|
|
7969
9030
|
])
|
|
7970
9031
|
]),
|
|
7971
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
9032
|
+
vue.createElementVNode("div", _hoisted_4$8, [
|
|
7972
9033
|
vue.renderSlot(_ctx.$slots, "itemActions", {
|
|
7973
9034
|
data: _ctx.entity
|
|
7974
9035
|
}, ()=>[
|
|
@@ -8036,8 +9097,8 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8036
9097
|
vue.renderSlot(_ctx.$slots, "body", {
|
|
8037
9098
|
data: _ctx.entity
|
|
8038
9099
|
}, ()=>[
|
|
8039
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
8040
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
9100
|
+
vue.createElementVNode("div", _hoisted_5$5, [
|
|
9101
|
+
vue.createElementVNode("div", _hoisted_6$4, [
|
|
8041
9102
|
_cache[2] || (_cache[2] = vue.createElementVNode("div", null, [
|
|
8042
9103
|
vue.createElementVNode("strong", null, [
|
|
8043
9104
|
vue.createElementVNode("i", {
|
|
@@ -8048,7 +9109,7 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8048
9109
|
], -1)),
|
|
8049
9110
|
vue.createElementVNode("div", null, vue.toDisplayString(_ctx.entity.node.name), 1)
|
|
8050
9111
|
]),
|
|
8051
|
-
vue.createElementVNode("div", _hoisted_7$
|
|
9112
|
+
vue.createElementVNode("div", _hoisted_7$3, [
|
|
8052
9113
|
_cache[3] || (_cache[3] = vue.createElementVNode("div", null, [
|
|
8053
9114
|
vue.createElementVNode("strong", null, [
|
|
8054
9115
|
vue.createElementVNode("i", {
|
|
@@ -8072,7 +9133,7 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8072
9133
|
])
|
|
8073
9134
|
])
|
|
8074
9135
|
]),
|
|
8075
|
-
vue.createElementVNode("div", _hoisted_8$
|
|
9136
|
+
vue.createElementVNode("div", _hoisted_8$3, [
|
|
8076
9137
|
_cache[4] || (_cache[4] = vue.createElementVNode("div", null, [
|
|
8077
9138
|
vue.createElementVNode("strong", null, [
|
|
8078
9139
|
vue.createElementVNode("i", {
|
|
@@ -8107,7 +9168,7 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8107
9168
|
])
|
|
8108
9169
|
])
|
|
8109
9170
|
]),
|
|
8110
|
-
vue.createElementVNode("div", _hoisted_11
|
|
9171
|
+
vue.createElementVNode("div", _hoisted_11, [
|
|
8111
9172
|
vue.createElementVNode("small", null, [
|
|
8112
9173
|
_cache[6] || (_cache[6] = vue.createElementVNode("span", {
|
|
8113
9174
|
class: "text-muted"
|
|
@@ -8123,14 +9184,14 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8123
9184
|
])
|
|
8124
9185
|
]);
|
|
8125
9186
|
}
|
|
8126
|
-
var FAnalysisNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9187
|
+
var FAnalysisNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$d, [
|
|
8127
9188
|
[
|
|
8128
9189
|
"render",
|
|
8129
|
-
_sfc_render$
|
|
9190
|
+
_sfc_render$d
|
|
8130
9191
|
]
|
|
8131
9192
|
]);
|
|
8132
9193
|
|
|
8133
|
-
var _sfc_main$
|
|
9194
|
+
var _sfc_main$c = vue.defineComponent({
|
|
8134
9195
|
components: {
|
|
8135
9196
|
ListPagination: FPagination,
|
|
8136
9197
|
ListSearch: FSearch,
|
|
@@ -8193,22 +9254,22 @@ var _sfc_main$b = vue.defineComponent({
|
|
|
8193
9254
|
}
|
|
8194
9255
|
});
|
|
8195
9256
|
|
|
8196
|
-
const _hoisted_1$
|
|
9257
|
+
const _hoisted_1$a = {
|
|
8197
9258
|
class: "mb-2"
|
|
8198
9259
|
};
|
|
8199
|
-
const _hoisted_2$
|
|
9260
|
+
const _hoisted_2$9 = {
|
|
8200
9261
|
class: "mb-2"
|
|
8201
9262
|
};
|
|
8202
|
-
const _hoisted_3$
|
|
9263
|
+
const _hoisted_3$7 = {
|
|
8203
9264
|
class: "row"
|
|
8204
9265
|
};
|
|
8205
|
-
const _hoisted_4$
|
|
9266
|
+
const _hoisted_4$7 = {
|
|
8206
9267
|
class: "col-12 col-xl-6"
|
|
8207
9268
|
};
|
|
8208
|
-
const _hoisted_5$
|
|
9269
|
+
const _hoisted_5$4 = {
|
|
8209
9270
|
class: "col-12 col-xl-6"
|
|
8210
9271
|
};
|
|
8211
|
-
function _sfc_render$
|
|
9272
|
+
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8212
9273
|
const _component_FMasterImagePicker = vue.resolveComponent("FMasterImagePicker");
|
|
8213
9274
|
const _component_ListSearch = vue.resolveComponent("ListSearch");
|
|
8214
9275
|
const _component_ListPagination = vue.resolveComponent("ListPagination");
|
|
@@ -8216,14 +9277,14 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8216
9277
|
const _component_FProjectNodes = vue.resolveComponent("FProjectNodes");
|
|
8217
9278
|
const _component_FAnalysisNodes = vue.resolveComponent("FAnalysisNodes");
|
|
8218
9279
|
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
8219
|
-
vue.createElementVNode("div", _hoisted_1$
|
|
9280
|
+
vue.createElementVNode("div", _hoisted_1$a, [
|
|
8220
9281
|
_cache[0] || (_cache[0] = vue.createElementVNode("h6", null, [
|
|
8221
9282
|
vue.createElementVNode("i", {
|
|
8222
9283
|
class: "fa fa-compact-disc"
|
|
8223
9284
|
}),
|
|
8224
9285
|
vue.createTextVNode(" MasterImage")
|
|
8225
9286
|
], -1)),
|
|
8226
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
9287
|
+
vue.createElementVNode("div", _hoisted_2$9, [
|
|
8227
9288
|
vue.createVNode(_component_FMasterImagePicker, {
|
|
8228
9289
|
"entity-id": _ctx.entity.master_image_id,
|
|
8229
9290
|
onSelected: _ctx.handleMasterImageSelected
|
|
@@ -8241,8 +9302,8 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8241
9302
|
}),
|
|
8242
9303
|
vue.createTextVNode(" Nodes")
|
|
8243
9304
|
], -1)),
|
|
8244
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
8245
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
9305
|
+
vue.createElementVNode("div", _hoisted_3$7, [
|
|
9306
|
+
vue.createElementVNode("div", _hoisted_4$7, [
|
|
8246
9307
|
vue.createVNode(_component_FProjectNodes, {
|
|
8247
9308
|
ref: "FProjectNodes",
|
|
8248
9309
|
"realm-id": _ctx.entity.realm_id,
|
|
@@ -8301,7 +9362,7 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8301
9362
|
"query"
|
|
8302
9363
|
])
|
|
8303
9364
|
]),
|
|
8304
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
9365
|
+
vue.createElementVNode("div", _hoisted_5$4, [
|
|
8305
9366
|
vue.createVNode(_component_FAnalysisNodes, {
|
|
8306
9367
|
ref: "FAnalysisNodes",
|
|
8307
9368
|
"realm-id": _ctx.entity.realm_id,
|
|
@@ -8330,14 +9391,14 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8330
9391
|
])
|
|
8331
9392
|
]);
|
|
8332
9393
|
}
|
|
8333
|
-
var FAnalysisWizardStepBase = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9394
|
+
var FAnalysisWizardStepBase = /* @__PURE__ */ _export_sfc(_sfc_main$c, [
|
|
8334
9395
|
[
|
|
8335
9396
|
"render",
|
|
8336
|
-
_sfc_render$
|
|
9397
|
+
_sfc_render$c
|
|
8337
9398
|
]
|
|
8338
9399
|
]);
|
|
8339
9400
|
|
|
8340
|
-
var _sfc_main$
|
|
9401
|
+
var _sfc_main$b = vue.defineComponent({
|
|
8341
9402
|
props: {
|
|
8342
9403
|
entity: {
|
|
8343
9404
|
type: Object,
|
|
@@ -8389,19 +9450,19 @@ var _sfc_main$a = vue.defineComponent({
|
|
|
8389
9450
|
}
|
|
8390
9451
|
});
|
|
8391
9452
|
|
|
8392
|
-
const _hoisted_1$
|
|
9453
|
+
const _hoisted_1$9 = {
|
|
8393
9454
|
class: "title"
|
|
8394
9455
|
};
|
|
8395
|
-
const _hoisted_2$
|
|
9456
|
+
const _hoisted_2$8 = {
|
|
8396
9457
|
class: "ms-auto d-flex flex-row me-1"
|
|
8397
9458
|
};
|
|
8398
|
-
const _hoisted_3$
|
|
9459
|
+
const _hoisted_3$6 = {
|
|
8399
9460
|
class: "ms-1"
|
|
8400
9461
|
};
|
|
8401
|
-
const _hoisted_4$
|
|
9462
|
+
const _hoisted_4$6 = [
|
|
8402
9463
|
"disabled"
|
|
8403
9464
|
];
|
|
8404
|
-
function _sfc_render$
|
|
9465
|
+
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8405
9466
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
8406
9467
|
class: vue.normalizeClass([
|
|
8407
9468
|
"card card-file d-flex flex-row align-items-center p-1",
|
|
@@ -8416,9 +9477,9 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8416
9477
|
"prevent"
|
|
8417
9478
|
]))
|
|
8418
9479
|
}, [
|
|
8419
|
-
vue.createElementVNode("span", _hoisted_1$
|
|
9480
|
+
vue.createElementVNode("span", _hoisted_1$9, vue.toDisplayString(_ctx.entity.name), 1)
|
|
8420
9481
|
]),
|
|
8421
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
9482
|
+
vue.createElementVNode("div", _hoisted_2$8, [
|
|
8422
9483
|
vue.createElementVNode("div", null, [
|
|
8423
9484
|
!_ctx.fileSelectedId || _ctx.isMatch ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
8424
9485
|
key: 0,
|
|
@@ -8442,7 +9503,7 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8442
9503
|
}, null, 2)
|
|
8443
9504
|
], 2)) : vue.createCommentVNode("", true)
|
|
8444
9505
|
]),
|
|
8445
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
9506
|
+
vue.createElementVNode("div", _hoisted_3$6, [
|
|
8446
9507
|
vue.createElementVNode("button", {
|
|
8447
9508
|
type: "button",
|
|
8448
9509
|
class: "btn btn-danger btn-xs",
|
|
@@ -8454,15 +9515,15 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8454
9515
|
vue.createElementVNode("i", {
|
|
8455
9516
|
class: "fa fa-trash"
|
|
8456
9517
|
}, null, -1)
|
|
8457
|
-
]), 8, _hoisted_4$
|
|
9518
|
+
]), 8, _hoisted_4$6)
|
|
8458
9519
|
])
|
|
8459
9520
|
])
|
|
8460
9521
|
], 2);
|
|
8461
9522
|
}
|
|
8462
|
-
var FAnalysisFile = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9523
|
+
var FAnalysisFile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [
|
|
8463
9524
|
[
|
|
8464
9525
|
"render",
|
|
8465
|
-
_sfc_render$
|
|
9526
|
+
_sfc_render$b
|
|
8466
9527
|
]
|
|
8467
9528
|
]);
|
|
8468
9529
|
|
|
@@ -8492,7 +9553,7 @@ const FAnalysisBucketFiles = vue.defineComponent({
|
|
|
8492
9553
|
}
|
|
8493
9554
|
});
|
|
8494
9555
|
|
|
8495
|
-
var _sfc_main$
|
|
9556
|
+
var _sfc_main$a = vue.defineComponent({
|
|
8496
9557
|
props: {
|
|
8497
9558
|
file: {
|
|
8498
9559
|
type: Object,
|
|
@@ -8524,24 +9585,24 @@ var _sfc_main$9 = vue.defineComponent({
|
|
|
8524
9585
|
}
|
|
8525
9586
|
});
|
|
8526
9587
|
|
|
8527
|
-
const _hoisted_1$
|
|
9588
|
+
const _hoisted_1$8 = {
|
|
8528
9589
|
class: "card card-file d-flex flex-row align-items-center p-1"
|
|
8529
9590
|
};
|
|
8530
|
-
const _hoisted_2$
|
|
9591
|
+
const _hoisted_2$7 = {
|
|
8531
9592
|
class: "card-heading"
|
|
8532
9593
|
};
|
|
8533
|
-
const _hoisted_3$
|
|
9594
|
+
const _hoisted_3$5 = {
|
|
8534
9595
|
class: "title"
|
|
8535
9596
|
};
|
|
8536
|
-
const _hoisted_4$
|
|
9597
|
+
const _hoisted_4$5 = {
|
|
8537
9598
|
class: "ms-auto"
|
|
8538
9599
|
};
|
|
8539
|
-
function _sfc_render$
|
|
8540
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
8541
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
8542
|
-
vue.createElementVNode("span", _hoisted_3$
|
|
9600
|
+
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9601
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
|
|
9602
|
+
vue.createElementVNode("div", _hoisted_2$7, [
|
|
9603
|
+
vue.createElementVNode("span", _hoisted_3$5, vue.toDisplayString(_ctx.path), 1)
|
|
8543
9604
|
]),
|
|
8544
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
9605
|
+
vue.createElementVNode("div", _hoisted_4$5, [
|
|
8545
9606
|
vue.createElementVNode("button", {
|
|
8546
9607
|
type: "button",
|
|
8547
9608
|
class: "btn btn-dark btn-xs",
|
|
@@ -8556,7 +9617,197 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8556
9617
|
])
|
|
8557
9618
|
]);
|
|
8558
9619
|
}
|
|
8559
|
-
var FAnalysisFormFile = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9620
|
+
var FAnalysisFormFile = /* @__PURE__ */ _export_sfc(_sfc_main$a, [
|
|
9621
|
+
[
|
|
9622
|
+
"render",
|
|
9623
|
+
_sfc_render$a
|
|
9624
|
+
]
|
|
9625
|
+
]);
|
|
9626
|
+
|
|
9627
|
+
var _sfc_main$9 = vue.defineComponent({
|
|
9628
|
+
components: {
|
|
9629
|
+
FAnalysisFormFile
|
|
9630
|
+
},
|
|
9631
|
+
props: {
|
|
9632
|
+
entity: {
|
|
9633
|
+
type: Object,
|
|
9634
|
+
required: true
|
|
9635
|
+
}
|
|
9636
|
+
},
|
|
9637
|
+
emits: [
|
|
9638
|
+
'fileUploaded',
|
|
9639
|
+
'uploaded',
|
|
9640
|
+
'failed'
|
|
9641
|
+
],
|
|
9642
|
+
setup (props, { emit }) {
|
|
9643
|
+
const coreClient = injectCoreHTTPClient();
|
|
9644
|
+
const storageClient = injectStorageHTTPClient();
|
|
9645
|
+
const busy = vue.ref(false);
|
|
9646
|
+
const tempFiles = vue.ref([]);
|
|
9647
|
+
const directoryMode = vue.ref(true);
|
|
9648
|
+
const vNode = vue.ref(null);
|
|
9649
|
+
const checkTempFiles = ($event)=>{
|
|
9650
|
+
$event.preventDefault();
|
|
9651
|
+
for(let i = 0; i < $event.target.files.length; i++){
|
|
9652
|
+
tempFiles.value.push($event.target.files[i]);
|
|
9653
|
+
}
|
|
9654
|
+
if (vNode.value) {
|
|
9655
|
+
vNode.value = '';
|
|
9656
|
+
}
|
|
9657
|
+
};
|
|
9658
|
+
const dropTempFile = ($event)=>{
|
|
9659
|
+
const index = tempFiles.value.findIndex((file)=>{
|
|
9660
|
+
if (hasOwnProperty(file, 'webkitRelativePath') && hasOwnProperty($event, 'webkitRelativePath')) {
|
|
9661
|
+
return file.webkitRelativePath === $event.webkitRelativePath;
|
|
9662
|
+
}
|
|
9663
|
+
return file.name === $event.name;
|
|
9664
|
+
});
|
|
9665
|
+
if (index !== -1) {
|
|
9666
|
+
tempFiles.value.splice(index, 1);
|
|
9667
|
+
}
|
|
9668
|
+
};
|
|
9669
|
+
const upload = wrapFnWithBusyState(busy, async ()=>{
|
|
9670
|
+
if (tempFiles.value.length === 0) return;
|
|
9671
|
+
if (!props.entity.external_id) {
|
|
9672
|
+
emit('failed', new Error('The analysis bucket has not created yet.'));
|
|
9673
|
+
return;
|
|
9674
|
+
}
|
|
9675
|
+
try {
|
|
9676
|
+
const formData = new FormData();
|
|
9677
|
+
for(let i = 0; i < tempFiles.value.length; i++){
|
|
9678
|
+
formData.append(`files[${i}]`, tempFiles.value[i]);
|
|
9679
|
+
}
|
|
9680
|
+
const { data: bucketFiles } = await storageClient.bucket.upload(props.entity.external_id, formData);
|
|
9681
|
+
for(let i = 0; i < bucketFiles.length; i++){
|
|
9682
|
+
const file = await coreClient.analysisBucketFile.create({
|
|
9683
|
+
external_id: bucketFiles[i].id,
|
|
9684
|
+
bucket_id: props.entity.id,
|
|
9685
|
+
analysis_id: props.entity.analysis_id,
|
|
9686
|
+
name: bucketFiles[i].path
|
|
9687
|
+
});
|
|
9688
|
+
emit('fileUploaded', file);
|
|
9689
|
+
}
|
|
9690
|
+
tempFiles.value = [];
|
|
9691
|
+
emit('uploaded');
|
|
9692
|
+
} catch (e) {
|
|
9693
|
+
emit('failed', e);
|
|
9694
|
+
}
|
|
9695
|
+
});
|
|
9696
|
+
return {
|
|
9697
|
+
directoryMode,
|
|
9698
|
+
busy,
|
|
9699
|
+
vNode,
|
|
9700
|
+
tempFiles,
|
|
9701
|
+
checkTempFiles,
|
|
9702
|
+
dropTempFile,
|
|
9703
|
+
upload
|
|
9704
|
+
};
|
|
9705
|
+
}
|
|
9706
|
+
});
|
|
9707
|
+
|
|
9708
|
+
const _hoisted_1$7 = {
|
|
9709
|
+
class: "d-flex flex-column"
|
|
9710
|
+
};
|
|
9711
|
+
const _hoisted_2$6 = {
|
|
9712
|
+
class: "form-group"
|
|
9713
|
+
};
|
|
9714
|
+
const _hoisted_3$4 = {
|
|
9715
|
+
class: "form-label"
|
|
9716
|
+
};
|
|
9717
|
+
const _hoisted_4$4 = [
|
|
9718
|
+
"webkitdirectory",
|
|
9719
|
+
"disbaled"
|
|
9720
|
+
];
|
|
9721
|
+
const _hoisted_5$3 = {
|
|
9722
|
+
class: "form-group mb-0"
|
|
9723
|
+
};
|
|
9724
|
+
const _hoisted_6$3 = {
|
|
9725
|
+
class: "form-check form-switch"
|
|
9726
|
+
};
|
|
9727
|
+
const _hoisted_7$2 = {
|
|
9728
|
+
key: 0,
|
|
9729
|
+
class: "alert alert-info alert-sm m-t-10"
|
|
9730
|
+
};
|
|
9731
|
+
const _hoisted_8$2 = {
|
|
9732
|
+
class: "d-flex flex-column"
|
|
9733
|
+
};
|
|
9734
|
+
const _hoisted_9 = {
|
|
9735
|
+
class: "form-group"
|
|
9736
|
+
};
|
|
9737
|
+
const _hoisted_10 = [
|
|
9738
|
+
"disabled"
|
|
9739
|
+
];
|
|
9740
|
+
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9741
|
+
const _component_FAnalysisFormFile = vue.resolveComponent("FAnalysisFormFile");
|
|
9742
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
|
|
9743
|
+
vue.createElementVNode("div", null, [
|
|
9744
|
+
vue.createElementVNode("div", _hoisted_2$6, [
|
|
9745
|
+
vue.createElementVNode("label", _hoisted_3$4, vue.toDisplayString(_ctx.directoryMode ? "Directories" : "Files"), 1),
|
|
9746
|
+
vue.createElementVNode("input", {
|
|
9747
|
+
id: "files",
|
|
9748
|
+
ref: "vNode",
|
|
9749
|
+
type: "file",
|
|
9750
|
+
webkitdirectory: _ctx.directoryMode,
|
|
9751
|
+
class: "form-control",
|
|
9752
|
+
multiple: "",
|
|
9753
|
+
disbaled: _ctx.busy,
|
|
9754
|
+
onChange: _cache[0] || (_cache[0] = (...args)=>_ctx.checkTempFiles && _ctx.checkTempFiles(...args))
|
|
9755
|
+
}, null, 40, _hoisted_4$4)
|
|
9756
|
+
]),
|
|
9757
|
+
vue.createElementVNode("div", _hoisted_5$3, [
|
|
9758
|
+
vue.createElementVNode("div", _hoisted_6$3, [
|
|
9759
|
+
vue.withDirectives(vue.createElementVNode("input", {
|
|
9760
|
+
id: "train-file-manager-switch",
|
|
9761
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.directoryMode = $event),
|
|
9762
|
+
class: "form-check-input",
|
|
9763
|
+
type: "checkbox"
|
|
9764
|
+
}, null, 512), [
|
|
9765
|
+
[
|
|
9766
|
+
vue.vModelCheckbox,
|
|
9767
|
+
_ctx.directoryMode
|
|
9768
|
+
]
|
|
9769
|
+
]),
|
|
9770
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("label", {
|
|
9771
|
+
class: "form-check-label",
|
|
9772
|
+
for: "train-file-manager-switch"
|
|
9773
|
+
}, "Directory Mode", -1))
|
|
9774
|
+
])
|
|
9775
|
+
])
|
|
9776
|
+
]),
|
|
9777
|
+
vue.createElementVNode("div", null, [
|
|
9778
|
+
_ctx.tempFiles.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$2, " You have not selected any " + vue.toDisplayString(_ctx.directoryMode ? "directories" : "files") + " to upload. ", 1)) : vue.createCommentVNode("", true),
|
|
9779
|
+
vue.createElementVNode("div", _hoisted_8$2, [
|
|
9780
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tempFiles, (file, key)=>{
|
|
9781
|
+
return vue.openBlock(), vue.createBlock(_component_FAnalysisFormFile, {
|
|
9782
|
+
key,
|
|
9783
|
+
class: "me-1",
|
|
9784
|
+
file,
|
|
9785
|
+
onDrop: _ctx.dropTempFile
|
|
9786
|
+
}, null, 8, [
|
|
9787
|
+
"file",
|
|
9788
|
+
"onDrop"
|
|
9789
|
+
]);
|
|
9790
|
+
}), 128))
|
|
9791
|
+
]),
|
|
9792
|
+
vue.createElementVNode("div", _hoisted_9, [
|
|
9793
|
+
vue.createElementVNode("button", {
|
|
9794
|
+
type: "button",
|
|
9795
|
+
class: "btn btn-sm btn-primary btn-block",
|
|
9796
|
+
disabled: _ctx.busy || _ctx.tempFiles.length === 0,
|
|
9797
|
+
onClick: _cache[2] || (_cache[2] = vue.withModifiers((...args)=>_ctx.upload && _ctx.upload(...args), [
|
|
9798
|
+
"prevent"
|
|
9799
|
+
]))
|
|
9800
|
+
}, _cache[4] || (_cache[4] = [
|
|
9801
|
+
vue.createElementVNode("i", {
|
|
9802
|
+
class: "fa fa-upload"
|
|
9803
|
+
}, null, -1),
|
|
9804
|
+
vue.createTextVNode(" Upload ")
|
|
9805
|
+
]), 8, _hoisted_10)
|
|
9806
|
+
])
|
|
9807
|
+
])
|
|
9808
|
+
]);
|
|
9809
|
+
}
|
|
9810
|
+
var FAnalysisBucketFileUpload = /* @__PURE__ */ _export_sfc(_sfc_main$9, [
|
|
8560
9811
|
[
|
|
8561
9812
|
"render",
|
|
8562
9813
|
_sfc_render$9
|
|
@@ -8565,8 +9816,9 @@ var FAnalysisFormFile = /* @__PURE__ */ _export_sfc(_sfc_main$9, [
|
|
|
8565
9816
|
|
|
8566
9817
|
var _sfc_main$8 = vue.defineComponent({
|
|
8567
9818
|
components: {
|
|
9819
|
+
BModal: bootstrapVueNext.BModal,
|
|
9820
|
+
FAnalysisBucketFileUpload,
|
|
8568
9821
|
FAnalysisBucketFiles,
|
|
8569
|
-
FAnalysisFormFile,
|
|
8570
9822
|
FAnalysisFile
|
|
8571
9823
|
},
|
|
8572
9824
|
props: {
|
|
@@ -8588,7 +9840,6 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8588
9840
|
],
|
|
8589
9841
|
setup (props, { emit }) {
|
|
8590
9842
|
const coreClient = injectCoreHTTPClient();
|
|
8591
|
-
const storageClient = injectStorageHTTPClient();
|
|
8592
9843
|
const entrypointFile = vue.ref(null);
|
|
8593
9844
|
if (props.fileEntity) {
|
|
8594
9845
|
entrypointFile.value = props.fileEntity;
|
|
@@ -8599,10 +9850,12 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8599
9850
|
}
|
|
8600
9851
|
return undefined;
|
|
8601
9852
|
});
|
|
8602
|
-
const
|
|
9853
|
+
const modal = vue.ref(false);
|
|
9854
|
+
const toggleModal = ()=>{
|
|
9855
|
+
modal.value = !modal.value;
|
|
9856
|
+
};
|
|
8603
9857
|
const selected = vue.ref([]);
|
|
8604
9858
|
const selectAll = vue.ref(false);
|
|
8605
|
-
const directoryMode = vue.ref(true);
|
|
8606
9859
|
const busy = vue.ref(false);
|
|
8607
9860
|
const fileListNode = vue.ref(null);
|
|
8608
9861
|
const fileListQuery = vue.computed(()=>({
|
|
@@ -8633,32 +9886,16 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8633
9886
|
}
|
|
8634
9887
|
emit('updated', entity);
|
|
8635
9888
|
};
|
|
8636
|
-
const
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8644
|
-
|
|
8645
|
-
|
|
8646
|
-
const { data: bucketFiles } = await storageClient.bucket.upload(props.entity.external_id, formData);
|
|
8647
|
-
for(let i = 0; i < bucketFiles.length; i++){
|
|
8648
|
-
const file = await coreClient.analysisBucketFile.create({
|
|
8649
|
-
external_id: bucketFiles[i].id,
|
|
8650
|
-
bucket_id: props.entity.id,
|
|
8651
|
-
analysis_id: props.entity.analysis_id,
|
|
8652
|
-
name: bucketFiles[i].path
|
|
8653
|
-
});
|
|
8654
|
-
handleCreated(file);
|
|
8655
|
-
}
|
|
8656
|
-
tempFiles.value = [];
|
|
8657
|
-
emit('uploaded');
|
|
8658
|
-
} catch (e) {
|
|
8659
|
-
emit('failed', e);
|
|
8660
|
-
}
|
|
8661
|
-
});
|
|
9889
|
+
const handleFailed = (e)=>{
|
|
9890
|
+
emit('failed', e);
|
|
9891
|
+
};
|
|
9892
|
+
const handleUploaded = ()=>{
|
|
9893
|
+
emit('uploaded');
|
|
9894
|
+
toggleModal();
|
|
9895
|
+
};
|
|
9896
|
+
const handleFileUploaded = (entity)=>{
|
|
9897
|
+
handleCreated(entity);
|
|
9898
|
+
};
|
|
8662
9899
|
const dropSelected = wrapFnWithBusyState(busy, async ()=>{
|
|
8663
9900
|
if (selected.value.length === 0) return;
|
|
8664
9901
|
try {
|
|
@@ -8689,27 +9926,6 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8689
9926
|
selected.value.splice(index, 1);
|
|
8690
9927
|
}
|
|
8691
9928
|
};
|
|
8692
|
-
const filesNode = vue.ref(null);
|
|
8693
|
-
const checkTempFiles = ($event)=>{
|
|
8694
|
-
$event.preventDefault();
|
|
8695
|
-
for(let i = 0; i < $event.target.files.length; i++){
|
|
8696
|
-
tempFiles.value.push($event.target.files[i]);
|
|
8697
|
-
}
|
|
8698
|
-
if (filesNode.value) {
|
|
8699
|
-
filesNode.value = '';
|
|
8700
|
-
}
|
|
8701
|
-
};
|
|
8702
|
-
const dropTempFile = ($event)=>{
|
|
8703
|
-
const index = tempFiles.value.findIndex((file)=>{
|
|
8704
|
-
if (hasOwnProperty(file, 'webkitRelativePath') && hasOwnProperty($event, 'webkitRelativePath')) {
|
|
8705
|
-
return file.webkitRelativePath === $event.webkitRelativePath;
|
|
8706
|
-
}
|
|
8707
|
-
return file.name === $event.name;
|
|
8708
|
-
});
|
|
8709
|
-
if (index !== -1) {
|
|
8710
|
-
tempFiles.value.splice(index, 1);
|
|
8711
|
-
}
|
|
8712
|
-
};
|
|
8713
9929
|
const changeEntryPointFile = async (file)=>{
|
|
8714
9930
|
if (entrypointFile.value) {
|
|
8715
9931
|
if (entrypointFile.value.id === file.id) {
|
|
@@ -8737,255 +9953,199 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8737
9953
|
}
|
|
8738
9954
|
};
|
|
8739
9955
|
return {
|
|
8740
|
-
directoryMode,
|
|
8741
9956
|
busy,
|
|
8742
|
-
checkTempFiles,
|
|
8743
|
-
tempFiles,
|
|
8744
9957
|
selected,
|
|
8745
9958
|
selectAll,
|
|
8746
9959
|
dropSelected,
|
|
8747
9960
|
selectAllFiles,
|
|
8748
|
-
dropTempFile,
|
|
8749
|
-
upload,
|
|
8750
9961
|
handleCreated,
|
|
8751
9962
|
handleDeleted,
|
|
8752
9963
|
handleUpdated,
|
|
9964
|
+
handleFailed,
|
|
9965
|
+
handleUploaded,
|
|
9966
|
+
handleFileUploaded,
|
|
8753
9967
|
toggleFile,
|
|
8754
9968
|
entrypointFile,
|
|
8755
9969
|
entrypointFileId,
|
|
8756
9970
|
changeEntryPointFile,
|
|
8757
|
-
filesNode,
|
|
8758
9971
|
fileListNode,
|
|
8759
|
-
fileListQuery
|
|
9972
|
+
fileListQuery,
|
|
9973
|
+
modal,
|
|
9974
|
+
toggleModal
|
|
8760
9975
|
};
|
|
8761
9976
|
}
|
|
8762
9977
|
});
|
|
8763
9978
|
|
|
8764
9979
|
const _hoisted_1$6 = {
|
|
8765
|
-
class: "
|
|
8766
|
-
};
|
|
8767
|
-
const _hoisted_2$4 = {
|
|
8768
|
-
class: "col"
|
|
8769
|
-
};
|
|
8770
|
-
const _hoisted_3$2 = {
|
|
8771
|
-
class: "form-group"
|
|
9980
|
+
class: "d-flex flex-column gap-1"
|
|
8772
9981
|
};
|
|
8773
|
-
const
|
|
8774
|
-
class: "form-
|
|
8775
|
-
};
|
|
8776
|
-
const _hoisted_5$2 = [
|
|
8777
|
-
"webkitdirectory",
|
|
8778
|
-
"disbaled"
|
|
8779
|
-
];
|
|
8780
|
-
const _hoisted_6$2 = {
|
|
8781
|
-
class: "form-group"
|
|
8782
|
-
};
|
|
8783
|
-
const _hoisted_7$1 = {
|
|
8784
|
-
class: "form-check form-switch"
|
|
8785
|
-
};
|
|
8786
|
-
const _hoisted_8$1 = {
|
|
8787
|
-
class: "row"
|
|
8788
|
-
};
|
|
8789
|
-
const _hoisted_9 = {
|
|
8790
|
-
class: "col"
|
|
8791
|
-
};
|
|
8792
|
-
const _hoisted_10 = {
|
|
8793
|
-
key: 0,
|
|
8794
|
-
class: "alert alert-info alert-sm m-t-10"
|
|
9982
|
+
const _hoisted_2$5 = {
|
|
9983
|
+
class: "form-check"
|
|
8795
9984
|
};
|
|
8796
|
-
const
|
|
9985
|
+
const _hoisted_3$3 = {
|
|
8797
9986
|
class: "d-flex flex-column"
|
|
8798
9987
|
};
|
|
8799
|
-
const
|
|
9988
|
+
const _hoisted_4$3 = {
|
|
8800
9989
|
class: "form-group"
|
|
8801
9990
|
};
|
|
8802
|
-
const
|
|
9991
|
+
const _hoisted_5$2 = [
|
|
8803
9992
|
"disabled"
|
|
8804
9993
|
];
|
|
8805
|
-
const
|
|
8806
|
-
class: "
|
|
8807
|
-
};
|
|
8808
|
-
const _hoisted_15 = {
|
|
8809
|
-
class: "form-check"
|
|
8810
|
-
};
|
|
8811
|
-
const _hoisted_16 = {
|
|
8812
|
-
class: "d-flex flex-column"
|
|
9994
|
+
const _hoisted_6$2 = {
|
|
9995
|
+
class: "d-flex flex-row w-100"
|
|
8813
9996
|
};
|
|
8814
|
-
const
|
|
8815
|
-
class: "
|
|
9997
|
+
const _hoisted_7$1 = {
|
|
9998
|
+
class: "ms-auto"
|
|
8816
9999
|
};
|
|
8817
|
-
const
|
|
8818
|
-
"
|
|
10000
|
+
const _hoisted_8$1 = [
|
|
10001
|
+
"onClick"
|
|
8819
10002
|
];
|
|
8820
10003
|
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8821
|
-
const _component_FAnalysisFormFile = vue.resolveComponent("FAnalysisFormFile");
|
|
8822
10004
|
const _component_FAnalysisFile = vue.resolveComponent("FAnalysisFile");
|
|
8823
10005
|
const _component_FAnalysisBucketFiles = vue.resolveComponent("FAnalysisBucketFiles");
|
|
8824
|
-
|
|
8825
|
-
|
|
8826
|
-
|
|
8827
|
-
|
|
8828
|
-
|
|
8829
|
-
|
|
8830
|
-
|
|
8831
|
-
|
|
8832
|
-
|
|
8833
|
-
|
|
8834
|
-
|
|
8835
|
-
|
|
8836
|
-
|
|
8837
|
-
|
|
8838
|
-
|
|
8839
|
-
|
|
8840
|
-
class: "form-control",
|
|
8841
|
-
multiple: "",
|
|
8842
|
-
disbaled: _ctx.busy,
|
|
8843
|
-
onChange: _cache[0] || (_cache[0] = (...args)=>_ctx.checkTempFiles && _ctx.checkTempFiles(...args))
|
|
8844
|
-
}, null, 40, _hoisted_5$2)
|
|
8845
|
-
]),
|
|
8846
|
-
vue.createElementVNode("div", _hoisted_6$2, [
|
|
8847
|
-
vue.createElementVNode("div", _hoisted_7$1, [
|
|
8848
|
-
vue.withDirectives(vue.createElementVNode("input", {
|
|
8849
|
-
id: "train-file-manager-switch",
|
|
8850
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.directoryMode = $event),
|
|
8851
|
-
class: "form-check-input",
|
|
8852
|
-
type: "checkbox"
|
|
8853
|
-
}, null, 512), [
|
|
8854
|
-
[
|
|
8855
|
-
vue.vModelCheckbox,
|
|
8856
|
-
_ctx.directoryMode
|
|
8857
|
-
]
|
|
8858
|
-
]),
|
|
8859
|
-
_cache[6] || (_cache[6] = vue.createElementVNode("label", {
|
|
8860
|
-
class: "form-check-label",
|
|
8861
|
-
for: "train-file-manager-switch"
|
|
8862
|
-
}, "Directory Mode", -1))
|
|
8863
|
-
])
|
|
8864
|
-
])
|
|
8865
|
-
])
|
|
10006
|
+
const _component_FAnalysisBucketFileUpload = vue.resolveComponent("FAnalysisBucketFileUpload");
|
|
10007
|
+
const _component_BModal = vue.resolveComponent("BModal");
|
|
10008
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
|
|
10009
|
+
vue.createElementVNode("div", null, [
|
|
10010
|
+
vue.createElementVNode("button", {
|
|
10011
|
+
type: "button",
|
|
10012
|
+
class: "btn btn-primary btn-block",
|
|
10013
|
+
onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args)=>_ctx.toggleModal && _ctx.toggleModal(...args), [
|
|
10014
|
+
"prevent"
|
|
10015
|
+
]))
|
|
10016
|
+
}, _cache[5] || (_cache[5] = [
|
|
10017
|
+
vue.createElementVNode("i", {
|
|
10018
|
+
class: "fa fa-upload"
|
|
10019
|
+
}, null, -1),
|
|
10020
|
+
vue.createTextVNode(" Upload ")
|
|
10021
|
+
]))
|
|
8866
10022
|
]),
|
|
8867
|
-
vue.createElementVNode("div",
|
|
8868
|
-
vue.createElementVNode("div",
|
|
8869
|
-
|
|
8870
|
-
|
|
8871
|
-
|
|
8872
|
-
|
|
8873
|
-
|
|
8874
|
-
|
|
8875
|
-
|
|
8876
|
-
|
|
8877
|
-
|
|
8878
|
-
|
|
8879
|
-
|
|
8880
|
-
"onDrop"
|
|
8881
|
-
]);
|
|
8882
|
-
}), 128))
|
|
10023
|
+
vue.createElementVNode("div", null, [
|
|
10024
|
+
vue.createElementVNode("div", _hoisted_2$5, [
|
|
10025
|
+
vue.withDirectives(vue.createElementVNode("input", {
|
|
10026
|
+
id: "selectAllFiles",
|
|
10027
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.selectAll = $event),
|
|
10028
|
+
type: "checkbox",
|
|
10029
|
+
class: "form-check-input",
|
|
10030
|
+
onChange: _cache[2] || (_cache[2] = (...args)=>_ctx.selectAllFiles && _ctx.selectAllFiles(...args))
|
|
10031
|
+
}, null, 544), [
|
|
10032
|
+
[
|
|
10033
|
+
vue.vModelCheckbox,
|
|
10034
|
+
_ctx.selectAll
|
|
10035
|
+
]
|
|
8883
10036
|
]),
|
|
8884
|
-
vue.createElementVNode("
|
|
8885
|
-
|
|
8886
|
-
|
|
8887
|
-
class: "btn btn-xs btn-dark",
|
|
8888
|
-
disabled: _ctx.busy || _ctx.tempFiles.length === 0,
|
|
8889
|
-
onClick: _cache[2] || (_cache[2] = vue.withModifiers((...args)=>_ctx.upload && _ctx.upload(...args), [
|
|
8890
|
-
"prevent"
|
|
8891
|
-
]))
|
|
8892
|
-
}, " Upload ", 8, _hoisted_13)
|
|
8893
|
-
])
|
|
10037
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("label", {
|
|
10038
|
+
for: "selectAllFiles"
|
|
10039
|
+
}, "Select all", -1))
|
|
8894
10040
|
]),
|
|
8895
|
-
vue.
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
|
-
|
|
8899
|
-
|
|
8900
|
-
|
|
8901
|
-
|
|
8902
|
-
|
|
8903
|
-
|
|
8904
|
-
|
|
8905
|
-
|
|
8906
|
-
|
|
8907
|
-
|
|
8908
|
-
|
|
8909
|
-
|
|
8910
|
-
|
|
8911
|
-
|
|
10041
|
+
vue.createVNode(_component_FAnalysisBucketFiles, {
|
|
10042
|
+
ref: "fileListNode",
|
|
10043
|
+
query: _ctx.fileListQuery,
|
|
10044
|
+
"header-search": false,
|
|
10045
|
+
"header-title": false,
|
|
10046
|
+
"footer-pagination": false,
|
|
10047
|
+
onCreated: _ctx.handleCreated,
|
|
10048
|
+
onUpdated: _ctx.handleUpdated,
|
|
10049
|
+
onDeleted: _ctx.handleDeleted
|
|
10050
|
+
}, {
|
|
10051
|
+
body: vue.withCtx((props)=>[
|
|
10052
|
+
vue.createElementVNode("div", _hoisted_3$3, [
|
|
10053
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.data, (file)=>{
|
|
10054
|
+
return vue.openBlock(), vue.createBlock(_component_FAnalysisFile, {
|
|
10055
|
+
key: file.id,
|
|
10056
|
+
class: "me-1",
|
|
10057
|
+
entity: file,
|
|
10058
|
+
"files-selected": _ctx.selected,
|
|
10059
|
+
"file-selected-id": _ctx.entrypointFileId,
|
|
10060
|
+
onCheck: _ctx.toggleFile,
|
|
10061
|
+
onUpdated: props.updated,
|
|
10062
|
+
onDeleted: props.deleted,
|
|
10063
|
+
onToggle: _ctx.changeEntryPointFile
|
|
10064
|
+
}, null, 8, [
|
|
10065
|
+
"entity",
|
|
10066
|
+
"files-selected",
|
|
10067
|
+
"file-selected-id",
|
|
10068
|
+
"onCheck",
|
|
10069
|
+
"onUpdated",
|
|
10070
|
+
"onDeleted",
|
|
10071
|
+
"onToggle"
|
|
10072
|
+
]);
|
|
10073
|
+
}), 128))
|
|
8912
10074
|
])
|
|
8913
|
-
])
|
|
8914
|
-
], -1)),
|
|
8915
|
-
vue.createElementVNode("div", _hoisted_15, [
|
|
8916
|
-
vue.withDirectives(vue.createElementVNode("input", {
|
|
8917
|
-
id: "selectAllFiles",
|
|
8918
|
-
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event)=>_ctx.selectAll = $event),
|
|
8919
|
-
type: "checkbox",
|
|
8920
|
-
class: "form-check-input",
|
|
8921
|
-
onChange: _cache[4] || (_cache[4] = (...args)=>_ctx.selectAllFiles && _ctx.selectAllFiles(...args))
|
|
8922
|
-
}, null, 544), [
|
|
8923
|
-
[
|
|
8924
|
-
vue.vModelCheckbox,
|
|
8925
|
-
_ctx.selectAll
|
|
8926
|
-
]
|
|
8927
10075
|
]),
|
|
8928
|
-
|
|
8929
|
-
|
|
8930
|
-
|
|
8931
|
-
|
|
8932
|
-
|
|
8933
|
-
|
|
8934
|
-
|
|
8935
|
-
|
|
8936
|
-
|
|
8937
|
-
"
|
|
8938
|
-
|
|
8939
|
-
|
|
8940
|
-
|
|
8941
|
-
|
|
8942
|
-
|
|
8943
|
-
|
|
8944
|
-
|
|
8945
|
-
|
|
8946
|
-
|
|
8947
|
-
|
|
8948
|
-
|
|
8949
|
-
|
|
8950
|
-
|
|
8951
|
-
|
|
8952
|
-
|
|
8953
|
-
|
|
8954
|
-
|
|
8955
|
-
|
|
8956
|
-
|
|
8957
|
-
|
|
8958
|
-
|
|
8959
|
-
|
|
8960
|
-
|
|
8961
|
-
|
|
8962
|
-
|
|
8963
|
-
|
|
8964
|
-
|
|
10076
|
+
_: 1
|
|
10077
|
+
}, 8, [
|
|
10078
|
+
"query",
|
|
10079
|
+
"onCreated",
|
|
10080
|
+
"onUpdated",
|
|
10081
|
+
"onDeleted"
|
|
10082
|
+
]),
|
|
10083
|
+
vue.createElementVNode("div", _hoisted_4$3, [
|
|
10084
|
+
vue.createElementVNode("button", {
|
|
10085
|
+
type: "button",
|
|
10086
|
+
class: "btn btn-warning btn-xs",
|
|
10087
|
+
disabled: _ctx.busy || _ctx.selected.length === 0,
|
|
10088
|
+
onClick: _cache[3] || (_cache[3] = vue.withModifiers((...args)=>_ctx.dropSelected && _ctx.dropSelected(...args), [
|
|
10089
|
+
"prevent"
|
|
10090
|
+
]))
|
|
10091
|
+
}, _cache[7] || (_cache[7] = [
|
|
10092
|
+
vue.createElementVNode("i", {
|
|
10093
|
+
class: "fa fa-trash"
|
|
10094
|
+
}, null, -1),
|
|
10095
|
+
vue.createTextVNode(" Delete ")
|
|
10096
|
+
]), 8, _hoisted_5$2)
|
|
10097
|
+
])
|
|
10098
|
+
]),
|
|
10099
|
+
vue.createElementVNode("div", null, [
|
|
10100
|
+
vue.createVNode(_component_BModal, {
|
|
10101
|
+
modelValue: _ctx.modal,
|
|
10102
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event)=>_ctx.modal = $event),
|
|
10103
|
+
"no-footer": true,
|
|
10104
|
+
size: "lg"
|
|
10105
|
+
}, {
|
|
10106
|
+
header: vue.withCtx((props)=>[
|
|
10107
|
+
vue.createElementVNode("div", _hoisted_6$2, [
|
|
10108
|
+
_cache[9] || (_cache[9] = vue.createElementVNode("div", null, [
|
|
10109
|
+
vue.createElementVNode("h5", {
|
|
10110
|
+
class: "mb-0"
|
|
10111
|
+
}, [
|
|
10112
|
+
vue.createElementVNode("i", {
|
|
10113
|
+
class: "fa fa-upload"
|
|
10114
|
+
}),
|
|
10115
|
+
vue.createTextVNode(" Upload ")
|
|
10116
|
+
])
|
|
10117
|
+
], -1)),
|
|
10118
|
+
vue.createElementVNode("div", _hoisted_7$1, [
|
|
10119
|
+
vue.createElementVNode("button", {
|
|
10120
|
+
type: "button",
|
|
10121
|
+
class: "btn btn-xs btn-secondary",
|
|
10122
|
+
onClick: vue.withModifiers(($event)=>props.close(), [
|
|
10123
|
+
"prevent"
|
|
10124
|
+
])
|
|
10125
|
+
}, _cache[8] || (_cache[8] = [
|
|
10126
|
+
vue.createElementVNode("i", {
|
|
10127
|
+
class: "fa fa-times"
|
|
10128
|
+
}, null, -1)
|
|
10129
|
+
]), 8, _hoisted_8$1)
|
|
8965
10130
|
])
|
|
8966
|
-
])
|
|
8967
|
-
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
|
|
8971
|
-
|
|
8972
|
-
|
|
8973
|
-
|
|
8974
|
-
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
class: "fa fa-trash"
|
|
8985
|
-
}, null, -1),
|
|
8986
|
-
vue.createTextVNode(" Delete ")
|
|
8987
|
-
]), 8, _hoisted_18)
|
|
8988
|
-
])
|
|
10131
|
+
])
|
|
10132
|
+
]),
|
|
10133
|
+
default: vue.withCtx(()=>[
|
|
10134
|
+
vue.createVNode(_component_FAnalysisBucketFileUpload, {
|
|
10135
|
+
entity: _ctx.entity,
|
|
10136
|
+
onFileUploaded: _ctx.handleFileUploaded,
|
|
10137
|
+
onUploaded: _ctx.handleUploaded,
|
|
10138
|
+
onFailed: _ctx.handleFailed
|
|
10139
|
+
}, null, 8, [
|
|
10140
|
+
"entity",
|
|
10141
|
+
"onFileUploaded",
|
|
10142
|
+
"onUploaded",
|
|
10143
|
+
"onFailed"
|
|
10144
|
+
])
|
|
10145
|
+
]),
|
|
10146
|
+
_: 1
|
|
10147
|
+
}, 8, [
|
|
10148
|
+
"modelValue"
|
|
8989
10149
|
])
|
|
8990
10150
|
])
|
|
8991
10151
|
]);
|
|
@@ -9166,11 +10326,20 @@ var _sfc_main$7 = vue.defineComponent({
|
|
|
9166
10326
|
});
|
|
9167
10327
|
|
|
9168
10328
|
const _hoisted_1$5 = {
|
|
10329
|
+
class: "row"
|
|
10330
|
+
};
|
|
10331
|
+
const _hoisted_2$4 = {
|
|
10332
|
+
class: "col-9"
|
|
10333
|
+
};
|
|
10334
|
+
const _hoisted_3$2 = {
|
|
10335
|
+
class: "col-3"
|
|
10336
|
+
};
|
|
10337
|
+
const _hoisted_4$2 = {
|
|
9169
10338
|
class: "alert alert-sm alert-warning"
|
|
9170
10339
|
};
|
|
9171
10340
|
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9172
|
-
const _component_FAnalysisImageCommand = vue.resolveComponent("FAnalysisImageCommand");
|
|
9173
10341
|
const _component_FAnalysisBucketFileManager = vue.resolveComponent("FAnalysisBucketFileManager");
|
|
10342
|
+
const _component_FAnalysisImageCommand = vue.resolveComponent("FAnalysisImageCommand");
|
|
9174
10343
|
const _component_FAnalysisBucket = vue.resolveComponent("FAnalysisBucket");
|
|
9175
10344
|
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
9176
10345
|
vue.createVNode(_component_FAnalysisBucket, {
|
|
@@ -9178,32 +10347,48 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9178
10347
|
"query-filters": _ctx.queryFilters
|
|
9179
10348
|
}, {
|
|
9180
10349
|
default: vue.withCtx(({ data: bucket })=>[
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9190
|
-
|
|
9191
|
-
|
|
9192
|
-
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9199
|
-
|
|
9200
|
-
|
|
9201
|
-
"
|
|
9202
|
-
|
|
10350
|
+
vue.createElementVNode("div", _hoisted_1$5, [
|
|
10351
|
+
vue.createElementVNode("div", _hoisted_2$4, [
|
|
10352
|
+
_cache[1] || (_cache[1] = vue.createElementVNode("h6", null, [
|
|
10353
|
+
vue.createElementVNode("i", {
|
|
10354
|
+
class: "fa fa-file"
|
|
10355
|
+
}),
|
|
10356
|
+
vue.createTextVNode(" Files")
|
|
10357
|
+
], -1)),
|
|
10358
|
+
vue.createVNode(_component_FAnalysisBucketFileManager, {
|
|
10359
|
+
entity: bucket,
|
|
10360
|
+
"file-entity": _ctx.entrypointEntity,
|
|
10361
|
+
onSetEntrypointFile: _ctx.handleEntrypointChanged,
|
|
10362
|
+
onFailed: _ctx.handleFailed
|
|
10363
|
+
}, null, 8, [
|
|
10364
|
+
"entity",
|
|
10365
|
+
"file-entity",
|
|
10366
|
+
"onSetEntrypointFile",
|
|
10367
|
+
"onFailed"
|
|
10368
|
+
])
|
|
10369
|
+
]),
|
|
10370
|
+
vue.createElementVNode("div", _hoisted_3$2, [
|
|
10371
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("h6", null, [
|
|
10372
|
+
vue.createElementVNode("i", {
|
|
10373
|
+
class: "fa fa-terminal"
|
|
10374
|
+
}),
|
|
10375
|
+
vue.createTextVNode(" Command")
|
|
10376
|
+
], -1)),
|
|
10377
|
+
vue.createVNode(_component_FAnalysisImageCommand, {
|
|
10378
|
+
class: "mt-2 mb-2",
|
|
10379
|
+
"master-image-id": _ctx.entity.master_image_id,
|
|
10380
|
+
"analysis-file": _ctx.entrypointEntity,
|
|
10381
|
+
"analysis-id": _ctx.entity.id
|
|
10382
|
+
}, null, 8, [
|
|
10383
|
+
"master-image-id",
|
|
10384
|
+
"analysis-file",
|
|
10385
|
+
"analysis-id"
|
|
10386
|
+
])
|
|
10387
|
+
])
|
|
9203
10388
|
])
|
|
9204
10389
|
]),
|
|
9205
10390
|
error: vue.withCtx(()=>[
|
|
9206
|
-
vue.createElementVNode("div",
|
|
10391
|
+
vue.createElementVNode("div", _hoisted_4$2, [
|
|
9207
10392
|
_cache[4] || (_cache[4] = vue.createElementVNode("p", null, " The code bucket does not exist. Therefore, no files can be uploaded. ", -1)),
|
|
9208
10393
|
vue.createElementVNode("button", {
|
|
9209
10394
|
type: "button",
|
|
@@ -10862,6 +12047,9 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
10862
12047
|
FAnalysisPipeline: TrainPipeline,
|
|
10863
12048
|
FAnalysisWizard: FAnalysisWizard,
|
|
10864
12049
|
FEntityDelete: FEntityDelete,
|
|
12050
|
+
FMasterImageEventLog: FMasterImageEventLog,
|
|
12051
|
+
FMasterImageEventLogs: FMasterImageEventLogs,
|
|
12052
|
+
FNodeCrypto: FNodeCrypto,
|
|
10865
12053
|
FNodeForm: FNodeForm,
|
|
10866
12054
|
FNodeRegistryProject: FNodeRegistryProject,
|
|
10867
12055
|
FNodeRobotEntity: FNodeRobot,
|
|
@@ -10960,6 +12148,9 @@ exports.FAnalysisNodes = FAnalysisNodes;
|
|
|
10960
12148
|
exports.FAnalysisPipeline = TrainPipeline;
|
|
10961
12149
|
exports.FAnalysisWizard = FAnalysisWizard;
|
|
10962
12150
|
exports.FEntityDelete = FEntityDelete;
|
|
12151
|
+
exports.FMasterImageEventLog = FMasterImageEventLog;
|
|
12152
|
+
exports.FMasterImageEventLogs = FMasterImageEventLogs;
|
|
12153
|
+
exports.FNodeCrypto = FNodeCrypto;
|
|
10963
12154
|
exports.FNodeForm = FNodeForm;
|
|
10964
12155
|
exports.FNodeRegistryProject = FNodeRegistryProject;
|
|
10965
12156
|
exports.FNodeRobotEntity = FNodeRobot;
|