@gemeentenijmegen/webapp 0.0.3 → 0.0.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/.jsii +3 -3
- package/assets/webapp/login/login.lambda/index.js +543 -529
- package/assets/webapp/logout/logout.lambda/index.js +488 -474
- package/lib/index.d.ts +0 -2
- package/lib/index.js +7 -5
- package/lib/webapp/Api.js +1 -1
- package/lib/webapp/Cloudfront.js +1 -1
- package/lib/webapp/Webapp.js +2 -2
- package/lib/webapp/Webpage.js +5 -5
- package/lib/webapp/auth/AuthRequestHandler.js +1 -1
- package/lib/webapp/auth/auth.lambda.js +1 -1
- package/lib/webapp/login/login.lambda.js +1 -1
- package/lib/webapp/login/loginRequestHandler.js +3 -3
- package/lib/webapp/logout/handleLogoutRequest.js +2 -2
- package/lib/webapp/logout/logout.lambda.js +2 -2
- package/lib/webapp/util/Files.js +2 -2
- package/lib/webapp/util/OpenIDConnect.js +4 -4
- package/lib/webapp/util/footer.d.ts +2 -0
- package/lib/webapp/util/footer.js +107 -0
- package/lib/webapp/util/header.d.ts +2 -0
- package/lib/webapp/util/header.js +98 -0
- package/lib/webapp/util/render.d.ts +1 -1
- package/lib/webapp/util/render.js +8 -7
- package/package.json +4 -8
|
@@ -98,11 +98,11 @@ var require_Response = __commonJS({
|
|
|
98
98
|
var require_cookie = __commonJS({
|
|
99
99
|
"node_modules/@gemeentenijmegen/session/node_modules/cookie/index.js"(exports2) {
|
|
100
100
|
"use strict";
|
|
101
|
-
exports2.parse =
|
|
101
|
+
exports2.parse = parse;
|
|
102
102
|
exports2.serialize = serialize;
|
|
103
103
|
var __toString = Object.prototype.toString;
|
|
104
104
|
var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
|
|
105
|
-
function
|
|
105
|
+
function parse(str, options) {
|
|
106
106
|
if (typeof str !== "string") {
|
|
107
107
|
throw new TypeError("argument str must be a string");
|
|
108
108
|
}
|
|
@@ -417,11 +417,11 @@ var require_lib = __commonJS({
|
|
|
417
417
|
var require_cookie2 = __commonJS({
|
|
418
418
|
"node_modules/cookie/index.js"(exports2) {
|
|
419
419
|
"use strict";
|
|
420
|
-
exports2.parse =
|
|
420
|
+
exports2.parse = parse;
|
|
421
421
|
exports2.serialize = serialize;
|
|
422
422
|
var __toString = Object.prototype.toString;
|
|
423
423
|
var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
|
|
424
|
-
function
|
|
424
|
+
function parse(str, options) {
|
|
425
425
|
if (typeof str !== "string") {
|
|
426
426
|
throw new TypeError("argument str must be a string");
|
|
427
427
|
}
|
|
@@ -558,6 +558,478 @@ var require_cookie2 = __commonJS({
|
|
|
558
558
|
}
|
|
559
559
|
});
|
|
560
560
|
|
|
561
|
+
// node_modules/mustache/mustache.js
|
|
562
|
+
var require_mustache = __commonJS({
|
|
563
|
+
"node_modules/mustache/mustache.js"(exports2, module2) {
|
|
564
|
+
"use strict";
|
|
565
|
+
(function(global, factory) {
|
|
566
|
+
typeof exports2 === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = global || self, global.Mustache = factory());
|
|
567
|
+
})(exports2, function() {
|
|
568
|
+
"use strict";
|
|
569
|
+
var objectToString = Object.prototype.toString;
|
|
570
|
+
var isArray = Array.isArray || function isArrayPolyfill(object) {
|
|
571
|
+
return objectToString.call(object) === "[object Array]";
|
|
572
|
+
};
|
|
573
|
+
function isFunction(object) {
|
|
574
|
+
return typeof object === "function";
|
|
575
|
+
}
|
|
576
|
+
function typeStr(obj) {
|
|
577
|
+
return isArray(obj) ? "array" : typeof obj;
|
|
578
|
+
}
|
|
579
|
+
function escapeRegExp(string) {
|
|
580
|
+
return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
|
|
581
|
+
}
|
|
582
|
+
function hasProperty(obj, propName) {
|
|
583
|
+
return obj != null && typeof obj === "object" && propName in obj;
|
|
584
|
+
}
|
|
585
|
+
function primitiveHasOwnProperty(primitive, propName) {
|
|
586
|
+
return primitive != null && typeof primitive !== "object" && primitive.hasOwnProperty && primitive.hasOwnProperty(propName);
|
|
587
|
+
}
|
|
588
|
+
var regExpTest = RegExp.prototype.test;
|
|
589
|
+
function testRegExp(re, string) {
|
|
590
|
+
return regExpTest.call(re, string);
|
|
591
|
+
}
|
|
592
|
+
var nonSpaceRe = /\S/;
|
|
593
|
+
function isWhitespace(string) {
|
|
594
|
+
return !testRegExp(nonSpaceRe, string);
|
|
595
|
+
}
|
|
596
|
+
var entityMap = {
|
|
597
|
+
"&": "&",
|
|
598
|
+
"<": "<",
|
|
599
|
+
">": ">",
|
|
600
|
+
'"': """,
|
|
601
|
+
"'": "'",
|
|
602
|
+
"/": "/",
|
|
603
|
+
"`": "`",
|
|
604
|
+
"=": "="
|
|
605
|
+
};
|
|
606
|
+
function escapeHtml(string) {
|
|
607
|
+
return String(string).replace(/[&<>"'`=\/]/g, function fromEntityMap(s) {
|
|
608
|
+
return entityMap[s];
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
var whiteRe = /\s*/;
|
|
612
|
+
var spaceRe = /\s+/;
|
|
613
|
+
var equalsRe = /\s*=/;
|
|
614
|
+
var curlyRe = /\s*\}/;
|
|
615
|
+
var tagRe = /#|\^|\/|>|\{|&|=|!/;
|
|
616
|
+
function parseTemplate(template3, tags) {
|
|
617
|
+
if (!template3)
|
|
618
|
+
return [];
|
|
619
|
+
var lineHasNonSpace = false;
|
|
620
|
+
var sections = [];
|
|
621
|
+
var tokens = [];
|
|
622
|
+
var spaces = [];
|
|
623
|
+
var hasTag = false;
|
|
624
|
+
var nonSpace = false;
|
|
625
|
+
var indentation = "";
|
|
626
|
+
var tagIndex = 0;
|
|
627
|
+
function stripSpace() {
|
|
628
|
+
if (hasTag && !nonSpace) {
|
|
629
|
+
while (spaces.length)
|
|
630
|
+
delete tokens[spaces.pop()];
|
|
631
|
+
} else {
|
|
632
|
+
spaces = [];
|
|
633
|
+
}
|
|
634
|
+
hasTag = false;
|
|
635
|
+
nonSpace = false;
|
|
636
|
+
}
|
|
637
|
+
var openingTagRe, closingTagRe, closingCurlyRe;
|
|
638
|
+
function compileTags(tagsToCompile) {
|
|
639
|
+
if (typeof tagsToCompile === "string")
|
|
640
|
+
tagsToCompile = tagsToCompile.split(spaceRe, 2);
|
|
641
|
+
if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)
|
|
642
|
+
throw new Error("Invalid tags: " + tagsToCompile);
|
|
643
|
+
openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + "\\s*");
|
|
644
|
+
closingTagRe = new RegExp("\\s*" + escapeRegExp(tagsToCompile[1]));
|
|
645
|
+
closingCurlyRe = new RegExp("\\s*" + escapeRegExp("}" + tagsToCompile[1]));
|
|
646
|
+
}
|
|
647
|
+
compileTags(tags || mustache2.tags);
|
|
648
|
+
var scanner = new Scanner(template3);
|
|
649
|
+
var start, type, value, chr, token, openSection;
|
|
650
|
+
while (!scanner.eos()) {
|
|
651
|
+
start = scanner.pos;
|
|
652
|
+
value = scanner.scanUntil(openingTagRe);
|
|
653
|
+
if (value) {
|
|
654
|
+
for (var i = 0, valueLength = value.length; i < valueLength; ++i) {
|
|
655
|
+
chr = value.charAt(i);
|
|
656
|
+
if (isWhitespace(chr)) {
|
|
657
|
+
spaces.push(tokens.length);
|
|
658
|
+
indentation += chr;
|
|
659
|
+
} else {
|
|
660
|
+
nonSpace = true;
|
|
661
|
+
lineHasNonSpace = true;
|
|
662
|
+
indentation += " ";
|
|
663
|
+
}
|
|
664
|
+
tokens.push(["text", chr, start, start + 1]);
|
|
665
|
+
start += 1;
|
|
666
|
+
if (chr === "\n") {
|
|
667
|
+
stripSpace();
|
|
668
|
+
indentation = "";
|
|
669
|
+
tagIndex = 0;
|
|
670
|
+
lineHasNonSpace = false;
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
if (!scanner.scan(openingTagRe))
|
|
675
|
+
break;
|
|
676
|
+
hasTag = true;
|
|
677
|
+
type = scanner.scan(tagRe) || "name";
|
|
678
|
+
scanner.scan(whiteRe);
|
|
679
|
+
if (type === "=") {
|
|
680
|
+
value = scanner.scanUntil(equalsRe);
|
|
681
|
+
scanner.scan(equalsRe);
|
|
682
|
+
scanner.scanUntil(closingTagRe);
|
|
683
|
+
} else if (type === "{") {
|
|
684
|
+
value = scanner.scanUntil(closingCurlyRe);
|
|
685
|
+
scanner.scan(curlyRe);
|
|
686
|
+
scanner.scanUntil(closingTagRe);
|
|
687
|
+
type = "&";
|
|
688
|
+
} else {
|
|
689
|
+
value = scanner.scanUntil(closingTagRe);
|
|
690
|
+
}
|
|
691
|
+
if (!scanner.scan(closingTagRe))
|
|
692
|
+
throw new Error("Unclosed tag at " + scanner.pos);
|
|
693
|
+
if (type == ">") {
|
|
694
|
+
token = [type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace];
|
|
695
|
+
} else {
|
|
696
|
+
token = [type, value, start, scanner.pos];
|
|
697
|
+
}
|
|
698
|
+
tagIndex++;
|
|
699
|
+
tokens.push(token);
|
|
700
|
+
if (type === "#" || type === "^") {
|
|
701
|
+
sections.push(token);
|
|
702
|
+
} else if (type === "/") {
|
|
703
|
+
openSection = sections.pop();
|
|
704
|
+
if (!openSection)
|
|
705
|
+
throw new Error('Unopened section "' + value + '" at ' + start);
|
|
706
|
+
if (openSection[1] !== value)
|
|
707
|
+
throw new Error('Unclosed section "' + openSection[1] + '" at ' + start);
|
|
708
|
+
} else if (type === "name" || type === "{" || type === "&") {
|
|
709
|
+
nonSpace = true;
|
|
710
|
+
} else if (type === "=") {
|
|
711
|
+
compileTags(value);
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
stripSpace();
|
|
715
|
+
openSection = sections.pop();
|
|
716
|
+
if (openSection)
|
|
717
|
+
throw new Error('Unclosed section "' + openSection[1] + '" at ' + scanner.pos);
|
|
718
|
+
return nestTokens(squashTokens(tokens));
|
|
719
|
+
}
|
|
720
|
+
function squashTokens(tokens) {
|
|
721
|
+
var squashedTokens = [];
|
|
722
|
+
var token, lastToken;
|
|
723
|
+
for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
|
|
724
|
+
token = tokens[i];
|
|
725
|
+
if (token) {
|
|
726
|
+
if (token[0] === "text" && lastToken && lastToken[0] === "text") {
|
|
727
|
+
lastToken[1] += token[1];
|
|
728
|
+
lastToken[3] = token[3];
|
|
729
|
+
} else {
|
|
730
|
+
squashedTokens.push(token);
|
|
731
|
+
lastToken = token;
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
return squashedTokens;
|
|
736
|
+
}
|
|
737
|
+
function nestTokens(tokens) {
|
|
738
|
+
var nestedTokens = [];
|
|
739
|
+
var collector = nestedTokens;
|
|
740
|
+
var sections = [];
|
|
741
|
+
var token, section;
|
|
742
|
+
for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
|
|
743
|
+
token = tokens[i];
|
|
744
|
+
switch (token[0]) {
|
|
745
|
+
case "#":
|
|
746
|
+
case "^":
|
|
747
|
+
collector.push(token);
|
|
748
|
+
sections.push(token);
|
|
749
|
+
collector = token[4] = [];
|
|
750
|
+
break;
|
|
751
|
+
case "/":
|
|
752
|
+
section = sections.pop();
|
|
753
|
+
section[5] = token[2];
|
|
754
|
+
collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;
|
|
755
|
+
break;
|
|
756
|
+
default:
|
|
757
|
+
collector.push(token);
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
return nestedTokens;
|
|
761
|
+
}
|
|
762
|
+
function Scanner(string) {
|
|
763
|
+
this.string = string;
|
|
764
|
+
this.tail = string;
|
|
765
|
+
this.pos = 0;
|
|
766
|
+
}
|
|
767
|
+
Scanner.prototype.eos = function eos() {
|
|
768
|
+
return this.tail === "";
|
|
769
|
+
};
|
|
770
|
+
Scanner.prototype.scan = function scan(re) {
|
|
771
|
+
var match = this.tail.match(re);
|
|
772
|
+
if (!match || match.index !== 0)
|
|
773
|
+
return "";
|
|
774
|
+
var string = match[0];
|
|
775
|
+
this.tail = this.tail.substring(string.length);
|
|
776
|
+
this.pos += string.length;
|
|
777
|
+
return string;
|
|
778
|
+
};
|
|
779
|
+
Scanner.prototype.scanUntil = function scanUntil(re) {
|
|
780
|
+
var index = this.tail.search(re), match;
|
|
781
|
+
switch (index) {
|
|
782
|
+
case -1:
|
|
783
|
+
match = this.tail;
|
|
784
|
+
this.tail = "";
|
|
785
|
+
break;
|
|
786
|
+
case 0:
|
|
787
|
+
match = "";
|
|
788
|
+
break;
|
|
789
|
+
default:
|
|
790
|
+
match = this.tail.substring(0, index);
|
|
791
|
+
this.tail = this.tail.substring(index);
|
|
792
|
+
}
|
|
793
|
+
this.pos += match.length;
|
|
794
|
+
return match;
|
|
795
|
+
};
|
|
796
|
+
function Context(view, parentContext) {
|
|
797
|
+
this.view = view;
|
|
798
|
+
this.cache = { ".": this.view };
|
|
799
|
+
this.parent = parentContext;
|
|
800
|
+
}
|
|
801
|
+
Context.prototype.push = function push(view) {
|
|
802
|
+
return new Context(view, this);
|
|
803
|
+
};
|
|
804
|
+
Context.prototype.lookup = function lookup(name) {
|
|
805
|
+
var cache = this.cache;
|
|
806
|
+
var value;
|
|
807
|
+
if (cache.hasOwnProperty(name)) {
|
|
808
|
+
value = cache[name];
|
|
809
|
+
} else {
|
|
810
|
+
var context = this, intermediateValue, names, index, lookupHit = false;
|
|
811
|
+
while (context) {
|
|
812
|
+
if (name.indexOf(".") > 0) {
|
|
813
|
+
intermediateValue = context.view;
|
|
814
|
+
names = name.split(".");
|
|
815
|
+
index = 0;
|
|
816
|
+
while (intermediateValue != null && index < names.length) {
|
|
817
|
+
if (index === names.length - 1)
|
|
818
|
+
lookupHit = hasProperty(intermediateValue, names[index]) || primitiveHasOwnProperty(intermediateValue, names[index]);
|
|
819
|
+
intermediateValue = intermediateValue[names[index++]];
|
|
820
|
+
}
|
|
821
|
+
} else {
|
|
822
|
+
intermediateValue = context.view[name];
|
|
823
|
+
lookupHit = hasProperty(context.view, name);
|
|
824
|
+
}
|
|
825
|
+
if (lookupHit) {
|
|
826
|
+
value = intermediateValue;
|
|
827
|
+
break;
|
|
828
|
+
}
|
|
829
|
+
context = context.parent;
|
|
830
|
+
}
|
|
831
|
+
cache[name] = value;
|
|
832
|
+
}
|
|
833
|
+
if (isFunction(value))
|
|
834
|
+
value = value.call(this.view);
|
|
835
|
+
return value;
|
|
836
|
+
};
|
|
837
|
+
function Writer() {
|
|
838
|
+
this.templateCache = {
|
|
839
|
+
_cache: {},
|
|
840
|
+
set: function set(key, value) {
|
|
841
|
+
this._cache[key] = value;
|
|
842
|
+
},
|
|
843
|
+
get: function get(key) {
|
|
844
|
+
return this._cache[key];
|
|
845
|
+
},
|
|
846
|
+
clear: function clear() {
|
|
847
|
+
this._cache = {};
|
|
848
|
+
}
|
|
849
|
+
};
|
|
850
|
+
}
|
|
851
|
+
Writer.prototype.clearCache = function clearCache() {
|
|
852
|
+
if (typeof this.templateCache !== "undefined") {
|
|
853
|
+
this.templateCache.clear();
|
|
854
|
+
}
|
|
855
|
+
};
|
|
856
|
+
Writer.prototype.parse = function parse(template3, tags) {
|
|
857
|
+
var cache = this.templateCache;
|
|
858
|
+
var cacheKey = template3 + ":" + (tags || mustache2.tags).join(":");
|
|
859
|
+
var isCacheEnabled = typeof cache !== "undefined";
|
|
860
|
+
var tokens = isCacheEnabled ? cache.get(cacheKey) : void 0;
|
|
861
|
+
if (tokens == void 0) {
|
|
862
|
+
tokens = parseTemplate(template3, tags);
|
|
863
|
+
isCacheEnabled && cache.set(cacheKey, tokens);
|
|
864
|
+
}
|
|
865
|
+
return tokens;
|
|
866
|
+
};
|
|
867
|
+
Writer.prototype.render = function render2(template3, view, partials, config) {
|
|
868
|
+
var tags = this.getConfigTags(config);
|
|
869
|
+
var tokens = this.parse(template3, tags);
|
|
870
|
+
var context = view instanceof Context ? view : new Context(view, void 0);
|
|
871
|
+
return this.renderTokens(tokens, context, partials, template3, config);
|
|
872
|
+
};
|
|
873
|
+
Writer.prototype.renderTokens = function renderTokens(tokens, context, partials, originalTemplate, config) {
|
|
874
|
+
var buffer = "";
|
|
875
|
+
var token, symbol, value;
|
|
876
|
+
for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
|
|
877
|
+
value = void 0;
|
|
878
|
+
token = tokens[i];
|
|
879
|
+
symbol = token[0];
|
|
880
|
+
if (symbol === "#")
|
|
881
|
+
value = this.renderSection(token, context, partials, originalTemplate, config);
|
|
882
|
+
else if (symbol === "^")
|
|
883
|
+
value = this.renderInverted(token, context, partials, originalTemplate, config);
|
|
884
|
+
else if (symbol === ">")
|
|
885
|
+
value = this.renderPartial(token, context, partials, config);
|
|
886
|
+
else if (symbol === "&")
|
|
887
|
+
value = this.unescapedValue(token, context);
|
|
888
|
+
else if (symbol === "name")
|
|
889
|
+
value = this.escapedValue(token, context, config);
|
|
890
|
+
else if (symbol === "text")
|
|
891
|
+
value = this.rawValue(token);
|
|
892
|
+
if (value !== void 0)
|
|
893
|
+
buffer += value;
|
|
894
|
+
}
|
|
895
|
+
return buffer;
|
|
896
|
+
};
|
|
897
|
+
Writer.prototype.renderSection = function renderSection(token, context, partials, originalTemplate, config) {
|
|
898
|
+
var self2 = this;
|
|
899
|
+
var buffer = "";
|
|
900
|
+
var value = context.lookup(token[1]);
|
|
901
|
+
function subRender(template3) {
|
|
902
|
+
return self2.render(template3, context, partials, config);
|
|
903
|
+
}
|
|
904
|
+
if (!value)
|
|
905
|
+
return;
|
|
906
|
+
if (isArray(value)) {
|
|
907
|
+
for (var j = 0, valueLength = value.length; j < valueLength; ++j) {
|
|
908
|
+
buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);
|
|
909
|
+
}
|
|
910
|
+
} else if (typeof value === "object" || typeof value === "string" || typeof value === "number") {
|
|
911
|
+
buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);
|
|
912
|
+
} else if (isFunction(value)) {
|
|
913
|
+
if (typeof originalTemplate !== "string")
|
|
914
|
+
throw new Error("Cannot use higher-order sections without the original template");
|
|
915
|
+
value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);
|
|
916
|
+
if (value != null)
|
|
917
|
+
buffer += value;
|
|
918
|
+
} else {
|
|
919
|
+
buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);
|
|
920
|
+
}
|
|
921
|
+
return buffer;
|
|
922
|
+
};
|
|
923
|
+
Writer.prototype.renderInverted = function renderInverted(token, context, partials, originalTemplate, config) {
|
|
924
|
+
var value = context.lookup(token[1]);
|
|
925
|
+
if (!value || isArray(value) && value.length === 0)
|
|
926
|
+
return this.renderTokens(token[4], context, partials, originalTemplate, config);
|
|
927
|
+
};
|
|
928
|
+
Writer.prototype.indentPartial = function indentPartial(partial, indentation, lineHasNonSpace) {
|
|
929
|
+
var filteredIndentation = indentation.replace(/[^ \t]/g, "");
|
|
930
|
+
var partialByNl = partial.split("\n");
|
|
931
|
+
for (var i = 0; i < partialByNl.length; i++) {
|
|
932
|
+
if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {
|
|
933
|
+
partialByNl[i] = filteredIndentation + partialByNl[i];
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
return partialByNl.join("\n");
|
|
937
|
+
};
|
|
938
|
+
Writer.prototype.renderPartial = function renderPartial(token, context, partials, config) {
|
|
939
|
+
if (!partials)
|
|
940
|
+
return;
|
|
941
|
+
var tags = this.getConfigTags(config);
|
|
942
|
+
var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];
|
|
943
|
+
if (value != null) {
|
|
944
|
+
var lineHasNonSpace = token[6];
|
|
945
|
+
var tagIndex = token[5];
|
|
946
|
+
var indentation = token[4];
|
|
947
|
+
var indentedValue = value;
|
|
948
|
+
if (tagIndex == 0 && indentation) {
|
|
949
|
+
indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);
|
|
950
|
+
}
|
|
951
|
+
var tokens = this.parse(indentedValue, tags);
|
|
952
|
+
return this.renderTokens(tokens, context, partials, indentedValue, config);
|
|
953
|
+
}
|
|
954
|
+
};
|
|
955
|
+
Writer.prototype.unescapedValue = function unescapedValue(token, context) {
|
|
956
|
+
var value = context.lookup(token[1]);
|
|
957
|
+
if (value != null)
|
|
958
|
+
return value;
|
|
959
|
+
};
|
|
960
|
+
Writer.prototype.escapedValue = function escapedValue(token, context, config) {
|
|
961
|
+
var escape = this.getConfigEscape(config) || mustache2.escape;
|
|
962
|
+
var value = context.lookup(token[1]);
|
|
963
|
+
if (value != null)
|
|
964
|
+
return typeof value === "number" && escape === mustache2.escape ? String(value) : escape(value);
|
|
965
|
+
};
|
|
966
|
+
Writer.prototype.rawValue = function rawValue(token) {
|
|
967
|
+
return token[1];
|
|
968
|
+
};
|
|
969
|
+
Writer.prototype.getConfigTags = function getConfigTags(config) {
|
|
970
|
+
if (isArray(config)) {
|
|
971
|
+
return config;
|
|
972
|
+
} else if (config && typeof config === "object") {
|
|
973
|
+
return config.tags;
|
|
974
|
+
} else {
|
|
975
|
+
return void 0;
|
|
976
|
+
}
|
|
977
|
+
};
|
|
978
|
+
Writer.prototype.getConfigEscape = function getConfigEscape(config) {
|
|
979
|
+
if (config && typeof config === "object" && !isArray(config)) {
|
|
980
|
+
return config.escape;
|
|
981
|
+
} else {
|
|
982
|
+
return void 0;
|
|
983
|
+
}
|
|
984
|
+
};
|
|
985
|
+
var mustache2 = {
|
|
986
|
+
name: "mustache.js",
|
|
987
|
+
version: "4.2.0",
|
|
988
|
+
tags: ["{{", "}}"],
|
|
989
|
+
clearCache: void 0,
|
|
990
|
+
escape: void 0,
|
|
991
|
+
parse: void 0,
|
|
992
|
+
render: void 0,
|
|
993
|
+
Scanner: void 0,
|
|
994
|
+
Context: void 0,
|
|
995
|
+
Writer: void 0,
|
|
996
|
+
/**
|
|
997
|
+
* Allows a user to override the default caching strategy, by providing an
|
|
998
|
+
* object with set, get and clear methods. This can also be used to disable
|
|
999
|
+
* the cache by setting it to the literal `undefined`.
|
|
1000
|
+
*/
|
|
1001
|
+
set templateCache(cache) {
|
|
1002
|
+
defaultWriter.templateCache = cache;
|
|
1003
|
+
},
|
|
1004
|
+
/**
|
|
1005
|
+
* Gets the default or overridden caching object from the default writer.
|
|
1006
|
+
*/
|
|
1007
|
+
get templateCache() {
|
|
1008
|
+
return defaultWriter.templateCache;
|
|
1009
|
+
}
|
|
1010
|
+
};
|
|
1011
|
+
var defaultWriter = new Writer();
|
|
1012
|
+
mustache2.clearCache = function clearCache() {
|
|
1013
|
+
return defaultWriter.clearCache();
|
|
1014
|
+
};
|
|
1015
|
+
mustache2.parse = function parse(template3, tags) {
|
|
1016
|
+
return defaultWriter.parse(template3, tags);
|
|
1017
|
+
};
|
|
1018
|
+
mustache2.render = function render2(template3, view, partials, config) {
|
|
1019
|
+
if (typeof template3 !== "string") {
|
|
1020
|
+
throw new TypeError('Invalid template! Template should be a "string" but "' + typeStr(template3) + '" was given as the first argument for mustache#render(template, view, partials)');
|
|
1021
|
+
}
|
|
1022
|
+
return defaultWriter.render(template3, view, partials, config);
|
|
1023
|
+
};
|
|
1024
|
+
mustache2.escape = escapeHtml;
|
|
1025
|
+
mustache2.Scanner = Scanner;
|
|
1026
|
+
mustache2.Context = Context;
|
|
1027
|
+
mustache2.Writer = Writer;
|
|
1028
|
+
return mustache2;
|
|
1029
|
+
});
|
|
1030
|
+
}
|
|
1031
|
+
});
|
|
1032
|
+
|
|
561
1033
|
// src/webapp/logout/logout.lambda.ts
|
|
562
1034
|
var import_client_dynamodb = require("@aws-sdk/client-dynamodb");
|
|
563
1035
|
var import_Response2 = __toESM(require_Response());
|
|
@@ -570,467 +1042,6 @@ var import_cookie = __toESM(require_cookie2());
|
|
|
570
1042
|
// src/webapp/logout/templates/logout.mustache
|
|
571
1043
|
var logout_default = '{{>header}}\n\n<main>\n <!-- START: template component(s) -->\n <div class="container" id="section-1">\n <h1>Uitgelogd</h1>\n <p class="lead">U bent nu uitgelogd.</p>\n </div>\n </div>\n\n <!-- END: template component(s) -->\n</main>\n\n{{>footer}}';
|
|
572
1044
|
|
|
573
|
-
// node_modules/mustache/mustache.mjs
|
|
574
|
-
var objectToString = Object.prototype.toString;
|
|
575
|
-
var isArray = Array.isArray || function isArrayPolyfill(object) {
|
|
576
|
-
return objectToString.call(object) === "[object Array]";
|
|
577
|
-
};
|
|
578
|
-
function isFunction(object) {
|
|
579
|
-
return typeof object === "function";
|
|
580
|
-
}
|
|
581
|
-
function typeStr(obj) {
|
|
582
|
-
return isArray(obj) ? "array" : typeof obj;
|
|
583
|
-
}
|
|
584
|
-
function escapeRegExp(string) {
|
|
585
|
-
return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
|
|
586
|
-
}
|
|
587
|
-
function hasProperty(obj, propName) {
|
|
588
|
-
return obj != null && typeof obj === "object" && propName in obj;
|
|
589
|
-
}
|
|
590
|
-
function primitiveHasOwnProperty(primitive, propName) {
|
|
591
|
-
return primitive != null && typeof primitive !== "object" && primitive.hasOwnProperty && primitive.hasOwnProperty(propName);
|
|
592
|
-
}
|
|
593
|
-
var regExpTest = RegExp.prototype.test;
|
|
594
|
-
function testRegExp(re, string) {
|
|
595
|
-
return regExpTest.call(re, string);
|
|
596
|
-
}
|
|
597
|
-
var nonSpaceRe = /\S/;
|
|
598
|
-
function isWhitespace(string) {
|
|
599
|
-
return !testRegExp(nonSpaceRe, string);
|
|
600
|
-
}
|
|
601
|
-
var entityMap = {
|
|
602
|
-
"&": "&",
|
|
603
|
-
"<": "<",
|
|
604
|
-
">": ">",
|
|
605
|
-
'"': """,
|
|
606
|
-
"'": "'",
|
|
607
|
-
"/": "/",
|
|
608
|
-
"`": "`",
|
|
609
|
-
"=": "="
|
|
610
|
-
};
|
|
611
|
-
function escapeHtml(string) {
|
|
612
|
-
return String(string).replace(/[&<>"'`=\/]/g, function fromEntityMap(s) {
|
|
613
|
-
return entityMap[s];
|
|
614
|
-
});
|
|
615
|
-
}
|
|
616
|
-
var whiteRe = /\s*/;
|
|
617
|
-
var spaceRe = /\s+/;
|
|
618
|
-
var equalsRe = /\s*=/;
|
|
619
|
-
var curlyRe = /\s*\}/;
|
|
620
|
-
var tagRe = /#|\^|\/|>|\{|&|=|!/;
|
|
621
|
-
function parseTemplate(template, tags) {
|
|
622
|
-
if (!template)
|
|
623
|
-
return [];
|
|
624
|
-
var lineHasNonSpace = false;
|
|
625
|
-
var sections = [];
|
|
626
|
-
var tokens = [];
|
|
627
|
-
var spaces = [];
|
|
628
|
-
var hasTag = false;
|
|
629
|
-
var nonSpace = false;
|
|
630
|
-
var indentation = "";
|
|
631
|
-
var tagIndex = 0;
|
|
632
|
-
function stripSpace() {
|
|
633
|
-
if (hasTag && !nonSpace) {
|
|
634
|
-
while (spaces.length)
|
|
635
|
-
delete tokens[spaces.pop()];
|
|
636
|
-
} else {
|
|
637
|
-
spaces = [];
|
|
638
|
-
}
|
|
639
|
-
hasTag = false;
|
|
640
|
-
nonSpace = false;
|
|
641
|
-
}
|
|
642
|
-
var openingTagRe, closingTagRe, closingCurlyRe;
|
|
643
|
-
function compileTags(tagsToCompile) {
|
|
644
|
-
if (typeof tagsToCompile === "string")
|
|
645
|
-
tagsToCompile = tagsToCompile.split(spaceRe, 2);
|
|
646
|
-
if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)
|
|
647
|
-
throw new Error("Invalid tags: " + tagsToCompile);
|
|
648
|
-
openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + "\\s*");
|
|
649
|
-
closingTagRe = new RegExp("\\s*" + escapeRegExp(tagsToCompile[1]));
|
|
650
|
-
closingCurlyRe = new RegExp("\\s*" + escapeRegExp("}" + tagsToCompile[1]));
|
|
651
|
-
}
|
|
652
|
-
compileTags(tags || mustache.tags);
|
|
653
|
-
var scanner = new Scanner(template);
|
|
654
|
-
var start, type, value, chr, token, openSection;
|
|
655
|
-
while (!scanner.eos()) {
|
|
656
|
-
start = scanner.pos;
|
|
657
|
-
value = scanner.scanUntil(openingTagRe);
|
|
658
|
-
if (value) {
|
|
659
|
-
for (var i = 0, valueLength = value.length; i < valueLength; ++i) {
|
|
660
|
-
chr = value.charAt(i);
|
|
661
|
-
if (isWhitespace(chr)) {
|
|
662
|
-
spaces.push(tokens.length);
|
|
663
|
-
indentation += chr;
|
|
664
|
-
} else {
|
|
665
|
-
nonSpace = true;
|
|
666
|
-
lineHasNonSpace = true;
|
|
667
|
-
indentation += " ";
|
|
668
|
-
}
|
|
669
|
-
tokens.push(["text", chr, start, start + 1]);
|
|
670
|
-
start += 1;
|
|
671
|
-
if (chr === "\n") {
|
|
672
|
-
stripSpace();
|
|
673
|
-
indentation = "";
|
|
674
|
-
tagIndex = 0;
|
|
675
|
-
lineHasNonSpace = false;
|
|
676
|
-
}
|
|
677
|
-
}
|
|
678
|
-
}
|
|
679
|
-
if (!scanner.scan(openingTagRe))
|
|
680
|
-
break;
|
|
681
|
-
hasTag = true;
|
|
682
|
-
type = scanner.scan(tagRe) || "name";
|
|
683
|
-
scanner.scan(whiteRe);
|
|
684
|
-
if (type === "=") {
|
|
685
|
-
value = scanner.scanUntil(equalsRe);
|
|
686
|
-
scanner.scan(equalsRe);
|
|
687
|
-
scanner.scanUntil(closingTagRe);
|
|
688
|
-
} else if (type === "{") {
|
|
689
|
-
value = scanner.scanUntil(closingCurlyRe);
|
|
690
|
-
scanner.scan(curlyRe);
|
|
691
|
-
scanner.scanUntil(closingTagRe);
|
|
692
|
-
type = "&";
|
|
693
|
-
} else {
|
|
694
|
-
value = scanner.scanUntil(closingTagRe);
|
|
695
|
-
}
|
|
696
|
-
if (!scanner.scan(closingTagRe))
|
|
697
|
-
throw new Error("Unclosed tag at " + scanner.pos);
|
|
698
|
-
if (type == ">") {
|
|
699
|
-
token = [type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace];
|
|
700
|
-
} else {
|
|
701
|
-
token = [type, value, start, scanner.pos];
|
|
702
|
-
}
|
|
703
|
-
tagIndex++;
|
|
704
|
-
tokens.push(token);
|
|
705
|
-
if (type === "#" || type === "^") {
|
|
706
|
-
sections.push(token);
|
|
707
|
-
} else if (type === "/") {
|
|
708
|
-
openSection = sections.pop();
|
|
709
|
-
if (!openSection)
|
|
710
|
-
throw new Error('Unopened section "' + value + '" at ' + start);
|
|
711
|
-
if (openSection[1] !== value)
|
|
712
|
-
throw new Error('Unclosed section "' + openSection[1] + '" at ' + start);
|
|
713
|
-
} else if (type === "name" || type === "{" || type === "&") {
|
|
714
|
-
nonSpace = true;
|
|
715
|
-
} else if (type === "=") {
|
|
716
|
-
compileTags(value);
|
|
717
|
-
}
|
|
718
|
-
}
|
|
719
|
-
stripSpace();
|
|
720
|
-
openSection = sections.pop();
|
|
721
|
-
if (openSection)
|
|
722
|
-
throw new Error('Unclosed section "' + openSection[1] + '" at ' + scanner.pos);
|
|
723
|
-
return nestTokens(squashTokens(tokens));
|
|
724
|
-
}
|
|
725
|
-
function squashTokens(tokens) {
|
|
726
|
-
var squashedTokens = [];
|
|
727
|
-
var token, lastToken;
|
|
728
|
-
for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
|
|
729
|
-
token = tokens[i];
|
|
730
|
-
if (token) {
|
|
731
|
-
if (token[0] === "text" && lastToken && lastToken[0] === "text") {
|
|
732
|
-
lastToken[1] += token[1];
|
|
733
|
-
lastToken[3] = token[3];
|
|
734
|
-
} else {
|
|
735
|
-
squashedTokens.push(token);
|
|
736
|
-
lastToken = token;
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
return squashedTokens;
|
|
741
|
-
}
|
|
742
|
-
function nestTokens(tokens) {
|
|
743
|
-
var nestedTokens = [];
|
|
744
|
-
var collector = nestedTokens;
|
|
745
|
-
var sections = [];
|
|
746
|
-
var token, section;
|
|
747
|
-
for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
|
|
748
|
-
token = tokens[i];
|
|
749
|
-
switch (token[0]) {
|
|
750
|
-
case "#":
|
|
751
|
-
case "^":
|
|
752
|
-
collector.push(token);
|
|
753
|
-
sections.push(token);
|
|
754
|
-
collector = token[4] = [];
|
|
755
|
-
break;
|
|
756
|
-
case "/":
|
|
757
|
-
section = sections.pop();
|
|
758
|
-
section[5] = token[2];
|
|
759
|
-
collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;
|
|
760
|
-
break;
|
|
761
|
-
default:
|
|
762
|
-
collector.push(token);
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
return nestedTokens;
|
|
766
|
-
}
|
|
767
|
-
function Scanner(string) {
|
|
768
|
-
this.string = string;
|
|
769
|
-
this.tail = string;
|
|
770
|
-
this.pos = 0;
|
|
771
|
-
}
|
|
772
|
-
Scanner.prototype.eos = function eos() {
|
|
773
|
-
return this.tail === "";
|
|
774
|
-
};
|
|
775
|
-
Scanner.prototype.scan = function scan(re) {
|
|
776
|
-
var match = this.tail.match(re);
|
|
777
|
-
if (!match || match.index !== 0)
|
|
778
|
-
return "";
|
|
779
|
-
var string = match[0];
|
|
780
|
-
this.tail = this.tail.substring(string.length);
|
|
781
|
-
this.pos += string.length;
|
|
782
|
-
return string;
|
|
783
|
-
};
|
|
784
|
-
Scanner.prototype.scanUntil = function scanUntil(re) {
|
|
785
|
-
var index = this.tail.search(re), match;
|
|
786
|
-
switch (index) {
|
|
787
|
-
case -1:
|
|
788
|
-
match = this.tail;
|
|
789
|
-
this.tail = "";
|
|
790
|
-
break;
|
|
791
|
-
case 0:
|
|
792
|
-
match = "";
|
|
793
|
-
break;
|
|
794
|
-
default:
|
|
795
|
-
match = this.tail.substring(0, index);
|
|
796
|
-
this.tail = this.tail.substring(index);
|
|
797
|
-
}
|
|
798
|
-
this.pos += match.length;
|
|
799
|
-
return match;
|
|
800
|
-
};
|
|
801
|
-
function Context(view, parentContext) {
|
|
802
|
-
this.view = view;
|
|
803
|
-
this.cache = { ".": this.view };
|
|
804
|
-
this.parent = parentContext;
|
|
805
|
-
}
|
|
806
|
-
Context.prototype.push = function push(view) {
|
|
807
|
-
return new Context(view, this);
|
|
808
|
-
};
|
|
809
|
-
Context.prototype.lookup = function lookup(name) {
|
|
810
|
-
var cache = this.cache;
|
|
811
|
-
var value;
|
|
812
|
-
if (cache.hasOwnProperty(name)) {
|
|
813
|
-
value = cache[name];
|
|
814
|
-
} else {
|
|
815
|
-
var context = this, intermediateValue, names, index, lookupHit = false;
|
|
816
|
-
while (context) {
|
|
817
|
-
if (name.indexOf(".") > 0) {
|
|
818
|
-
intermediateValue = context.view;
|
|
819
|
-
names = name.split(".");
|
|
820
|
-
index = 0;
|
|
821
|
-
while (intermediateValue != null && index < names.length) {
|
|
822
|
-
if (index === names.length - 1)
|
|
823
|
-
lookupHit = hasProperty(intermediateValue, names[index]) || primitiveHasOwnProperty(intermediateValue, names[index]);
|
|
824
|
-
intermediateValue = intermediateValue[names[index++]];
|
|
825
|
-
}
|
|
826
|
-
} else {
|
|
827
|
-
intermediateValue = context.view[name];
|
|
828
|
-
lookupHit = hasProperty(context.view, name);
|
|
829
|
-
}
|
|
830
|
-
if (lookupHit) {
|
|
831
|
-
value = intermediateValue;
|
|
832
|
-
break;
|
|
833
|
-
}
|
|
834
|
-
context = context.parent;
|
|
835
|
-
}
|
|
836
|
-
cache[name] = value;
|
|
837
|
-
}
|
|
838
|
-
if (isFunction(value))
|
|
839
|
-
value = value.call(this.view);
|
|
840
|
-
return value;
|
|
841
|
-
};
|
|
842
|
-
function Writer() {
|
|
843
|
-
this.templateCache = {
|
|
844
|
-
_cache: {},
|
|
845
|
-
set: function set(key, value) {
|
|
846
|
-
this._cache[key] = value;
|
|
847
|
-
},
|
|
848
|
-
get: function get(key) {
|
|
849
|
-
return this._cache[key];
|
|
850
|
-
},
|
|
851
|
-
clear: function clear() {
|
|
852
|
-
this._cache = {};
|
|
853
|
-
}
|
|
854
|
-
};
|
|
855
|
-
}
|
|
856
|
-
Writer.prototype.clearCache = function clearCache() {
|
|
857
|
-
if (typeof this.templateCache !== "undefined") {
|
|
858
|
-
this.templateCache.clear();
|
|
859
|
-
}
|
|
860
|
-
};
|
|
861
|
-
Writer.prototype.parse = function parse(template, tags) {
|
|
862
|
-
var cache = this.templateCache;
|
|
863
|
-
var cacheKey = template + ":" + (tags || mustache.tags).join(":");
|
|
864
|
-
var isCacheEnabled = typeof cache !== "undefined";
|
|
865
|
-
var tokens = isCacheEnabled ? cache.get(cacheKey) : void 0;
|
|
866
|
-
if (tokens == void 0) {
|
|
867
|
-
tokens = parseTemplate(template, tags);
|
|
868
|
-
isCacheEnabled && cache.set(cacheKey, tokens);
|
|
869
|
-
}
|
|
870
|
-
return tokens;
|
|
871
|
-
};
|
|
872
|
-
Writer.prototype.render = function render(template, view, partials, config) {
|
|
873
|
-
var tags = this.getConfigTags(config);
|
|
874
|
-
var tokens = this.parse(template, tags);
|
|
875
|
-
var context = view instanceof Context ? view : new Context(view, void 0);
|
|
876
|
-
return this.renderTokens(tokens, context, partials, template, config);
|
|
877
|
-
};
|
|
878
|
-
Writer.prototype.renderTokens = function renderTokens(tokens, context, partials, originalTemplate, config) {
|
|
879
|
-
var buffer = "";
|
|
880
|
-
var token, symbol, value;
|
|
881
|
-
for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
|
|
882
|
-
value = void 0;
|
|
883
|
-
token = tokens[i];
|
|
884
|
-
symbol = token[0];
|
|
885
|
-
if (symbol === "#")
|
|
886
|
-
value = this.renderSection(token, context, partials, originalTemplate, config);
|
|
887
|
-
else if (symbol === "^")
|
|
888
|
-
value = this.renderInverted(token, context, partials, originalTemplate, config);
|
|
889
|
-
else if (symbol === ">")
|
|
890
|
-
value = this.renderPartial(token, context, partials, config);
|
|
891
|
-
else if (symbol === "&")
|
|
892
|
-
value = this.unescapedValue(token, context);
|
|
893
|
-
else if (symbol === "name")
|
|
894
|
-
value = this.escapedValue(token, context, config);
|
|
895
|
-
else if (symbol === "text")
|
|
896
|
-
value = this.rawValue(token);
|
|
897
|
-
if (value !== void 0)
|
|
898
|
-
buffer += value;
|
|
899
|
-
}
|
|
900
|
-
return buffer;
|
|
901
|
-
};
|
|
902
|
-
Writer.prototype.renderSection = function renderSection(token, context, partials, originalTemplate, config) {
|
|
903
|
-
var self = this;
|
|
904
|
-
var buffer = "";
|
|
905
|
-
var value = context.lookup(token[1]);
|
|
906
|
-
function subRender(template) {
|
|
907
|
-
return self.render(template, context, partials, config);
|
|
908
|
-
}
|
|
909
|
-
if (!value)
|
|
910
|
-
return;
|
|
911
|
-
if (isArray(value)) {
|
|
912
|
-
for (var j = 0, valueLength = value.length; j < valueLength; ++j) {
|
|
913
|
-
buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);
|
|
914
|
-
}
|
|
915
|
-
} else if (typeof value === "object" || typeof value === "string" || typeof value === "number") {
|
|
916
|
-
buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);
|
|
917
|
-
} else if (isFunction(value)) {
|
|
918
|
-
if (typeof originalTemplate !== "string")
|
|
919
|
-
throw new Error("Cannot use higher-order sections without the original template");
|
|
920
|
-
value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);
|
|
921
|
-
if (value != null)
|
|
922
|
-
buffer += value;
|
|
923
|
-
} else {
|
|
924
|
-
buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);
|
|
925
|
-
}
|
|
926
|
-
return buffer;
|
|
927
|
-
};
|
|
928
|
-
Writer.prototype.renderInverted = function renderInverted(token, context, partials, originalTemplate, config) {
|
|
929
|
-
var value = context.lookup(token[1]);
|
|
930
|
-
if (!value || isArray(value) && value.length === 0)
|
|
931
|
-
return this.renderTokens(token[4], context, partials, originalTemplate, config);
|
|
932
|
-
};
|
|
933
|
-
Writer.prototype.indentPartial = function indentPartial(partial, indentation, lineHasNonSpace) {
|
|
934
|
-
var filteredIndentation = indentation.replace(/[^ \t]/g, "");
|
|
935
|
-
var partialByNl = partial.split("\n");
|
|
936
|
-
for (var i = 0; i < partialByNl.length; i++) {
|
|
937
|
-
if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {
|
|
938
|
-
partialByNl[i] = filteredIndentation + partialByNl[i];
|
|
939
|
-
}
|
|
940
|
-
}
|
|
941
|
-
return partialByNl.join("\n");
|
|
942
|
-
};
|
|
943
|
-
Writer.prototype.renderPartial = function renderPartial(token, context, partials, config) {
|
|
944
|
-
if (!partials)
|
|
945
|
-
return;
|
|
946
|
-
var tags = this.getConfigTags(config);
|
|
947
|
-
var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];
|
|
948
|
-
if (value != null) {
|
|
949
|
-
var lineHasNonSpace = token[6];
|
|
950
|
-
var tagIndex = token[5];
|
|
951
|
-
var indentation = token[4];
|
|
952
|
-
var indentedValue = value;
|
|
953
|
-
if (tagIndex == 0 && indentation) {
|
|
954
|
-
indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);
|
|
955
|
-
}
|
|
956
|
-
var tokens = this.parse(indentedValue, tags);
|
|
957
|
-
return this.renderTokens(tokens, context, partials, indentedValue, config);
|
|
958
|
-
}
|
|
959
|
-
};
|
|
960
|
-
Writer.prototype.unescapedValue = function unescapedValue(token, context) {
|
|
961
|
-
var value = context.lookup(token[1]);
|
|
962
|
-
if (value != null)
|
|
963
|
-
return value;
|
|
964
|
-
};
|
|
965
|
-
Writer.prototype.escapedValue = function escapedValue(token, context, config) {
|
|
966
|
-
var escape = this.getConfigEscape(config) || mustache.escape;
|
|
967
|
-
var value = context.lookup(token[1]);
|
|
968
|
-
if (value != null)
|
|
969
|
-
return typeof value === "number" && escape === mustache.escape ? String(value) : escape(value);
|
|
970
|
-
};
|
|
971
|
-
Writer.prototype.rawValue = function rawValue(token) {
|
|
972
|
-
return token[1];
|
|
973
|
-
};
|
|
974
|
-
Writer.prototype.getConfigTags = function getConfigTags(config) {
|
|
975
|
-
if (isArray(config)) {
|
|
976
|
-
return config;
|
|
977
|
-
} else if (config && typeof config === "object") {
|
|
978
|
-
return config.tags;
|
|
979
|
-
} else {
|
|
980
|
-
return void 0;
|
|
981
|
-
}
|
|
982
|
-
};
|
|
983
|
-
Writer.prototype.getConfigEscape = function getConfigEscape(config) {
|
|
984
|
-
if (config && typeof config === "object" && !isArray(config)) {
|
|
985
|
-
return config.escape;
|
|
986
|
-
} else {
|
|
987
|
-
return void 0;
|
|
988
|
-
}
|
|
989
|
-
};
|
|
990
|
-
var mustache = {
|
|
991
|
-
name: "mustache.js",
|
|
992
|
-
version: "4.2.0",
|
|
993
|
-
tags: ["{{", "}}"],
|
|
994
|
-
clearCache: void 0,
|
|
995
|
-
escape: void 0,
|
|
996
|
-
parse: void 0,
|
|
997
|
-
render: void 0,
|
|
998
|
-
Scanner: void 0,
|
|
999
|
-
Context: void 0,
|
|
1000
|
-
Writer: void 0,
|
|
1001
|
-
/**
|
|
1002
|
-
* Allows a user to override the default caching strategy, by providing an
|
|
1003
|
-
* object with set, get and clear methods. This can also be used to disable
|
|
1004
|
-
* the cache by setting it to the literal `undefined`.
|
|
1005
|
-
*/
|
|
1006
|
-
set templateCache(cache) {
|
|
1007
|
-
defaultWriter.templateCache = cache;
|
|
1008
|
-
},
|
|
1009
|
-
/**
|
|
1010
|
-
* Gets the default or overridden caching object from the default writer.
|
|
1011
|
-
*/
|
|
1012
|
-
get templateCache() {
|
|
1013
|
-
return defaultWriter.templateCache;
|
|
1014
|
-
}
|
|
1015
|
-
};
|
|
1016
|
-
var defaultWriter = new Writer();
|
|
1017
|
-
mustache.clearCache = function clearCache2() {
|
|
1018
|
-
return defaultWriter.clearCache();
|
|
1019
|
-
};
|
|
1020
|
-
mustache.parse = function parse2(template, tags) {
|
|
1021
|
-
return defaultWriter.parse(template, tags);
|
|
1022
|
-
};
|
|
1023
|
-
mustache.render = function render2(template, view, partials, config) {
|
|
1024
|
-
if (typeof template !== "string") {
|
|
1025
|
-
throw new TypeError('Invalid template! Template should be a "string" but "' + typeStr(template) + '" was given as the first argument for mustache#render(template, view, partials)');
|
|
1026
|
-
}
|
|
1027
|
-
return defaultWriter.render(template, view, partials, config);
|
|
1028
|
-
};
|
|
1029
|
-
mustache.escape = escapeHtml;
|
|
1030
|
-
mustache.Scanner = Scanner;
|
|
1031
|
-
mustache.Context = Context;
|
|
1032
|
-
mustache.Writer = Writer;
|
|
1033
|
-
|
|
1034
1045
|
// src/webapp/util/Files.ts
|
|
1035
1046
|
var fs = __toESM(require("fs"));
|
|
1036
1047
|
var Files = class {
|
|
@@ -1057,16 +1068,19 @@ var Files = class {
|
|
|
1057
1068
|
}
|
|
1058
1069
|
};
|
|
1059
1070
|
|
|
1060
|
-
// src/webapp/util/footer.
|
|
1061
|
-
var
|
|
1071
|
+
// src/webapp/util/footer.ts
|
|
1072
|
+
var template = '<footer class="page-footer"> <div class="footer-content"> <div class="container"> <div class="row"> <div class="hidden-md-down col-lg-6"> </div> <div class="col-md-12 col-lg-6"> <div class="row"> <div class="hidden-md-down col-lg-5"> <h2 class="title">Over deze site</h2> <ul class="link-list"> <li><a href="https://www.nijmegen.nl/toegankelijkheid/">Toegankelijkheid</a></li> <li><a href="https://www.nijmegen.nl/diensten/privacy/">Privacyverklaring</a></li> <li><a href="https://www.nijmegen.nl/cookies/">Cookies</a></li> <li><a href="https://www.nijmegen.nl/proclaimer/">Proclaimer</a></li> <li><a href="https://www.nijmegen.nl/sitemap/">Sitemap</a></li> </ul> </div> <div class="col-xs-12 col-md-6 col-lg-7"> <h2 class="title">Contactgegevens</h2> <ul class="link-list contact-list"> <li> <svg aria-hidden="true" class="mdi mdi-map-marker" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z" /></svg> <span class="sr-only">Bekijk onze locatie:</span> <a href="https://www.google.nl/maps/place/Municipality+of+Nijmegen+(Stadswinkel)/@51.8453377,5.8650266,17z/data=!3m1!4b1!4m5!3m4!1s0x47c708453b48b901:0x73b58e3e154d4f0b!8m2!3d51.8453377!4d5.8672206"> Stadswinkel, Mari\xEBnburg 30 </a> </li> <li> <svg class="mdi mdi-phone" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z" /></svg> <span class="sr-only">Bel ons:</span> <a href="tel:14024"> 14 024 </a> </li> <li> <svg class="mdi mdi-email" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z" /></svg> <span class="sr-only">Mail ons:</span> <a href="mailto:gemeente@nijmegen.nl"> gemeente@nijmegen.nl </a> </li> <li> <svg class="mdi mdi-facebook" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z" /></svg> <span class="sr-only">Vind ons op facebook:</span> <a href="https://www.facebook.com/gemeentenijmegen"> Gemeente Nijmegen </a> </li> <li> <svg class="mdi mdi-twitter" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z" /></svg> <span class="sr-only">Volg ons op Twitter:</span> <a href="https://twitter.com/gem_nijmegen"> @nijmegen </a> </li> </ul> </div> </div> </div> </div> </div> </div> <div class="footer-copyright text-center"> <div class="container-fluid"> <img src="https://componenten.nijmegen.nl/v6.1.0/img/beeldmerkwit.svg" height="32" width="25" class="logo-labeled" alt="Logo Gemeente Nijmegen"> Gemeente Nijmegen </div> </div> </footer> <!-- JQuery --> <script src="https://componenten.nijmegen.nl/v6.1.0/js/jquery.min.js" integrity="sha512-pV9V1WiZq0QO8MrheyjVzI9bl2bR6bwaisa4k3aSS0dsGrDDJUl+tdRK9B9Ov47qI22Ho2kCJEuKPspUmUuHEQ==" crossorigin="anonymous"></script> <!-- Bootstrap tooltips --> <script src="https://componenten.nijmegen.nl/v6.1.0/js/popper.min.js" integrity="sha512-lWJ53t3FjWFXcLO7CWRG8vJABfUOuSuMZspt8g2nDyx/ft/B+Zb5jBSjED4Qyze4tp2DqVECV9fHo3j1bzpChw==" crossorigin="anonymous"></script> <!-- Bootstrap core JavaScript --> <script src="https://componenten.nijmegen.nl/v6.1.0/js/bootstrap.min.js" integrity="sha512-uIuDDliVdzuBgB2Ocut6cVdPSGZ6/my59sSOQlwnGi1qtuyyDVzj+8fr/HUr84mBlCs3zGBttci2JSALm8WMNg==" crossorigin="anonymous"></script> <!-- MDB core JavaScript --> <script src="https://componenten.nijmegen.nl/v6.1.0/js/mdb.min.js" integrity="sha512-HTOV7Smd7fT2VtLuwZP+BQ4riX9YHbVMGJ22X1wMcHSNx4JIkE/1KS6ux4S78pdf8orN82idrE36YHccsaHnTA==" crossorigin="anonymous"></script> <!-- Nijmegen specific script --> <script src="https://componenten.nijmegen.nl/v6.1.0/nijmegen.js" integrity="sha512-whPa7XgHBxAZ7Tz1v1cIytLsPEuxFbOnq+mCDHCyBhSk+2sOIouiU66p1moY2loVtQ8/oebuxmjDVflhuGKkmA==" crossorigin="anonymous"></script> <!-- End: Core scripts --> <!-- Start: Additional component(s) script --> <!-- ... --> <!-- End: Additional component(s) script --> </body> </html>';
|
|
1073
|
+
var footer_default = template;
|
|
1062
1074
|
|
|
1063
|
-
// src/webapp/util/header.
|
|
1064
|
-
var
|
|
1075
|
+
// src/webapp/util/header.ts
|
|
1076
|
+
var template2 = '<!doctype html> <html lang="nl"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <link rel="shortcut icon" href="/static/favicon.ico" type="image/x-icon"> <!-- Preload fonts and external styles --> <link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,700&display=swap"> <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="anonymous"> <link rel="preload" as="font" href="/static/fonts/oranda_bold_bt.04c85cb2.woff2" type="font/woff2" crossorigin="anonymous"> <link rel="preload" as="font" href="/static/fonts/oranda_bold_bt.8e266873.woff" type="font/woff" crossorigin="anonymous"> <link rel="preload" as="font" href="/static/fonts/oranda_bt.bde3d05f.woff2" type="font/woff2" crossorigin="anonymous"> <link rel="preload" as="font" href="/static/fonts/oranda_bt.05235f9a.woff" type="font/woff" crossorigin="anonymous"> <!-- Start: Core styling --> <!-- Bootstrap core CSS --> <link rel="stylesheet" href="https://componenten.nijmegen.nl/v6.1.0/css/bootstrap.min.css" integrity="sha512-bnCn1haQjQGPoq90nqpOWUiu9i60sex8WQI639yU2yElzx0pfG0hpaJrKuJTJD3bZ3lEUw+HRGEHrWm6TGsKSg==" crossorigin="anonymous"> <!-- Material Design Bootstrap combined with custom Nijmegen styles --> <link rel="stylesheet" href="https://componenten.nijmegen.nl/v6.1.0/nijmegen.css" integrity="sha512-blgrU3wXs0CIV9iars0ZyneHar1CFTEojkN3O9sGQrkvwT4PZX5wXD6dv7Gde+mUGPhgrr9ej92UCuzDkmk7cQ==" crossorigin="anonymous"> <!-- End: Core styling --> <link rel="stylesheet" href="/static/styles/screen.css"> <title>Webformulieren management{{#title}} - {{.}} {{/title}}</title> </head> <body> <nav class="navbar fixed-top navbar-expand-lg scrolling-navbar navbar-primary"> <ul class="navbar-skiplinks"> <li> <a href="#section-1 ">Direct naar inhoud</a> </li> </ul> <div class="container"> <button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false"> <span class="sr-only">Menu</span> <span class="navbar-toggler-icon" aria-hidden="true"></span> </button> <a class="navbar-brand" href="https://nijmegen.nl"> <span class="sr-only">Hoofdpagina</span> <div class="navbar-brand-container"> <img src="https://componenten.nijmegen.nl/v6.0.0/img/beeldmerklabelwit.svg" class="logo-labeled" alt="Logo Nijmegen"> <img src="https://componenten.nijmegen.nl/v6.0.0/img/beeldmerkwit.svg" class="logo" aria-hidden="true" alt="Logo Nijmegen"> </div> </a> {{#shownav}} <div class="collapse navbar-collapse" id="navbar-collapse"> <ul class="navbar-nav mr-auto nijmegen-smooth-scroll"> <li class="nav-item"> <a href="/" class="nav-link">Overzicht</a> </li> {{#nav}} <li class="nav-item"> <a href="{{{url}}}" class="nav-link">{{title}}</a> </li> {{/nav}} </ul> <ul class="navbar-nav ml-auto"> <li class="nav-item"> <a class="nav-link nav-no-link" href="/logout">{{volledigenaam}} <svg title="uitloggen" class="mdi mdi-logout" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,17V14H9V10H16V7L21,12L16,17M14,2A2,2 0 0,1 16,4V6H14V4H5V20H14V18H16V20A2,2 0 0,1 14,22H5A2,2 0 0,1 3,20V4A2,2 0 0,1 5,2H14Z" /></svg> </a> </li> </ul> </div> {{/shownav}} </div> </nav>';
|
|
1077
|
+
var header_default = template2;
|
|
1065
1078
|
|
|
1066
1079
|
// src/webapp/util/render.ts
|
|
1080
|
+
var mustache = require_mustache();
|
|
1067
1081
|
var overwriteHeader = Files.loadTemplateOverwrite("/opt/header.mustache");
|
|
1068
1082
|
var overwriteFooter = Files.loadTemplateOverwrite("/opt/footer.mustache");
|
|
1069
|
-
async function
|
|
1083
|
+
async function render(data, template3, partials) {
|
|
1070
1084
|
const fullPartials = {
|
|
1071
1085
|
header: overwriteHeader ?? header_default,
|
|
1072
1086
|
footer: overwriteFooter ?? footer_default,
|
|
@@ -1076,7 +1090,7 @@ async function render4(data, template, partials) {
|
|
|
1076
1090
|
logos: false,
|
|
1077
1091
|
...data
|
|
1078
1092
|
};
|
|
1079
|
-
return (
|
|
1093
|
+
return mustache.render(template3, data, fullPartials);
|
|
1080
1094
|
}
|
|
1081
1095
|
|
|
1082
1096
|
// src/webapp/logout/handleLogoutRequest.ts
|
|
@@ -1089,8 +1103,8 @@ async function handleLogoutRequest(cookies, dynamoDBClient2, templateOverwrite2)
|
|
|
1089
1103
|
loggedin: { BOOL: false }
|
|
1090
1104
|
});
|
|
1091
1105
|
}
|
|
1092
|
-
const
|
|
1093
|
-
const html = await
|
|
1106
|
+
const template3 = templateOverwrite2 ?? logout_default;
|
|
1107
|
+
const html = await render({ title: "Uitgelogd" }, template3);
|
|
1094
1108
|
const emptyCookie = import_cookie.default.serialize("session", "", {
|
|
1095
1109
|
httpOnly: true,
|
|
1096
1110
|
secure: true
|
|
@@ -1133,7 +1147,7 @@ cookie/index.js:
|
|
|
1133
1147
|
* MIT Licensed
|
|
1134
1148
|
*)
|
|
1135
1149
|
|
|
1136
|
-
mustache/mustache.
|
|
1150
|
+
mustache/mustache.js:
|
|
1137
1151
|
(*!
|
|
1138
1152
|
* mustache.js - Logic-less {{mustache}} templates with JavaScript
|
|
1139
1153
|
* http://github.com/janl/mustache.js
|