m3-json-schema 1.0.0-beta1

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.
Files changed (53) hide show
  1. package/cljc.java_time.extn.calendar_awareness.js +26 -0
  2. package/cljc.java_time.extn.calendar_awareness.js.map +1 -0
  3. package/cljc.java_time.local_date.js +384 -0
  4. package/cljc.java_time.local_date.js.map +1 -0
  5. package/cljc.java_time.offset_date_time.js +391 -0
  6. package/cljc.java_time.offset_date_time.js.map +1 -0
  7. package/cljc.java_time.offset_time.js +305 -0
  8. package/cljc.java_time.offset_time.js.map +1 -0
  9. package/cljs.core.js +38762 -0
  10. package/cljs.core.js.map +1 -0
  11. package/cljs_env.js +7717 -0
  12. package/clojure.string.js +492 -0
  13. package/clojure.string.js.map +1 -0
  14. package/index.d.ts +45 -0
  15. package/java.time.js +354 -0
  16. package/java.time.js.map +1 -0
  17. package/m3.draft.js +27 -0
  18. package/m3.draft.js.map +1 -0
  19. package/m3.ecma.js +28 -0
  20. package/m3.ecma.js.map +1 -0
  21. package/m3.format.js +301 -0
  22. package/m3.format.js.map +1 -0
  23. package/m3.idn_hostname.js +546 -0
  24. package/m3.idn_hostname.js.map +1 -0
  25. package/m3.js.js +330 -0
  26. package/m3.js.js.map +1 -0
  27. package/m3.log.js +147 -0
  28. package/m3.log.js.map +1 -0
  29. package/m3.pattern.js +36 -0
  30. package/m3.pattern.js.map +1 -0
  31. package/m3.platform.js +82 -0
  32. package/m3.platform.js.map +1 -0
  33. package/m3.property.js +1940 -0
  34. package/m3.property.js.map +1 -0
  35. package/m3.ref.js +404 -0
  36. package/m3.ref.js.map +1 -0
  37. package/m3.type.js +133 -0
  38. package/m3.type.js.map +1 -0
  39. package/m3.uri.js +259 -0
  40. package/m3.uri.js.map +1 -0
  41. package/m3.util.js +192 -0
  42. package/m3.util.js.map +1 -0
  43. package/m3.validate.js +522 -0
  44. package/m3.validate.js.map +1 -0
  45. package/m3.vocabulary.js +85 -0
  46. package/m3.vocabulary.js.map +1 -0
  47. package/package.json +35 -0
  48. package/shadow.js.js +100 -0
  49. package/shadow.js.js.map +9 -0
  50. package/shadow.js.shim.module$$js_joda$core.js +22 -0
  51. package/shadow.js.shim.module$$js_joda$core.js.map +9 -0
  52. package/shadow.js.shim.module$punycode.js +22 -0
  53. package/shadow.js.shim.module$punycode.js.map +9 -0
package/m3.uri.js ADDED
@@ -0,0 +1,259 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./clojure.string.js");
6
+ require("./m3.util.js");
7
+ var cljc=$CLJS.cljc || ($CLJS.cljc = {});
8
+ var m3=$CLJS.m3 || ($CLJS.m3 = {});
9
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
10
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
11
+ var java=$CLJS.java || ($CLJS.java = {});
12
+ var shadow=$CLJS.shadow || ($CLJS.shadow = {});
13
+ var goog=$CLJS.goog || ($CLJS.goog = {});
14
+ var module$shadow_js_shim_module$$js_joda$core=$CLJS.module$shadow_js_shim_module$$js_joda$core || ($CLJS.module$shadow_js_shim_module$$js_joda$core = {});
15
+ var module$shadow_js_shim_module$punycode=$CLJS.module$shadow_js_shim_module$punycode || ($CLJS.module$shadow_js_shim_module$punycode = {});
16
+
17
+ $CLJS.SHADOW_ENV.setLoaded("m3.uri.js");
18
+
19
+ goog.provide('m3.uri');
20
+ m3.uri.parse_uri_2 = (function m3$uri$parse_uri_2(s){
21
+ var temp__5823__auto__ = cljs.core.re_matches(/^(urn):([^:]+):([^?#]*)(?:\?([^#]*))?(?:#(.*))?/i,s);
22
+ if(cljs.core.truth_(temp__5823__auto__)){
23
+ var vec__21813 = temp__5823__auto__;
24
+ var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21813,(0),null);
25
+ var scheme = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21813,(1),null);
26
+ var nid = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21813,(2),null);
27
+ var nss = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21813,(3),null);
28
+ var _query = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21813,(4),null);
29
+ var fragment = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21813,(5),null);
30
+ var origin = [cljs.core.str.cljs$core$IFn$_invoke$arity$1(scheme),":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(nid)].join('');
31
+ var nss__$1 = ((cljs.core.empty_QMARK_(nss))?null:nss);
32
+ return m3.util.assoc_when(m3.util.assoc_when(m3.util.assoc_when(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"type","type",1174270348),(function (){var or__5025__auto__ = (function (){var and__5023__auto__ = origin;
33
+ if(cljs.core.truth_(and__5023__auto__)){
34
+ return new cljs.core.Keyword(null,"urn","urn",-1943666359);
35
+ } else {
36
+ return and__5023__auto__;
37
+ }
38
+ })();
39
+ if(cljs.core.truth_(or__5025__auto__)){
40
+ return or__5025__auto__;
41
+ } else {
42
+ var or__5025__auto____$1 = (function (){var and__5023__auto__ = nss__$1;
43
+ if(cljs.core.truth_(and__5023__auto__)){
44
+ return new cljs.core.Keyword(null,"nss","nss",338450727);
45
+ } else {
46
+ return and__5023__auto__;
47
+ }
48
+ })();
49
+ if(cljs.core.truth_(or__5025__auto____$1)){
50
+ return or__5025__auto____$1;
51
+ } else {
52
+ return new cljs.core.Keyword(null,"fragment","fragment",826775688);
53
+ }
54
+ }
55
+ })()),new cljs.core.Keyword(null,"origin","origin",1037372088),origin),new cljs.core.Keyword(null,"nss","nss",338450727),nss__$1),new cljs.core.Keyword(null,"fragment","fragment",826775688),fragment);
56
+ } else {
57
+ var temp__5823__auto____$1 = cljs.core.re_matches(/^(?:(?:([a-z][a-z0-9+.-]*):)?(?:\/\/([^\/?#]*))?([^?#]*))(?:\?([^#]*))?(?:#(.*))?/i,s);
58
+ if(cljs.core.truth_(temp__5823__auto____$1)){
59
+ var vec__21821 = temp__5823__auto____$1;
60
+ var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21821,(0),null);
61
+ var scheme = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21821,(1),null);
62
+ var authority = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21821,(2),null);
63
+ var path = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21821,(3),null);
64
+ var _query = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21821,(4),null);
65
+ var fragment = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21821,(5),null);
66
+ var origin = (function (){var and__5023__auto__ = scheme;
67
+ if(cljs.core.truth_(and__5023__auto__)){
68
+ var and__5023__auto____$1 = authority;
69
+ if(cljs.core.truth_(and__5023__auto____$1)){
70
+ return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(scheme),"://",cljs.core.str.cljs$core$IFn$_invoke$arity$1(authority)].join('');
71
+ } else {
72
+ return and__5023__auto____$1;
73
+ }
74
+ } else {
75
+ return and__5023__auto__;
76
+ }
77
+ })();
78
+ var path__$1 = ((cljs.core.empty_QMARK_(path))?null:path);
79
+ return m3.util.assoc_when(m3.util.assoc_when(m3.util.assoc_when(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"type","type",1174270348),(function (){var or__5025__auto__ = (function (){var and__5023__auto__ = origin;
80
+ if(cljs.core.truth_(and__5023__auto__)){
81
+ return new cljs.core.Keyword(null,"url","url",276297046);
82
+ } else {
83
+ return and__5023__auto__;
84
+ }
85
+ })();
86
+ if(cljs.core.truth_(or__5025__auto__)){
87
+ return or__5025__auto__;
88
+ } else {
89
+ var or__5025__auto____$1 = (function (){var and__5023__auto__ = path__$1;
90
+ if(cljs.core.truth_(and__5023__auto__)){
91
+ return new cljs.core.Keyword(null,"path","path",-188191168);
92
+ } else {
93
+ return and__5023__auto__;
94
+ }
95
+ })();
96
+ if(cljs.core.truth_(or__5025__auto____$1)){
97
+ return or__5025__auto____$1;
98
+ } else {
99
+ return new cljs.core.Keyword(null,"fragment","fragment",826775688);
100
+ }
101
+ }
102
+ })()),new cljs.core.Keyword(null,"origin","origin",1037372088),origin),new cljs.core.Keyword(null,"path","path",-188191168),path__$1),new cljs.core.Keyword(null,"fragment","fragment",826775688),fragment);
103
+ } else {
104
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("parse-uri failed:",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"uri","uri",-774711847),s], null));
105
+ }
106
+ }
107
+ });
108
+ m3.uri.parse_uri = cljs.core.memoize(m3.uri.parse_uri_2);
109
+ m3.uri.strip_path = (function m3$uri$strip_path(p){
110
+ var s = clojure.string.join.cljs$core$IFn$_invoke$arity$2("/",cljs.core.drop_last.cljs$core$IFn$_invoke$arity$1(clojure.string.split.cljs$core$IFn$_invoke$arity$3(p,/\//,(-1))));
111
+ if(cljs.core.empty_QMARK_(s)){
112
+ return null;
113
+ } else {
114
+ return s;
115
+ }
116
+ });
117
+ /**
118
+ * Remove . and .. segments from a URI path per RFC 3986 Section 5.2.4.
119
+ */
120
+ m3.uri.normalize_path = (function m3$uri$normalize_path(path){
121
+ var segments = clojure.string.split.cljs$core$IFn$_invoke$arity$3(path,/\//,(-1));
122
+ var result = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,seg){
123
+ var G__21837 = seg;
124
+ switch (G__21837) {
125
+ case ".":
126
+ return acc;
127
+
128
+ break;
129
+ case "..":
130
+ if(((cljs.core.seq(acc)) && (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.peek(acc),"")))){
131
+ return cljs.core.pop(acc);
132
+ } else {
133
+ return acc;
134
+ }
135
+
136
+ break;
137
+ default:
138
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,seg);
139
+
140
+ }
141
+ }),cljs.core.PersistentVector.EMPTY,segments);
142
+ return clojure.string.join.cljs$core$IFn$_invoke$arity$2("/",result);
143
+ });
144
+ m3.uri.inherit_path = (function m3$uri$inherit_path(parent,child){
145
+ if(clojure.string.starts_with_QMARK_(child,"/")){
146
+ return m3.uri.normalize_path(child);
147
+ } else {
148
+ return m3.uri.normalize_path([cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var and__5023__auto__ = parent;
149
+ if(cljs.core.truth_(and__5023__auto__)){
150
+ return m3.uri.strip_path(parent);
151
+ } else {
152
+ return and__5023__auto__;
153
+ }
154
+ })()),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(child)].join(''));
155
+ }
156
+ });
157
+ m3.uri.inherit_uri = (function m3$uri$inherit_uri(parent,child){
158
+ if((parent == null)){
159
+ return child;
160
+ } else {
161
+ var map__21853 = parent;
162
+ var map__21853__$1 = cljs.core.__destructure_map(map__21853);
163
+ var pt = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21853__$1,new cljs.core.Keyword(null,"type","type",1174270348));
164
+ var map__21854 = child;
165
+ var map__21854__$1 = cljs.core.__destructure_map(map__21854);
166
+ var ct = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21854__$1,new cljs.core.Keyword(null,"type","type",1174270348));
167
+ var G__21855 = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [pt,ct], null);
168
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"urn","urn",-1943666359),new cljs.core.Keyword(null,"fragment","fragment",826775688)], null),G__21855)){
169
+ return m3.util.assoc_when(parent,new cljs.core.Keyword(null,"fragment","fragment",826775688),new cljs.core.Keyword(null,"fragment","fragment",826775688).cljs$core$IFn$_invoke$arity$1(child));
170
+ } else {
171
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"fragment","fragment",826775688),new cljs.core.Keyword(null,"fragment","fragment",826775688)], null),G__21855)){
172
+ return child;
173
+ } else {
174
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"url","url",276297046),new cljs.core.Keyword(null,"urn","urn",-1943666359)], null),G__21855)){
175
+ return child;
176
+ } else {
177
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"urn","urn",-1943666359),new cljs.core.Keyword(null,"path","path",-188191168)], null),G__21855)){
178
+ return child;
179
+ } else {
180
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"fragment","fragment",826775688),new cljs.core.Keyword(null,"path","path",-188191168)], null),G__21855)){
181
+ return child;
182
+ } else {
183
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"urn","urn",-1943666359),new cljs.core.Keyword(null,"urn","urn",-1943666359)], null),G__21855)){
184
+ return child;
185
+ } else {
186
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"fragment","fragment",826775688),new cljs.core.Keyword(null,"url","url",276297046)], null),G__21855)){
187
+ return child;
188
+ } else {
189
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"urn","urn",-1943666359),new cljs.core.Keyword(null,"url","url",276297046)], null),G__21855)){
190
+ return child;
191
+ } else {
192
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"url","url",276297046),new cljs.core.Keyword(null,"path","path",-188191168)], null),G__21855)){
193
+ var map__21860 = child;
194
+ var map__21860__$1 = cljs.core.__destructure_map(map__21860);
195
+ var cp = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21860__$1,new cljs.core.Keyword(null,"path","path",-188191168));
196
+ var cf = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21860__$1,new cljs.core.Keyword(null,"fragment","fragment",826775688));
197
+ return m3.util.assoc_when(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parent,new cljs.core.Keyword(null,"path","path",-188191168),m3.uri.inherit_path(new cljs.core.Keyword(null,"path","path",-188191168).cljs$core$IFn$_invoke$arity$1(parent),cp)),new cljs.core.Keyword(null,"fragment","fragment",826775688),cf);
198
+ } else {
199
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"path","path",-188191168),new cljs.core.Keyword(null,"url","url",276297046)], null),G__21855)){
200
+ return child;
201
+ } else {
202
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"url","url",276297046),new cljs.core.Keyword(null,"fragment","fragment",826775688)], null),G__21855)){
203
+ return m3.util.assoc_when(parent,new cljs.core.Keyword(null,"fragment","fragment",826775688),new cljs.core.Keyword(null,"fragment","fragment",826775688).cljs$core$IFn$_invoke$arity$1(child));
204
+ } else {
205
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"url","url",276297046),new cljs.core.Keyword(null,"url","url",276297046)], null),G__21855)){
206
+ return child;
207
+ } else {
208
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"path","path",-188191168),new cljs.core.Keyword(null,"fragment","fragment",826775688)], null),G__21855)){
209
+ return m3.util.assoc_when(parent,new cljs.core.Keyword(null,"fragment","fragment",826775688),new cljs.core.Keyword(null,"fragment","fragment",826775688).cljs$core$IFn$_invoke$arity$1(child));
210
+ } else {
211
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"path","path",-188191168),new cljs.core.Keyword(null,"urn","urn",-1943666359)], null),G__21855)){
212
+ return child;
213
+ } else {
214
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"path","path",-188191168),new cljs.core.Keyword(null,"path","path",-188191168)], null),G__21855)){
215
+ var map__21866 = child;
216
+ var map__21866__$1 = cljs.core.__destructure_map(map__21866);
217
+ var cp = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21866__$1,new cljs.core.Keyword(null,"path","path",-188191168));
218
+ var cf = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21866__$1,new cljs.core.Keyword(null,"fragment","fragment",826775688));
219
+ return m3.util.assoc_when(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parent,new cljs.core.Keyword(null,"path","path",-188191168),m3.uri.inherit_path(new cljs.core.Keyword(null,"path","path",-188191168).cljs$core$IFn$_invoke$arity$1(parent),cp)),new cljs.core.Keyword(null,"fragment","fragment",826775688),cf);
220
+ } else {
221
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"fragment","fragment",826775688),new cljs.core.Keyword(null,"urn","urn",-1943666359)], null),G__21855)){
222
+ return child;
223
+ } else {
224
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("inherit-uri: unexpected type combination",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"parent","parent",-878878779),pt,new cljs.core.Keyword(null,"child","child",623967545),ct], null));
225
+
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ });
244
+ m3.uri.uri_base = (function m3$uri$uri_base(uri){
245
+ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(uri,new cljs.core.Keyword(null,"fragment","fragment",826775688));
246
+ });
247
+ m3.uri.uri_fragment = (function m3$uri$uri_fragment(p__21875){
248
+ var map__21876 = p__21875;
249
+ var map__21876__$1 = cljs.core.__destructure_map(map__21876);
250
+ var uri = map__21876__$1;
251
+ var t = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21876__$1,new cljs.core.Keyword(null,"type","type",1174270348));
252
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"fragment","fragment",826775688),t)){
253
+ return uri;
254
+ } else {
255
+ return m3.util.assoc_when(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"fragment","fragment",826775688)], null),new cljs.core.Keyword(null,"fragment","fragment",826775688),new cljs.core.Keyword(null,"fragment","fragment",826775688).cljs$core$IFn$_invoke$arity$1(uri));
256
+ }
257
+ });
258
+
259
+ //# sourceMappingURL=m3.uri.js.map
package/m3.uri.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["m3/uri.cljc"],"mappings":"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","names":["m3.uri/parse-uri-2","s","temp__5823__auto__","vec__21813","cljs.core.nth","_","scheme","nid","nss","_query","fragment","cljs.core/re-matches","origin","cljs.core/empty?","cljs.core.assoc","or__5025__auto__","and__5023__auto__","m3.util/assoc-when","vec__21821","authority","path","cljs.core.ex_info","m3.uri/parse-uri","cljs.core/memoize","m3.uri/strip-path","p","clojure.string.join","cljs.core.drop_last","clojure.string.split","m3.uri/normalize-path","segments","result","cljs.core.reduce","acc","seg","G__21837","cljs.core/seq","cljs.core.not_EQ_","cljs.core/peek","cljs.core/pop","cljs.core.conj","m3.uri/inherit-path","parent","child","clojure.string/starts-with?","m3.uri/inherit-uri","map__21853","cljs.core/--destructure-map","cljs.core.get","map__21854","pt","ct","G__21855","cljs.core._EQ_","map__21860","cp","cf","map__21866","m3.uri/uri-base","uri","cljs.core.dissoc","p__21875","map__21876","m3.uri/uri-fragment","t"],"sourcesContent":[";; Copyright 2025 Julian Gosnell\n;;\n;; Licensed under the Apache License, Version 2.0 (the \"License\");\n;; you may not use this file except in compliance with the License.\n;; You may obtain a copy of the License at\n;;\n;; http://www.apache.org/licenses/LICENSE-2.0\n;;\n;; Unless required by applicable law or agreed to in writing, software\n;; distributed under the License is distributed on an \"AS IS\" BASIS,\n;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n;; See the License for the specific language governing permissions and\n;; limitations under the License.\n\n(ns m3.uri\n (:require\n [clojure.string :refer [join split starts-with?]]\n [m3.util :refer [assoc-when]]))\n\n;; not sure I like how paths and fragments fall out on the url side, but ... life is too short...\n;; I don't think we are dealing with the possibility of a :type=:nss...\n(defn parse-uri-2 [s]\n (if-let [[_ scheme nid nss _query fragment]\n (re-matches #\"(?i)^(urn):([^:]+):([^?#]*)(?:\\?([^#]*))?(?:#(.*))?\" s)]\n ;; regexp insists on schema and nid\n (let [origin (str scheme \":\" nid)\n nss (when-not (empty? nss) nss)]\n (-> {}\n (assoc :type (or (and origin :urn) (and nss :nss) :fragment))\n (assoc-when :origin origin)\n (assoc-when :nss nss)\n (assoc-when :fragment fragment)))\n (if-let [[_ scheme authority path _query fragment]\n (re-matches #\"(?i)^(?:(?:([a-z][a-z0-9+.-]*):)?(?://([^/?#]*))?([^?#]*))(?:\\?([^#]*))?(?:#(.*))?\" s)]\n ;; regexp does not insist on both schema and authority but... we'll pretend it does\n (let [origin (and scheme authority (str scheme \"://\" authority))\n path (when-not (empty? path) path)]\n (-> {}\n (assoc :type (or (and origin :url) (and path :path) :fragment))\n (assoc-when :origin origin)\n (assoc-when :path path)\n (assoc-when :fragment fragment)))\n ;; should never happen as id uris should have been validated against meta-schema\n (throw (ex-info \"parse-uri failed:\" {:uri s})))))\n\n(def parse-uri (memoize parse-uri-2))\n\n(defn strip-path [p]\n (let [s (join \"/\" (drop-last (split p #\"/\" -1)))]\n (when-not (empty? s) s)))\n\n(defn- normalize-path\n \"Remove . and .. segments from a URI path per RFC 3986 Section 5.2.4.\"\n [path]\n (let [segments (split path #\"/\" -1)\n ;; Preserve leading empty segment (absolute path starts with /)\n result (reduce\n (fn [acc seg]\n (case seg\n \".\" acc\n \"..\" (if (and (seq acc) (not= (peek acc) \"\"))\n (pop acc)\n acc)\n (conj acc seg)))\n []\n segments)]\n (join \"/\" result)))\n\n(defn inherit-path [parent child]\n (if (starts-with? child \"/\")\n (normalize-path child)\n (normalize-path (str (and parent (strip-path parent)) \"/\" child))))\n\n(defn inherit-uri [parent child]\n (if (nil? parent)\n child\n (let [{pt :type} parent\n {ct :type} child]\n (case [pt ct]\n [:urn :urn] child\n [:urn :url] child\n [:urn :path] child\n [:urn :fragment] (assoc-when parent :fragment (:fragment child))\n [:url :urn] child\n [:url :url] child\n [:url :path] (let [{cp :path cf :fragment} child] (assoc-when (assoc parent :path (inherit-path (:path parent) cp)) :fragment cf))\n [:url :fragment] (assoc-when parent :fragment (:fragment child))\n [:path :urn] child\n [:path :url] child\n [:path :path] (let [{cp :path cf :fragment} child] (assoc-when (assoc parent :path (inherit-path (:path parent) cp)) :fragment cf))\n [:path :fragment] (assoc-when parent :fragment (:fragment child))\n [:fragment :urn] child\n [:fragment :url] child\n [:fragment :path] child\n [:fragment :fragment] child\n (throw (ex-info \"inherit-uri: unexpected type combination\" {:parent pt :child ct}))))))\n\n(defn uri-base [uri]\n (dissoc uri :fragment))\n\n(defn uri-fragment [{t :type :as uri}]\n (if (= :fragment t)\n uri\n (assoc-when {:type :fragment} :fragment (:fragment uri))))\n"]}
package/m3.util.js ADDED
@@ -0,0 +1,192 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ var cljc=$CLJS.cljc || ($CLJS.cljc = {});
6
+ var m3=$CLJS.m3 || ($CLJS.m3 = {});
7
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
8
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
9
+ var java=$CLJS.java || ($CLJS.java = {});
10
+ var shadow=$CLJS.shadow || ($CLJS.shadow = {});
11
+ var goog=$CLJS.goog || ($CLJS.goog = {});
12
+ var module$shadow_js_shim_module$$js_joda$core=$CLJS.module$shadow_js_shim_module$$js_joda$core || ($CLJS.module$shadow_js_shim_module$$js_joda$core = {});
13
+ var module$shadow_js_shim_module$punycode=$CLJS.module$shadow_js_shim_module$punycode || ($CLJS.module$shadow_js_shim_module$punycode = {});
14
+
15
+ $CLJS.SHADOW_ENV.setLoaded("m3.util.js");
16
+
17
+ goog.provide('m3.util');
18
+ m3.util.third = (function m3$util$third(v){
19
+ return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v,(2));
20
+ });
21
+ m3.util.fourth = (function m3$util$fourth(v){
22
+ return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v,(3));
23
+ });
24
+ m3.util.absent = new cljs.core.Keyword(null,"absent","absent",1020140372);
25
+ m3.util.absent_QMARK_ = (function m3$util$absent_QMARK_(v){
26
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(m3.util.absent,v);
27
+ });
28
+ m3.util.present_QMARK_ = (function m3$util$present_QMARK_(v){
29
+ return (!(m3.util.absent_QMARK_(v)));
30
+ });
31
+ m3.util.into_set = cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.into,cljs.core.PersistentHashSet.EMPTY);
32
+ m3.util.conj_set = cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentHashSet.EMPTY);
33
+ m3.util.concatv = (function m3$util$concatv(var_args){
34
+ var args__5755__auto__ = [];
35
+ var len__5749__auto___21807 = arguments.length;
36
+ var i__5750__auto___21808 = (0);
37
+ while(true){
38
+ if((i__5750__auto___21808 < len__5749__auto___21807)){
39
+ args__5755__auto__.push((arguments[i__5750__auto___21808]));
40
+
41
+ var G__21809 = (i__5750__auto___21808 + (1));
42
+ i__5750__auto___21808 = G__21809;
43
+ continue;
44
+ } else {
45
+ }
46
+ break;
47
+ }
48
+
49
+ var argseq__5756__auto__ = ((((0) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);
50
+ return m3.util.concatv.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);
51
+ });
52
+
53
+ (m3.util.concatv.cljs$core$IFn$_invoke$arity$variadic = (function (args){
54
+ return cljs.core.vec(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,args));
55
+ }));
56
+
57
+ (m3.util.concatv.cljs$lang$maxFixedArity = (0));
58
+
59
+ /** @this {Function} */
60
+ (m3.util.concatv.cljs$lang$applyTo = (function (seq21757){
61
+ var self__5735__auto__ = this;
62
+ return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq21757));
63
+ }));
64
+
65
+ m3.util.seq_contains_QMARK_ = (function m3$util$seq_contains_QMARK_(s,p_QMARK_,v){
66
+ return cljs.core.boolean$(cljs.core.some(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(p_QMARK_,v),s));
67
+ });
68
+ m3.util.assoc_when = (function m3$util$assoc_when(c,k,v){
69
+ if((v == null)){
70
+ return c;
71
+ } else {
72
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c,k,v);
73
+ }
74
+ });
75
+ m3.util.map_values = (function m3$util$map_values(f,m){
76
+ return cljs.core.reduce_kv((function (acc,k,v){
77
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,k,(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(k,v) : f.call(null,k,v)));
78
+ }),cljs.core.empty(m),m);
79
+ });
80
+ m3.util.topo_sort_by_2 = (function m3$util$topo_sort_by_2(f,x,acc,ks){
81
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__21766,k){
82
+ var vec__21768 = p__21766;
83
+ var in$ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21768,(0),null);
84
+ var out = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21768,(1),null);
85
+ var acc__$1 = vec__21768;
86
+ var temp__5823__auto__ = (in$.cljs$core$IFn$_invoke$arity$1 ? in$.cljs$core$IFn$_invoke$arity$1(k) : in$.call(null,k));
87
+ if(cljs.core.truth_(temp__5823__auto__)){
88
+ var v = temp__5823__auto__;
89
+ var e = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v], null);
90
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$4((function (){var G__21771 = f;
91
+ var G__21772 = x;
92
+ var G__21773 = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(in$,k),out], null);
93
+ var G__21774 = (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(e) : f.call(null,e));
94
+ return (m3.util.topo_sort_by_2.cljs$core$IFn$_invoke$arity$4 ? m3.util.topo_sort_by_2.cljs$core$IFn$_invoke$arity$4(G__21771,G__21772,G__21773,G__21774) : m3.util.topo_sort_by_2.call(null,G__21771,G__21772,G__21773,G__21774));
95
+ })(),(1),cljs.core.conj,(x.cljs$core$IFn$_invoke$arity$1 ? x.cljs$core$IFn$_invoke$arity$1(e) : x.call(null,e)));
96
+ } else {
97
+ return acc__$1;
98
+ }
99
+ }),acc,ks);
100
+ });
101
+ m3.util.topo_sort_by = (function m3$util$topo_sort_by(f,x,m){
102
+ return cljs.core.second(m3.util.topo_sort_by_2(f,x,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,cljs.core.PersistentVector.EMPTY], null),cljs.core.keys(m)));
103
+ });
104
+ m3.util.make_stable_sort_by = (function m3$util$make_stable_sort_by(k1,e1s){
105
+ var index = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2((function (i,e1){
106
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(k1.cljs$core$IFn$_invoke$arity$1 ? k1.cljs$core$IFn$_invoke$arity$1(e1) : k1.call(null,e1)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [i,e1], null)], null);
107
+ }),e1s));
108
+ return (function (k2,xform,e2s){
109
+ return cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(xform,cljs.core.second),cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(cljs.core.first,cljs.core.keep.cljs$core$IFn$_invoke$arity$2((function (e2){
110
+ var temp__5825__auto__ = (function (){var G__21781 = (k2.cljs$core$IFn$_invoke$arity$1 ? k2.cljs$core$IFn$_invoke$arity$1(e2) : k2.call(null,e2));
111
+ return (index.cljs$core$IFn$_invoke$arity$1 ? index.cljs$core$IFn$_invoke$arity$1(G__21781) : index.call(null,G__21781));
112
+ })();
113
+ if(cljs.core.truth_(temp__5825__auto__)){
114
+ var vec__21782 = temp__5825__auto__;
115
+ var i = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21782,(0),null);
116
+ var e1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21782,(1),null);
117
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [i,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e2,e1], null)], null);
118
+ } else {
119
+ return null;
120
+ }
121
+ }),e2s)));
122
+ });
123
+ });
124
+ m3.util.make_error = (function m3$util$make_error(message,schema_path,schema,document_path,document){
125
+ return new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"schema-path","schema-path",-177890704),schema_path,new cljs.core.Keyword(null,"message","message",-406056002),[cljs.core.str.cljs$core$IFn$_invoke$arity$1(message)," - ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([document], 0))].join(''),new cljs.core.Keyword(null,"document-path","document-path",-1671867171),document_path,new cljs.core.Keyword(null,"document","document",-1329188687),document,new cljs.core.Keyword(null,"schema","schema",-1582001791),schema], null);
126
+ });
127
+ m3.util.make_error_on = (function m3$util$make_error_on(message,schema_path,schema,document_path,document,failed_QMARK_,errors){
128
+ if(cljs.core.truth_((failed_QMARK_.cljs$core$IFn$_invoke$arity$1 ? failed_QMARK_.cljs$core$IFn$_invoke$arity$1(errors) : failed_QMARK_.call(null,errors)))){
129
+ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m3.util.make_error(message,schema_path,schema,document_path,document),new cljs.core.Keyword(null,"errors","errors",-908790718),errors)], null);
130
+ } else {
131
+ return null;
132
+ }
133
+ });
134
+ m3.util.make_error_on_failure = (function m3$util$make_error_on_failure(message,schema_path,schema,document_path,document,errors){
135
+ return m3.util.make_error_on(message,schema_path,schema,document_path,document,cljs.core.seq,errors);
136
+ });
137
+ m3.util.error_key_map = new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"schema-path","schema-path",-177890704),"schemaPath",new cljs.core.Keyword(null,"document-path","document-path",-1671867171),"documentPath",new cljs.core.Keyword(null,"message","message",-406056002),"message",new cljs.core.Keyword(null,"document","document",-1329188687),"document",new cljs.core.Keyword(null,"schema","schema",-1582001791),"schema",new cljs.core.Keyword(null,"errors","errors",-908790718),"errors",new cljs.core.Keyword(null,"valid?","valid?",-212412379),"valid"], null);
138
+ /**
139
+ * Recursively convert a Clojure result/error tree using the given output fns.
140
+ * output-fns is a map with :make-map, :make-vec, :make-kw keys.
141
+ * If output-fns is nil, returns the value unchanged (Clojure default).
142
+ */
143
+ m3.util.convert_output = (function m3$util$convert_output(output_fns,v){
144
+ if((output_fns == null)){
145
+ return v;
146
+ } else {
147
+ var map__21794 = output_fns;
148
+ var map__21794__$1 = cljs.core.__destructure_map(map__21794);
149
+ var make_map = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21794__$1,new cljs.core.Keyword(null,"make-map","make-map",1515755629));
150
+ var make_vec = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21794__$1,new cljs.core.Keyword(null,"make-vec","make-vec",-1515025528));
151
+ var make_kw = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21794__$1,new cljs.core.Keyword(null,"make-kw","make-kw",-997002371));
152
+ if(cljs.core.map_QMARK_(v)){
153
+ return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(make_map,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__21795){
154
+ var vec__21796 = p__21795;
155
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21796,(0),null);
156
+ var val = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21796,(1),null);
157
+ var out_key = (((k instanceof cljs.core.Keyword))?(function (){var G__21799 = (function (){var or__5025__auto__ = (m3.util.error_key_map.cljs$core$IFn$_invoke$arity$1 ? m3.util.error_key_map.cljs$core$IFn$_invoke$arity$1(k) : m3.util.error_key_map.call(null,k));
158
+ if(cljs.core.truth_(or__5025__auto__)){
159
+ return or__5025__auto__;
160
+ } else {
161
+ return cljs.core.name(k);
162
+ }
163
+ })();
164
+ return (make_kw.cljs$core$IFn$_invoke$arity$1 ? make_kw.cljs$core$IFn$_invoke$arity$1(G__21799) : make_kw.call(null,G__21799));
165
+ })():(function (){var G__21800 = cljs.core.str.cljs$core$IFn$_invoke$arity$1(k);
166
+ return (make_kw.cljs$core$IFn$_invoke$arity$1 ? make_kw.cljs$core$IFn$_invoke$arity$1(G__21800) : make_kw.call(null,G__21800));
167
+ })());
168
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [out_key,(m3.util.convert_output.cljs$core$IFn$_invoke$arity$2 ? m3.util.convert_output.cljs$core$IFn$_invoke$arity$2(output_fns,val) : m3.util.convert_output.call(null,output_fns,val))], null);
169
+ }),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v], 0)));
170
+ } else {
171
+ if(cljs.core.vector_QMARK_(v)){
172
+ var G__21803 = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(m3.util.convert_output,output_fns),v);
173
+ return (make_vec.cljs$core$IFn$_invoke$arity$1 ? make_vec.cljs$core$IFn$_invoke$arity$1(G__21803) : make_vec.call(null,G__21803));
174
+ } else {
175
+ if(cljs.core.seq_QMARK_(v)){
176
+ var G__21804 = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(m3.util.convert_output,output_fns),v);
177
+ return (make_vec.cljs$core$IFn$_invoke$arity$1 ? make_vec.cljs$core$IFn$_invoke$arity$1(G__21804) : make_vec.call(null,G__21804));
178
+ } else {
179
+ return v;
180
+
181
+ }
182
+ }
183
+ }
184
+ }
185
+ });
186
+ m3.util.get_check_schema = (function m3$util$get_check_schema(){
187
+ return cljs.core.deref((((typeof m3 !== 'undefined') && (typeof m3.validate !== 'undefined') && (typeof m3.validate.check_schema !== 'undefined'))?(new cljs.core.Var((function (){
188
+ return m3.validate.check_schema;
189
+ }),cljs.core.with_meta(new cljs.core.Symbol("m3.validate","check-schema","m3.validate/check-schema",823466123,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.analyzer","no-resolve","cljs.analyzer/no-resolve",-1872351017),true], null)),null)):null));
190
+ });
191
+
192
+ //# sourceMappingURL=m3.util.js.map
package/m3.util.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["m3/util.cljc"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,gBAAA,hBAAMA,wCAAOC;AAAb,AACE,qDAAA,9CAACC,4CAAID;;AAEP,iBAAA,jBAAME,0CAAQF;AAAd,AACE,qDAAA,9CAACC,4CAAID;;AAIP,iBAAA,jBAAKG;AAEL,wBAAA,xBAAMC,wDAASJ;AAAf,AACE,OAACK,6CAAEF,eAAOH;;AAEZ,yBAAA,zBAAMM,0DAAUN;AAAhB,AACE,UAAK,AAACI,sBAAQJ;;AAEhB,AAAKO,mBAAS,4DAAA,5DAACC,6CAAKC;AACpB,AAAKC,mBAAS,4DAAA,5DAACF,6CAAKG;AAEpB,AAAA,kBAAA,0BAAAC,5CAAMM;AAAN,AAAA,IAAAL,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAK,qDAAAF;;;AAAA,AAAA,CAAA,uDAAA,vDAAME,kEAAWI;AAAjB,AACE,OAACC,cAAI,AAACC,8CAAMC,iBAAOH;;;AADrB,CAAA,0CAAA,1CAAMJ;;AAAN;AAAA,CAAA,oCAAA,WAAAC,/CAAMD;AAAN,AAAA,IAAAE,qBAAA;AAAA,AAAA,OAAAA,wDAAA,AAAAC,cAAAF;;;AAAA,AAGA,8BAAA,9BAAMO,oEAAeC,EAAEC,SAAG5B;AAA1B,AACE,OAAC6B,mBAAQ,AAACC,eAAK,AAACC,gDAAQH,SAAG5B,GAAG2B;;AAEhC,qBAAA,rBAAMK,kDAAYC,EAAEC,EAAElC;AAAtB,AACE,GAAI,MAAA,LAAMA;AAAGiC;;AAAE,OAACE,8CAAMF,EAAEC,EAAElC;;;AAI5B,qBAAA,rBAAMoC,kDAAYC,EAAEC;AAApB,AACE,OAACC,oBACA,WAAKC,IAAIN,EAAElC;AAAX,AACE,OAACmC,8CAAMK,IAAIN,EAAE,CAACG,kCAAAA,uCAAAA,PAAEH,mBAAAA,jBAAElC,mBAAAA;GACpB,AAACyC,gBAAMH,GACPA;;AAIH,yBAAA,zBAAOI,0DAAgBL,EAAEM,EAAEH,IAAII;AAA/B,AACE,OAACC,+CACA,WAAAC,SAAsBZ;AAAtB,AAAA,IAAAa,aAAAD;UAAA,AAAA7C,4CAAA8C,WAAA,IAAA,jEAAMC;UAAN,AAAA/C,4CAAA8C,WAAA,IAAA,jEAASE;cAATF,VAAiBP;AAAjB,AACE,IAAAU,qBAAW,CAACF,oCAAAA,uCAAAA,LAAGd,mBAAAA;AAAf,AAAA,oBAAAgB;AAAA,QAAAA,JAASlD;AAAT,AACE,QAAA,JAAMmD,uFAAGjB,EAAElC;AAAX,AACE,OAACoD,+CAAO,iBAAAC,WAAgBhB;IAAhBiB,WAAkBX;IAAlBY,WAAA,mFAAqB,AAACE,+CAAOT,IAAGd,GAAGe;IAAnCO,WAAwC,CAACnB,kCAAAA,qCAAAA,LAAEc,iBAAAA;AAA3C,AAAA,oHAAAE,SAAAC,SAAAC,SAAAC,6CAAAH,SAAAC,SAAAC,SAAAC,/MAACd,uDAAAA,4FAAAA;KAAT,IAAyD/B,eAAK,CAACgC,kCAAAA,qCAAAA,LAAEQ,iBAAAA;;AACnEX;;GACJA,IACAI;;AAEH,uBAAA,vBAAMc,sDAAcrB,EAAEM,EAAEL;AAAxB,AACE,OAACqB,iBAAO,2BAAA,qFAAA,hHAACjB,uBAAeL,EAAEM,qFAAGL,2CAAM,AAACsB,eAAKtB;;AAI3C,8BAAA,9BAAMuB,oEAAqBC,GAAGC;AAA9B,AACE,IAAMC,QAAM,6CAAA,7CAACC,gFAAQ,AAACC,oDAAY,WAAKC,EAAEC;AAAP,AAAA,uLAAA,7FAAY,CAACN,mCAAAA,uCAAAA,NAAGM,mBAAAA,wFAAKD,EAAEC;GAAML;AAA/D,AACE,kBAAKM,GAAGC,MAAMC;AAAd,AACE,OAACC,4CACA,AAACC,6CAAKH,MAAMX,kBACZ,AAACe,gDACAC,gBACA,AAACC,6CACA,WAAKC;AAAL,AAAS,IAAAC,qBAAkB,iBAAAE,WAAO,CAACX,mCAAAA,uCAAAA,NAAGQ,mBAAAA;AAAX,AAAA,kFAAAG,4BAAAA,tGAAChB,sCAAAA,gDAAAA;;AAAnB,AAAA,oBAAAc;AAAA,AAAA,IAAAC,aAAAD;QAAA,AAAA7E,4CAAA8E,WAAA,IAAA,/DAAYZ;SAAZ,AAAAlE,4CAAA8E,WAAA,IAAA,hEAAcX;AAAd,AAAA,4FAAA,FAAoCD,qFAAGU,GAAGT;;AAA1C;;GACTG;;;AAIT,qBAAA,rBAAMU,kDAAYC,QAAQC,YAAYC,OAAOC,cAAcC;AAA3D,AAAA,kDAAA,+EAAA,wPAAA,sFAAA,uEAAA,jaACgBH,uEAAqB,sDAAA,TAAKD,eAAc,AAACK,wGAAOD,iGAA0BD,4EAAwBC,mEAAiBF;;AAEnI,wBAAA,xBAAMI,wDAAeN,QAAQC,YAAYC,OAAOC,cAAcC,SAASG,cAAQC;AAA/E,AACE,oBAAM,CAACD,8CAAAA,sDAAAA,VAAQC,kCAAAA;AAAf,AAAA,0FACG,oHAAA,pHAACvD,8CAAM,AAAC8C,mBAAWC,QAAQC,YAAYC,OAAOC,cAAcC,mEAAkBI;;AADjF;;;AAGF,gCAAA,hCAAMC,wEAAuBT,QAAQC,YAAYC,OAAOC,cAAcC,SAASI;AAA/E,AACE,OAACF,sBAAcN,QAAQC,YAAYC,OAAOC,cAAcC,SAASjE,cAAIqE;;AAQvE,wBAAA,2CAAA,mEAAA,aAAA,wEAAA,eAAA,2DAAA,UAAA,8DAAA,WAAA,0DAAA,SAAA,yDAAA,SAAA,yDAAA,tjBAAeE;AASf;;;;;yBAAA,zBAAMC,0DAIHC,WAAW9F;AAJd,AAKE,GAAI,eAAA,dAAM8F;AACR9F;;AACA,IAAA+F,aAA0CD;IAA1CC,iBAAA,AAAAC,4BAAAD;eAAA,AAAAE,4CAAAF,eAAA,tEAAcG;eAAd,AAAAD,4CAAAF,eAAA,tEAAuBI;cAAvB,AAAAF,4CAAAF,eAAA,rEAAgCK;AAAhC,AACE,GACE,AAACC,qBAAKrG;AACN,OAACwB,8CAAM0E,SACA,AAACI,sDAAO,WAAAC;AAAA,AAAA,IAAAC,aAAAD;QAAA,AAAAtG,4CAAAuG,WAAA,IAAA,/DAAMtE;UAAN,AAAAjC,4CAAAuG,WAAA,IAAA,jEAAQC;AAAR,AACE,IAAMC,UAAQ,EAAI,cAAAC,bAAUzE,iCACZ,iBAAA0E,WAAS,iBAAAC,mBAAI,CAACjB,sDAAAA,yDAAAA,LAAc1D,qCAAAA;AAAnB,AAAA,oBAAA2E;AAAAA;;AAAsB,OAACC,eAAK5E;;;AAArC,AAAA,sFAAA0E,8BAAAA,5GAACR,wCAAAA,kDAAAA;KACD,iBAAAW,WAAS,4CAAK7E;AAAd,AAAA,sFAAA6E,8BAAAA,5GAACX,wCAAAA,kDAAAA;;AAFjB,AAAA,0FAGGM,QAAQ,CAACb,uDAAAA,uEAAAA,lBAAeC,mDAAAA,xCAAWW,mDAAAA;qDACxCzG;;AARjB,GAUE,AAACgH,wBAAQhH;AACT,IAAAiH,WAAU,AAACC,6CAAK,AAACnF,gDAAQ8D,uBAAeC,YAAY9F;AAApD,AAAA,wFAAAiH,+BAAAA,/GAACd,yCAAAA,mDAAAA;;AAXH,GAaE,AAACgB,qBAAKnH;AACN,IAAAoH,WAAU,AAACF,6CAAK,AAACnF,gDAAQ8D,uBAAeC,YAAY9F;AAApD,AAAA,wFAAAoH,+BAAAA,/GAACjB,yCAAAA,mDAAAA;;AAdH,AAgBQnG;;;;;;;AAId,2BAAA,3BAAMqH;AAAN,AAEE,OAACC,gBAAM,EAAA,QAAAC,+BAAAC,wCAAAC,2CAAA,AAAA,KAAAC,cAAA;AAAA,AAAAC;GAAA,AAAA,qQAAA,OAAA","names":["m3.util/third","v","cljs.core.nth","m3.util/fourth","m3.util/absent","m3.util/absent?","cljs.core._EQ_","m3.util/present?","m3.util/into-set","cljs.core.fnil","cljs.core/into","m3.util/conj-set","cljs.core/conj","var_args","args__5755__auto__","len__5749__auto__","i__5750__auto__","argseq__5756__auto__","cljs.core/IndexedSeq","m3.util/concatv","seq21757","self__5735__auto__","cljs.core/seq","args","cljs.core/vec","cljs.core.apply","cljs.core/concat","m3.util/seq-contains?","s","p?","cljs.core/boolean","cljs.core/some","cljs.core.partial","m3.util/assoc-when","c","k","cljs.core.assoc","m3.util/map-values","f","m","cljs.core/reduce-kv","acc","cljs.core/empty","m3.util/topo-sort-by-2","x","ks","cljs.core.reduce","p__21766","vec__21768","in","out","temp__5823__auto__","e","cljs.core.update","G__21771","G__21772","G__21773","G__21774","cljs.core.dissoc","m3.util/topo-sort-by","cljs.core/second","cljs.core/keys","m3.util/make-stable-sort-by","k1","e1s","index","cljs.core.into","cljs.core.map_indexed","i","e1","k2","xform","e2s","cljs.core.map","cljs.core.comp","cljs.core.sort_by","cljs.core/first","cljs.core.keep","e2","temp__5825__auto__","vec__21782","G__21781","m3.util/make-error","message","schema-path","schema","document-path","document","cljs.core.pr_str","m3.util/make-error-on","failed?","errors","m3.util/make-error-on-failure","m3.util/error-key-map","m3.util/convert-output","output-fns","map__21794","cljs.core/--destructure-map","cljs.core.get","make-map","make-vec","make-kw","cljs.core/map?","cljs.core.mapcat","p__21795","vec__21796","val","out-key","cljs.core/Keyword","G__21799","or__5025__auto__","cljs.core/name","G__21800","cljs.core/vector?","G__21803","cljs.core.mapv","cljs.core/seq?","G__21804","m3.util/get-check-schema","cljs.core/deref","js/m3","js/m3.validate","js/m3.validate.check-schema","cljs.core/Var","m3.validate/check-schema"],"sourcesContent":[";; Copyright 2025 Julian Gosnell\n;;\n;; Licensed under the Apache License, Version 2.0 (the \"License\");\n;; you may not use this file except in compliance with the License.\n;; You may obtain a copy of the License at\n;;\n;; http://www.apache.org/licenses/LICENSE-2.0\n;;\n;; Unless required by applicable law or agreed to in writing, software\n;; distributed under the License is distributed on an \"AS IS\" BASIS,\n;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n;; See the License for the specific language governing permissions and\n;; limitations under the License.\n\n(ns m3.util)\n\n;;------------------------------------------------------------------------------\n\n(defn third [v]\n (nth v 2))\n\n(defn fourth [v]\n (nth v 3))\n\n;;------------------------------------------------------------------------------\n\n(def absent :absent)\n\n(defn absent? [v]\n (= absent v))\n\n(defn present? [v]\n (not (absent? v)))\n\n(def into-set (fnil into #{}))\n(def conj-set (fnil conj #{}))\n\n(defn concatv [& args]\n (vec (apply concat args)))\n\n(defn seq-contains? [s p? v]\n (boolean (some (partial p? v) s)))\n\n(defn assoc-when [c k v]\n (if (nil? v) c (assoc c k v)))\n\n;;------------------------------------------------------------------------------\n\n(defn map-values [f m]\n (reduce-kv\n (fn [acc k v]\n (assoc acc k (f k v)))\n (empty m)\n m))\n\n;;------------------------------------------------------------------------------\n\n(defn- topo-sort-by-2 [f x acc ks]\n (reduce\n (fn [[in out :as acc] k]\n (if-let [v (in k)]\n (let [e [k v]]\n (update (topo-sort-by-2 f x [(dissoc in k) out] (f e)) 1 conj (x e)))\n acc))\n acc\n ks))\n\n(defn topo-sort-by [f x m]\n (second (topo-sort-by-2 f x [m []] (keys m))))\n\n;;------------------------------------------------------------------------------\n\n(defn make-stable-sort-by [k1 e1s]\n (let [index (into {} (map-indexed (fn [i e1] [(k1 e1) [i e1]]) e1s))]\n (fn [k2 xform e2s]\n (map\n (comp xform second)\n (sort-by\n first\n (keep\n (fn [e2] (when-let [[i e1] (index (k2 e2))] [i [e2 e1]]))\n e2s))))))\n\n;;------------------------------------------------------------------------------\n\n(defn make-error [message schema-path schema document-path document]\n {:schema-path schema-path :message (str message \" - \" (pr-str document)) :document-path document-path :document document :schema schema})\n\n(defn make-error-on [message schema-path schema document-path document failed? errors]\n (when (failed? errors)\n [(assoc (make-error message schema-path schema document-path document) :errors errors)]))\n\n(defn make-error-on-failure [message schema-path schema document-path document errors]\n (make-error-on message schema-path schema document-path document seq errors))\n\n;;------------------------------------------------------------------------------\n\n;;------------------------------------------------------------------------------\n;; Output container conversion (Approach B: boundary conversion).\n;; Internal errors remain Clojure maps/vectors; facades convert at the boundary.\n\n(def ^:private error-key-map\n {:schema-path \"schemaPath\"\n :document-path \"documentPath\"\n :message \"message\"\n :document \"document\"\n :schema \"schema\"\n :errors \"errors\"\n :valid? \"valid\"})\n\n(defn convert-output\n \"Recursively convert a Clojure result/error tree using the given output fns.\n output-fns is a map with :make-map, :make-vec, :make-kw keys.\n If output-fns is nil, returns the value unchanged (Clojure default).\"\n [output-fns v]\n (if (nil? output-fns)\n v\n (let [{:keys [make-map make-vec make-kw]} output-fns]\n (cond\n (map? v)\n (apply make-map\n (mapcat (fn [[k val]]\n (let [out-key (if (keyword? k)\n (make-kw (or (error-key-map k) (name k)))\n (make-kw (str k)))]\n [out-key (convert-output output-fns val)]))\n v))\n\n (vector? v)\n (make-vec (mapv (partial convert-output output-fns) v))\n\n (seq? v)\n (make-vec (mapv (partial convert-output output-fns) v))\n\n :else v))))\n\n;;------------------------------------------------------------------------------\n\n(defn get-check-schema []\n ;; we have had to do this to break a circular dependency\n (deref (resolve 'm3.validate/check-schema)))\n"]}