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.ref.js ADDED
@@ -0,0 +1,404 @@
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.log.js");
7
+ require("./m3.util.js");
8
+ require("./m3.uri.js");
9
+ var cljc=$CLJS.cljc || ($CLJS.cljc = {});
10
+ var m3=$CLJS.m3 || ($CLJS.m3 = {});
11
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
12
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
13
+ var java=$CLJS.java || ($CLJS.java = {});
14
+ var shadow=$CLJS.shadow || ($CLJS.shadow = {});
15
+ var goog=$CLJS.goog || ($CLJS.goog = {});
16
+ 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 = {});
17
+ var module$shadow_js_shim_module$punycode=$CLJS.module$shadow_js_shim_module$punycode || ($CLJS.module$shadow_js_shim_module$punycode = {});
18
+
19
+ $CLJS.SHADOW_ENV.setLoaded("m3.ref.js");
20
+
21
+ goog.provide('m3.ref');
22
+ m3.ref.parse_int = (function m3$ref$parse_int(s){
23
+ return parseInt(s);
24
+ });
25
+ m3.ref.__GT_int_or_string = (function m3$ref$__GT_int_or_string(s){
26
+ if(cljs.core.truth_(cljs.core.re_matches(/[0-9].*/,s))){
27
+ return m3.ref.parse_int(s);
28
+ } else {
29
+ return s;
30
+ }
31
+ });
32
+ /**
33
+ * URI-decodes a percent-encoded string.
34
+ */
35
+ m3.ref.uri_decode = (function m3$ref$uri_decode(s){
36
+ try{return decodeURIComponent(s);
37
+ }catch (e21898){var e = e21898;
38
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Invalid percent-encoding in URI",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"cause","cause",231901252),e], null));
39
+ }});
40
+ m3.ref.unescape = (function m3$ref$unescape(s){
41
+ return clojure.string.replace(clojure.string.replace(s,"~0","~"),"~1","/");
42
+ });
43
+ m3.ref.canonicalise = (function m3$ref$canonicalise(path,$ref){
44
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,r){
45
+ var r__$1 = m3.ref.unescape(m3.ref.uri_decode(r));
46
+ var G__21904 = r__$1;
47
+ switch (G__21904) {
48
+ case "":
49
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(acc,path)){
50
+ return cljs.core.PersistentVector.EMPTY;
51
+ } else {
52
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,"");
53
+ }
54
+
55
+ break;
56
+ case ".":
57
+ return acc;
58
+
59
+ break;
60
+ case "..":
61
+ return cljs.core.vec(cljs.core.take.cljs$core$IFn$_invoke$arity$2((cljs.core.count(acc) - (1)),acc));
62
+
63
+ break;
64
+ default:
65
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,m3.ref.__GT_int_or_string(r__$1));
66
+
67
+ }
68
+ }),path,(function (){var or__5025__auto__ = cljs.core.seq(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2($ref,"/"))?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [""], null):clojure.string.split.cljs$core$IFn$_invoke$arity$3($ref,/\//,(-1))));
69
+ if(or__5025__auto__){
70
+ return or__5025__auto__;
71
+ } else {
72
+ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [""], null);
73
+ }
74
+ })());
75
+ });
76
+ /**
77
+ * Walk up the path hierarchy to find the nearest ancestor with a path->uri entry.
78
+ * Returns the URI of the nearest schema with an explicit $id.
79
+ */
80
+ m3.ref.nearest_uri = (function m3$ref$nearest_uri(path__GT_uri,p){
81
+ var p__$1 = p;
82
+ while(true){
83
+ if(cljs.core.seq(p__$1)){
84
+ var or__5025__auto__ = (path__GT_uri.cljs$core$IFn$_invoke$arity$1 ? path__GT_uri.cljs$core$IFn$_invoke$arity$1(p__$1) : path__GT_uri.call(null,p__$1));
85
+ if(cljs.core.truth_(or__5025__auto__)){
86
+ return or__5025__auto__;
87
+ } else {
88
+ var G__22010 = cljs.core.vec(cljs.core.butlast(p__$1));
89
+ p__$1 = G__22010;
90
+ continue;
91
+ }
92
+ } else {
93
+ return null;
94
+ }
95
+ break;
96
+ }
97
+ });
98
+ m3.ref.try_path = (function m3$ref$try_path(p__21909,path,p,root){
99
+ var map__21910 = p__21909;
100
+ var map__21910__$1 = cljs.core.__destructure_map(map__21910);
101
+ var ctx = map__21910__$1;
102
+ var path__GT_uri = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21910__$1,new cljs.core.Keyword(null,"path->uri","path->uri",-877016800));
103
+ var id_uri = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21910__$1,new cljs.core.Keyword(null,"id-uri","id-uri",1828315041));
104
+ if(cljs.core.truth_(p)){
105
+ var m = cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(root,p,m3.util.absent);
106
+ if(m3.util.present_QMARK_(m)){
107
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){var has_own_id_QMARK_ = cljs.core.contains_QMARK_(path__GT_uri,p);
108
+ var resolved_uri = ((has_own_id_QMARK_)?m3.ref.nearest_uri(path__GT_uri,cljs.core.vec(cljs.core.butlast(p))):m3.ref.nearest_uri(path__GT_uri,p));
109
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ctx,new cljs.core.Keyword(null,"id-uri","id-uri",1828315041),(function (){var or__5025__auto__ = resolved_uri;
110
+ if(cljs.core.truth_(or__5025__auto__)){
111
+ return or__5025__auto__;
112
+ } else {
113
+ return id_uri;
114
+ }
115
+ })());
116
+ })(),path,m], null);
117
+ } else {
118
+ return null;
119
+ }
120
+ } else {
121
+ return null;
122
+ }
123
+ });
124
+ m3.ref.resolve_uri = (function m3$ref$resolve_uri(var_args){
125
+ var G__21917 = arguments.length;
126
+ switch (G__21917) {
127
+ case 4:
128
+ return m3.ref.resolve_uri.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
129
+
130
+ break;
131
+ case 5:
132
+ return m3.ref.resolve_uri.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));
133
+
134
+ break;
135
+ default:
136
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
137
+
138
+ }
139
+ });
140
+
141
+ (m3.ref.resolve_uri.cljs$core$IFn$_invoke$arity$4 = (function (ctx,path,uri,$ref){
142
+ return m3.ref.resolve_uri.cljs$core$IFn$_invoke$arity$5(ctx,path,uri,$ref,false);
143
+ }));
144
+
145
+ (m3.ref.resolve_uri.cljs$core$IFn$_invoke$arity$5 = (function (p__21925,path,p__21926,$ref,quiet_QMARK_){
146
+ var map__21928 = p__21925;
147
+ var map__21928__$1 = cljs.core.__destructure_map(map__21928);
148
+ var ctx = map__21928__$1;
149
+ var m2 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21928__$1,new cljs.core.Keyword(null,"root","root",-448657453));
150
+ var uri__GT_path = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21928__$1,new cljs.core.Keyword(null,"uri->path","uri->path",1245760095));
151
+ var uri__GT_schema = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21928__$1,new cljs.core.Keyword(null,"uri->schema","uri->schema",-498150402));
152
+ var map__21929 = p__21926;
153
+ var map__21929__$1 = cljs.core.__destructure_map(map__21929);
154
+ var uri = map__21929__$1;
155
+ var t = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21929__$1,new cljs.core.Keyword(null,"type","type",1174270348));
156
+ var f = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21929__$1,new cljs.core.Keyword(null,"fragment","fragment",826775688));
157
+ var or__5025__auto__ = m3.ref.try_path(ctx,path,(uri__GT_path.cljs$core$IFn$_invoke$arity$1 ? uri__GT_path.cljs$core$IFn$_invoke$arity$1(uri) : uri__GT_path.call(null,uri)),m2);
158
+ if(cljs.core.truth_(or__5025__auto__)){
159
+ return or__5025__auto__;
160
+ } else {
161
+ var or__5025__auto____$1 = (function (){var temp__5825__auto__ = (function (){var G__21931 = m3.uri.uri_base(uri);
162
+ return (uri__GT_path.cljs$core$IFn$_invoke$arity$1 ? uri__GT_path.cljs$core$IFn$_invoke$arity$1(G__21931) : uri__GT_path.call(null,G__21931));
163
+ })();
164
+ if(cljs.core.truth_(temp__5825__auto__)){
165
+ var path2 = temp__5825__auto__;
166
+ if(cljs.core.truth_(f)){
167
+ var or__5025__auto____$1 = m3.ref.try_path(ctx,path,m3.ref.canonicalise(path2,f),m2);
168
+ if(cljs.core.truth_(or__5025__auto____$1)){
169
+ return or__5025__auto____$1;
170
+ } else {
171
+ return m3.ref.try_path(ctx,path,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(path2,m3.ref.canonicalise(cljs.core.PersistentVector.EMPTY,f)),m2);
172
+ }
173
+ } else {
174
+ return m3.ref.try_path(ctx,path,path2,m2);
175
+ }
176
+ } else {
177
+ return null;
178
+ }
179
+ })();
180
+ if(cljs.core.truth_(or__5025__auto____$1)){
181
+ return or__5025__auto____$1;
182
+ } else {
183
+ var or__5025__auto____$2 = (function (){var and__5023__auto__ = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(t,new cljs.core.Keyword(null,"fragment","fragment",826775688));
184
+ if(and__5023__auto__){
185
+ var or__5025__auto____$2 = m3.ref.try_path(ctx,path,(function (){var G__21933 = m3.uri.inherit_uri(new cljs.core.Keyword(null,"id-uri","id-uri",1828315041).cljs$core$IFn$_invoke$arity$1(ctx),uri);
186
+ return (uri__GT_path.cljs$core$IFn$_invoke$arity$1 ? uri__GT_path.cljs$core$IFn$_invoke$arity$1(G__21933) : uri__GT_path.call(null,G__21933));
187
+ })(),m2);
188
+ if(cljs.core.truth_(or__5025__auto____$2)){
189
+ return or__5025__auto____$2;
190
+ } else {
191
+ return m3.ref.try_path(ctx,path,m3.ref.canonicalise(path,(function (){var or__5025__auto____$3 = f;
192
+ if(cljs.core.truth_(or__5025__auto____$3)){
193
+ return or__5025__auto____$3;
194
+ } else {
195
+ return "";
196
+ }
197
+ })()),m2);
198
+ }
199
+ } else {
200
+ return and__5023__auto__;
201
+ }
202
+ })();
203
+ if(cljs.core.truth_(or__5025__auto____$2)){
204
+ return or__5025__auto____$2;
205
+ } else {
206
+ var or__5025__auto____$3 = (function (){var temp__5825__auto__ = (function (){var and__5023__auto__ = uri__GT_schema;
207
+ if(cljs.core.truth_(and__5023__auto__)){
208
+ return (uri__GT_schema.cljs$core$IFn$_invoke$arity$3 ? uri__GT_schema.cljs$core$IFn$_invoke$arity$3(ctx,path,uri) : uri__GT_schema.call(null,ctx,path,uri));
209
+ } else {
210
+ return and__5023__auto__;
211
+ }
212
+ })();
213
+ if(cljs.core.truth_(temp__5825__auto__)){
214
+ var vec__21937 = temp__5825__auto__;
215
+ var c = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21937,(0),null);
216
+ var p = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21937,(1),null);
217
+ var _m = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21937,(2),null);
218
+ return m3.ref.resolve_uri.cljs$core$IFn$_invoke$arity$5(c,p,m3.uri.uri_fragment(uri),["#",cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"fragment","fragment",826775688).cljs$core$IFn$_invoke$arity$1(uri))].join(''),quiet_QMARK_);
219
+ } else {
220
+ return null;
221
+ }
222
+ })();
223
+ if(cljs.core.truth_(or__5025__auto____$3)){
224
+ return or__5025__auto____$3;
225
+ } else {
226
+ if(cljs.core.truth_(quiet_QMARK_)){
227
+ return null;
228
+ } else {
229
+ return m3.log.warn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["$ref: could not resolve:",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([$ref], 0)),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([uri], 0))], 0));
230
+ }
231
+ }
232
+ }
233
+ }
234
+ }
235
+ }));
236
+
237
+ (m3.ref.resolve_uri.cljs$lang$maxFixedArity = 5);
238
+
239
+ if((typeof m3 !== 'undefined') && (typeof m3.ref !== 'undefined') && (typeof m3.ref.meld !== 'undefined')){
240
+ } else {
241
+ m3.ref.meld = (function (){var method_table__5622__auto__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);
242
+ var prefer_table__5623__auto__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);
243
+ var method_cache__5624__auto__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);
244
+ var cached_hierarchy__5625__auto__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);
245
+ var hierarchy__5626__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"hierarchy","hierarchy",-1053470341),(function (){var fexpr__21953 = cljs.core.get_global_hierarchy;
246
+ return (fexpr__21953.cljs$core$IFn$_invoke$arity$0 ? fexpr__21953.cljs$core$IFn$_invoke$arity$0() : fexpr__21953.call(null));
247
+ })());
248
+ return (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("m3.ref","meld"),(function (p__21956,parent,reffed){
249
+ var map__21957 = p__21956;
250
+ var map__21957__$1 = cljs.core.__destructure_map(map__21957);
251
+ var d = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21957__$1,new cljs.core.Keyword(null,"draft","draft",1421831058));
252
+ return d;
253
+ }),new cljs.core.Keyword(null,"default","default",-1987822328),hierarchy__5626__auto__,method_table__5622__auto__,prefer_table__5623__auto__,method_cache__5624__auto__,cached_hierarchy__5625__auto__));
254
+ })();
255
+ }
256
+ m3.ref.meld_with = (function m3$ref$meld_with(var_args){
257
+ var args__5755__auto__ = [];
258
+ var len__5749__auto___22032 = arguments.length;
259
+ var i__5750__auto___22033 = (0);
260
+ while(true){
261
+ if((i__5750__auto___22033 < len__5749__auto___22032)){
262
+ args__5755__auto__.push((arguments[i__5750__auto___22033]));
263
+
264
+ var G__22034 = (i__5750__auto___22033 + (1));
265
+ i__5750__auto___22033 = G__22034;
266
+ continue;
267
+ } else {
268
+ }
269
+ break;
270
+ }
271
+
272
+ var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);
273
+ return m3.ref.meld_with.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);
274
+ });
275
+
276
+ (m3.ref.meld_with.cljs$core$IFn$_invoke$arity$variadic = (function (f,maps){
277
+ if(cljs.core.truth_(cljs.core.some(cljs.core.identity,maps))){
278
+ var merge_entry = (function (m,e){
279
+ var k = cljs.core.key(e);
280
+ var v = cljs.core.val(e);
281
+ if(cljs.core.contains_QMARK_(m,k)){
282
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__21967 = k;
283
+ var G__21968 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);
284
+ var G__21969 = v;
285
+ return (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__21967,G__21968,G__21969) : f.call(null,G__21967,G__21968,G__21969));
286
+ })());
287
+ } else {
288
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);
289
+ }
290
+ });
291
+ var merge2 = (function (m1,m2){
292
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(merge_entry,(function (){var or__5025__auto__ = m1;
293
+ if(cljs.core.truth_(or__5025__auto__)){
294
+ return or__5025__auto__;
295
+ } else {
296
+ return cljs.core.PersistentArrayMap.EMPTY;
297
+ }
298
+ })(),cljs.core.seq(m2));
299
+ });
300
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(merge2,maps);
301
+ } else {
302
+ return null;
303
+ }
304
+ }));
305
+
306
+ (m3.ref.meld_with.cljs$lang$maxFixedArity = (1));
307
+
308
+ /** @this {Function} */
309
+ (m3.ref.meld_with.cljs$lang$applyTo = (function (seq21964){
310
+ var G__21965 = cljs.core.first(seq21964);
311
+ var seq21964__$1 = cljs.core.next(seq21964);
312
+ var self__5734__auto__ = this;
313
+ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21965,seq21964__$1);
314
+ }));
315
+
316
+ m3.ref.deep_meld = (function m3$ref$deep_meld(var_args){
317
+ var args__5755__auto__ = [];
318
+ var len__5749__auto___22041 = arguments.length;
319
+ var i__5750__auto___22042 = (0);
320
+ while(true){
321
+ if((i__5750__auto___22042 < len__5749__auto___22041)){
322
+ args__5755__auto__.push((arguments[i__5750__auto___22042]));
323
+
324
+ var G__22043 = (i__5750__auto___22042 + (1));
325
+ i__5750__auto___22042 = G__22043;
326
+ continue;
327
+ } else {
328
+ }
329
+ break;
330
+ }
331
+
332
+ var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);
333
+ return m3.ref.deep_meld.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);
334
+ });
335
+
336
+ (m3.ref.deep_meld.cljs$core$IFn$_invoke$arity$variadic = (function (p__21976,maps){
337
+ var map__21978 = p__21976;
338
+ var map__21978__$1 = cljs.core.__destructure_map(map__21978);
339
+ var id_key = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21978__$1,new cljs.core.Keyword(null,"id-key","id-key",-1881730044));
340
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (acc,m){
341
+ return m3.ref.meld_with.cljs$core$IFn$_invoke$arity$variadic((function m3$ref$choose_val(k,val_in_result,val_in_latter){
342
+ if(((cljs.core.map_QMARK_(val_in_result)) && (cljs.core.map_QMARK_(val_in_latter)))){
343
+ return m3.ref.meld_with.cljs$core$IFn$_invoke$arity$variadic(m3$ref$choose_val,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([val_in_result,val_in_latter], 0));
344
+ } else {
345
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(id_key,k)){
346
+ return val_in_result;
347
+ } else {
348
+ return val_in_latter;
349
+ }
350
+ }
351
+ }),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([acc,m], 0));
352
+ }),maps);
353
+ }));
354
+
355
+ (m3.ref.deep_meld.cljs$lang$maxFixedArity = (1));
356
+
357
+ /** @this {Function} */
358
+ (m3.ref.deep_meld.cljs$lang$applyTo = (function (seq21972){
359
+ var G__21973 = cljs.core.first(seq21972);
360
+ var seq21972__$1 = cljs.core.next(seq21972);
361
+ var self__5734__auto__ = this;
362
+ return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21973,seq21972__$1);
363
+ }));
364
+
365
+ m3.ref.meld_replace = (function m3$ref$meld_replace(ctx,parent,reffed){
366
+ if(cljs.core.truth_(reffed)){
367
+ return reffed;
368
+ } else {
369
+ return false;
370
+ }
371
+ });
372
+ m3.ref.meld_deep_over = (function m3$ref$meld_deep_over(ctx,parent,reffed){
373
+ if(((cljs.core.map_QMARK_(reffed)) && (cljs.core.map_QMARK_(parent)))){
374
+ return m3.ref.deep_meld.cljs$core$IFn$_invoke$arity$variadic(ctx,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([parent,reffed], 0));
375
+ } else {
376
+ return reffed;
377
+ }
378
+ });
379
+ m3.ref.meld.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,"draft3","draft3",-292494828),(function (ctx,parent,reffed){
380
+ return m3.ref.meld_replace(ctx,parent,reffed);
381
+ }));
382
+ m3.ref.meld.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,"draft4","draft4",1928305297),(function (ctx,parent,reffed){
383
+ return m3.ref.meld_replace(ctx,parent,reffed);
384
+ }));
385
+ m3.ref.meld.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,"draft6","draft6",223691613),(function (ctx,parent,reffed){
386
+ return m3.ref.meld_replace(ctx,parent,reffed);
387
+ }));
388
+ m3.ref.meld.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,"draft7","draft7",427992330),(function (ctx,parent,reffed){
389
+ return m3.ref.meld_replace(ctx,parent,reffed);
390
+ }));
391
+ m3.ref.meld.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,"draft2019-09","draft2019-09",2035136926),(function (ctx,parent,reffed){
392
+ return m3.ref.meld_deep_over(ctx,parent,reffed);
393
+ }));
394
+ m3.ref.meld.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,"draft2020-12","draft2020-12",-836724574),(function (ctx,parent,reffed){
395
+ return m3.ref.meld_deep_over(ctx,parent,reffed);
396
+ }));
397
+ m3.ref.meld.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,"draft-next","draft-next",-519216993),(function (ctx,parent,reffed){
398
+ return m3.ref.meld_deep_over(ctx,parent,reffed);
399
+ }));
400
+ m3.ref.meld.cljs$core$IMultiFn$_add_method$arity$3(null,new cljs.core.Keyword(null,"latest","latest",24323665),(function (ctx,parent,reffed){
401
+ return m3.ref.meld_deep_over(ctx,parent,reffed);
402
+ }));
403
+
404
+ //# sourceMappingURL=m3.ref.js.map
package/m3.ref.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["m3/ref.cljc"],"mappings":"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","names":["m3.ref/parse-int","s","js/parseInt","m3.ref/->int-or-string","cljs.core/re-matches","m3.ref/uri-decode","e21898","js/decodeURIComponent","e","cljs.core.ex_info","m3.ref/unescape","clojure.string/replace","m3.ref/canonicalise","path","$ref","cljs.core.reduce","acc","r","G__21904","cljs.core._EQ_","cljs.core.conj","cljs.core/vec","cljs.core.take","cljs.core/count","or__5025__auto__","cljs.core/seq","clojure.string.split","m3.ref/nearest-uri","path->uri","p","cljs.core/butlast","p__21909","map__21910","cljs.core/--destructure-map","cljs.core.get","m3.ref/try-path","id-uri","ctx","root","m","cljs.core.get_in","m3.util/absent","m3.util/present?","has-own-id?","cljs.core/contains?","resolved-uri","cljs.core.assoc","var_args","G__21917","m3.ref/resolve-uri","js/Error","p__21925","p__21926","map__21928","map__21929","uri","m3.ref.resolve_uri","m2","uri->path","uri->schema","t","f","quiet?","temp__5825__auto__","path2","G__21931","m3.uri/uri-base","cljs.core.concat","and__5023__auto__","G__21933","m3.uri/inherit-uri","vec__21937","cljs.core.nth","c","_m","m3.uri/uri-fragment","m3.log.warn","cljs.core.pr_str","js/m3","js/m3.ref","js/m3.ref.meld","method-table__5622__auto__","cljs.core.atom","prefer-table__5623__auto__","method-cache__5624__auto__","cached-hierarchy__5625__auto__","hierarchy__5626__auto__","fexpr__21953","cljs.core/MultiFn","cljs.core.symbol","m3.ref/meld","p__21956","map__21957","d","parent","reffed","args__5755__auto__","len__5749__auto__","i__5750__auto__","argseq__5756__auto__","cljs.core/IndexedSeq","m3.ref/meld-with","seq21964","G__21965","cljs.core/first","cljs.core/next","self__5734__auto__","maps","cljs.core/some","cljs.core/identity","merge-entry","k","cljs.core/key","v","cljs.core/val","G__21967","G__21968","G__21969","merge2","m1","m3.ref/deep-meld","p__21976","map__21978","seq21972","G__21973","id-key","m3.ref.meld_with","val-in-result","val-in-latter","cljs.core/map?","choose-val","m3.ref/meld-replace","m3.ref/meld-deep-over","m3.ref.deep_meld"],"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.ref\n (:require\n [clojure.string :refer [split replace] :rename {replace string-replace}] \n [#?(:clj clojure.tools.logging :cljs m3.log) :as log]\n [m3.util :refer [present? absent]]\n [m3.uri :refer [uri-base uri-fragment inherit-uri]]))\n\n\n(defn parse-int [s]\n #?(:clj (Integer/parseInt s)\n :cljs (js/parseInt s)))\n\n(defn ->int-or-string [s]\n (if (re-matches #\"[0-9].*\" s)\n (parse-int s)\n s))\n\n(defn uri-decode\n \"URI-decodes a percent-encoded string.\"\n [^String s]\n #?(:clj (java.net.URLDecoder/decode s \"UTF-8\")\n :cljs (try\n (js/decodeURIComponent s)\n (catch :default e\n (throw (ex-info \"Invalid percent-encoding in URI\" {:cause e}))))))\n\n(defn unescape [s]\n (-> s\n (string-replace \"~0\" \"~\")\n (string-replace \"~1\" \"/\")))\n\n;; or should we just walk the data structure...\n(defn canonicalise [path $ref]\n (reduce\n (fn [acc r]\n (let [r (unescape (uri-decode r))]\n (case r\n \"\" (if (= acc path) [] (conj acc \"\"))\n \".\" acc\n \"..\" (vec (take (dec (count acc)) acc))\n (conj acc (->int-or-string r)))))\n path\n (or (seq (if (= $ref \"/\") [\"\"] (split $ref #\"/\" -1))) [\"\"]))) ;; N.B.: -1 prevents trailing \"\"s being removed\n\n(defn nearest-uri\n \"Walk up the path hierarchy to find the nearest ancestor with a path->uri entry.\n Returns the URI of the nearest schema with an explicit $id.\"\n [path->uri p]\n (loop [p p]\n (when (seq p)\n (or (path->uri p)\n (recur (vec (butlast p)))))))\n\n(defn try-path [{path->uri :path->uri id-uri :id-uri :as ctx} path p root]\n (when p\n (let [m (get-in root p absent)]\n (when (present? m)\n [;; Find the correct base URI for the resolved path.\n ;; If the path has its own $id (i.e. is in path->uri), walk up to\n ;; the PARENT scope \u2014 the $id will be reprocessed during compilation.\n ;; Otherwise walk up to find the nearest ancestor's scope.\n (let [has-own-id? (contains? path->uri p)\n resolved-uri (if has-own-id?\n (nearest-uri path->uri (vec (butlast p)))\n (nearest-uri path->uri p))]\n (assoc ctx :id-uri (or resolved-uri id-uri)))\n path m]))))\n\n(declare resolve-$ref)\n\n(defn resolve-uri\n ([ctx path uri $ref] (resolve-uri ctx path uri $ref false))\n ([{m2 :root uri->path :uri->path uri->schema :uri->schema :as ctx} path {t :type f :fragment :as uri} $ref quiet?]\n\n (or\n\n ;; did it match a stashed [$]id or $.*anchor ?\n\n ;; exactly\n (try-path ctx path (uri->path uri) m2)\n\n ;; in all but fragment\n (when-let [path2 (uri->path (uri-base uri))]\n (if f\n (or\n (try-path ctx path (canonicalise path2 f) m2)\n (try-path ctx path (concat path2 (canonicalise [] f)) m2))\n (try-path ctx path path2 m2)))\n\n ;; it's just a fragment \u2014 try as anchor first, then JSON pointer\n (and (= t :fragment)\n (or\n ;; anchor: resolve fragment against current base URI to find $anchor entry\n (try-path ctx path (uri->path (inherit-uri (:id-uri ctx) uri)) m2)\n ;; JSON pointer\n (try-path ctx path (canonicalise path (or f \"\")) m2)))\n\n ;; did it match a remote schema\n (when-let [[c p _m] (and uri->schema (uri->schema ctx path uri))]\n (resolve-uri c p (uri-fragment uri) (str \"#\" (:fragment uri)) quiet?))\n\n (when-not quiet?\n (log/warn \"$ref: could not resolve:\" (pr-str $ref) (pr-str uri))))))\n\n;;------------------------------------------------------------------------------\n;; expanding $refs\n\n(defmulti meld (fn [{d :draft} parent reffed] d))\n\n;; adapted from merge-with to pass k as well as vals to f\n(defn meld-with\n [f & maps]\n (when (some identity maps)\n (let [merge-entry (fn [m e]\n\t\t\t(let [k (key e) v (val e)]\n\t\t\t (if (contains? m k)\n\t\t\t (assoc m k (f k (get m k) v))\n\t\t\t (assoc m k v))))\n merge2 (fn [m1 m2]\n\t\t (reduce merge-entry (or m1 {}) (seq m2)))]\n (reduce merge2 maps))))\n\n(defn deep-meld [{id-key :id-key} & maps]\n (reduce\n (fn [acc m]\n (meld-with\n (fn choose-val [k val-in-result val-in-latter]\n (if (and (map? val-in-result) (map? val-in-latter))\n (meld-with choose-val val-in-result val-in-latter)\n (if (= id-key k) val-in-result val-in-latter)))\n acc m))\n maps))\n\n(defn meld-replace [ctx parent reffed] (if reffed reffed false))\n(defn meld-deep-over [ctx parent reffed] (if (and (map? reffed)(map? parent)) (deep-meld ctx parent reffed) reffed))\n\n(defmethod meld :draft3 [ctx parent reffed] (meld-replace ctx parent reffed))\n(defmethod meld :draft4 [ctx parent reffed] (meld-replace ctx parent reffed))\n(defmethod meld :draft6 [ctx parent reffed] (meld-replace ctx parent reffed))\n(defmethod meld :draft7 [ctx parent reffed] (meld-replace ctx parent reffed))\n(defmethod meld :draft2019-09 [ctx parent reffed] (meld-deep-over ctx parent reffed))\n(defmethod meld :draft2020-12 [ctx parent reffed] (meld-deep-over ctx parent reffed))\n(defmethod meld :draft-next [ctx parent reffed] (meld-deep-over ctx parent reffed))\n(defmethod meld :latest [ctx parent reffed] (meld-deep-over ctx parent reffed))\n\n;;------------------------------------------------------------------------------\n\n\n\n"]}
package/m3.type.js ADDED
@@ -0,0 +1,133 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./m3.platform.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.type.js");
18
+
19
+ goog.provide('m3.type');
20
+ m3.type.json_integer_QMARK_ = (function m3$type$json_integer_QMARK_(i){
21
+ return ((cljs.core.integer_QMARK_(i)) || (((typeof i === 'number') && ((cljs.core.mod(i,(1)) === (0))))));
22
+ });
23
+ m3.type.json_number_QMARK_ = (function m3$type$json_number_QMARK_(n){
24
+ return typeof n === 'number';
25
+ });
26
+ m3.type.json_string_QMARK_ = (function m3$type$json_string_QMARK_(v){
27
+ return typeof v === 'string';
28
+ });
29
+ m3.type.json_array_QMARK_ = (function m3$type$json_array_QMARK_(v){
30
+ return ((cljs.core.vector_QMARK_(v)) || (false));
31
+ });
32
+ m3.type.json_object_QMARK_ = (function m3$type$json_object_QMARK_(v){
33
+ return ((cljs.core.map_QMARK_(v)) || (false));
34
+ });
35
+ m3.type.json__EQ_ = (function m3$type$json__EQ_(l,r){
36
+ if(((m3.type.json_number_QMARK_(l)) && (m3.type.json_number_QMARK_(r)))){
37
+ return ((l - r) === (0));
38
+ } else {
39
+ if(((m3.type.json_array_QMARK_(l)) && (((m3.type.json_array_QMARK_(r)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(l),cljs.core.count(r))))))){
40
+ return cljs.core.every_QMARK_(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.apply,m3.type.json__EQ_),cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,l,r));
41
+ } else {
42
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(l,r);
43
+
44
+ }
45
+ }
46
+ });
47
+ m3.type.check_type_2 = (function m3$type$check_type_2(p_QMARK_,t,c2,p2,m2){
48
+ return (function (c1,p1,m1){
49
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,m1,(cljs.core.truth_((p_QMARK_.cljs$core$IFn$_invoke$arity$1 ? p_QMARK_.cljs$core$IFn$_invoke$arity$1(m1) : p_QMARK_.call(null,m1)))?null:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [m3.util.make_error(["type: not a[n] ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(t)].join(''),p2,m2,p1,m1)], null))], null);
50
+ });
51
+ });
52
+ m3.type.check_type_integer = (function m3$type$check_type_integer(t,p__21828,p2,m2){
53
+ var map__21829 = p__21828;
54
+ var map__21829__$1 = cljs.core.__destructure_map(map__21829);
55
+ var c2 = map__21829__$1;
56
+ var si_QMARK_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21829__$1,new cljs.core.Keyword(null,"strict-integer?","strict-integer?",-266121008));
57
+ return m3.type.check_type_2((cljs.core.truth_(si_QMARK_)?cljs.core.integer_QMARK_:m3.type.json_integer_QMARK_),t,c2,p2,m2);
58
+ });
59
+ m3.type.draft3_type__GT_checker = new cljs.core.PersistentArrayMap(null, 8, ["any",cljs.core.constantly((function (c1,_p1,m1){
60
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,m1,null], null);
61
+ })),"array",cljs.core.partial.cljs$core$IFn$_invoke$arity$2(m3.type.check_type_2,m3.type.json_array_QMARK_),"boolean",cljs.core.partial.cljs$core$IFn$_invoke$arity$2(m3.type.check_type_2,cljs.core.boolean_QMARK_),"integer",m3.type.check_type_integer,"null",cljs.core.partial.cljs$core$IFn$_invoke$arity$2(m3.type.check_type_2,cljs.core.nil_QMARK_),"number",cljs.core.partial.cljs$core$IFn$_invoke$arity$2(m3.type.check_type_2,m3.type.json_number_QMARK_),"object",cljs.core.partial.cljs$core$IFn$_invoke$arity$2(m3.type.check_type_2,m3.type.json_object_QMARK_),"string",cljs.core.partial.cljs$core$IFn$_invoke$arity$2(m3.type.check_type_2,m3.type.json_string_QMARK_)], null);
62
+ m3.type.draft4_type__GT_checker = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m3.type.draft3_type__GT_checker,"any");
63
+ m3.type.draft__GT_type__GT_checker = new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"draft3","draft3",-292494828),m3.type.draft3_type__GT_checker,new cljs.core.Keyword(null,"draft4","draft4",1928305297),m3.type.draft4_type__GT_checker,new cljs.core.Keyword(null,"draft6","draft6",223691613),m3.type.draft4_type__GT_checker,new cljs.core.Keyword(null,"draft7","draft7",427992330),m3.type.draft4_type__GT_checker,new cljs.core.Keyword(null,"draft2019-09","draft2019-09",2035136926),m3.type.draft4_type__GT_checker,new cljs.core.Keyword(null,"draft2020-12","draft2020-12",-836724574),m3.type.draft4_type__GT_checker,new cljs.core.Keyword(null,"draft-next","draft-next",-519216993),m3.type.draft4_type__GT_checker], null);
64
+ m3.type.check_type = (function m3$type$check_type(t,c2,p2,m2){
65
+ var draft = (function (){var or__5025__auto__ = new cljs.core.Keyword(null,"draft","draft",1421831058).cljs$core$IFn$_invoke$arity$1(c2);
66
+ if(cljs.core.truth_(or__5025__auto__)){
67
+ return or__5025__auto__;
68
+ } else {
69
+ return new cljs.core.Keyword(null,"draft7","draft7",427992330);
70
+ }
71
+ })();
72
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c2,m2,((m3.type.json_string_QMARK_(t))?(function (){var temp__5823__auto__ = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(m3.type.draft__GT_type__GT_checker,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [draft,t], null));
73
+ if(cljs.core.truth_(temp__5823__auto__)){
74
+ var f2 = temp__5823__auto__;
75
+ return (f2.cljs$core$IFn$_invoke$arity$4 ? f2.cljs$core$IFn$_invoke$arity$4(t,c2,p2,m2) : f2.call(null,t,c2,p2,m2));
76
+ } else {
77
+ return (function (c1,p1,m1){
78
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,m1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [m3.util.make_error(m3.platform.pformat.cljs$core$IFn$_invoke$arity$variadic("type: unrecognised name: %s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([t], 0)),p2,m2,p1,m1)], null)], null);
79
+ });
80
+ }
81
+ })():((m3.type.json_array_QMARK_(t))?(function (){var f1s = cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2((function (i,t__$1){
82
+ return m3.util.third((function (){var G__21842 = t__$1;
83
+ var G__21843 = c2;
84
+ var G__21844 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p2,i);
85
+ var G__21845 = m2;
86
+ return (m3.type.check_type.cljs$core$IFn$_invoke$arity$4 ? m3.type.check_type.cljs$core$IFn$_invoke$arity$4(G__21842,G__21843,G__21844,G__21845) : m3.type.check_type.call(null,G__21842,G__21843,G__21844,G__21845));
87
+ })());
88
+ }),t);
89
+ return (function (c1,p1,m1){
90
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,m1,m3.util.make_error_on(m3.platform.pformat.cljs$core$IFn$_invoke$arity$variadic("type: none matched: %s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([t], 0)),p2,m2,p1,m1,(function (es){
91
+ return cljs.core.not(cljs.core.some(cljs.core.nil_QMARK_,es));
92
+ }),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (f1){
93
+ return m3.util.third((f1.cljs$core$IFn$_invoke$arity$3 ? f1.cljs$core$IFn$_invoke$arity$3(c1,p1,m1) : f1.call(null,c1,p1,m1)));
94
+ }),f1s))], null);
95
+ });
96
+ })():((m3.type.json_object_QMARK_(t))?(function (){var vec__21846 = (function (){var fexpr__21849 = m3.util.get_check_schema();
97
+ return (fexpr__21849.cljs$core$IFn$_invoke$arity$3 ? fexpr__21849.cljs$core$IFn$_invoke$arity$3(c2,p2,t) : fexpr__21849.call(null,c2,p2,t));
98
+ })();
99
+ var c2__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21846,(0),null);
100
+ var m2__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21846,(1),null);
101
+ var f1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21846,(2),null);
102
+ return (function (c1,p1,m1){
103
+ var vec__21850 = (f1.cljs$core$IFn$_invoke$arity$3 ? f1.cljs$core$IFn$_invoke$arity$3(c1,p1,m1) : f1.call(null,c1,p1,m1));
104
+ var c1__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21850,(0),null);
105
+ var m1__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21850,(1),null);
106
+ var es = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21850,(2),null);
107
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1__$1,m1__$1,es], null);
108
+ });
109
+ })():(function (c1,p1,m1){
110
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,m1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [m3.util.make_error(m3.platform.pformat.cljs$core$IFn$_invoke$arity$variadic("type: unrecognised description: %s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([t], 0)),p2,m2,p1,m1)], null)], null);
111
+ })
112
+ )))], null);
113
+ });
114
+ m3.type.make_type_checker = (function m3$type$make_type_checker(predicate_QMARK_,m1_function){
115
+ return (function (c1,p1,m1){
116
+ if(cljs.core.truth_((predicate_QMARK_.cljs$core$IFn$_invoke$arity$1 ? predicate_QMARK_.cljs$core$IFn$_invoke$arity$1(m1) : predicate_QMARK_.call(null,m1)))){
117
+ return (m1_function.cljs$core$IFn$_invoke$arity$3 ? m1_function.cljs$core$IFn$_invoke$arity$3(c1,p1,m1) : m1_function.call(null,c1,p1,m1));
118
+ } else {
119
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,cljs.core.PersistentVector.EMPTY], null);
120
+ }
121
+ });
122
+ });
123
+ m3.type.make_new_type_checker = (function m3$type$make_new_type_checker(predicate_QMARK_,m1_function){
124
+ return (function (c1,p1,m1){
125
+ if(cljs.core.truth_((predicate_QMARK_.cljs$core$IFn$_invoke$arity$1 ? predicate_QMARK_.cljs$core$IFn$_invoke$arity$1(m1) : predicate_QMARK_.call(null,m1)))){
126
+ return (m1_function.cljs$core$IFn$_invoke$arity$3 ? m1_function.cljs$core$IFn$_invoke$arity$3(c1,p1,m1) : m1_function.call(null,c1,p1,m1));
127
+ } else {
128
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,m1,cljs.core.PersistentVector.EMPTY], null);
129
+ }
130
+ });
131
+ });
132
+
133
+ //# sourceMappingURL=m3.type.js.map
package/m3.type.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["m3/type.cljc"],"mappings":"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","names":["m3.type/json-integer?","i","cljs.core/integer?","cljs.core/mod","m3.type/json-number?","n","m3.type/json-string?","v","m3.type/json-array?","cljs.core/vector?","m3.type/json-object?","cljs.core/map?","m3.type/json-=","l","r","cljs.core._EQ_","cljs.core/count","cljs.core/every?","cljs.core.partial","cljs.core/apply","cljs.core.map","cljs.core/vector","m3.type/check-type-2","p?","t","c2","p2","m2","c1","p1","m1","m3.util/make-error","p__21828","map__21829","cljs.core/--destructure-map","cljs.core.get","m3.type/check-type-integer","si?","m3.type/draft3-type->checker","cljs.core/constantly","_p1","cljs.core/boolean?","cljs.core/nil?","m3.type/draft4-type->checker","cljs.core.dissoc","m3.type/draft->type->checker","m3.type/check-type","draft","or__5025__auto__","temp__5823__auto__","f2","cljs.core.get_in","m3.platform.pformat","f1s","cljs.core.map_indexed","m3.util/third","G__21842","G__21843","G__21844","G__21845","cljs.core.conj","m3.util/make-error-on","es","cljs.core/not","cljs.core/some","cljs.core.mapv","f1","vec__21846","cljs.core.nth","fexpr__21849","m3.util/get-check-schema","vec__21850","m3.type/make-type-checker","predicate?","m1-function","m3.type/make-new-type-checker"],"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.type\n (:require\n [m3.platform :refer [pformat]]\n [m3.util :refer [make-error make-error-on third get-check-schema]]))\n\n;;------------------------------------------------------------------------------\n\n(defn json-integer? [i]\n (or\n (integer? i)\n (and (number? i)\n (zero? (mod i 1)))))\n\n(defn json-number? [n]\n (number? n))\n\n(defn json-string? [v]\n (string? v))\n\n(defn json-array? [v]\n (or (vector? v) #?(:clj (instance? java.util.List v) :cljs false)))\n\n(defn json-object? [v]\n (or (map? v) #?(:clj (instance? java.util.Map v) :cljs false)))\n\n(defn json-= [l r]\n (cond\n (and (json-number? l) (json-number? r)) (zero? (- l r))\n ;; TODO: could be more efficient...\n (and (json-array? l) (json-array? r) (= (count l) (count r))) (every? (partial apply json-=) (map vector l r))\n ;; TODO: json-objects\n :else\n (= l r)))\n\n;;------------------------------------------------------------------------------\n\n(defn check-type-2 [p? t c2 p2 m2]\n (fn [c1 p1 m1]\n [c1 m1 (when-not (p? m1) [(make-error (str \"type: not a[n] \" t) p2 m2 p1 m1)])]))\n\n;;------------------------------------------------------------------------------\n\n(defn check-type-integer [t {si? :strict-integer? :as c2} p2 m2]\n (check-type-2 (if si? integer? json-integer?) t c2 p2 m2))\n\n(def draft3-type->checker\n {\"any\" (constantly (fn [c1 _p1 m1] [c1 m1 nil]))\n \"array\" (partial check-type-2 json-array?)\n \"boolean\" (partial check-type-2 boolean?)\n \"integer\" check-type-integer\n \"null\" (partial check-type-2 nil?)\n \"number\" (partial check-type-2 json-number?)\n \"object\" (partial check-type-2 json-object?)\n \"string\" (partial check-type-2 json-string?)})\n\n(def draft4-type->checker\n (dissoc draft3-type->checker \"any\"))\n\n(def draft->type->checker\n {:draft3 draft3-type->checker\n :draft4 draft4-type->checker\n :draft6 draft4-type->checker\n :draft7 draft4-type->checker\n :draft2019-09 draft4-type->checker\n :draft2020-12 draft4-type->checker\n :draft-next draft4-type->checker})\n\n;;------------------------------------------------------------------------------\n\n(defn check-type [t c2 p2 m2]\n (let [draft (or (:draft c2) :draft7)] ; Default to draft7 if not specified\n [c2\n m2\n (cond\n\n (json-string? t)\n (if-let [f2 (get-in draft->type->checker [draft t])]\n (f2 t c2 p2 m2)\n (fn [c1 p1 m1]\n [c1 m1 [(make-error (pformat \"type: unrecognised name: %s\" t) p2 m2 p1 m1)]]))\n\n (json-array? t)\n (let [f1s (map-indexed (fn [i t] (third (check-type t c2 (conj p2 i) m2))) t)]\n (fn [c1 p1 m1]\n [c1\n m1\n (make-error-on\n (pformat \"type: none matched: %s\" t)\n p2 m2 p1 m1\n (fn [es] (not (some nil? es)))\n (mapv (fn [f1] (third (f1 c1 p1 m1))) f1s))]))\n\n (json-object? t)\n (let [[c2 m2 f1] ((get-check-schema) c2 p2 t)]\n (fn [c1 p1 m1]\n (let [[c1 m1 es] (f1 c1 p1 m1)]\n [c1 m1 es])))\n\n :else\n (fn [c1 p1 m1]\n [c1 m1 [(make-error (pformat \"type: unrecognised description: %s\" t) p2 m2 p1 m1)]]))]))\n\n;;------------------------------------------------------------------------------\n\n(defn make-type-checker [predicate? m1-function]\n (fn [c1 p1 m1]\n (if (predicate? m1)\n (m1-function c1 p1 m1)\n [c1 []])))\n\n(defn make-new-type-checker [predicate? m1-function]\n (fn [c1 p1 m1]\n (if (predicate? m1)\n (m1-function c1 p1 m1)\n [c1 m1 []])))\n"]}