@nymphjs/tilmeld-setup 1.0.0-beta.96 → 1.0.0-beta.98
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/CHANGELOG.md +10 -0
- package/app/src/routes/UserEdit.svelte +2 -1
- package/dist/app/index.js +89 -32
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-beta.98](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.97...v1.0.0-beta.98) (2025-10-24)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @nymphjs/tilmeld-setup
|
|
9
|
+
|
|
10
|
+
# [1.0.0-beta.97](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.96...v1.0.0-beta.97) (2025-10-04)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- password verify on user edit page when password is empty ([bf797f7](https://github.com/sciactive/nymphjs/commit/bf797f77cc08f73731b9e20e413be6e7c0cec213))
|
|
15
|
+
|
|
6
16
|
# [1.0.0-beta.96](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.95...v1.0.0-beta.96) (2025-09-01)
|
|
7
17
|
|
|
8
18
|
**Note:** Version bump only for package @nymphjs/tilmeld-setup
|
|
@@ -1067,8 +1067,9 @@
|
|
|
1067
1067
|
passwordVerify === ''
|
|
1068
1068
|
) {
|
|
1069
1069
|
passwordVerified = undefined;
|
|
1070
|
+
} else {
|
|
1071
|
+
passwordVerified = $entity.passwordTemp === passwordVerify;
|
|
1070
1072
|
}
|
|
1071
|
-
passwordVerified = $entity.passwordTemp === passwordVerify;
|
|
1072
1073
|
}
|
|
1073
1074
|
|
|
1074
1075
|
function addAbility() {
|
package/dist/app/index.js
CHANGED
|
@@ -28334,7 +28334,7 @@
|
|
|
28334
28334
|
function selectorParser({ query, selector, qrefMap, bareHandler, }) {
|
|
28335
28335
|
let curQuery = query;
|
|
28336
28336
|
// eg. user<{User name="Hunter"}> or user!<{User name="Hunter"}>
|
|
28337
|
-
const qrefRegex = /(?: |^)(\
|
|
28337
|
+
const qrefRegex = /(?: |^)([^\s=\[\]<>{}]+?)!?<\{(\w+) (.*?[^\\])\}>(?= |$)/g;
|
|
28338
28338
|
const qrefMatch = curQuery.match(qrefRegex);
|
|
28339
28339
|
if (qrefMatch) {
|
|
28340
28340
|
selector.qref = [];
|
|
@@ -28374,18 +28374,72 @@
|
|
|
28374
28374
|
}
|
|
28375
28375
|
}
|
|
28376
28376
|
curQuery = curQuery.replace(qrefRegex, '');
|
|
28377
|
-
// eg.
|
|
28378
|
-
const
|
|
28377
|
+
// eg. someArray=[1,2] or someObject={"prop":"some value"}
|
|
28378
|
+
const equalJsonRegex = /(?: |^)([^\s=\[\]<>{}]+?)!?=(\{|\[)/g;
|
|
28379
|
+
const equalJsonMatch = [...curQuery.matchAll(equalJsonRegex)];
|
|
28380
|
+
{
|
|
28381
|
+
if (!('equal' in selector)) {
|
|
28382
|
+
selector.equal = [];
|
|
28383
|
+
}
|
|
28384
|
+
if (!('!equal' in selector)) {
|
|
28385
|
+
selector['!equal'] = [];
|
|
28386
|
+
}
|
|
28387
|
+
// Work backward to find all long JSON values.
|
|
28388
|
+
for (let i = equalJsonMatch.length - 1; i >= 0; i--) {
|
|
28389
|
+
const match = equalJsonMatch[i];
|
|
28390
|
+
let [name, opener] = splitn(match[0].trim(), '=', 2);
|
|
28391
|
+
let start = match.index + match[0].length - 1;
|
|
28392
|
+
let nextEndToken = curQuery.indexOf(opener === '{' ? '}' : ']', start);
|
|
28393
|
+
while (nextEndToken !== -1) {
|
|
28394
|
+
try {
|
|
28395
|
+
if (name.endsWith('!')) {
|
|
28396
|
+
selector['!equal'].unshift([
|
|
28397
|
+
name.slice(0, -1),
|
|
28398
|
+
JSON.parse(curQuery.substring(start, nextEndToken + 1)),
|
|
28399
|
+
]);
|
|
28400
|
+
}
|
|
28401
|
+
else {
|
|
28402
|
+
selector.equal.unshift([
|
|
28403
|
+
name,
|
|
28404
|
+
JSON.parse(curQuery.substring(start, nextEndToken + 1)),
|
|
28405
|
+
]);
|
|
28406
|
+
}
|
|
28407
|
+
curQuery =
|
|
28408
|
+
curQuery.substring(0, match.index) +
|
|
28409
|
+
curQuery.substring(nextEndToken + 1);
|
|
28410
|
+
break;
|
|
28411
|
+
}
|
|
28412
|
+
catch (e) {
|
|
28413
|
+
nextEndToken = curQuery.indexOf(opener === '{' ? '}' : ']', nextEndToken + 1);
|
|
28414
|
+
}
|
|
28415
|
+
}
|
|
28416
|
+
}
|
|
28417
|
+
if (selector.equal == null || !selector.equal.length) {
|
|
28418
|
+
delete selector.equal;
|
|
28419
|
+
}
|
|
28420
|
+
if (selector['!equal'] == null || !selector['!equal'].length) {
|
|
28421
|
+
delete selector['!equal'];
|
|
28422
|
+
}
|
|
28423
|
+
}
|
|
28424
|
+
// eg. name=Marty or name="Marty McFly" or enabled=true
|
|
28425
|
+
const equalRegex = /(?: |^)([^\s=\[\]<>{}]+?)!?=(""|".*?[^\\]"|[^ ]+)(?= |$)/g;
|
|
28379
28426
|
const equalMatch = curQuery.match(equalRegex);
|
|
28380
28427
|
if (equalMatch) {
|
|
28381
|
-
|
|
28382
|
-
|
|
28428
|
+
if (!('equal' in selector)) {
|
|
28429
|
+
selector.equal = [];
|
|
28430
|
+
}
|
|
28431
|
+
if (!('!equal' in selector)) {
|
|
28432
|
+
selector['!equal'] = [];
|
|
28433
|
+
}
|
|
28383
28434
|
for (let match of equalMatch) {
|
|
28384
28435
|
try {
|
|
28385
28436
|
let [name, value] = splitn(match.trim(), '=', 2);
|
|
28386
28437
|
try {
|
|
28387
28438
|
if (name.endsWith('!')) {
|
|
28388
|
-
selector['!equal'].push([
|
|
28439
|
+
selector['!equal'].push([
|
|
28440
|
+
name.slice(0, -1),
|
|
28441
|
+
JSON.parse(value),
|
|
28442
|
+
]);
|
|
28389
28443
|
}
|
|
28390
28444
|
else {
|
|
28391
28445
|
selector.equal.push([name, JSON.parse(value)]);
|
|
@@ -28393,10 +28447,16 @@
|
|
|
28393
28447
|
}
|
|
28394
28448
|
catch (e) {
|
|
28395
28449
|
if (name.endsWith('!')) {
|
|
28396
|
-
selector['!equal'].push([
|
|
28450
|
+
selector['!equal'].push([
|
|
28451
|
+
name.slice(0, -1),
|
|
28452
|
+
unQuoteString(value),
|
|
28453
|
+
]);
|
|
28397
28454
|
}
|
|
28398
28455
|
else {
|
|
28399
|
-
selector.equal.push([
|
|
28456
|
+
selector.equal.push([
|
|
28457
|
+
name,
|
|
28458
|
+
unQuoteString(value),
|
|
28459
|
+
]);
|
|
28400
28460
|
}
|
|
28401
28461
|
}
|
|
28402
28462
|
}
|
|
@@ -28404,16 +28464,16 @@
|
|
|
28404
28464
|
continue;
|
|
28405
28465
|
}
|
|
28406
28466
|
}
|
|
28407
|
-
if (!selector.equal.length) {
|
|
28467
|
+
if (selector.equal == null || !selector.equal.length) {
|
|
28408
28468
|
delete selector.equal;
|
|
28409
28469
|
}
|
|
28410
|
-
if (!selector['!equal'].length) {
|
|
28470
|
+
if (selector['!equal'] == null || !selector['!equal'].length) {
|
|
28411
28471
|
delete selector['!equal'];
|
|
28412
28472
|
}
|
|
28413
28473
|
}
|
|
28414
28474
|
curQuery = curQuery.replace(equalRegex, '');
|
|
28415
28475
|
// eg. user<{790274347f9b3a018c2cedee}> or user!<{790274347f9b3a018c2cedee}>
|
|
28416
|
-
const refRegex = /(?: |^)(\
|
|
28476
|
+
const refRegex = /(?: |^)([^\s=\[\]<>{}]+?)!?<\{([0-9a-f]{24})\}>(?= |$)/g;
|
|
28417
28477
|
const refMatch = curQuery.match(refRegex);
|
|
28418
28478
|
if (refMatch) {
|
|
28419
28479
|
selector.ref = [];
|
|
@@ -28441,7 +28501,7 @@
|
|
|
28441
28501
|
}
|
|
28442
28502
|
curQuery = curQuery.replace(refRegex, '');
|
|
28443
28503
|
// eg. someArrayOfNumbers<10> or someObject!<"some string">
|
|
28444
|
-
const containRegex = /(?: |^)(\
|
|
28504
|
+
const containRegex = /(?: |^)([^\s=\[\]<>{}]+?)!?(<(?:[^"][^>]*?|".*?[^\\]"))>(?= |$)/g;
|
|
28445
28505
|
const containMatch = curQuery.match(containRegex);
|
|
28446
28506
|
if (containMatch) {
|
|
28447
28507
|
selector.contain = [];
|
|
@@ -28453,22 +28513,22 @@
|
|
|
28453
28513
|
if (name.endsWith('!')) {
|
|
28454
28514
|
selector['!contain'].push([
|
|
28455
28515
|
name.slice(0, -1),
|
|
28456
|
-
JSON.parse(
|
|
28516
|
+
JSON.parse(unQuoteString(value)),
|
|
28457
28517
|
]);
|
|
28458
28518
|
}
|
|
28459
28519
|
else {
|
|
28460
|
-
selector.contain.push([name, JSON.parse(
|
|
28520
|
+
selector.contain.push([name, JSON.parse(unQuoteString(value))]);
|
|
28461
28521
|
}
|
|
28462
28522
|
}
|
|
28463
28523
|
catch (e) {
|
|
28464
28524
|
if (name.endsWith('!')) {
|
|
28465
28525
|
selector['!contain'].push([
|
|
28466
28526
|
name.slice(0, -1),
|
|
28467
|
-
|
|
28527
|
+
unQuoteString(value),
|
|
28468
28528
|
]);
|
|
28469
28529
|
}
|
|
28470
28530
|
else {
|
|
28471
|
-
selector.contain.push([name,
|
|
28531
|
+
selector.contain.push([name, unQuoteString(value)]);
|
|
28472
28532
|
}
|
|
28473
28533
|
}
|
|
28474
28534
|
}
|
|
@@ -28485,7 +28545,7 @@
|
|
|
28485
28545
|
}
|
|
28486
28546
|
curQuery = curQuery.replace(containRegex, '');
|
|
28487
28547
|
// eg. name~/Hunter/ or name!~/hunter/i
|
|
28488
|
-
const posixRegex = /(?: |^)(\
|
|
28548
|
+
const posixRegex = /(?: |^)([^\s=\[\]<>{}]+?)!?~(\/\/|\/.*?[^\\]\/)i?(?= |$)/g;
|
|
28489
28549
|
const posixMatch = curQuery.match(posixRegex);
|
|
28490
28550
|
if (posixMatch) {
|
|
28491
28551
|
selector.match = [];
|
|
@@ -28537,7 +28597,7 @@
|
|
|
28537
28597
|
}
|
|
28538
28598
|
curQuery = curQuery.replace(posixRegex, '');
|
|
28539
28599
|
// eg. name~Hunter or name!~"hunter"i
|
|
28540
|
-
const likeRegex = /(?: |^)(\
|
|
28600
|
+
const likeRegex = /(?: |^)([^\s=\[\]<>{}]+?)!?~(""i?|".*?[^\\]"i?|[^ ]+)(?= |$)/g;
|
|
28541
28601
|
const likeMatch = curQuery.match(likeRegex);
|
|
28542
28602
|
if (likeMatch) {
|
|
28543
28603
|
selector.like = [];
|
|
@@ -28614,7 +28674,7 @@
|
|
|
28614
28674
|
}
|
|
28615
28675
|
curQuery = curQuery.replace(guidRegex, '');
|
|
28616
28676
|
// eg. [enabled] or [!defaultPrimaryGroup]
|
|
28617
|
-
const truthyRegex = /(?: |^)\[(
|
|
28677
|
+
const truthyRegex = /(?: |^)\[(!?[^\s=\[\]<>{}]+?)\](?= |$)/g;
|
|
28618
28678
|
const truthyMatch = curQuery.match(truthyRegex);
|
|
28619
28679
|
if (truthyMatch) {
|
|
28620
28680
|
selector.truthy = [];
|
|
@@ -28670,7 +28730,7 @@
|
|
|
28670
28730
|
}
|
|
28671
28731
|
curQuery = curQuery.replace(tagRegex, '');
|
|
28672
28732
|
// eg. cdate>15
|
|
28673
|
-
const gtRegex = /(?: |^)(\
|
|
28733
|
+
const gtRegex = /(?: |^)([^\s=\[\]<>{}]+?)>(-?\d+(?:\.\d+)?)(?= |$)/g;
|
|
28674
28734
|
const gtMatch = curQuery.match(gtRegex);
|
|
28675
28735
|
if (gtMatch) {
|
|
28676
28736
|
selector.gt = [];
|
|
@@ -28689,7 +28749,7 @@
|
|
|
28689
28749
|
}
|
|
28690
28750
|
curQuery = curQuery.replace(gtRegex, '');
|
|
28691
28751
|
// eg. cdate>yesterday or cdate>"2 days ago"
|
|
28692
|
-
const gtRelativeRegex = /(?: |^)(\
|
|
28752
|
+
const gtRelativeRegex = /(?: |^)([^\s=\[\]<>{}]+?)>(\w+|"[^"]+")(?= |$)/g;
|
|
28693
28753
|
const gtRelativeMatch = curQuery.match(gtRelativeRegex);
|
|
28694
28754
|
if (gtRelativeMatch) {
|
|
28695
28755
|
if (selector.gt == null) {
|
|
@@ -28714,7 +28774,7 @@
|
|
|
28714
28774
|
}
|
|
28715
28775
|
curQuery = curQuery.replace(gtRelativeRegex, '');
|
|
28716
28776
|
// eg. cdate>=15
|
|
28717
|
-
const gteRegex = /(?: |^)(\
|
|
28777
|
+
const gteRegex = /(?: |^)([^\s=\[\]<>{}]+?)>=(-?\d+(?:\.\d+)?)(?= |$)/g;
|
|
28718
28778
|
const gteMatch = curQuery.match(gteRegex);
|
|
28719
28779
|
if (gteMatch) {
|
|
28720
28780
|
selector.gte = [];
|
|
@@ -28733,7 +28793,7 @@
|
|
|
28733
28793
|
}
|
|
28734
28794
|
curQuery = curQuery.replace(gteRegex, '');
|
|
28735
28795
|
// eg. cdate>=yesterday or cdate>="2 days ago"
|
|
28736
|
-
const gteRelativeRegex = /(?: |^)(\
|
|
28796
|
+
const gteRelativeRegex = /(?: |^)([^\s=\[\]<>{}]+?)>=(\w+|"[^"]+")(?= |$)/g;
|
|
28737
28797
|
const gteRelativeMatch = curQuery.match(gteRelativeRegex);
|
|
28738
28798
|
if (gteRelativeMatch) {
|
|
28739
28799
|
if (selector.gte == null) {
|
|
@@ -28758,7 +28818,7 @@
|
|
|
28758
28818
|
}
|
|
28759
28819
|
curQuery = curQuery.replace(gteRelativeRegex, '');
|
|
28760
28820
|
// eg. cdate<15
|
|
28761
|
-
const ltRegex = /(?: |^)(\
|
|
28821
|
+
const ltRegex = /(?: |^)([^\s=\[\]<>{}]+?)<(-?\d+(?:\.\d+)?)(?= |$)/g;
|
|
28762
28822
|
const ltMatch = curQuery.match(ltRegex);
|
|
28763
28823
|
if (ltMatch) {
|
|
28764
28824
|
selector.lt = [];
|
|
@@ -28777,7 +28837,7 @@
|
|
|
28777
28837
|
}
|
|
28778
28838
|
curQuery = curQuery.replace(ltRegex, '');
|
|
28779
28839
|
// eg. cdate<yesterday or cdate<"2 days ago"
|
|
28780
|
-
const ltRelativeRegex = /(?: |^)(\
|
|
28840
|
+
const ltRelativeRegex = /(?: |^)([^\s=\[\]<>{}]+?)<(\w+|"[^"]+")(?= |$)/g;
|
|
28781
28841
|
const ltRelativeMatch = curQuery.match(ltRelativeRegex);
|
|
28782
28842
|
if (ltRelativeMatch) {
|
|
28783
28843
|
if (selector.lt == null) {
|
|
@@ -28802,7 +28862,7 @@
|
|
|
28802
28862
|
}
|
|
28803
28863
|
curQuery = curQuery.replace(ltRelativeRegex, '');
|
|
28804
28864
|
// eg. cdate<=15
|
|
28805
|
-
const lteRegex = /(?: |^)(\
|
|
28865
|
+
const lteRegex = /(?: |^)([^\s=\[\]<>{}]+?)<=(-?\d+(?:\.\d+)?)(?= |$)/g;
|
|
28806
28866
|
const lteMatch = curQuery.match(lteRegex);
|
|
28807
28867
|
if (lteMatch) {
|
|
28808
28868
|
selector.lte = [];
|
|
@@ -28821,7 +28881,7 @@
|
|
|
28821
28881
|
}
|
|
28822
28882
|
curQuery = curQuery.replace(lteRegex, '');
|
|
28823
28883
|
// eg. cdate<=yesterday or cdate<="2 days ago"
|
|
28824
|
-
const lteRelativeRegex = /(?: |^)(\
|
|
28884
|
+
const lteRelativeRegex = /(?: |^)([^\s=\[\]<>{}]+?)<=(\w+|"[^"]+")(?= |$)/g;
|
|
28825
28885
|
const lteRelativeMatch = curQuery.match(lteRelativeRegex);
|
|
28826
28886
|
if (lteRelativeMatch) {
|
|
28827
28887
|
if (selector.lte == null) {
|
|
@@ -28853,9 +28913,6 @@
|
|
|
28853
28913
|
}
|
|
28854
28914
|
return input;
|
|
28855
28915
|
}
|
|
28856
|
-
function unQuoteAngles(input) {
|
|
28857
|
-
return input.replace(/\\</g, '<').replace(/\\>/g, '>').replace(/\\\\/g, '\\');
|
|
28858
|
-
}
|
|
28859
28916
|
function unQuoteCurlies(input) {
|
|
28860
28917
|
return input
|
|
28861
28918
|
.replace(/\\\{/g, '{')
|
|
@@ -33926,9 +33983,9 @@
|
|
|
33926
33983
|
function doVerifyPassword() {
|
|
33927
33984
|
if (($entity().passwordTemp == null || $entity().passwordTemp === '') && get(passwordVerify) === '') {
|
|
33928
33985
|
set(passwordVerified, undefined);
|
|
33986
|
+
} else {
|
|
33987
|
+
set(passwordVerified, $entity().passwordTemp === get(passwordVerify));
|
|
33929
33988
|
}
|
|
33930
|
-
|
|
33931
|
-
set(passwordVerified, $entity().passwordTemp === get(passwordVerify));
|
|
33932
33989
|
}
|
|
33933
33990
|
|
|
33934
33991
|
function addAbility() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/tilmeld-setup",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.98",
|
|
4
4
|
"description": "Nymph.js - Tilmeld Setup App",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
},
|
|
36
36
|
"license": "Apache-2.0",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@nymphjs/nymph": "^1.0.0-beta.
|
|
39
|
-
"@nymphjs/tilmeld": "^1.0.0-beta.
|
|
38
|
+
"@nymphjs/nymph": "^1.0.0-beta.98",
|
|
39
|
+
"@nymphjs/tilmeld": "^1.0.0-beta.98",
|
|
40
40
|
"express": "^4.21.2",
|
|
41
41
|
"locutus": "^2.0.32"
|
|
42
42
|
},
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"@material/elevation": "^14.0.0",
|
|
45
45
|
"@material/typography": "^14.0.0",
|
|
46
46
|
"@mdi/js": "^7.4.47",
|
|
47
|
-
"@nymphjs/client": "^1.0.0-beta.
|
|
48
|
-
"@nymphjs/driver-sqlite3": "^1.0.0-beta.
|
|
49
|
-
"@nymphjs/query-parser": "^1.0.0-beta.
|
|
50
|
-
"@nymphjs/server": "^1.0.0-beta.
|
|
51
|
-
"@nymphjs/tilmeld-client": "^1.0.0-beta.
|
|
52
|
-
"@nymphjs/tilmeld-components": "^1.0.0-beta.
|
|
47
|
+
"@nymphjs/client": "^1.0.0-beta.98",
|
|
48
|
+
"@nymphjs/driver-sqlite3": "^1.0.0-beta.98",
|
|
49
|
+
"@nymphjs/query-parser": "^1.0.0-beta.98",
|
|
50
|
+
"@nymphjs/server": "^1.0.0-beta.98",
|
|
51
|
+
"@nymphjs/tilmeld-client": "^1.0.0-beta.98",
|
|
52
|
+
"@nymphjs/tilmeld-components": "^1.0.0-beta.98",
|
|
53
53
|
"@rollup/plugin-commonjs": "^28.0.1",
|
|
54
54
|
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
55
55
|
"@rollup/plugin-typescript": "^12.1.1",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"tslib": "^2.8.1",
|
|
92
92
|
"typescript": "^5.7.2"
|
|
93
93
|
},
|
|
94
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "4d73463289302e50262f8a6aa31ae1825a3b3d6e"
|
|
95
95
|
}
|