@luminix/core 0.0.1-beta.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -28
- package/dist/core.js +1042 -1925
- package/package.json +5 -9
- package/types/contracts/Builder.d.ts +46 -0
- package/types/contracts/ModelCollection.d.ts +7 -0
- package/{dist → types}/contracts/Plugin.d.ts +3 -3
- package/{dist → types}/contracts/Relation/BelongsTo.d.ts +3 -5
- package/{dist → types}/contracts/Relation/BelongsToMany.d.ts +7 -9
- package/{dist → types}/contracts/Relation/HasMany.d.ts +6 -7
- package/{dist → types}/contracts/Relation/HasOne.d.ts +3 -4
- package/{dist → types}/contracts/Relation/HasOneOrMany.d.ts +0 -1
- package/{dist → types}/contracts/Relation/MorphMany.d.ts +6 -7
- package/{dist → types}/contracts/Relation/MorphOne.d.ts +3 -4
- package/{dist → types}/contracts/Relation/MorphOneOrMany.d.ts +0 -1
- package/{dist → types}/contracts/Relation/MorphTo.d.ts +0 -1
- package/types/contracts/Relation/MorphToMany.d.ts +8 -0
- package/{dist → types}/contracts/Relation.d.ts +12 -9
- package/types/extensions.d.ts +10 -0
- package/types/facades/App.d.ts +8 -0
- package/types/facades/Auth.d.ts +7 -0
- package/types/facades/Config.d.ts +7 -0
- package/types/facades/Error.d.ts +10 -0
- package/types/facades/Http.d.ts +8 -0
- package/types/facades/Log.d.ts +7 -0
- package/types/facades/Model.d.ts +8 -0
- package/types/facades/Route.d.ts +8 -0
- package/types/helpers/app.d.ts +4 -0
- package/{dist → types}/helpers/auth.d.ts +0 -1
- package/types/helpers/collect.d.ts +2 -0
- package/{dist → types}/helpers/config.d.ts +0 -1
- package/{dist → types}/helpers/error.d.ts +0 -1
- package/types/helpers/log.d.ts +5 -0
- package/{dist → types}/helpers/model.d.ts +2 -3
- package/{dist → types}/helpers/route.d.ts +2 -2
- package/types/index.d.ts +26 -0
- package/types/mixins/BaseModel.d.ts +7 -0
- package/types/providers/LuminixServiceProvider.d.ts +8 -0
- package/types/services/AuthService.d.ts +18 -0
- package/{dist/facades/Error.d.ts → types/services/ErrorService.d.ts} +2 -6
- package/types/services/HttpService.d.ts +21 -0
- package/{dist/facades/Log.d.ts → types/services/LogService.d.ts} +2 -4
- package/types/services/ModelService.d.ts +21 -0
- package/types/services/RouteService.d.ts +21 -0
- package/{dist → types}/support/model.d.ts +1 -1
- package/types/types/App.d.ts +88 -0
- package/{dist → types}/types/Auth.d.ts +0 -1
- package/types/types/Builder.d.ts +46 -0
- package/{dist → types}/types/Config.d.ts +4 -2
- package/types/types/Error.d.ts +17 -0
- package/types/types/Http.d.ts +20 -0
- package/{dist → types}/types/Model.d.ts +61 -43
- package/{dist → types}/types/Relation.d.ts +1 -3
- package/types/types/Route.d.ts +28 -0
- package/{dist → types}/types/Support.d.ts +3 -2
- package/.eslintignore +0 -3
- package/.eslintrc.cjs +0 -39
- package/dist/contracts/Builder.d.ts +0 -53
- package/dist/contracts/Collection.d.ts +0 -190
- package/dist/contracts/ModelCollection.d.ts +0 -9
- package/dist/contracts/PropertyBag.d.ts +0 -21
- package/dist/contracts/Relation/MorphToMany.d.ts +0 -16
- package/dist/facades/App.d.ts +0 -37
- package/dist/facades/Auth.d.ts +0 -14
- package/dist/facades/Model.d.ts +0 -41
- package/dist/facades/Route.d.ts +0 -32
- package/dist/helpers/app.d.ts +0 -5
- package/dist/helpers/collect.d.ts +0 -1
- package/dist/helpers/log.d.ts +0 -5
- package/dist/index.d.ts +0 -24
- package/dist/mixins/BaseModel.d.ts +0 -5
- package/dist/mixins/HasEvents.d.ts +0 -15
- package/dist/mixins/Reducible.d.ts +0 -17
- package/dist/support/collection.d.ts +0 -4
- package/dist/support/reader.d.ts +0 -2
- package/dist/support/searchParams.d.ts +0 -1
- package/dist/types/App.d.ts +0 -79
- package/dist/types/Builder.d.ts +0 -51
- package/dist/types/Collection.d.ts +0 -1804
- package/dist/types/Error.d.ts +0 -31
- package/dist/types/Event.d.ts +0 -14
- package/dist/types/PropertyBag.d.ts +0 -25
- package/dist/types/Reducer.d.ts +0 -17
- package/dist/types/Route.d.ts +0 -22
- package/index.html +0 -13
- package/jest.config.js +0 -15
- package/tsconfig.json +0 -25
- package/vite.config.js +0 -20
- /package/{dist → types}/exceptions/AttributeNotFillableException.d.ts +0 -0
- /package/{dist → types}/exceptions/FacadeNotFoundException.d.ts +0 -0
- /package/{dist → types}/exceptions/MethodNotImplementedException.d.ts +0 -0
- /package/{dist → types}/exceptions/ModelInvalidRelatedTypeException.d.ts +0 -0
- /package/{dist → types}/exceptions/ModelNotFoundException.d.ts +0 -0
- /package/{dist → types}/exceptions/ModelNotPersistedException.d.ts +0 -0
- /package/{dist → types}/exceptions/ModelWithoutPrimaryKeyException.d.ts +0 -0
- /package/{dist → types}/exceptions/NoEmbedException.d.ts +0 -0
- /package/{dist → types}/exceptions/NoInverseRelationException.d.ts +0 -0
- /package/{dist → types}/exceptions/NotModelException.d.ts +0 -0
- /package/{dist → types}/exceptions/NotReducibleException.d.ts +0 -0
- /package/{dist → types}/exceptions/ReducerOverrideException.d.ts +0 -0
- /package/{dist → types}/exceptions/RouteNotFoundException.d.ts +0 -0
- /package/{dist → types}/exceptions/UnsupportedRelationException.d.ts +0 -0
- /package/{dist → types}/types/Log.d.ts +0 -0
- /package/{dist → types}/types/Plugin.d.ts +0 -0
package/dist/core.js
CHANGED
|
@@ -1,1020 +1,185 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
m(this, "_user");
|
|
21
|
-
this.app = e;
|
|
22
|
-
}
|
|
23
|
-
attempt(e, t = !1, r) {
|
|
24
|
-
const i = document.createElement("form");
|
|
25
|
-
i.method = "post", i.action = this.app.make("route").url("login"), i.style.display = "none";
|
|
26
|
-
const s = this.app.make("config").get("auth.csrf");
|
|
27
|
-
if (typeof s == "string") {
|
|
28
|
-
const a = document.createElement("input");
|
|
29
|
-
a.type = "hidden", a.name = "_token", a.value = s, i.appendChild(a);
|
|
30
|
-
}
|
|
31
|
-
const u = document.createElement("input");
|
|
32
|
-
u.type = "email", u.name = "email", u.value = e.email, i.appendChild(u);
|
|
1
|
+
var ce = Object.defineProperty;
|
|
2
|
+
var de = (n, t, e) => t in n ? ce(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
|
|
3
|
+
var p = (n, t, e) => de(n, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
import { reader as pe, PropertyBag as R, EventSource as q, Collection as x, Query as T, Obj as m, Str as y, Reducible as ne, isValidationError as ge, Macroable as oe, Client as ye, ServiceProvider as me, MakeFacade as E, Application as fe, Response as we } from "@luminix/support";
|
|
5
|
+
class ve {
|
|
6
|
+
constructor(t, e, i) {
|
|
7
|
+
p(this, "_user");
|
|
8
|
+
this.config = t, this.model = e, this.route = i;
|
|
9
|
+
}
|
|
10
|
+
attempt(t, e = !1, i) {
|
|
11
|
+
const s = document.createElement("form");
|
|
12
|
+
s.method = "post", s.action = this.route.url("login"), s.style.display = "none";
|
|
13
|
+
const c = this.config.get("auth.csrf");
|
|
14
|
+
if (typeof c == "string") {
|
|
15
|
+
const u = document.createElement("input");
|
|
16
|
+
u.type = "hidden", u.name = "_token", u.value = c, s.appendChild(u);
|
|
17
|
+
}
|
|
18
|
+
const g = document.createElement("input");
|
|
19
|
+
g.type = "email", g.name = "email", g.value = t.email, s.appendChild(g);
|
|
33
20
|
const l = document.createElement("input");
|
|
34
|
-
if (l.type = "password", l.name = "password", l.value =
|
|
35
|
-
const
|
|
36
|
-
|
|
21
|
+
if (l.type = "password", l.name = "password", l.value = t.password, s.appendChild(l), e) {
|
|
22
|
+
const u = document.createElement("input");
|
|
23
|
+
u.type = "checkbox", u.name = "remember", u.value = "1", u.checked = !0, s.appendChild(u);
|
|
37
24
|
}
|
|
38
|
-
|
|
25
|
+
i && s.addEventListener("submit", i), document.body.appendChild(s), s.submit();
|
|
39
26
|
}
|
|
40
27
|
check() {
|
|
41
|
-
return !!this.
|
|
28
|
+
return !!this.config.get("auth.user");
|
|
42
29
|
}
|
|
43
|
-
logout(
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
if (typeof
|
|
48
|
-
const
|
|
49
|
-
|
|
30
|
+
logout(t) {
|
|
31
|
+
const e = document.createElement("form");
|
|
32
|
+
e.method = "post", e.action = this.route.url("logout"), e.style.display = "none";
|
|
33
|
+
const i = this.config.get("auth.csrf");
|
|
34
|
+
if (typeof i == "string") {
|
|
35
|
+
const s = document.createElement("input");
|
|
36
|
+
s.type = "hidden", s.name = "_token", s.value = i, e.appendChild(s);
|
|
50
37
|
}
|
|
51
|
-
document.body.appendChild(
|
|
38
|
+
document.body.appendChild(e), t && e.addEventListener("submit", t), e.submit();
|
|
52
39
|
}
|
|
53
40
|
user() {
|
|
54
41
|
if (!this._user) {
|
|
55
|
-
const
|
|
56
|
-
if (!
|
|
57
|
-
return
|
|
58
|
-
this._user = new
|
|
42
|
+
const t = this.model.make("user"), e = this.config.get("auth.user");
|
|
43
|
+
if (!e)
|
|
44
|
+
return;
|
|
45
|
+
this._user = new t(e);
|
|
59
46
|
}
|
|
60
47
|
return this._user;
|
|
61
48
|
}
|
|
62
49
|
id() {
|
|
63
|
-
var
|
|
64
|
-
return ((
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
class Ce {
|
|
68
|
-
constructor(e) {
|
|
69
|
-
this._debug = e;
|
|
70
|
-
}
|
|
71
|
-
emergency(...e) {
|
|
72
|
-
this._debug && console.error(...e);
|
|
73
|
-
}
|
|
74
|
-
alert(...e) {
|
|
75
|
-
this._debug && console.error(...e);
|
|
76
|
-
}
|
|
77
|
-
critical(...e) {
|
|
78
|
-
this._debug && console.error(...e);
|
|
79
|
-
}
|
|
80
|
-
error(...e) {
|
|
81
|
-
this._debug && console.error(...e);
|
|
82
|
-
}
|
|
83
|
-
warning(...e) {
|
|
84
|
-
this._debug && console.warn(...e);
|
|
85
|
-
}
|
|
86
|
-
notice(...e) {
|
|
87
|
-
this._debug && console.info(...e);
|
|
88
|
-
}
|
|
89
|
-
info(...e) {
|
|
90
|
-
this._debug && console.info(...e);
|
|
91
|
-
}
|
|
92
|
-
debug(...e) {
|
|
93
|
-
this._debug && console.debug(...e);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
class S {
|
|
97
|
-
constructor(e) {
|
|
98
|
-
m(this, "locked", []);
|
|
99
|
-
this.bag = e, Object.freeze(this.bag);
|
|
100
|
-
}
|
|
101
|
-
get(e, t) {
|
|
102
|
-
return f.get(this.bag, e, t);
|
|
103
|
-
}
|
|
104
|
-
set(e, t) {
|
|
105
|
-
if (this.locked.some((r) => e.startsWith(r)))
|
|
106
|
-
throw new Error(`Cannot set a locked path "${e}"`);
|
|
107
|
-
if (typeof t == "object" && t !== null && this.locked.some((r) => f.has(t, r.slice(e.length + 1))))
|
|
108
|
-
throw new Error(`Cannot set a path "${e}" that would override a locked path`);
|
|
109
|
-
if (e === ".") {
|
|
110
|
-
if (this.locked.length)
|
|
111
|
-
throw new Error("Cannot set the root path when there are locked paths");
|
|
112
|
-
if (typeof t != "object" || t === null)
|
|
113
|
-
throw new TypeError("Value must be an object");
|
|
114
|
-
this.bag = R(this.bag, () => t), this.emit("change", {
|
|
115
|
-
path: e,
|
|
116
|
-
value: t,
|
|
117
|
-
type: "set"
|
|
118
|
-
});
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
this.bag = R(this.bag, (r) => {
|
|
122
|
-
f.set(r, e, t);
|
|
123
|
-
}), this.emit("change", {
|
|
124
|
-
path: e,
|
|
125
|
-
value: t,
|
|
126
|
-
type: "set"
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
merge(e, t) {
|
|
130
|
-
if (typeof t != "object" || t === null)
|
|
131
|
-
throw new TypeError("Value must be an object");
|
|
132
|
-
if (e === ".") {
|
|
133
|
-
if (this.locked.some((i) => f.has(t, i)))
|
|
134
|
-
throw new Error(`Cannot merge a path "${e}" that would override a locked path`);
|
|
135
|
-
this.bag = R(this.bag, (i) => ({
|
|
136
|
-
...i,
|
|
137
|
-
...t
|
|
138
|
-
})), this.emit("change", {
|
|
139
|
-
path: e,
|
|
140
|
-
value: t,
|
|
141
|
-
type: "merge"
|
|
142
|
-
});
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
const r = this.get(e);
|
|
146
|
-
if (typeof r == "object" && r !== null)
|
|
147
|
-
return this.set(e, {
|
|
148
|
-
...r,
|
|
149
|
-
...t
|
|
150
|
-
});
|
|
151
|
-
if (r === null || typeof r > "u")
|
|
152
|
-
return this.set(e, t);
|
|
153
|
-
throw new Error(`Cannot merge a non-object path "${e}"`);
|
|
154
|
-
}
|
|
155
|
-
has(e) {
|
|
156
|
-
return f.has(this.bag, e);
|
|
157
|
-
}
|
|
158
|
-
delete(e) {
|
|
159
|
-
if (this.locked.some((t) => e.startsWith(t)))
|
|
160
|
-
throw new Error(`Cannot delete a locked path "${e}"`);
|
|
161
|
-
this.bag = R(this.bag, (t) => {
|
|
162
|
-
f.unset(t, e);
|
|
163
|
-
}), this.emit("change", {
|
|
164
|
-
path: e,
|
|
165
|
-
value: null,
|
|
166
|
-
type: "delete"
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
lock(e) {
|
|
170
|
-
if (!this.has(e))
|
|
171
|
-
throw new Error(`Cannot lock a non-existing path "${e}"`);
|
|
172
|
-
this.locked.push(e);
|
|
173
|
-
}
|
|
174
|
-
clone() {
|
|
175
|
-
return new S(this.bag);
|
|
176
|
-
}
|
|
177
|
-
all() {
|
|
178
|
-
return this.bag;
|
|
179
|
-
}
|
|
180
|
-
isEmpty() {
|
|
181
|
-
return f.isEmpty(this.bag);
|
|
182
|
-
}
|
|
183
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
184
|
-
on(e, t) {
|
|
185
|
-
return () => null;
|
|
186
|
-
}
|
|
187
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
188
|
-
once(e, t) {
|
|
189
|
-
}
|
|
190
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
191
|
-
emit(e, t) {
|
|
50
|
+
var t;
|
|
51
|
+
return ((t = this.user()) == null ? void 0 : t.getKey()) || null;
|
|
192
52
|
}
|
|
193
53
|
}
|
|
194
|
-
|
|
195
|
-
var e, t, r, $e, s;
|
|
196
|
-
return s = class extends (t = n, e = Symbol.toStringTag, t) {
|
|
197
|
-
constructor(...a) {
|
|
198
|
-
super(...a);
|
|
199
|
-
F(this, r);
|
|
200
|
-
m(this, "emitter");
|
|
201
|
-
m(this, e, n.name);
|
|
202
|
-
this.emitter = D(this, r, $e).call(this);
|
|
203
|
-
}
|
|
204
|
-
on(a, d) {
|
|
205
|
-
if (typeof a != "string")
|
|
206
|
-
throw new TypeError("event must be a string");
|
|
207
|
-
if (typeof d != "function")
|
|
208
|
-
throw new TypeError("callback must be a function");
|
|
209
|
-
return this.emitter.on(a, d);
|
|
210
|
-
}
|
|
211
|
-
once(a, d) {
|
|
212
|
-
if (typeof a != "string")
|
|
213
|
-
throw new TypeError("event must be a string");
|
|
214
|
-
if (typeof d != "function")
|
|
215
|
-
throw new TypeError("callback must be a function");
|
|
216
|
-
const p = this.emitter.on(a, (w) => {
|
|
217
|
-
p(), d(w);
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
emit(a, d = {}) {
|
|
221
|
-
if (typeof a != "string")
|
|
222
|
-
throw new TypeError("event must be a string");
|
|
223
|
-
if (typeof d != "object")
|
|
224
|
-
throw new TypeError("data must be an object");
|
|
225
|
-
this.emitter.emit(a, {
|
|
226
|
-
...d,
|
|
227
|
-
source: this
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
}, r = new WeakSet(), $e = function() {
|
|
231
|
-
return {
|
|
232
|
-
emit(a, d) {
|
|
233
|
-
for (let p = 0, w = this.events[a] || [], x = w.length; p < x; p++)
|
|
234
|
-
w[p](d);
|
|
235
|
-
},
|
|
236
|
-
events: {},
|
|
237
|
-
on(a, d) {
|
|
238
|
-
var p;
|
|
239
|
-
return ((p = this.events)[a] || (p[a] = [])).push(d), () => {
|
|
240
|
-
var w;
|
|
241
|
-
this.events[a] = (w = this.events[a]) == null ? void 0 : w.filter((x) => d !== x);
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
};
|
|
245
|
-
}, s;
|
|
246
|
-
}
|
|
247
|
-
function U(...n) {
|
|
248
|
-
return n.reduce((e, t) => e.flatMap((r) => t.map((i) => [r, i].flat())));
|
|
249
|
-
}
|
|
250
|
-
function $(n) {
|
|
251
|
-
return !(typeof n != "object" || n === null || !Reflect.has(n, "constructor") || Reflect.get(n.constructor, "name") !== "Collection");
|
|
252
|
-
}
|
|
253
|
-
var Y, Z;
|
|
254
|
-
class b extends (Z = Error, Y = Symbol.toStringTag, Z) {
|
|
54
|
+
class be {
|
|
255
55
|
constructor() {
|
|
256
|
-
|
|
257
|
-
m(this, Y, "MethodNotImplementedException");
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
function c(n = [], e = P) {
|
|
261
|
-
if (!Array.isArray(n))
|
|
262
|
-
throw new TypeError("collect() expects an array");
|
|
263
|
-
return new (A(e))([...n]);
|
|
264
|
-
}
|
|
265
|
-
const _ = (n) => {
|
|
266
|
-
n.emit("change", {
|
|
267
|
-
items: n.all()
|
|
268
|
-
});
|
|
269
|
-
}, q = (n, e) => Array.isArray(n) ? n[e] ?? null : n.get(e);
|
|
270
|
-
var z, O, o;
|
|
271
|
-
class P {
|
|
272
|
-
constructor(e = []) {
|
|
273
|
-
// [Symbol.toStringTag] = 'Collection';
|
|
274
|
-
F(this, o);
|
|
275
|
-
m(this, z, "Collection");
|
|
276
|
-
J(this, o, e);
|
|
277
|
-
}
|
|
278
|
-
get items() {
|
|
279
|
-
return [...h(this, o)];
|
|
280
|
-
}
|
|
281
|
-
[(O = Symbol.iterator, z = Symbol.toStringTag, O)]() {
|
|
282
|
-
return h(this, o)[Symbol.iterator]();
|
|
283
|
-
}
|
|
284
|
-
all() {
|
|
285
|
-
return [...h(this, o)];
|
|
286
|
-
}
|
|
287
|
-
average(e) {
|
|
288
|
-
return typeof e == "string" ? this.avg(e) : this.avg();
|
|
289
|
-
}
|
|
290
|
-
avg(e) {
|
|
291
|
-
return typeof e == "string" ? this.sum(e) / h(this, o).length : this.sum() / h(this, o).length;
|
|
292
|
-
}
|
|
293
|
-
chunk(e) {
|
|
294
|
-
const t = [];
|
|
295
|
-
for (let r = 0; r < h(this, o).length; r += e)
|
|
296
|
-
t.push(h(this, o).slice(r, r + e));
|
|
297
|
-
return c(t.map((r) => c(r)));
|
|
298
|
-
}
|
|
299
|
-
chunkWhile(e) {
|
|
300
|
-
const t = [];
|
|
301
|
-
let r = c();
|
|
302
|
-
for (let i = 0; i < h(this, o).length; i++)
|
|
303
|
-
e(h(this, o)[i], i, r) ? r.push(h(this, o)[i]) : (t.push(r), r = c());
|
|
304
|
-
return r.count() > 0 && t.push(r), c(t);
|
|
305
|
-
}
|
|
306
|
-
collapse() {
|
|
307
|
-
return c(h(this, o).flat());
|
|
308
|
-
}
|
|
309
|
-
collect() {
|
|
310
|
-
return c(h(this, o));
|
|
311
|
-
}
|
|
312
|
-
combine(e) {
|
|
56
|
+
p(this, "bags");
|
|
313
57
|
const t = {};
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
concat(e) {
|
|
321
|
-
return Array.isArray(e) ? c([...h(this, o), ...e]) : c([...h(this, o), ...e.all()]);
|
|
322
|
-
}
|
|
323
|
-
contains(e, t) {
|
|
324
|
-
return typeof e == "function" ? h(this, o).some((r, i) => e(r, i, this)) : h(this, o).some((r) => {
|
|
325
|
-
if (typeof t > "u")
|
|
326
|
-
return r == e;
|
|
327
|
-
if (typeof e != "string")
|
|
328
|
-
throw new TypeError("The key must be a string");
|
|
329
|
-
return r[e] == t;
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
containsOneItem() {
|
|
333
|
-
return h(this, o).length === 1;
|
|
334
|
-
}
|
|
335
|
-
containsStrict(e, t) {
|
|
336
|
-
return typeof e == "function" ? h(this, o).some((r, i) => e(r, i, this)) : h(this, o).some((r) => {
|
|
337
|
-
if (typeof t > "u")
|
|
338
|
-
return r === e;
|
|
339
|
-
if (typeof e != "string")
|
|
340
|
-
throw new TypeError("The key must be a string");
|
|
341
|
-
return r[e] === t;
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
count() {
|
|
345
|
-
return h(this, o).length;
|
|
346
|
-
}
|
|
347
|
-
countBy(e) {
|
|
348
|
-
return typeof e == "function" ? h(this, o).reduce((t, r, i) => {
|
|
349
|
-
const s = e(r, i, this);
|
|
350
|
-
return t[s] = t[s] ? t[s] + 1 : 1, t;
|
|
351
|
-
}, {}) : h(this, o).reduce((t, r) => {
|
|
352
|
-
if (!["string", "number"].includes(typeof r))
|
|
353
|
-
throw new TypeError("The countBy method expects the items to be strings or numbers");
|
|
354
|
-
return t[String(r)] = t[String(r)] ? t[String(r)] + 1 : 1, t;
|
|
355
|
-
}, {});
|
|
356
|
-
}
|
|
357
|
-
crossJoin(...e) {
|
|
358
|
-
return c(U(
|
|
359
|
-
h(this, o),
|
|
360
|
-
...e.map((t) => Array.isArray(t) ? t : t.all())
|
|
361
|
-
));
|
|
362
|
-
}
|
|
363
|
-
diff(e) {
|
|
364
|
-
return Array.isArray(e) ? c(h(this, o).filter((t) => !e.includes(t))) : c(h(this, o).filter((t) => !e.contains(t)));
|
|
365
|
-
}
|
|
366
|
-
doesntContain(e, t) {
|
|
367
|
-
return typeof e == "function" ? h(this, o).every((r, i) => !e(r, i, this)) : h(this, o).every((r) => {
|
|
368
|
-
if (typeof t > "u")
|
|
369
|
-
return r != e;
|
|
370
|
-
if (typeof e != "string")
|
|
371
|
-
throw new TypeError("The key must be a string");
|
|
372
|
-
return r[e] != t;
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
dump() {
|
|
376
|
-
console.log(this.toArray());
|
|
377
|
-
}
|
|
378
|
-
duplicates(e) {
|
|
379
|
-
return c(typeof e == "string" ? h(this, o).reduce((t, r, i) => (h(this, o).slice(i + 1).some((s) => s[e] == r[e]) && t.push(r[e]), t), []) : h(this, o).reduce((t, r, i) => (h(this, o).slice(i + 1).some((s) => s == r) && t.push(r), t), []));
|
|
380
|
-
}
|
|
381
|
-
duplicatesStrict(e) {
|
|
382
|
-
return c(typeof e == "string" ? h(this, o).reduce((t, r, i) => (h(this, o).slice(i + 1).some((s) => s[e] === r[e]) && t.push(r[e]), t), []) : h(this, o).reduce((t, r, i) => (h(this, o).slice(i + 1).some((s) => s === r) && t.push(r), t), []));
|
|
383
|
-
}
|
|
384
|
-
each(e) {
|
|
385
|
-
let t = 0;
|
|
386
|
-
for (const r of this) {
|
|
387
|
-
if (e(r, t, this) === !1)
|
|
388
|
-
break;
|
|
389
|
-
t++;
|
|
390
|
-
}
|
|
391
|
-
return this;
|
|
392
|
-
}
|
|
393
|
-
eachSpread(e) {
|
|
394
|
-
for (const t of this) {
|
|
395
|
-
if (!Array.isArray(t) && !$(t))
|
|
396
|
-
throw new TypeError("The items in the collection must be arrays or collections");
|
|
397
|
-
const r = Array.isArray(t) ? t : t.all();
|
|
398
|
-
if (e(...r) === !1)
|
|
399
|
-
break;
|
|
400
|
-
}
|
|
401
|
-
return this;
|
|
402
|
-
}
|
|
403
|
-
ensure(e) {
|
|
404
|
-
const t = Array.isArray(e) ? e : [e];
|
|
405
|
-
return h(this, o).forEach((r, i) => {
|
|
406
|
-
if (!t.some((s) => typeof s == "string" ? typeof r === s : r instanceof s))
|
|
407
|
-
throw new TypeError(`The item at index ${i} is not of the expected type`);
|
|
408
|
-
}), this;
|
|
409
|
-
}
|
|
410
|
-
every(e) {
|
|
411
|
-
return h(this, o).every((t, r) => e(t, r, this));
|
|
412
|
-
}
|
|
413
|
-
except(e) {
|
|
414
|
-
return c(h(this, o).filter((t, r) => !e.includes(r)));
|
|
415
|
-
}
|
|
416
|
-
filter(e) {
|
|
417
|
-
return c(h(this, o).filter((t, r) => typeof e != "function" ? !!t : e(t, r, this)));
|
|
418
|
-
}
|
|
419
|
-
first(e) {
|
|
420
|
-
return typeof e == "function" ? h(this, o).find((t, r) => e(t, r, this)) ?? null : h(this, o)[0] ?? null;
|
|
421
|
-
}
|
|
422
|
-
firstOrFail(e) {
|
|
423
|
-
const t = this.first(e);
|
|
424
|
-
if (t === null)
|
|
425
|
-
throw new Error("No matching item found");
|
|
426
|
-
return t;
|
|
427
|
-
}
|
|
428
|
-
firstWhere(e, t, r) {
|
|
429
|
-
if (typeof e != "string")
|
|
430
|
-
throw new TypeError("The key must be a string");
|
|
431
|
-
if (typeof t > "u")
|
|
432
|
-
return this.first((i) => !!i[e]);
|
|
433
|
-
if (typeof r > "u")
|
|
434
|
-
return h(this, o).find((i) => i[e] == t) ?? null;
|
|
435
|
-
if (typeof t != "string")
|
|
436
|
-
throw new TypeError("The operator must be a string");
|
|
437
|
-
return r === null ? h(this, o).find((i) => i[e] === null) ?? null : h(this, o).find((i) => {
|
|
438
|
-
switch (t) {
|
|
439
|
-
case "=":
|
|
440
|
-
return i[e] == r;
|
|
441
|
-
case "!=":
|
|
442
|
-
return i[e] != r;
|
|
443
|
-
case ">":
|
|
444
|
-
return i[e] > r;
|
|
445
|
-
case "<":
|
|
446
|
-
return i[e] < r;
|
|
447
|
-
case ">=":
|
|
448
|
-
return i[e] >= r;
|
|
449
|
-
case "<=":
|
|
450
|
-
return i[e] <= r;
|
|
451
|
-
default:
|
|
452
|
-
throw new Error("Unsupported operator");
|
|
453
|
-
}
|
|
454
|
-
}) ?? null;
|
|
455
|
-
}
|
|
456
|
-
flatMap(e) {
|
|
457
|
-
return c(h(this, o).flatMap((t, r) => e(t, r, this)));
|
|
458
|
-
}
|
|
459
|
-
forget(e) {
|
|
460
|
-
return h(this, o).splice(e, 1), _(this), this;
|
|
461
|
-
}
|
|
462
|
-
forPage(e, t) {
|
|
463
|
-
return c(h(this, o).slice((e - 1) * t, e * t));
|
|
464
|
-
}
|
|
465
|
-
get(e, t) {
|
|
466
|
-
if (typeof e != "number")
|
|
467
|
-
throw new TypeError("The key must be a number");
|
|
468
|
-
return typeof t > "u" ? h(this, o)[e] ?? null : typeof t == "function" ? h(this, o)[e] ?? t() : h(this, o)[e] ?? t;
|
|
469
|
-
}
|
|
470
|
-
groupBy(e) {
|
|
471
|
-
const t = Array.isArray(e) ? e : [e];
|
|
472
|
-
return h(this, o).reduce((r, i, s) => {
|
|
473
|
-
const u = t.map((a) => {
|
|
474
|
-
if (typeof a == "function") {
|
|
475
|
-
const d = a(i, s, this);
|
|
476
|
-
return Array.isArray(d) ? d : [d];
|
|
477
|
-
}
|
|
478
|
-
return [String(i[a])];
|
|
479
|
-
});
|
|
480
|
-
return U(...u).forEach((a) => {
|
|
481
|
-
const d = Array.isArray(a) ? a.join(".") : a;
|
|
482
|
-
f.set(r, d, [
|
|
483
|
-
...f.get(r, d, []),
|
|
484
|
-
i
|
|
485
|
-
]);
|
|
486
|
-
}), r;
|
|
487
|
-
}, {});
|
|
488
|
-
}
|
|
489
|
-
has(e) {
|
|
490
|
-
return h(this, o).length > e;
|
|
491
|
-
}
|
|
492
|
-
hasAny(e) {
|
|
493
|
-
return e.some((t) => this.has(t));
|
|
494
|
-
}
|
|
495
|
-
implode(e, t) {
|
|
496
|
-
if (typeof t > "u") {
|
|
497
|
-
if (typeof e != "string")
|
|
498
|
-
throw new TypeError("The glue must be a string");
|
|
499
|
-
if (!h(this, o).every((r) => ["string", "number"].includes(typeof r)))
|
|
500
|
-
throw new TypeError("The items must be strings or numbers");
|
|
501
|
-
return h(this, o).join(e);
|
|
502
|
-
}
|
|
503
|
-
if (typeof e == "function")
|
|
504
|
-
return h(this, o).map((r, i) => e(r, i, this)).join(t);
|
|
505
|
-
if (typeof e != "string")
|
|
506
|
-
throw new TypeError("The key must be a string");
|
|
507
|
-
if (!h(this, o).every((r) => typeof r == "object"))
|
|
508
|
-
throw new TypeError("The items must be objects");
|
|
509
|
-
return h(this, o).map((r) => r[e]).join(t);
|
|
510
|
-
}
|
|
511
|
-
intersect(e) {
|
|
512
|
-
return Array.isArray(e) ? c(h(this, o).filter((t) => e.includes(t))) : c(h(this, o).filter((t) => e.contains(t)));
|
|
513
|
-
}
|
|
514
|
-
isEmpty() {
|
|
515
|
-
return h(this, o).length === 0;
|
|
516
|
-
}
|
|
517
|
-
isNotEmpty() {
|
|
518
|
-
return !this.isEmpty();
|
|
519
|
-
}
|
|
520
|
-
join(e, t) {
|
|
521
|
-
return typeof t > "u" ? h(this, o).join(e) : h(this, o).slice(0, -1).join(e) + t + h(this, o)[h(this, o).length - 1];
|
|
522
|
-
}
|
|
523
|
-
keyBy(e) {
|
|
524
|
-
if (typeof e == "function")
|
|
525
|
-
return h(this, o).reduce((t, r, i) => (t[e(r, i, this)] = r, t), {});
|
|
526
|
-
if (typeof e != "string")
|
|
527
|
-
throw new TypeError("The key must be a string");
|
|
528
|
-
return h(this, o).reduce((t, r) => (t[String(r[e])] = r, t), {});
|
|
529
|
-
}
|
|
530
|
-
last(e) {
|
|
531
|
-
return typeof e == "function" ? h(this, o).toReversed().find((t, r) => e(t, r, this)) ?? null : h(this, o)[h(this, o).length - 1] ?? null;
|
|
532
|
-
}
|
|
533
|
-
map(e) {
|
|
534
|
-
return c(h(this, o).map((t, r) => e(t, r, this)));
|
|
535
|
-
}
|
|
536
|
-
mapInto(e) {
|
|
537
|
-
return c(h(this, o).map((t) => new e(t)));
|
|
538
|
-
}
|
|
539
|
-
mapSpread(e) {
|
|
540
|
-
return c(h(this, o).map((t) => {
|
|
541
|
-
if (!Array.isArray(t) && !$(t))
|
|
542
|
-
throw new TypeError("The items in the collection must be arrays or collections");
|
|
543
|
-
const r = Array.isArray(t) ? t : t.all();
|
|
544
|
-
return e(...r);
|
|
545
|
-
}));
|
|
546
|
-
}
|
|
547
|
-
mapToGroups(e) {
|
|
548
|
-
return h(this, o).reduce((t, r, i) => {
|
|
549
|
-
const s = e(r, i, this);
|
|
550
|
-
return Object.entries(s).forEach(([u, l]) => {
|
|
551
|
-
t[u] = t[u] ?? [], t[u].push(l);
|
|
552
|
-
}), t;
|
|
553
|
-
}, {});
|
|
554
|
-
}
|
|
555
|
-
mapWithKeys(e) {
|
|
556
|
-
return h(this, o).reduce((t, r, i) => {
|
|
557
|
-
const s = e(r, i, this);
|
|
558
|
-
return Object.entries(s).forEach(([u, l]) => {
|
|
559
|
-
t[u] = l;
|
|
560
|
-
}), t;
|
|
561
|
-
}, {});
|
|
562
|
-
}
|
|
563
|
-
max(e) {
|
|
564
|
-
return typeof e == "string" ? h(this, o).reduce((t, r) => r[e] > t ? r[e] : t, h(this, o)[0][e]) : h(this, o).reduce((t, r) => r > t ? r : t, h(this, o)[0]);
|
|
565
|
-
}
|
|
566
|
-
median(e) {
|
|
567
|
-
if (typeof e == "string") {
|
|
568
|
-
const i = this.pluck(e).sort(), s = Math.floor(i.count() / 2);
|
|
569
|
-
return i.count() % 2 === 0 ? c([q(i, s - 1), q(i, s)]).avg() : q(i, s);
|
|
570
|
-
}
|
|
571
|
-
const t = h(this, o).toSorted(), r = Math.floor(t.length / 2);
|
|
572
|
-
return t.length % 2 === 0 ? c([t[r - 1], t[r]]).avg() : t[r] ?? null;
|
|
573
|
-
}
|
|
574
|
-
merge(e) {
|
|
575
|
-
return Array.isArray(e) ? c([...h(this, o), ...e]) : c([...h(this, o), ...e.all()]);
|
|
576
|
-
}
|
|
577
|
-
min(e) {
|
|
578
|
-
return typeof e == "string" ? h(this, o).reduce((t, r) => r[e] < t ? r[e] : t, h(this, o)[0][e]) : h(this, o).reduce((t, r) => r < t ? r : t, h(this, o)[0]);
|
|
579
|
-
}
|
|
580
|
-
mode(e) {
|
|
581
|
-
const t = typeof e == "string" ? this.filter((i) => ["number", "string"].includes(typeof i[e])).countBy((i) => i[e]) : this.countBy(), r = Math.max(...Object.values(t));
|
|
582
|
-
return Object.entries(t).filter(([, i]) => i === r).map(([i]) => i);
|
|
583
|
-
}
|
|
584
|
-
nth(e, t = 0) {
|
|
585
|
-
return this.chunk(e).filter((r) => r.count() > t).map((r) => r.get(t));
|
|
586
|
-
}
|
|
587
|
-
only(e) {
|
|
588
|
-
return c(h(this, o).filter((t, r) => e.includes(r)));
|
|
589
|
-
}
|
|
590
|
-
pad(e, t = null) {
|
|
591
|
-
const r = h(this, o).slice();
|
|
592
|
-
for (; r.length < Math.abs(e); )
|
|
593
|
-
e > 0 ? r.push(t) : r.unshift(t);
|
|
594
|
-
return c(r);
|
|
595
|
-
}
|
|
596
|
-
partition(e) {
|
|
597
|
-
return [
|
|
598
|
-
this.filter(e),
|
|
599
|
-
this.reject(e)
|
|
600
|
-
];
|
|
601
|
-
}
|
|
602
|
-
percentage(e, t = 2) {
|
|
603
|
-
return Math.round(
|
|
604
|
-
100 * (10 ^ t) * this.filter(e).count() / h(this, o).length
|
|
605
|
-
) / (10 ^ t);
|
|
606
|
-
}
|
|
607
|
-
pipe(e) {
|
|
608
|
-
return e(this);
|
|
609
|
-
}
|
|
610
|
-
pipeInto(e) {
|
|
611
|
-
return new e(this);
|
|
612
|
-
}
|
|
613
|
-
pipeThrough(e) {
|
|
614
|
-
return e.reduce((t, r) => {
|
|
615
|
-
if (!$(t) && !Array.isArray(t))
|
|
616
|
-
throw new TypeError("The pipeline expects the carry to be a collection or an array");
|
|
617
|
-
return r(
|
|
618
|
-
$(t) ? t : c(t)
|
|
619
|
-
);
|
|
620
|
-
}, this);
|
|
621
|
-
}
|
|
622
|
-
pluck(e) {
|
|
623
|
-
return this.map((t) => t[e]);
|
|
624
|
-
}
|
|
625
|
-
pop(e = 1) {
|
|
626
|
-
const t = h(this, o).splice(h(this, o).length - e, e);
|
|
627
|
-
return _(this), e === 1 ? t[0] ?? null : c(t);
|
|
628
|
-
}
|
|
629
|
-
prepend(e) {
|
|
630
|
-
const t = h(this, o).unshift(e);
|
|
631
|
-
return _(this), t;
|
|
632
|
-
}
|
|
633
|
-
pull(e) {
|
|
634
|
-
const t = h(this, o).splice(e, 1)[0] ?? null;
|
|
635
|
-
return _(this), t;
|
|
636
|
-
}
|
|
637
|
-
push(...e) {
|
|
638
|
-
const t = h(this, o).push(...e);
|
|
639
|
-
return _(this), t;
|
|
640
|
-
}
|
|
641
|
-
put(e, t) {
|
|
642
|
-
return h(this, o).splice(e, 1, t), _(this), this;
|
|
643
|
-
}
|
|
644
|
-
random(e = 1) {
|
|
645
|
-
if (h(this, o).length < e)
|
|
646
|
-
throw new Error("The collection has fewer items than the requested amount");
|
|
647
|
-
const t = c(f.sampleSize(h(this, o), e));
|
|
648
|
-
return e === 1 ? t.first() : t;
|
|
649
|
-
}
|
|
650
|
-
reduce(e, t = null) {
|
|
651
|
-
return h(this, o).reduce((r, i, s) => e(r, i, s, this), t);
|
|
652
|
-
}
|
|
653
|
-
reject(e) {
|
|
654
|
-
return this.filter((t, r) => !e(t, r, this));
|
|
655
|
-
}
|
|
656
|
-
replace(e) {
|
|
657
|
-
const t = h(this, o).slice();
|
|
658
|
-
return Object.entries(e).forEach(([r, i]) => {
|
|
659
|
-
t[parseInt(r)] = i;
|
|
660
|
-
}), c(t);
|
|
661
|
-
}
|
|
662
|
-
reverse() {
|
|
663
|
-
return c(h(this, o).toReversed());
|
|
664
|
-
}
|
|
665
|
-
search(e, t = !1) {
|
|
666
|
-
if (typeof e != "function" || h(this, o).every((i) => typeof i == "function")) {
|
|
667
|
-
const i = h(this, o).findIndex((s) => t ? s === e : s == e);
|
|
668
|
-
return i === -1 ? !1 : i;
|
|
669
|
-
}
|
|
670
|
-
const r = h(this, o).findIndex((i, s) => e(i, s, this));
|
|
671
|
-
return r === -1 ? !1 : r;
|
|
672
|
-
}
|
|
673
|
-
select(e) {
|
|
674
|
-
return this.map((t) => e.reduce((r, i) => (r[i] = t[i], r), {}));
|
|
675
|
-
}
|
|
676
|
-
shift(e = 1) {
|
|
677
|
-
const t = h(this, o).splice(0, e);
|
|
678
|
-
return _(this), e === 1 ? t[0] ?? null : c(t);
|
|
679
|
-
}
|
|
680
|
-
shuffle() {
|
|
681
|
-
return c(f.shuffle(h(this, o)));
|
|
682
|
-
}
|
|
683
|
-
skip(e) {
|
|
684
|
-
return c(h(this, o).slice(e));
|
|
685
|
-
}
|
|
686
|
-
skipUntil(e) {
|
|
687
|
-
return typeof e == "function" ? this.skip(h(this, o).findIndex((t, r) => e(t, r, this))) : this.skip(h(this, o).findIndex((t) => t == e));
|
|
688
|
-
}
|
|
689
|
-
skipWhile(e) {
|
|
690
|
-
return typeof e == "function" ? this.skip(h(this, o).findIndex((t, r) => !e(t, r, this))) : this.skip(h(this, o).findIndex((t) => t != e));
|
|
691
|
-
}
|
|
692
|
-
slice(e, t) {
|
|
693
|
-
return c(typeof t > "u" ? h(this, o).slice(e) : typeof e > "u" ? h(this, o).slice(0, t) : h(this, o).slice(e, e + t));
|
|
694
|
-
}
|
|
695
|
-
sliding(e, t = 1) {
|
|
696
|
-
const r = [];
|
|
697
|
-
for (let i = 0; i < h(this, o).length && !(i + e > h(this, o).length); i += t)
|
|
698
|
-
r.push(h(this, o).slice(i, i + e));
|
|
699
|
-
return c(r.map((i) => c(i)));
|
|
700
|
-
}
|
|
701
|
-
sole(e, t) {
|
|
702
|
-
if (typeof e == "function") {
|
|
703
|
-
const r = this.filter(e);
|
|
704
|
-
return r.count() === 1 ? r.first() : null;
|
|
705
|
-
}
|
|
706
|
-
if (typeof e == "string") {
|
|
707
|
-
const r = this.where(e, t);
|
|
708
|
-
return r.count() === 1 ? r.first() : null;
|
|
709
|
-
}
|
|
710
|
-
return h(this, o).length === 1 ? this.first() : null;
|
|
711
|
-
}
|
|
712
|
-
some(...e) {
|
|
713
|
-
return this.contains(...e);
|
|
58
|
+
document.querySelectorAll('#luminix-embed [id^="luminix-error"]').forEach((i) => {
|
|
59
|
+
const c = i.id.replace("luminix-error::", "");
|
|
60
|
+
t[c] = pe(c, "error");
|
|
61
|
+
}), this.bags = {
|
|
62
|
+
default: new R(t)
|
|
63
|
+
};
|
|
714
64
|
}
|
|
715
|
-
|
|
716
|
-
return
|
|
65
|
+
bag(t = "default") {
|
|
66
|
+
return this.bags[t] || (this.bags[t] = new R({})), this.bags[t];
|
|
717
67
|
}
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
let r = -1;
|
|
721
|
-
return c(h(this, o).toSorted((i, s) => (r++, e(i, r, this) - e(s, r, this))));
|
|
722
|
-
}
|
|
723
|
-
if (Array.isArray(e))
|
|
724
|
-
return e.every((r) => Array.isArray(r)) ? c(h(this, o).toSorted((r, i) => {
|
|
725
|
-
for (const [s, u] of e) {
|
|
726
|
-
const l = r[s] ?? -1 / 0, a = i[s] ?? -1 / 0;
|
|
727
|
-
if (l > a)
|
|
728
|
-
return u === "asc" ? 1 : -1;
|
|
729
|
-
if (l < a)
|
|
730
|
-
return u === "asc" ? -1 : 1;
|
|
731
|
-
}
|
|
732
|
-
return 0;
|
|
733
|
-
})) : c(h(this, o).toSorted((r, i) => {
|
|
734
|
-
for (const s of e) {
|
|
735
|
-
const u = s(r, i);
|
|
736
|
-
if (u !== 0)
|
|
737
|
-
return u;
|
|
738
|
-
}
|
|
739
|
-
return 0;
|
|
740
|
-
}));
|
|
741
|
-
if (typeof e != "string")
|
|
742
|
-
throw new TypeError("The key must be a string");
|
|
743
|
-
return c(h(this, o).toSorted((r, i) => {
|
|
744
|
-
const s = r[e] ?? -1 / 0, u = i[e] ?? -1 / 0;
|
|
745
|
-
return s > u ? t === "asc" ? 1 : -1 : s < u ? t === "asc" ? -1 : 1 : 0;
|
|
746
|
-
}));
|
|
747
|
-
}
|
|
748
|
-
sortDesc() {
|
|
749
|
-
return this.sort((e, t) => e > t ? -1 : e < t ? 1 : 0);
|
|
750
|
-
}
|
|
751
|
-
splice(e, t, ...r) {
|
|
752
|
-
const i = t === void 0 ? h(this, o).length : t, s = h(this, o).splice(e, i, ...r);
|
|
753
|
-
return _(this), c(s);
|
|
754
|
-
}
|
|
755
|
-
split(e) {
|
|
756
|
-
const t = [];
|
|
757
|
-
for (let r = 0; r < e; r++) {
|
|
758
|
-
const i = h(this, o).slice(
|
|
759
|
-
t.flat().length,
|
|
760
|
-
t.flat().length + Math.min(
|
|
761
|
-
Math.ceil((h(this, o).length - t.flat().length) / (e - r)),
|
|
762
|
-
h(this, o).length - t.flat().length
|
|
763
|
-
)
|
|
764
|
-
);
|
|
765
|
-
t.push(c(i));
|
|
766
|
-
}
|
|
767
|
-
return c(t);
|
|
768
|
-
}
|
|
769
|
-
splitIn(e) {
|
|
770
|
-
const t = Math.ceil(h(this, o).length / e);
|
|
771
|
-
return this.chunk(t);
|
|
772
|
-
}
|
|
773
|
-
sum(e) {
|
|
774
|
-
return typeof e == "string" ? h(this, o).reduce((t, r) => {
|
|
775
|
-
const i = r[e];
|
|
776
|
-
if (typeof i != "number")
|
|
777
|
-
throw new TypeError("The items must be numbers");
|
|
778
|
-
return t + i;
|
|
779
|
-
}, 0) : h(this, o).reduce((t, r) => {
|
|
780
|
-
if (typeof r != "number")
|
|
781
|
-
throw new TypeError("The items must be numbers");
|
|
782
|
-
return t + r;
|
|
783
|
-
}, 0);
|
|
784
|
-
}
|
|
785
|
-
take(e) {
|
|
786
|
-
return c(h(this, o).slice(0, e));
|
|
787
|
-
}
|
|
788
|
-
takeUntil(e) {
|
|
789
|
-
return typeof e == "function" ? this.take(h(this, o).findIndex((t, r) => e(t, r, this))) : this.take(h(this, o).findIndex((t) => t == e));
|
|
790
|
-
}
|
|
791
|
-
takeWhile(e) {
|
|
792
|
-
return typeof e == "function" ? this.take(h(this, o).findIndex((t, r) => !e(t, r, this))) : this.take(h(this, o).findIndex((t) => t != e));
|
|
793
|
-
}
|
|
794
|
-
tap(e) {
|
|
795
|
-
return e(this), this;
|
|
796
|
-
}
|
|
797
|
-
toArray() {
|
|
798
|
-
const e = (t) => typeof t != "object" ? t : Array.isArray(t) ? t.map(e) : t && "toArray" in t && typeof t.toArray == "function" ? t.toArray() : t && "toJson" in t && typeof t.toJson == "function" ? t.toJson() : t;
|
|
799
|
-
return h(this, o).map(e);
|
|
800
|
-
}
|
|
801
|
-
toJson() {
|
|
802
|
-
return JSON.stringify(h(this, o));
|
|
803
|
-
}
|
|
804
|
-
transform(e) {
|
|
805
|
-
for (const [t, r] of h(this, o).entries())
|
|
806
|
-
h(this, o).splice(t, 1, e(r, t, this));
|
|
807
|
-
return _(this), this;
|
|
808
|
-
}
|
|
809
|
-
unique(e) {
|
|
810
|
-
return c(typeof e == "string" ? h(this, o).filter((t, r) => !h(this, o).some((i, s) => i[e] == t[e] && s !== r)) : [...new Set(h(this, o))]);
|
|
811
|
-
}
|
|
812
|
-
uniqueStrict(e) {
|
|
813
|
-
return c(typeof e == "string" ? h(this, o).filter((t, r) => !h(this, o).some((i, s) => i[e] === t[e] && s !== r)) : [...new Set(h(this, o))]);
|
|
814
|
-
}
|
|
815
|
-
unless(e, t, r) {
|
|
816
|
-
return e ? typeof r == "function" && r(this) : t(this), this;
|
|
817
|
-
}
|
|
818
|
-
unlessEmpty(e, t) {
|
|
819
|
-
return this.whenNotEmpty(e, t);
|
|
820
|
-
}
|
|
821
|
-
unlessNotEmpty(e, t) {
|
|
822
|
-
return this.whenEmpty(e, t);
|
|
823
|
-
}
|
|
824
|
-
value(e) {
|
|
825
|
-
return h(this, o).length === 0 ? null : h(this, o)[0][e];
|
|
826
|
-
}
|
|
827
|
-
when(e, t, r) {
|
|
828
|
-
return e ? t(this) : typeof r == "function" && r(this), this;
|
|
829
|
-
}
|
|
830
|
-
whenEmpty(e, t) {
|
|
831
|
-
return this.isEmpty() ? e(this) : typeof t == "function" && t(this), this;
|
|
832
|
-
}
|
|
833
|
-
whenNotEmpty(e, t) {
|
|
834
|
-
return this.isNotEmpty() ? e(this) : typeof t == "function" && t(this), this;
|
|
835
|
-
}
|
|
836
|
-
where(e, t, r) {
|
|
837
|
-
if (typeof r > "u")
|
|
838
|
-
return c(h(this, o).filter((s) => s[e] == t));
|
|
839
|
-
if (typeof t != "string")
|
|
840
|
-
throw new TypeError("The operator must be a string");
|
|
841
|
-
if (r === null)
|
|
842
|
-
return c(h(this, o).filter((s) => s[e] === null));
|
|
843
|
-
const i = {
|
|
844
|
-
"=": (s) => s[e] == r,
|
|
845
|
-
"!=": (s) => s[e] != r,
|
|
846
|
-
">": (s) => s[e] > r,
|
|
847
|
-
"<": (s) => s[e] < r,
|
|
848
|
-
">=": (s) => s[e] >= r,
|
|
849
|
-
"<=": (s) => s[e] <= r
|
|
850
|
-
};
|
|
851
|
-
if (!(t in i))
|
|
852
|
-
throw new Error("Unsupported operator");
|
|
853
|
-
return c(h(this, o).filter((s, u) => i[t](s, u, this)));
|
|
854
|
-
}
|
|
855
|
-
whereStrict(e, t, r) {
|
|
856
|
-
if (typeof r > "u")
|
|
857
|
-
return c(h(this, o).filter((s) => s[e] === t));
|
|
858
|
-
if (typeof t != "string")
|
|
859
|
-
throw new TypeError("The operator must be a string");
|
|
860
|
-
if (r === null)
|
|
861
|
-
return c(h(this, o).filter((s) => s[e] === null));
|
|
862
|
-
const i = {
|
|
863
|
-
"=": (s) => s[e] === r,
|
|
864
|
-
"!=": (s) => s[e] !== r,
|
|
865
|
-
">": (s) => s[e] > r,
|
|
866
|
-
"<": (s) => s[e] < r,
|
|
867
|
-
">=": (s) => s[e] >= r,
|
|
868
|
-
"<=": (s) => s[e] <= r
|
|
869
|
-
};
|
|
870
|
-
if (!(t in i))
|
|
871
|
-
throw new Error("Unsupported operator");
|
|
872
|
-
return c(h(this, o).filter((s, u) => i[t](s, u, this)));
|
|
68
|
+
add(t, e, i = "default") {
|
|
69
|
+
this.bag(i).set(t, e);
|
|
873
70
|
}
|
|
874
|
-
|
|
875
|
-
|
|
71
|
+
set(t, e = "default") {
|
|
72
|
+
this.bag(e).set(".", t);
|
|
876
73
|
}
|
|
877
|
-
|
|
878
|
-
return
|
|
74
|
+
all(t = "default") {
|
|
75
|
+
return this.bag(t).all();
|
|
879
76
|
}
|
|
880
|
-
|
|
881
|
-
return
|
|
77
|
+
get(t, e = "default") {
|
|
78
|
+
return this.bag(e).get(t, null);
|
|
882
79
|
}
|
|
883
|
-
|
|
884
|
-
|
|
80
|
+
clear(t = "default") {
|
|
81
|
+
this.bag(t).set(".", {});
|
|
885
82
|
}
|
|
886
|
-
|
|
887
|
-
|
|
83
|
+
}
|
|
84
|
+
class xe {
|
|
85
|
+
constructor(t) {
|
|
86
|
+
this._debug = t;
|
|
888
87
|
}
|
|
889
|
-
|
|
890
|
-
|
|
88
|
+
emergency(...t) {
|
|
89
|
+
this._debug && console.error(...t);
|
|
891
90
|
}
|
|
892
|
-
|
|
893
|
-
|
|
91
|
+
alert(...t) {
|
|
92
|
+
this._debug && console.error(...t);
|
|
894
93
|
}
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
h(this, o).map((t, r) => [t, e[r] ?? null])
|
|
898
|
-
) : c(
|
|
899
|
-
h(this, o).map((t, r) => [t, e.get(r)])
|
|
900
|
-
);
|
|
94
|
+
critical(...t) {
|
|
95
|
+
this._debug && console.error(...t);
|
|
901
96
|
}
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
on(e, t) {
|
|
905
|
-
throw new b();
|
|
97
|
+
error(...t) {
|
|
98
|
+
this._debug && console.error(...t);
|
|
906
99
|
}
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
throw new b();
|
|
100
|
+
warning(...t) {
|
|
101
|
+
this._debug && console.warn(...t);
|
|
910
102
|
}
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
throw new b();
|
|
103
|
+
notice(...t) {
|
|
104
|
+
this._debug && console.info(...t);
|
|
914
105
|
}
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
const k = A(P);
|
|
918
|
-
var ee, te;
|
|
919
|
-
class H extends (te = P, ee = Symbol.toStringTag, te) {
|
|
920
|
-
constructor() {
|
|
921
|
-
super(...arguments);
|
|
922
|
-
m(this, ee, "Collection");
|
|
106
|
+
info(...t) {
|
|
107
|
+
this._debug && console.info(...t);
|
|
923
108
|
}
|
|
924
|
-
|
|
925
|
-
|
|
109
|
+
debug(...t) {
|
|
110
|
+
this._debug && console.debug(...t);
|
|
926
111
|
}
|
|
927
112
|
}
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
e.set(u, s);
|
|
934
|
-
});
|
|
935
|
-
}), e;
|
|
936
|
-
};
|
|
937
|
-
var re, se;
|
|
938
|
-
class Je extends (se = Error, re = Symbol.toStringTag, se) {
|
|
939
|
-
constructor(t) {
|
|
940
|
-
super(`[Luminix] Model "${t}" does not have a primary key`);
|
|
941
|
-
m(this, re, "ModelWithoutPrimaryKeyException");
|
|
113
|
+
var O, B;
|
|
114
|
+
class Me extends (B = Error, O = Symbol.toStringTag, B) {
|
|
115
|
+
constructor(e) {
|
|
116
|
+
super(`[Luminix] Model "${e}" does not have a primary key`);
|
|
117
|
+
p(this, O, "ModelWithoutPrimaryKeyException");
|
|
942
118
|
}
|
|
943
119
|
}
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
this.
|
|
120
|
+
class Ee extends q {
|
|
121
|
+
constructor(e, i, s = {}) {
|
|
122
|
+
super();
|
|
123
|
+
p(this, "bag");
|
|
124
|
+
this.services = e, this.abstract = i, this.query = s, this.bag = new R(s), this.bag.on("change", () => {
|
|
949
125
|
this.emit("change", {
|
|
950
|
-
data: this.bag
|
|
126
|
+
data: this.bag,
|
|
127
|
+
source: this
|
|
951
128
|
});
|
|
952
129
|
});
|
|
953
130
|
}
|
|
954
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
955
|
-
on(e, t) {
|
|
956
|
-
throw new b();
|
|
957
|
-
}
|
|
958
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
959
|
-
once(e, t) {
|
|
960
|
-
throw new b();
|
|
961
|
-
}
|
|
962
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
963
|
-
emit(e, t) {
|
|
964
|
-
throw new b();
|
|
965
|
-
}
|
|
966
131
|
lock(e) {
|
|
967
132
|
this.bag.lock(e);
|
|
968
133
|
}
|
|
969
|
-
whereBetween(e,
|
|
970
|
-
return this.
|
|
134
|
+
whereBetween(e, i) {
|
|
135
|
+
return this.where(e, "between", i);
|
|
971
136
|
}
|
|
972
|
-
whereNotBetween(e,
|
|
973
|
-
return this.
|
|
137
|
+
whereNotBetween(e, i) {
|
|
138
|
+
return this.where(e, "notBetween", i);
|
|
974
139
|
}
|
|
975
140
|
whereNull(e) {
|
|
976
|
-
return this.
|
|
141
|
+
return this.where(e, "null", null);
|
|
977
142
|
}
|
|
978
143
|
whereNotNull(e) {
|
|
979
|
-
return this.
|
|
144
|
+
return this.where(e, "notNull", null);
|
|
980
145
|
}
|
|
981
146
|
limit(e) {
|
|
982
147
|
return this.bag.set("per_page", e), this;
|
|
983
148
|
}
|
|
984
|
-
where(e,
|
|
149
|
+
where(e, i, s) {
|
|
985
150
|
if (this.bag.has("where") || this.bag.set("where", {}), typeof e == "function")
|
|
986
151
|
return e(this) || this;
|
|
987
|
-
if (typeof
|
|
988
|
-
return this.bag.set(`where.${
|
|
989
|
-
if (typeof
|
|
990
|
-
throw new Error(`Invalid operator ${
|
|
991
|
-
const
|
|
152
|
+
if (typeof s > "u")
|
|
153
|
+
return this.bag.set(`where.${e}`, i), this;
|
|
154
|
+
if (typeof i != "string")
|
|
155
|
+
throw new Error(`Invalid operator ${i} provided for where clause.`);
|
|
156
|
+
const g = {
|
|
992
157
|
"=": "",
|
|
993
|
-
"!=": "
|
|
994
|
-
">": "
|
|
995
|
-
">=": "
|
|
996
|
-
"<": "
|
|
997
|
-
"<=": "
|
|
998
|
-
}[
|
|
999
|
-
return this.bag.set(`where.${
|
|
158
|
+
"!=": "notEquals",
|
|
159
|
+
">": "greaterThan",
|
|
160
|
+
">=": "greaterThanOrEquals",
|
|
161
|
+
"<": "lessThan",
|
|
162
|
+
"<=": "lessThanOrEquals"
|
|
163
|
+
}[i] || i;
|
|
164
|
+
return this.bag.set(`where.${e}:${g}`, s), this;
|
|
1000
165
|
}
|
|
1001
166
|
with(e) {
|
|
1002
|
-
const
|
|
1003
|
-
return (Array.isArray(e) ? e : [e]).forEach((
|
|
1004
|
-
|
|
1005
|
-
}), this.bag.set("with",
|
|
167
|
+
const i = this.bag.get("with", []);
|
|
168
|
+
return (Array.isArray(e) ? e : [e]).forEach((c) => {
|
|
169
|
+
i.includes(c) || i.push(c);
|
|
170
|
+
}), this.bag.set("with", i), this;
|
|
1006
171
|
}
|
|
1007
172
|
withOnly(e) {
|
|
1008
173
|
return this.bag.set("with", Array.isArray(e) ? e : [e]), this;
|
|
1009
174
|
}
|
|
1010
175
|
without(e) {
|
|
1011
|
-
const
|
|
1012
|
-
return (Array.isArray(e) ? e : [e]).forEach((
|
|
1013
|
-
|
|
1014
|
-
}), this.bag.set("with",
|
|
176
|
+
const i = this.bag.get("with", []);
|
|
177
|
+
return (Array.isArray(e) ? e : [e]).forEach((c) => {
|
|
178
|
+
i.includes(c) && i.splice(i.indexOf(c), 1);
|
|
179
|
+
}), this.bag.set("with", i), this;
|
|
1015
180
|
}
|
|
1016
|
-
orderBy(e,
|
|
1017
|
-
return this.bag.set("order_by", `${e}:${
|
|
181
|
+
orderBy(e, i = "asc") {
|
|
182
|
+
return this.bag.set("order_by", `${e}:${i}`), this;
|
|
1018
183
|
}
|
|
1019
184
|
searchBy(e) {
|
|
1020
185
|
return this.bag.set("q", e), this;
|
|
@@ -1026,158 +191,153 @@ class Ue {
|
|
|
1026
191
|
return this.bag.delete(e), this;
|
|
1027
192
|
}
|
|
1028
193
|
include(e) {
|
|
1029
|
-
for (const [
|
|
1030
|
-
this.bag.set(
|
|
194
|
+
for (const [i, s] of e.entries())
|
|
195
|
+
this.bag.set(i, s);
|
|
1031
196
|
return this;
|
|
1032
197
|
}
|
|
1033
|
-
async exec(e = 1,
|
|
198
|
+
async exec(e = 1, i) {
|
|
1034
199
|
try {
|
|
1035
200
|
this.bag.set("page", e), this.emit("submit", {
|
|
1036
|
-
data: this.bag
|
|
201
|
+
data: this.bag,
|
|
202
|
+
source: this
|
|
1037
203
|
});
|
|
1038
|
-
const
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
const
|
|
1043
|
-
return
|
|
204
|
+
const s = await this.services.route.call(
|
|
205
|
+
`luminix.${this.abstract}.index`,
|
|
206
|
+
(l) => l.withQueryParameters(this.bag.all())
|
|
207
|
+
), c = this.services.model.make(this.abstract), g = new x(s.json("data").map((l) => {
|
|
208
|
+
const u = new c(l);
|
|
209
|
+
return u.exists = !0, this.services.model.emit("fetch", {
|
|
1044
210
|
class: this.abstract,
|
|
1045
|
-
model:
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
211
|
+
model: u,
|
|
212
|
+
source: this.services.model
|
|
213
|
+
}), u;
|
|
214
|
+
}));
|
|
215
|
+
if (i) {
|
|
216
|
+
const [l] = i.split("?");
|
|
1050
217
|
return {
|
|
1051
|
-
...
|
|
1052
|
-
data:
|
|
218
|
+
...s.json(),
|
|
219
|
+
data: g,
|
|
1053
220
|
links: {
|
|
1054
|
-
first: `${
|
|
1055
|
-
last: `${
|
|
1056
|
-
next:
|
|
1057
|
-
prev:
|
|
221
|
+
first: `${l}?${T.merge(i, s.json("links").first).toString()}`,
|
|
222
|
+
last: `${l}?${T.merge(i, s.json("links").last).toString()}`,
|
|
223
|
+
next: s.json("links").next && `${l}?${T.merge(i, s.json("links").next ?? "").toString()}`,
|
|
224
|
+
prev: s.json("links").prev && `${l}?${T.merge(i, s.json("links").prev ?? "").toString()}`
|
|
1058
225
|
},
|
|
1059
226
|
meta: {
|
|
1060
|
-
...
|
|
1061
|
-
links:
|
|
1062
|
-
...
|
|
1063
|
-
url:
|
|
227
|
+
...s.json("meta"),
|
|
228
|
+
links: s.json("meta").links.map((u) => ({
|
|
229
|
+
...u,
|
|
230
|
+
url: u.url && `${l}?${T.merge(i, u.url).toString()}`
|
|
1064
231
|
}))
|
|
1065
232
|
}
|
|
1066
233
|
};
|
|
1067
234
|
}
|
|
1068
235
|
return {
|
|
1069
|
-
...
|
|
1070
|
-
data:
|
|
236
|
+
...s.json(),
|
|
237
|
+
data: g
|
|
1071
238
|
};
|
|
1072
|
-
} catch (
|
|
239
|
+
} catch (s) {
|
|
1073
240
|
throw this.emit("error", {
|
|
1074
|
-
error:
|
|
1075
|
-
|
|
241
|
+
error: s,
|
|
242
|
+
source: this
|
|
243
|
+
}), s;
|
|
1076
244
|
}
|
|
1077
245
|
}
|
|
1078
|
-
async get(e = 1,
|
|
1079
|
-
const
|
|
246
|
+
async get(e = 1, i) {
|
|
247
|
+
const s = await this.exec(e, i);
|
|
1080
248
|
return this.emit("success", {
|
|
1081
|
-
response:
|
|
1082
|
-
items:
|
|
1083
|
-
|
|
249
|
+
response: s,
|
|
250
|
+
items: s.data,
|
|
251
|
+
source: this
|
|
252
|
+
}), s;
|
|
1084
253
|
}
|
|
1085
254
|
async first() {
|
|
1086
255
|
const e = await this.limit(1).exec(1);
|
|
1087
256
|
return this.emit("success", {
|
|
1088
257
|
response: e,
|
|
1089
|
-
items: e.data.first()
|
|
258
|
+
items: e.data.first(),
|
|
259
|
+
source: this
|
|
1090
260
|
}), e.data.first();
|
|
1091
261
|
}
|
|
1092
262
|
async find(e) {
|
|
1093
|
-
const
|
|
1094
|
-
if (!
|
|
1095
|
-
throw new
|
|
1096
|
-
const
|
|
263
|
+
const i = this.services.model.schema(this.abstract).primaryKey;
|
|
264
|
+
if (!i)
|
|
265
|
+
throw new Me(this.abstract);
|
|
266
|
+
const s = await this.where(i, e).limit(1).exec(1);
|
|
1097
267
|
return this.emit("success", {
|
|
1098
|
-
response:
|
|
1099
|
-
items:
|
|
1100
|
-
|
|
268
|
+
response: s,
|
|
269
|
+
items: s.data.sole(),
|
|
270
|
+
source: this
|
|
271
|
+
}), s.data.sole();
|
|
1101
272
|
}
|
|
1102
273
|
async all() {
|
|
1103
|
-
const e = this.
|
|
1104
|
-
if (
|
|
1105
|
-
return
|
|
1106
|
-
const
|
|
1107
|
-
|
|
1108
|
-
),
|
|
1109
|
-
|
|
1110
|
-
H
|
|
274
|
+
const e = this.services.config.get("luminix.backend.api.max_per_page", 150), i = await this.limit(e).exec(1), s = i.meta.last_page;
|
|
275
|
+
if (s === 1)
|
|
276
|
+
return i.data;
|
|
277
|
+
const c = Array.from({ length: s - 1 }, (u, r) => r + 2), g = await Promise.all(
|
|
278
|
+
c.map((u) => this.limit(e).exec(u))
|
|
279
|
+
), l = new x(
|
|
280
|
+
g.reduce((u, r) => (u.push(...r.data), u), i.data).all()
|
|
1111
281
|
);
|
|
1112
282
|
return this.emit("success", {
|
|
1113
283
|
response: {
|
|
1114
|
-
...
|
|
1115
|
-
data:
|
|
284
|
+
...i,
|
|
285
|
+
data: l
|
|
1116
286
|
},
|
|
1117
|
-
items:
|
|
1118
|
-
|
|
287
|
+
items: l,
|
|
288
|
+
source: this
|
|
289
|
+
}), l;
|
|
1119
290
|
}
|
|
1120
291
|
}
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
m(this, ie, "NotReducibleException");
|
|
292
|
+
var C, I;
|
|
293
|
+
class w extends (I = TypeError, C = Symbol.toStringTag, I) {
|
|
294
|
+
constructor(e, i = "Model") {
|
|
295
|
+
super(`[Luminix] "${e}" expects ${i}`);
|
|
296
|
+
p(this, C, "NotModelException");
|
|
1127
297
|
}
|
|
1128
298
|
}
|
|
1129
|
-
var
|
|
1130
|
-
class
|
|
1131
|
-
constructor(
|
|
1132
|
-
super(`[Luminix] "${
|
|
1133
|
-
|
|
299
|
+
var P, Q;
|
|
300
|
+
class $e extends (Q = Error, P = Symbol.toStringTag, Q) {
|
|
301
|
+
constructor(e, i, s, c) {
|
|
302
|
+
super(`[Luminix] Could not determine inverse relation for "${i}" in model "${e}". Please specify a relation in model "${s}" of type ${c} that points back to "${e}".`);
|
|
303
|
+
p(this, P, "NoInverseRelationException");
|
|
1134
304
|
}
|
|
1135
305
|
}
|
|
1136
|
-
var
|
|
1137
|
-
class
|
|
1138
|
-
constructor(
|
|
1139
|
-
super(`[Luminix]
|
|
1140
|
-
|
|
1141
|
-
}
|
|
1142
|
-
}
|
|
1143
|
-
var le, ce;
|
|
1144
|
-
class Ge extends (ce = Error, le = Symbol.toStringTag, ce) {
|
|
1145
|
-
constructor(t) {
|
|
1146
|
-
super(`[Luminix] Relation "${t}" is not supported`);
|
|
1147
|
-
m(this, le, "UnsupportedRelationException");
|
|
306
|
+
var D, H;
|
|
307
|
+
class _e extends (H = Error, D = Symbol.toStringTag, H) {
|
|
308
|
+
constructor(e) {
|
|
309
|
+
super(`[Luminix] Relation "${e}" is not supported`);
|
|
310
|
+
p(this, D, "UnsupportedRelationException");
|
|
1148
311
|
}
|
|
1149
312
|
}
|
|
1150
|
-
function
|
|
313
|
+
function f(n) {
|
|
1151
314
|
return typeof n == "object" && n !== null && n.__isModel === !0;
|
|
1152
315
|
}
|
|
1153
|
-
class
|
|
1154
|
-
constructor(
|
|
1155
|
-
|
|
1156
|
-
if (this.
|
|
1157
|
-
throw new
|
|
1158
|
-
}
|
|
1159
|
-
make(
|
|
1160
|
-
const
|
|
1161
|
-
if (
|
|
316
|
+
class N {
|
|
317
|
+
constructor(t, e, i, s = null) {
|
|
318
|
+
p(this, "unsubscribeQuery", null);
|
|
319
|
+
if (this.services = t, this.meta = e, this.parent = i, this.items = s, s !== null && !m.isModel(s) && !(s instanceof x && s.every(f)))
|
|
320
|
+
throw new w("Relation.constructor()", "Model, Collection<Model> or null");
|
|
321
|
+
}
|
|
322
|
+
make(t) {
|
|
323
|
+
const e = this.getRelated();
|
|
324
|
+
if (t === null || typeof t > "u") {
|
|
1162
325
|
this.set(null);
|
|
1163
326
|
return;
|
|
1164
327
|
}
|
|
1165
328
|
if (this.isSingle()) {
|
|
1166
|
-
if (typeof
|
|
329
|
+
if (typeof t != "object" || Array.isArray(t))
|
|
1167
330
|
throw new TypeError("Relation.make() expects an object");
|
|
1168
|
-
this.set(new t
|
|
331
|
+
this.set(new e(t));
|
|
1169
332
|
}
|
|
1170
333
|
if (this.isMultiple()) {
|
|
1171
|
-
if (!Array.isArray(
|
|
334
|
+
if (!Array.isArray(t))
|
|
1172
335
|
throw new TypeError("Relation.make() expects an array");
|
|
1173
|
-
this.set(
|
|
336
|
+
this.set(new x(t.map((i) => new e(i))));
|
|
1174
337
|
}
|
|
1175
338
|
}
|
|
1176
339
|
guessInverseRelation() {
|
|
1177
|
-
const { relations:
|
|
1178
|
-
if (typeof this.facades.model.guessInverseRelation != "function")
|
|
1179
|
-
throw new T("ModelFacade");
|
|
1180
|
-
const t = this.getType(), r = this.facades.model.guessInverseRelation({
|
|
340
|
+
const { relations: t } = this.getRelated().getSchema(), e = this.getType(), i = this.services.model.guessInverseRelation({
|
|
1181
341
|
HasOne: ["BelongsTo"],
|
|
1182
342
|
HasMany: ["BelongsTo"],
|
|
1183
343
|
BelongsTo: ["HasOne", "HasMany"],
|
|
@@ -1186,20 +346,20 @@ class K {
|
|
|
1186
346
|
MorphOne: ["MorphTo"],
|
|
1187
347
|
MorphMany: ["MorphTo"],
|
|
1188
348
|
MorphToMany: ["MorphToMany"]
|
|
1189
|
-
}, this.parent,
|
|
1190
|
-
if (!(
|
|
1191
|
-
throw new
|
|
1192
|
-
for (const
|
|
1193
|
-
const
|
|
1194
|
-
if ((
|
|
1195
|
-
return
|
|
349
|
+
}, this.parent, e, this.getRelated());
|
|
350
|
+
if (!(e in i))
|
|
351
|
+
throw new _e(e);
|
|
352
|
+
for (const s in t) {
|
|
353
|
+
const c = t[s];
|
|
354
|
+
if ((c.model === this.parent.getType() || ["MorphOne", "MorphMany"].includes(e)) && i[e].includes(c.type))
|
|
355
|
+
return s;
|
|
1196
356
|
}
|
|
1197
|
-
throw new
|
|
357
|
+
throw new $e(this.parent.getType(), e, this.getRelated().getSchemaName(), i[e].join(" or "));
|
|
1198
358
|
}
|
|
1199
|
-
set(
|
|
1200
|
-
if (
|
|
1201
|
-
throw new
|
|
1202
|
-
!this.items ||
|
|
359
|
+
set(t) {
|
|
360
|
+
if (t !== null && !f(t) && !(t instanceof x && t.every(f)))
|
|
361
|
+
throw new w("Relation.set()", "Model, Collection<Model> or null");
|
|
362
|
+
!this.items || f(this.items) ? this.items = t : t instanceof x && this.items.splice(0, this.items.count(), ...t);
|
|
1203
363
|
}
|
|
1204
364
|
getForeignKey() {
|
|
1205
365
|
return this.meta.foreignKey;
|
|
@@ -1214,13 +374,13 @@ class K {
|
|
|
1214
374
|
return this.meta.model;
|
|
1215
375
|
}
|
|
1216
376
|
getRelated() {
|
|
1217
|
-
return this.
|
|
377
|
+
return this.services.model.make(this.meta.model);
|
|
1218
378
|
}
|
|
1219
379
|
query() {
|
|
1220
|
-
const
|
|
1221
|
-
return this.unsubscribeQuery && this.unsubscribeQuery(), this.unsubscribeQuery =
|
|
1222
|
-
this.items =
|
|
1223
|
-
}),
|
|
380
|
+
const t = this.getRelated().query();
|
|
381
|
+
return this.unsubscribeQuery && this.unsubscribeQuery(), this.unsubscribeQuery = t.on("success", (e) => {
|
|
382
|
+
this.items = e.items;
|
|
383
|
+
}), t;
|
|
1224
384
|
}
|
|
1225
385
|
isLoaded() {
|
|
1226
386
|
return this.items !== null;
|
|
@@ -1229,40 +389,40 @@ class K {
|
|
|
1229
389
|
return this.items;
|
|
1230
390
|
}
|
|
1231
391
|
isSingle() {
|
|
1232
|
-
return
|
|
392
|
+
return f(this.items);
|
|
1233
393
|
}
|
|
1234
394
|
isMultiple() {
|
|
1235
|
-
return
|
|
395
|
+
return this.items instanceof x;
|
|
1236
396
|
}
|
|
1237
397
|
getParent() {
|
|
1238
398
|
return this.parent;
|
|
1239
399
|
}
|
|
1240
|
-
where(...
|
|
1241
|
-
return this.query().where(...
|
|
400
|
+
where(...t) {
|
|
401
|
+
return this.query().where(...t);
|
|
1242
402
|
}
|
|
1243
|
-
whereNull(
|
|
1244
|
-
return this.query().whereNull(
|
|
403
|
+
whereNull(t) {
|
|
404
|
+
return this.query().whereNull(t);
|
|
1245
405
|
}
|
|
1246
|
-
whereNotNull(
|
|
1247
|
-
return this.query().whereNotNull(
|
|
406
|
+
whereNotNull(t) {
|
|
407
|
+
return this.query().whereNotNull(t);
|
|
1248
408
|
}
|
|
1249
|
-
whereBetween(
|
|
1250
|
-
return this.query().whereBetween(
|
|
409
|
+
whereBetween(t, e) {
|
|
410
|
+
return this.query().whereBetween(t, e);
|
|
1251
411
|
}
|
|
1252
|
-
whereNotBetween(
|
|
1253
|
-
return this.query().whereNotBetween(
|
|
412
|
+
whereNotBetween(t, e) {
|
|
413
|
+
return this.query().whereNotBetween(t, e);
|
|
1254
414
|
}
|
|
1255
|
-
orderBy(
|
|
1256
|
-
return this.query().orderBy(
|
|
415
|
+
orderBy(t, e = "asc") {
|
|
416
|
+
return this.query().orderBy(t, e);
|
|
1257
417
|
}
|
|
1258
|
-
searchBy(
|
|
1259
|
-
return this.query().searchBy(
|
|
418
|
+
searchBy(t) {
|
|
419
|
+
return this.query().searchBy(t);
|
|
1260
420
|
}
|
|
1261
421
|
minified() {
|
|
1262
422
|
return this.query().minified();
|
|
1263
423
|
}
|
|
1264
|
-
limit(
|
|
1265
|
-
return this.query().limit(
|
|
424
|
+
limit(t) {
|
|
425
|
+
return this.query().limit(t);
|
|
1266
426
|
}
|
|
1267
427
|
// get(page = 1, perPage = 15, replaceLinksWith?: string): Promise<ModelPaginatedResponse>
|
|
1268
428
|
// {
|
|
@@ -1277,133 +437,161 @@ class K {
|
|
|
1277
437
|
// return this.query().find(id);
|
|
1278
438
|
// }
|
|
1279
439
|
}
|
|
1280
|
-
var
|
|
1281
|
-
class
|
|
1282
|
-
constructor(
|
|
1283
|
-
super(`[Luminix]
|
|
1284
|
-
|
|
440
|
+
var L, J;
|
|
441
|
+
class $ extends (J = Error, L = Symbol.toStringTag, J) {
|
|
442
|
+
constructor(e) {
|
|
443
|
+
super(`[Luminix] Expected ${e} to be reducible.`);
|
|
444
|
+
p(this, L, "NotReducibleException");
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
var U, F;
|
|
448
|
+
class Se extends (F = Error, U = Symbol.toStringTag, F) {
|
|
449
|
+
constructor() {
|
|
450
|
+
super("[Luminix] Method not implemented.");
|
|
451
|
+
p(this, U, "MethodNotImplementedException");
|
|
1285
452
|
}
|
|
1286
453
|
}
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
454
|
+
var G, V;
|
|
455
|
+
class ae extends (V = Error, G = Symbol.toStringTag, V) {
|
|
456
|
+
constructor(e, i) {
|
|
457
|
+
super(`[Luminix] Model "${e}" must be persisted before calling "${i}"`);
|
|
458
|
+
p(this, G, "ModelNotPersistedException");
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
function Te(n, t, e, i, s) {
|
|
462
|
+
var c, g, l;
|
|
463
|
+
return l = class extends (g = q, c = Symbol.toStringTag, g) {
|
|
464
|
+
constructor(r = {}) {
|
|
465
|
+
super();
|
|
466
|
+
p(this, "_attributes", new R({}));
|
|
467
|
+
p(this, "_original", {});
|
|
468
|
+
p(this, "_relations", {});
|
|
469
|
+
p(this, "_changedKeys", []);
|
|
470
|
+
p(this, "exists", !1);
|
|
471
|
+
p(this, "wasRecentlyCreated", !1);
|
|
472
|
+
p(this, c, y.studly(s));
|
|
473
|
+
this.makeRelations(), this.makeAttributes(r);
|
|
474
|
+
}
|
|
475
|
+
cast(r, o) {
|
|
476
|
+
return r == null || !o ? r : ["boolean", "bool"].includes(o) ? !!r : ["date", "datetime", "immutable_date", "immutable_datetime"].includes(o) && typeof r == "string" ? new Date(r) : ["float", "double", "integer", "int"].includes(o) || o.startsWith("decimal:") ? Number(r) : r;
|
|
477
|
+
}
|
|
478
|
+
mutate(r, o) {
|
|
479
|
+
return r == null || !o ? r : ["boolean", "bool"].includes(o) ? !!r : ["date", "datetime", "immutable_date", "immutable_datetime"].includes(o) && r instanceof Date ? r.toISOString() : ["float", "double", "integer", "int"].includes(o) || o.startsWith("decimal:") ? Number(r) : r;
|
|
1305
480
|
}
|
|
1306
481
|
makeRelations() {
|
|
1307
|
-
const { relations:
|
|
1308
|
-
if (this._relations = {}, !
|
|
482
|
+
const { relations: r } = e.schema(s);
|
|
483
|
+
if (this._relations = {}, !r)
|
|
1309
484
|
return;
|
|
1310
|
-
const
|
|
1311
|
-
Object.entries(
|
|
1312
|
-
const { type: d } =
|
|
1313
|
-
this._relations[
|
|
1314
|
-
{
|
|
1315
|
-
|
|
485
|
+
const o = e.getRelationConstructors(s);
|
|
486
|
+
Object.entries(r).forEach(([a, h]) => {
|
|
487
|
+
const { type: d } = h, v = d in o ? o[d] : N;
|
|
488
|
+
this._relations[a] = new v(
|
|
489
|
+
{ model: e, route: i },
|
|
490
|
+
{ name: a, ...h },
|
|
1316
491
|
this,
|
|
1317
492
|
null
|
|
1318
493
|
);
|
|
1319
494
|
});
|
|
1320
495
|
}
|
|
1321
|
-
makeAttributes(
|
|
1322
|
-
const { relations:
|
|
1323
|
-
if (this.fillable.filter((d) => !(d in
|
|
1324
|
-
|
|
1325
|
-
}),
|
|
1326
|
-
this.relation(
|
|
1327
|
-
}), !this.validateJsonObject(
|
|
1328
|
-
if (n.
|
|
1329
|
-
throw new TypeError(`[Luminix] Invalid attributes for model "${
|
|
1330
|
-
|
|
496
|
+
makeAttributes(r) {
|
|
497
|
+
const { relations: o } = e.schema(s), a = Object.keys(o || {}), h = m.omit(r, ...a);
|
|
498
|
+
if (this.fillable.filter((d) => !(d in h)).forEach((d) => {
|
|
499
|
+
h[d] = null;
|
|
500
|
+
}), o && Object.keys(o).forEach((d) => {
|
|
501
|
+
this.relation(y.camel(d)).make(r[d]);
|
|
502
|
+
}), !this.validateJsonObject(h)) {
|
|
503
|
+
if (n.get("app.env", "production") === "production")
|
|
504
|
+
throw new TypeError(`[Luminix] Invalid attributes for model "${s}"`);
|
|
505
|
+
t.warning(`Invalid attributes for model "${s}".
|
|
1331
506
|
This will throw an error in production.`, {
|
|
1332
|
-
attributes:
|
|
1333
|
-
abstract:
|
|
507
|
+
attributes: r,
|
|
508
|
+
abstract: s
|
|
1334
509
|
});
|
|
1335
510
|
}
|
|
1336
|
-
this._attributes
|
|
511
|
+
this._attributes.set(".", h), this._original = h, this._changedKeys.splice(0, this._changedKeys.length);
|
|
1337
512
|
}
|
|
1338
513
|
makePrimaryKeyReplacer() {
|
|
1339
514
|
return {
|
|
1340
|
-
[this.
|
|
515
|
+
[this.getKeyName()]: this.getKey()
|
|
1341
516
|
};
|
|
1342
517
|
}
|
|
1343
|
-
dispatchChangeEvent(
|
|
518
|
+
dispatchChangeEvent(r) {
|
|
1344
519
|
this.emit("change", {
|
|
1345
|
-
value:
|
|
520
|
+
value: r,
|
|
521
|
+
source: this
|
|
1346
522
|
});
|
|
1347
523
|
}
|
|
1348
|
-
dispatchCreateEvent(
|
|
524
|
+
dispatchCreateEvent(r) {
|
|
1349
525
|
this.emit("create", {
|
|
1350
|
-
value:
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
526
|
+
value: r,
|
|
527
|
+
source: this
|
|
528
|
+
}), e.emit("create", {
|
|
529
|
+
class: s,
|
|
530
|
+
model: this,
|
|
531
|
+
source: e
|
|
1354
532
|
});
|
|
1355
533
|
}
|
|
1356
|
-
dispatchUpdateEvent(
|
|
534
|
+
dispatchUpdateEvent(r) {
|
|
1357
535
|
this.emit("update", {
|
|
1358
|
-
value:
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
536
|
+
value: r,
|
|
537
|
+
source: this
|
|
538
|
+
}), e.emit("update", {
|
|
539
|
+
class: s,
|
|
540
|
+
model: this,
|
|
541
|
+
source: e
|
|
1362
542
|
});
|
|
1363
543
|
}
|
|
1364
544
|
dispatchSaveEvent() {
|
|
1365
545
|
this.emit("save", {
|
|
1366
|
-
value: this.diff()
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
546
|
+
value: this.diff(),
|
|
547
|
+
source: this
|
|
548
|
+
}), e.emit("save", {
|
|
549
|
+
class: s,
|
|
550
|
+
model: this,
|
|
551
|
+
source: e
|
|
1370
552
|
});
|
|
1371
553
|
}
|
|
1372
|
-
dispatchDeleteEvent(
|
|
554
|
+
dispatchDeleteEvent(r = !1) {
|
|
1373
555
|
this.emit("delete", {
|
|
1374
|
-
force:
|
|
1375
|
-
[this.getKeyName()]: this.getKey()
|
|
1376
|
-
|
|
1377
|
-
|
|
556
|
+
force: r,
|
|
557
|
+
[this.getKeyName()]: this.getKey(),
|
|
558
|
+
source: this
|
|
559
|
+
}), e.emit("delete", {
|
|
560
|
+
class: s,
|
|
1378
561
|
model: this,
|
|
1379
|
-
|
|
562
|
+
source: e,
|
|
563
|
+
force: r
|
|
1380
564
|
});
|
|
1381
565
|
}
|
|
1382
566
|
dispatchRestoreEvent() {
|
|
1383
567
|
this.emit("restore", {
|
|
1384
|
-
value: this.attributes
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
568
|
+
value: this.attributes,
|
|
569
|
+
source: this
|
|
570
|
+
}), e.emit("restore", {
|
|
571
|
+
class: s,
|
|
572
|
+
model: this,
|
|
573
|
+
source: e
|
|
1388
574
|
});
|
|
1389
575
|
}
|
|
1390
|
-
dispatchErrorEvent(
|
|
576
|
+
dispatchErrorEvent(r, o) {
|
|
1391
577
|
this.emit("error", {
|
|
1392
|
-
error:
|
|
1393
|
-
operation:
|
|
1394
|
-
|
|
1395
|
-
|
|
578
|
+
error: r,
|
|
579
|
+
operation: o,
|
|
580
|
+
source: this
|
|
581
|
+
}), e.emit("error", {
|
|
582
|
+
class: s,
|
|
1396
583
|
model: this,
|
|
1397
|
-
|
|
1398
|
-
|
|
584
|
+
source: e,
|
|
585
|
+
error: r,
|
|
586
|
+
operation: o
|
|
1399
587
|
});
|
|
1400
588
|
}
|
|
1401
|
-
updateChangedKeys(
|
|
1402
|
-
const
|
|
1403
|
-
!this._changedKeys.includes(
|
|
589
|
+
updateChangedKeys(r) {
|
|
590
|
+
const o = (a, h) => typeof a == "object" && a !== null ? m.isEqual(a, h) : a == h;
|
|
591
|
+
!this._changedKeys.includes(r) && !o(m.get(this._original, r), this._attributes.get(r)) ? this._changedKeys.push(r) : this._changedKeys.includes(r) && o(m.get(this._original, r), this._attributes.get(r)) && this._changedKeys.splice(this._changedKeys.indexOf(r), 1);
|
|
1404
592
|
}
|
|
1405
|
-
validateJsonObject(
|
|
1406
|
-
return typeof
|
|
593
|
+
validateJsonObject(r) {
|
|
594
|
+
return typeof r != "object" || r === null ? !1 : Object.entries(r).every(([, o]) => ["boolean", "number", "string"].includes(typeof o) || o === null || this.validateJsonObject(o) || Array.isArray(o) && o.every((a) => this.validateJsonObject(a)));
|
|
1407
595
|
}
|
|
1408
596
|
get attributes() {
|
|
1409
597
|
return this._attributes.all();
|
|
@@ -1415,20 +603,20 @@ function Ve(n, e) {
|
|
|
1415
603
|
return this._relations;
|
|
1416
604
|
}
|
|
1417
605
|
get fillable() {
|
|
1418
|
-
return
|
|
606
|
+
return e.schema(s).fillable;
|
|
1419
607
|
}
|
|
1420
608
|
get primaryKey() {
|
|
1421
|
-
return
|
|
609
|
+
return e.schema(s).primaryKey;
|
|
1422
610
|
}
|
|
1423
611
|
get timestamps() {
|
|
1424
|
-
return
|
|
612
|
+
return e.schema(s).timestamps;
|
|
1425
613
|
}
|
|
1426
614
|
// get softDeletes() {
|
|
1427
|
-
// return
|
|
615
|
+
// return ModelFacade.schema(abstract).softDeletes;
|
|
1428
616
|
// }
|
|
1429
617
|
get casts() {
|
|
1430
618
|
return {
|
|
1431
|
-
...
|
|
619
|
+
...e.schema(s).casts,
|
|
1432
620
|
...this.timestamps ? { created_at: "datetime", updated_at: "datetime" } : {}
|
|
1433
621
|
// ...this.softDeletes ? { deleted_at: 'datetime' } : {},
|
|
1434
622
|
};
|
|
@@ -1436,36 +624,36 @@ function Ve(n, e) {
|
|
|
1436
624
|
get isDirty() {
|
|
1437
625
|
return this._changedKeys.length > 0;
|
|
1438
626
|
}
|
|
1439
|
-
getAttribute(
|
|
1440
|
-
let
|
|
1441
|
-
|
|
1442
|
-
const
|
|
1443
|
-
if (typeof
|
|
1444
|
-
throw new
|
|
1445
|
-
return
|
|
1446
|
-
}
|
|
1447
|
-
setAttribute(
|
|
1448
|
-
const
|
|
1449
|
-
if (typeof
|
|
1450
|
-
throw new
|
|
1451
|
-
const
|
|
1452
|
-
this.mutate(
|
|
627
|
+
getAttribute(r) {
|
|
628
|
+
let o = this._attributes.get(r, null);
|
|
629
|
+
r in this.casts && (o = this.cast(o, this.casts[r]));
|
|
630
|
+
const a = e[`model${y.studly(s)}Get${y.studly(r)}Attribute`];
|
|
631
|
+
if (typeof a != "function")
|
|
632
|
+
throw new $("ModelFacade");
|
|
633
|
+
return a.bind(e)(o, this);
|
|
634
|
+
}
|
|
635
|
+
setAttribute(r, o) {
|
|
636
|
+
const a = e[`model${y.studly(s)}Set${y.studly(r)}Attribute`];
|
|
637
|
+
if (typeof a != "function")
|
|
638
|
+
throw new $("ModelFacade");
|
|
639
|
+
const h = a.bind(e)(
|
|
640
|
+
this.mutate(o, this.casts[r]),
|
|
1453
641
|
this
|
|
1454
642
|
);
|
|
1455
|
-
if (!this.validateJsonObject({ [
|
|
1456
|
-
if (n.
|
|
1457
|
-
throw new TypeError(`[Luminix] Attribute "${
|
|
1458
|
-
|
|
643
|
+
if (!this.validateJsonObject({ [r]: h })) {
|
|
644
|
+
if (n.get("app.env", "production") === "production")
|
|
645
|
+
throw new TypeError(`[Luminix] Attribute "${r}" in model "${s}" must be a boolean, number, string or null`);
|
|
646
|
+
t.warning(`Invalid type for attribute "${r}" in model "${s}" after mutation.
|
|
1459
647
|
This will throw an error in production.`, {
|
|
1460
|
-
key:
|
|
1461
|
-
value:
|
|
1462
|
-
mutated:
|
|
1463
|
-
cast: this.casts[
|
|
648
|
+
key: r,
|
|
649
|
+
value: o,
|
|
650
|
+
mutated: h,
|
|
651
|
+
cast: this.casts[r],
|
|
1464
652
|
item: this.toJson()
|
|
1465
653
|
});
|
|
1466
654
|
return;
|
|
1467
655
|
}
|
|
1468
|
-
this._attributes.set(
|
|
656
|
+
this._attributes.set(r, h), this.updateChangedKeys(r), this.dispatchChangeEvent({ [r]: h });
|
|
1469
657
|
}
|
|
1470
658
|
getKey() {
|
|
1471
659
|
return this.getAttribute(this.primaryKey);
|
|
@@ -1473,369 +661,330 @@ function Ve(n, e) {
|
|
|
1473
661
|
getKeyName() {
|
|
1474
662
|
return this.primaryKey;
|
|
1475
663
|
}
|
|
1476
|
-
fill(
|
|
1477
|
-
const
|
|
1478
|
-
const
|
|
1479
|
-
if (typeof
|
|
1480
|
-
throw new
|
|
1481
|
-
return
|
|
1482
|
-
this.mutate(
|
|
664
|
+
fill(r) {
|
|
665
|
+
const o = m.pick(r, ...this.fillable), a = Object.entries(o).reduce((h, [d, v]) => {
|
|
666
|
+
const b = e[`model${y.studly(s)}Set${y.studly(d)}Attribute`];
|
|
667
|
+
if (typeof b != "function")
|
|
668
|
+
throw new $("ModelFacade");
|
|
669
|
+
return h[d] = b.bind(e)(
|
|
670
|
+
this.mutate(v, this.casts[d]),
|
|
1483
671
|
this
|
|
1484
|
-
),
|
|
672
|
+
), h;
|
|
1485
673
|
}, {});
|
|
1486
|
-
if (!this.validateJsonObject(
|
|
1487
|
-
if (n.
|
|
1488
|
-
throw new TypeError(`[Luminix] Invalid attributes for model "${
|
|
1489
|
-
|
|
674
|
+
if (!this.validateJsonObject(a)) {
|
|
675
|
+
if (n.get("app.env", "production") === "production")
|
|
676
|
+
throw new TypeError(`[Luminix] Invalid attributes for model "${s}"`);
|
|
677
|
+
t.warning(`Invalid attributes for model "${s}" after mutation.
|
|
1490
678
|
This will throw an error in production.`, {
|
|
1491
|
-
attributes:
|
|
1492
|
-
mutatedAttributes:
|
|
679
|
+
attributes: r,
|
|
680
|
+
mutatedAttributes: a,
|
|
1493
681
|
item: this.toJson(),
|
|
1494
682
|
casts: this.casts
|
|
1495
683
|
});
|
|
1496
684
|
return;
|
|
1497
685
|
}
|
|
1498
|
-
this._attributes.merge(".",
|
|
686
|
+
this._attributes.merge(".", a), Object.keys(a).forEach((h) => this.updateChangedKeys(h)), this.dispatchChangeEvent(a);
|
|
1499
687
|
}
|
|
1500
688
|
dump() {
|
|
1501
|
-
|
|
689
|
+
t.info({
|
|
1502
690
|
...this.toJson(),
|
|
1503
|
-
[Symbol.toStringTag]:
|
|
691
|
+
[Symbol.toStringTag]: y.studly(s)
|
|
1504
692
|
});
|
|
1505
693
|
}
|
|
1506
694
|
toJson() {
|
|
1507
|
-
const
|
|
1508
|
-
if (typeof
|
|
1509
|
-
throw new
|
|
1510
|
-
return
|
|
695
|
+
const r = Object.entries(this.relations).reduce((a, [h, d]) => (d.isLoaded() && (d.isSingle() ? a[y.snake(h)] = d.getLoadedItems().toJson() : d.isMultiple() && (a[y.snake(h)] = d.getLoadedItems().map((v) => v.toJson()).all())), a), {}), o = e[`model${y.studly(s)}Json`];
|
|
696
|
+
if (typeof o != "function")
|
|
697
|
+
throw new $("ModelFacade");
|
|
698
|
+
return o.bind(e)({
|
|
1511
699
|
...this.attributes,
|
|
1512
|
-
...
|
|
700
|
+
...r
|
|
1513
701
|
}, this);
|
|
1514
702
|
}
|
|
1515
703
|
diff() {
|
|
1516
|
-
return this._changedKeys.reduce((
|
|
704
|
+
return this._changedKeys.reduce((r, o) => (r[o] = this._attributes.get(o), r), {});
|
|
1517
705
|
}
|
|
1518
706
|
getType() {
|
|
1519
|
-
return
|
|
707
|
+
return s;
|
|
1520
708
|
}
|
|
1521
|
-
relation(
|
|
1522
|
-
if (
|
|
1523
|
-
return this.relations[
|
|
709
|
+
relation(r) {
|
|
710
|
+
if (r === y.camel(r))
|
|
711
|
+
return this.relations[y.snake(r)];
|
|
1524
712
|
}
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
713
|
+
getErrorBag(r) {
|
|
714
|
+
return `${this.exists ? `${s}[${this.getKey()}].` : `${s}.`}${r}`;
|
|
715
|
+
}
|
|
716
|
+
getRouteForSave() {
|
|
717
|
+
return this.exists ? [
|
|
718
|
+
`luminix.${s}.update`,
|
|
1530
719
|
this.makePrimaryKeyReplacer()
|
|
1531
|
-
]
|
|
1532
|
-
errorBag: `${e}[${this.getKey()}].fetch`
|
|
1533
|
-
});
|
|
1534
|
-
this.makeAttributes(s);
|
|
720
|
+
] : `luminix.${s}.store`;
|
|
1535
721
|
}
|
|
1536
|
-
|
|
722
|
+
getRouteForUpdate() {
|
|
723
|
+
return [
|
|
724
|
+
`luminix.${s}.update`,
|
|
725
|
+
this.makePrimaryKeyReplacer()
|
|
726
|
+
];
|
|
727
|
+
}
|
|
728
|
+
getRouteForDelete() {
|
|
729
|
+
return [
|
|
730
|
+
`luminix.${s}.destroy`,
|
|
731
|
+
this.makePrimaryKeyReplacer()
|
|
732
|
+
];
|
|
733
|
+
}
|
|
734
|
+
getRouteForRefresh() {
|
|
735
|
+
return [
|
|
736
|
+
`luminix.${s}.show`,
|
|
737
|
+
this.makePrimaryKeyReplacer()
|
|
738
|
+
];
|
|
739
|
+
}
|
|
740
|
+
getLabel() {
|
|
741
|
+
const { labeledBy: r } = e.schema(s);
|
|
742
|
+
return this.getAttribute(r);
|
|
743
|
+
}
|
|
744
|
+
async refresh(r) {
|
|
745
|
+
if (!this.exists)
|
|
746
|
+
throw new ae(s, "refresh");
|
|
747
|
+
const o = await i.call(
|
|
748
|
+
this.getRouteForRefresh(),
|
|
749
|
+
r,
|
|
750
|
+
this.getErrorBag("fetch")
|
|
751
|
+
);
|
|
752
|
+
this.makeAttributes(o.json());
|
|
753
|
+
}
|
|
754
|
+
async save(r = {}, o) {
|
|
1537
755
|
try {
|
|
1538
756
|
const {
|
|
1539
|
-
additionalPayload:
|
|
1540
|
-
sendsOnlyModifiedFields:
|
|
1541
|
-
} =
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
errorBag: a ? `${e}[${this.getKey()}].update` : `${e}.store`
|
|
1555
|
-
}
|
|
757
|
+
additionalPayload: a = {},
|
|
758
|
+
sendsOnlyModifiedFields: h = !0
|
|
759
|
+
} = r, d = this.exists, v = {
|
|
760
|
+
...m.pick(
|
|
761
|
+
h && d ? this.diff() : this.attributes,
|
|
762
|
+
...this.fillable
|
|
763
|
+
),
|
|
764
|
+
...a
|
|
765
|
+
};
|
|
766
|
+
if (m.isEmpty(v))
|
|
767
|
+
return;
|
|
768
|
+
const b = await i.call(
|
|
769
|
+
this.getRouteForSave(),
|
|
770
|
+
(k) => o ? o(k.withData(v)) : k.withData(v),
|
|
771
|
+
this.getErrorBag(d ? "update" : "store")
|
|
1556
772
|
);
|
|
1557
|
-
if (
|
|
1558
|
-
return this.makeAttributes(
|
|
1559
|
-
throw
|
|
1560
|
-
} catch (
|
|
1561
|
-
throw
|
|
773
|
+
if (b.successful())
|
|
774
|
+
return this.makeAttributes(b.json()), this.exists = !0, this.dispatchSaveEvent(), d ? this.dispatchUpdateEvent(b.json()) : (this.wasRecentlyCreated = !0, this.dispatchCreateEvent(b.json())), b;
|
|
775
|
+
throw b;
|
|
776
|
+
} catch (a) {
|
|
777
|
+
throw this.dispatchErrorEvent(a, "save"), a;
|
|
1562
778
|
}
|
|
1563
779
|
}
|
|
1564
780
|
async push() {
|
|
1565
|
-
throw new
|
|
781
|
+
throw new Se();
|
|
1566
782
|
}
|
|
1567
783
|
async delete() {
|
|
1568
784
|
try {
|
|
1569
|
-
const
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
throw n.make("log").error(s), this.dispatchErrorEvent(s, "delete"), s;
|
|
785
|
+
const r = await i.call(
|
|
786
|
+
this.getRouteForDelete(),
|
|
787
|
+
void 0,
|
|
788
|
+
this.getErrorBag("delete")
|
|
789
|
+
);
|
|
790
|
+
if (r.noContent())
|
|
791
|
+
return this.dispatchDeleteEvent(), r;
|
|
792
|
+
throw r;
|
|
793
|
+
} catch (r) {
|
|
794
|
+
throw this.dispatchErrorEvent(r, "delete"), r;
|
|
1580
795
|
}
|
|
1581
796
|
}
|
|
1582
|
-
async update(
|
|
797
|
+
async update(r, o) {
|
|
1583
798
|
try {
|
|
1584
|
-
const
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
if (u.status === 200) {
|
|
1592
|
-
this.makeAttributes(u.data), this.dispatchUpdateEvent(u.data);
|
|
799
|
+
const a = await i.call(
|
|
800
|
+
this.getRouteForUpdate(),
|
|
801
|
+
(h) => o ? o(h.withData(r)) : h.withData(r),
|
|
802
|
+
this.getErrorBag("update")
|
|
803
|
+
);
|
|
804
|
+
if (a.ok()) {
|
|
805
|
+
this.makeAttributes(a.json()), this.dispatchUpdateEvent(a.json());
|
|
1593
806
|
return;
|
|
1594
807
|
}
|
|
1595
|
-
throw
|
|
1596
|
-
} catch (
|
|
1597
|
-
throw
|
|
808
|
+
throw a;
|
|
809
|
+
} catch (a) {
|
|
810
|
+
throw this.dispatchErrorEvent(a, "save"), a;
|
|
1598
811
|
}
|
|
1599
812
|
}
|
|
1600
813
|
async forceDelete() {
|
|
1601
814
|
try {
|
|
1602
|
-
const
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
],
|
|
1607
|
-
{
|
|
1608
|
-
params: { force: !0 },
|
|
1609
|
-
errorBag: `${e}[${this.getKey()}].forceDelete`
|
|
1610
|
-
}
|
|
815
|
+
const r = await i.call(
|
|
816
|
+
this.getRouteForDelete(),
|
|
817
|
+
(o) => o.withQueryParameters({ force: !0 }),
|
|
818
|
+
this.getErrorBag("forceDelete")
|
|
1611
819
|
);
|
|
1612
|
-
if (
|
|
1613
|
-
return this.dispatchDeleteEvent(!0),
|
|
1614
|
-
throw
|
|
1615
|
-
} catch (
|
|
1616
|
-
throw
|
|
820
|
+
if (r.noContent())
|
|
821
|
+
return this.dispatchDeleteEvent(!0), r;
|
|
822
|
+
throw r;
|
|
823
|
+
} catch (r) {
|
|
824
|
+
throw this.dispatchErrorEvent(r, "forceDelete"), r;
|
|
1617
825
|
}
|
|
1618
826
|
}
|
|
1619
827
|
async restore() {
|
|
1620
828
|
try {
|
|
1621
|
-
const
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
],
|
|
1626
|
-
{
|
|
1627
|
-
params: { restore: !0 },
|
|
1628
|
-
errorBag: `${e}[${this.getKey()}].restore`
|
|
1629
|
-
}
|
|
829
|
+
const r = await i.call(
|
|
830
|
+
this.getRouteForUpdate(),
|
|
831
|
+
(o) => o.withQueryParameters({ restore: !0 }),
|
|
832
|
+
this.getErrorBag("restore")
|
|
1630
833
|
);
|
|
1631
|
-
if (
|
|
1632
|
-
return this.dispatchRestoreEvent(),
|
|
1633
|
-
throw
|
|
1634
|
-
} catch (
|
|
1635
|
-
throw
|
|
834
|
+
if (r.ok())
|
|
835
|
+
return this.dispatchRestoreEvent(), r;
|
|
836
|
+
throw r;
|
|
837
|
+
} catch (r) {
|
|
838
|
+
throw this.dispatchErrorEvent(r, "restore"), r;
|
|
1636
839
|
}
|
|
1637
840
|
}
|
|
1638
841
|
static getSchemaName() {
|
|
1639
|
-
return
|
|
842
|
+
return s;
|
|
1640
843
|
}
|
|
1641
844
|
static getSchema() {
|
|
1642
|
-
return
|
|
845
|
+
return e.schema(s);
|
|
1643
846
|
}
|
|
1644
847
|
static query() {
|
|
1645
|
-
return new
|
|
848
|
+
return new Ee(
|
|
849
|
+
{ config: n, route: i, model: e },
|
|
850
|
+
s
|
|
851
|
+
);
|
|
1646
852
|
}
|
|
1647
|
-
static where(...
|
|
1648
|
-
return this.query().where(...
|
|
853
|
+
static where(...r) {
|
|
854
|
+
return this.query().where(...r);
|
|
1649
855
|
}
|
|
1650
|
-
static whereNull(
|
|
1651
|
-
return this.query().whereNull(
|
|
856
|
+
static whereNull(r) {
|
|
857
|
+
return this.query().whereNull(r);
|
|
1652
858
|
}
|
|
1653
|
-
static whereNotNull(
|
|
1654
|
-
return this.query().whereNotNull(
|
|
859
|
+
static whereNotNull(r) {
|
|
860
|
+
return this.query().whereNotNull(r);
|
|
1655
861
|
}
|
|
1656
|
-
static whereBetween(
|
|
1657
|
-
return this.query().whereBetween(
|
|
862
|
+
static whereBetween(r, o) {
|
|
863
|
+
return this.query().whereBetween(r, o);
|
|
1658
864
|
}
|
|
1659
|
-
static whereNotBetween(
|
|
1660
|
-
return this.query().whereNotBetween(
|
|
865
|
+
static whereNotBetween(r, o) {
|
|
866
|
+
return this.query().whereNotBetween(r, o);
|
|
1661
867
|
}
|
|
1662
|
-
static orderBy(
|
|
1663
|
-
return this.query().orderBy(
|
|
868
|
+
static orderBy(r, o = "asc") {
|
|
869
|
+
return this.query().orderBy(r, o);
|
|
1664
870
|
}
|
|
1665
|
-
static searchBy(
|
|
1666
|
-
return this.query().searchBy(
|
|
871
|
+
static searchBy(r) {
|
|
872
|
+
return this.query().searchBy(r);
|
|
1667
873
|
}
|
|
1668
874
|
static minified() {
|
|
1669
875
|
return this.query().minified();
|
|
1670
876
|
}
|
|
1671
|
-
static limit(
|
|
1672
|
-
return this.query().limit(
|
|
877
|
+
static limit(r) {
|
|
878
|
+
return this.query().limit(r);
|
|
1673
879
|
}
|
|
1674
|
-
static get(
|
|
1675
|
-
return this.query().get(
|
|
880
|
+
static get(r = 1, o) {
|
|
881
|
+
return this.query().get(r, o);
|
|
1676
882
|
}
|
|
1677
|
-
static find(
|
|
1678
|
-
return this.query().find(
|
|
883
|
+
static find(r) {
|
|
884
|
+
return this.query().find(r);
|
|
1679
885
|
}
|
|
1680
886
|
static first() {
|
|
1681
887
|
return this.query().first();
|
|
1682
888
|
}
|
|
1683
|
-
static async create(
|
|
1684
|
-
const
|
|
1685
|
-
return
|
|
889
|
+
static async create(r) {
|
|
890
|
+
const o = e.make(s), a = new o();
|
|
891
|
+
return a.fill(r), await a.save(), a;
|
|
1686
892
|
}
|
|
1687
|
-
static async update(
|
|
1688
|
-
const
|
|
1689
|
-
return
|
|
893
|
+
static async update(r, o) {
|
|
894
|
+
const a = e.make(s), h = new a({ id: r });
|
|
895
|
+
return h.fill(o), h.exists = !0, await h.save(), h;
|
|
1690
896
|
}
|
|
1691
|
-
static delete(
|
|
1692
|
-
if (Array.isArray(
|
|
1693
|
-
return
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
897
|
+
static delete(r) {
|
|
898
|
+
if (Array.isArray(r))
|
|
899
|
+
return i.call(
|
|
900
|
+
`luminix.${s}.destroyMany`,
|
|
901
|
+
(h) => h.withQueryParameters({ ids: r }),
|
|
902
|
+
`${s}.deleteMany`
|
|
903
|
+
);
|
|
904
|
+
const o = e.make(s);
|
|
905
|
+
return new o({ id: r }).delete();
|
|
906
|
+
}
|
|
907
|
+
static async restore(r) {
|
|
908
|
+
if (Array.isArray(r))
|
|
909
|
+
return i.call(
|
|
910
|
+
`luminix.${s}.restoreMany`,
|
|
911
|
+
(h) => h.withData({ ids: r }),
|
|
912
|
+
`${s}.restoreMany`
|
|
913
|
+
);
|
|
914
|
+
const o = e.make(s);
|
|
915
|
+
return new o({ id: r }).restore();
|
|
916
|
+
}
|
|
917
|
+
static forceDelete(r) {
|
|
918
|
+
if (Array.isArray(r))
|
|
919
|
+
return i.call(
|
|
920
|
+
`luminix.${s}.destroyMany`,
|
|
921
|
+
(h) => h.withQueryParameters({ ids: r, force: !0 }),
|
|
922
|
+
`${s}.forceDeleteMany`
|
|
923
|
+
);
|
|
924
|
+
const o = e.make(s);
|
|
925
|
+
return new o({ id: r }).forceDelete();
|
|
1717
926
|
}
|
|
1718
927
|
static singular() {
|
|
1719
|
-
return
|
|
928
|
+
return e.schema(s).displayName.singular;
|
|
1720
929
|
}
|
|
1721
930
|
static plural() {
|
|
1722
|
-
return
|
|
1723
|
-
}
|
|
1724
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1725
|
-
on(s, u) {
|
|
1726
|
-
throw new b();
|
|
1727
|
-
}
|
|
1728
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1729
|
-
once(s, u) {
|
|
1730
|
-
throw new b();
|
|
931
|
+
return e.schema(s).displayName.plural;
|
|
1731
932
|
}
|
|
1732
|
-
|
|
1733
|
-
emit(s, u) {
|
|
1734
|
-
throw new b();
|
|
1735
|
-
}
|
|
1736
|
-
}
|
|
1737
|
-
return m(t, "name", f.upperFirst(f.camelCase(e))), A(t);
|
|
933
|
+
}, p(l, "name", y.studly(s)), l;
|
|
1738
934
|
}
|
|
1739
|
-
function
|
|
1740
|
-
var
|
|
1741
|
-
return class extends (
|
|
1742
|
-
constructor(
|
|
1743
|
-
super(
|
|
1744
|
-
|
|
935
|
+
function Re(n, t, e) {
|
|
936
|
+
var i, s;
|
|
937
|
+
return class extends (s = e, i = Symbol.toStringTag, s) {
|
|
938
|
+
constructor(g = {}) {
|
|
939
|
+
super(g);
|
|
940
|
+
p(this, i, y.studly(t));
|
|
1745
941
|
return new Proxy(this, {
|
|
1746
|
-
get: (l,
|
|
1747
|
-
if (
|
|
942
|
+
get: (l, u) => {
|
|
943
|
+
if (u === "__isModel")
|
|
1748
944
|
return !0;
|
|
1749
|
-
if (
|
|
1750
|
-
return Reflect.get(l,
|
|
1751
|
-
if (
|
|
1752
|
-
return;
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
if (typeof p != "function")
|
|
1763
|
-
throw new T("ModelFacade");
|
|
1764
|
-
return p.bind(n.model)(void 0, l);
|
|
945
|
+
if (Reflect.has(l, u))
|
|
946
|
+
return Reflect.get(l, u);
|
|
947
|
+
if (Object.keys(l.attributes).includes(u))
|
|
948
|
+
return l.getAttribute(u);
|
|
949
|
+
if (Object.keys(l.relations).includes(u))
|
|
950
|
+
return l.relations[u].getLoadedItems();
|
|
951
|
+
if (u.endsWith("Relation") && Object.keys(l.relations).includes(y.snake(u.slice(0, -8))))
|
|
952
|
+
return () => l.relation(u.slice(0, -8));
|
|
953
|
+
if (n.hasReducer(`model${y.studly(l.getType())}Get${y.studly(u)}Attribute`)) {
|
|
954
|
+
const r = n[`model${y.studly(l.getType())}Get${y.studly(u)}Attribute`];
|
|
955
|
+
if (typeof r != "function")
|
|
956
|
+
throw new $("ModelFacade");
|
|
957
|
+
return r.bind(n)(void 0, l);
|
|
1765
958
|
}
|
|
1766
|
-
return Reflect.get(l,
|
|
959
|
+
return Reflect.get(l, u);
|
|
1767
960
|
},
|
|
1768
|
-
set: (l,
|
|
1769
|
-
|
|
1770
|
-
|
|
961
|
+
set: (l, u, r) => u in l && typeof l[u] != "function" ? Reflect.set(l, u, r) : (l.setAttribute(
|
|
962
|
+
y.snake(u),
|
|
963
|
+
r
|
|
1771
964
|
), !0)
|
|
1772
965
|
});
|
|
1773
966
|
}
|
|
1774
967
|
};
|
|
1775
968
|
}
|
|
1776
|
-
var
|
|
1777
|
-
class
|
|
1778
|
-
constructor(
|
|
1779
|
-
super(`[Luminix]
|
|
1780
|
-
|
|
1781
|
-
}
|
|
1782
|
-
}
|
|
1783
|
-
function Se(n) {
|
|
1784
|
-
return class extends n {
|
|
1785
|
-
constructor(...t) {
|
|
1786
|
-
super(...t);
|
|
1787
|
-
m(this, "reducers", {});
|
|
1788
|
-
return new Proxy(this, {
|
|
1789
|
-
get(r, i, s) {
|
|
1790
|
-
return typeof i == "symbol" || i in r ? Reflect.get(r, i, s) : (u, ...l) => {
|
|
1791
|
-
const { [i]: a = c() } = r.reducers;
|
|
1792
|
-
return Pe(u) ? R(u, (d) => a.sortBy("priority").reduce((p, w) => w.callback(p, ...l), d)) : a.sortBy("priority").reduce((d, p) => p.callback(d, ...l), u);
|
|
1793
|
-
};
|
|
1794
|
-
}
|
|
1795
|
-
});
|
|
1796
|
-
}
|
|
1797
|
-
reducer(t, r, i = 10) {
|
|
1798
|
-
if (t in this)
|
|
1799
|
-
throw new Ye(t, this);
|
|
1800
|
-
return this.reducers[t] || (this.reducers[t] = c()), this.reducers[t].push({ callback: r, priority: i }), () => this.removeReducer(t, r);
|
|
1801
|
-
}
|
|
1802
|
-
removeReducer(t, r) {
|
|
1803
|
-
const i = this.reducers[t].search((s) => s.callback === r);
|
|
1804
|
-
i !== !1 && this.reducers[t].pull(i);
|
|
1805
|
-
}
|
|
1806
|
-
getReducer(t) {
|
|
1807
|
-
return this.reducers[t] || (this.reducers[t] = c()), this.reducers[t];
|
|
1808
|
-
}
|
|
1809
|
-
hasReducer(t) {
|
|
1810
|
-
return !!this.reducers[t] && this.reducers[t].count() > 0;
|
|
1811
|
-
}
|
|
1812
|
-
clearReducer(t) {
|
|
1813
|
-
this.reducers[t].splice(0, this.reducers[t].count());
|
|
1814
|
-
}
|
|
1815
|
-
flushReducers() {
|
|
1816
|
-
Object.values(this.reducers).forEach((t) => t.splice(0, t.count()));
|
|
1817
|
-
}
|
|
1818
|
-
};
|
|
1819
|
-
}
|
|
1820
|
-
var ge, ye;
|
|
1821
|
-
class W extends (ye = Error, ge = Symbol.toStringTag, ye) {
|
|
1822
|
-
constructor(t) {
|
|
1823
|
-
super(`[Luminix] Model "${t}" not found`);
|
|
1824
|
-
m(this, ge, "ModelNotFoundException");
|
|
969
|
+
var W, z;
|
|
970
|
+
class j extends (z = Error, W = Symbol.toStringTag, z) {
|
|
971
|
+
constructor(e) {
|
|
972
|
+
super(`[Luminix] Model "${e}" not found`);
|
|
973
|
+
p(this, W, "ModelNotFoundException");
|
|
1825
974
|
}
|
|
1826
975
|
}
|
|
1827
|
-
var
|
|
1828
|
-
class
|
|
1829
|
-
constructor(
|
|
1830
|
-
super(`[Luminix] "${
|
|
1831
|
-
|
|
976
|
+
var X, Y;
|
|
977
|
+
class A extends (Y = TypeError, X = Symbol.toStringTag, Y) {
|
|
978
|
+
constructor(e, i, s) {
|
|
979
|
+
super(`[Luminix] "${e}" expects a related model of type "${i}". Received "${s}" instead.`);
|
|
980
|
+
p(this, X, "ModelInvalidRelatedTypeException");
|
|
1832
981
|
}
|
|
1833
982
|
}
|
|
1834
|
-
class
|
|
1835
|
-
constructor(
|
|
1836
|
-
if (!
|
|
1837
|
-
throw new
|
|
1838
|
-
super(
|
|
983
|
+
class ue extends N {
|
|
984
|
+
constructor(t, e, i, s = null) {
|
|
985
|
+
if (!m.isModel(s) && s !== null)
|
|
986
|
+
throw new w("BelongsTo.constructor()", "Model or null");
|
|
987
|
+
super(t, e, i, s), this.services = t, this.meta = e, this.parent = i, this.items = s;
|
|
1839
988
|
}
|
|
1840
989
|
isSingle() {
|
|
1841
990
|
return !0;
|
|
@@ -1844,21 +993,21 @@ class ve extends K {
|
|
|
1844
993
|
return !1;
|
|
1845
994
|
}
|
|
1846
995
|
query() {
|
|
1847
|
-
const
|
|
1848
|
-
return
|
|
996
|
+
const t = super.query(), e = this.guessInverseRelation();
|
|
997
|
+
return t.where(e, this.parent.getKey()), t.lock(`where.${e}`), t;
|
|
1849
998
|
}
|
|
1850
999
|
get() {
|
|
1851
1000
|
return this.query().first();
|
|
1852
1001
|
}
|
|
1853
|
-
async associate(
|
|
1854
|
-
if (!
|
|
1855
|
-
throw new
|
|
1856
|
-
if (
|
|
1857
|
-
throw new
|
|
1858
|
-
if (!
|
|
1859
|
-
throw new
|
|
1002
|
+
async associate(t) {
|
|
1003
|
+
if (!m.isModel(t))
|
|
1004
|
+
throw new w("BelongsTo.associate()");
|
|
1005
|
+
if (t.getType() !== this.getRelated().getSchemaName())
|
|
1006
|
+
throw new A("BelongsTo.associate()", this.getRelated().getSchemaName(), t.getType());
|
|
1007
|
+
if (!t.exists)
|
|
1008
|
+
throw new ae(this.getRelated().getSchemaName(), "save");
|
|
1860
1009
|
return this.parent.update({
|
|
1861
|
-
[this.getForeignKey()]:
|
|
1010
|
+
[this.getForeignKey()]: t.getKey()
|
|
1862
1011
|
});
|
|
1863
1012
|
}
|
|
1864
1013
|
dissociate() {
|
|
@@ -1867,11 +1016,11 @@ class ve extends K {
|
|
|
1867
1016
|
});
|
|
1868
1017
|
}
|
|
1869
1018
|
}
|
|
1870
|
-
class
|
|
1871
|
-
constructor(
|
|
1872
|
-
if (
|
|
1873
|
-
throw new
|
|
1874
|
-
super(
|
|
1019
|
+
class he extends N {
|
|
1020
|
+
constructor(t, e, i, s = null) {
|
|
1021
|
+
if (s !== null && !(s instanceof x && s.every(f)))
|
|
1022
|
+
throw new w("BelongsToMany.constructor()", "Collection<Model> or null");
|
|
1023
|
+
super(t, e, i, s), this.services = t, this.meta = e, this.parent = i, this.items = s;
|
|
1875
1024
|
}
|
|
1876
1025
|
isSingle() {
|
|
1877
1026
|
return !1;
|
|
@@ -1880,11 +1029,11 @@ class Ne extends K {
|
|
|
1880
1029
|
return !0;
|
|
1881
1030
|
}
|
|
1882
1031
|
query() {
|
|
1883
|
-
const
|
|
1884
|
-
return
|
|
1032
|
+
const t = super.query(), e = this.guessInverseRelation();
|
|
1033
|
+
return t.where(e, this.parent.getKey()), t.lock(`where.${e}`), t;
|
|
1885
1034
|
}
|
|
1886
|
-
get(
|
|
1887
|
-
return this.query().get(
|
|
1035
|
+
get(t = 1, e) {
|
|
1036
|
+
return this.query().get(t, e);
|
|
1888
1037
|
}
|
|
1889
1038
|
all() {
|
|
1890
1039
|
return this.query().all();
|
|
@@ -1892,104 +1041,95 @@ class Ne extends K {
|
|
|
1892
1041
|
first() {
|
|
1893
1042
|
return this.query().first();
|
|
1894
1043
|
}
|
|
1895
|
-
find(
|
|
1896
|
-
return this.query().find(
|
|
1044
|
+
find(t) {
|
|
1045
|
+
return this.query().find(t);
|
|
1897
1046
|
}
|
|
1898
|
-
attachQuietly(
|
|
1899
|
-
return this.
|
|
1047
|
+
attachQuietly(t, e = {}) {
|
|
1048
|
+
return this.services.route.call([
|
|
1900
1049
|
`luminix.${this.parent.getType()}.${this.getName()}:attach`,
|
|
1901
1050
|
{
|
|
1902
1051
|
[this.parent.getKeyName()]: this.parent.getKey(),
|
|
1903
|
-
itemId:
|
|
1052
|
+
itemId: t
|
|
1904
1053
|
}
|
|
1905
|
-
],
|
|
1906
|
-
data: t,
|
|
1907
|
-
errorBag: `${this.parent.getType()}[${this.parent.getKey()}].${this.getName()}:attach`
|
|
1908
|
-
});
|
|
1054
|
+
], (i) => i.withData(e));
|
|
1909
1055
|
}
|
|
1910
|
-
async attach(
|
|
1911
|
-
if (await this.attachQuietly(
|
|
1912
|
-
const
|
|
1913
|
-
if (!
|
|
1056
|
+
async attach(t, e = {}) {
|
|
1057
|
+
if (await this.attachQuietly(t, e), this.items) {
|
|
1058
|
+
const i = this.items.search((c) => c.getKey() === t), s = await this.getRelated().find(t);
|
|
1059
|
+
if (!s)
|
|
1914
1060
|
return;
|
|
1915
|
-
|
|
1061
|
+
i !== !1 ? this.items.put(i, s) : this.items.push(s);
|
|
1916
1062
|
} else
|
|
1917
1063
|
this.items = await this.all();
|
|
1918
1064
|
}
|
|
1919
|
-
async detachQuietly(
|
|
1920
|
-
await this.
|
|
1065
|
+
async detachQuietly(t) {
|
|
1066
|
+
await this.services.route.call(
|
|
1921
1067
|
[
|
|
1922
1068
|
`luminix.${this.parent.getType()}.${this.getName()}:detach`,
|
|
1923
1069
|
{
|
|
1924
1070
|
[this.parent.getKeyName()]: this.parent.getKey(),
|
|
1925
|
-
itemId:
|
|
1071
|
+
itemId: t
|
|
1926
1072
|
}
|
|
1927
|
-
]
|
|
1928
|
-
{
|
|
1929
|
-
|
|
1930
|
-
}
|
|
1073
|
+
]
|
|
1074
|
+
// {
|
|
1075
|
+
// errorBag: `${this.parent.getType()}[${this.parent.getKey()}].${this.getName()}:detach`
|
|
1076
|
+
// }
|
|
1931
1077
|
);
|
|
1932
1078
|
}
|
|
1933
|
-
async detach(
|
|
1934
|
-
if (await this.detachQuietly(
|
|
1935
|
-
const
|
|
1936
|
-
|
|
1079
|
+
async detach(t) {
|
|
1080
|
+
if (await this.detachQuietly(t), this.items) {
|
|
1081
|
+
const e = this.items.search((i) => i.getKey() === t);
|
|
1082
|
+
e !== !1 && this.items.pull(e);
|
|
1937
1083
|
}
|
|
1938
1084
|
}
|
|
1939
|
-
async syncQuietly(
|
|
1940
|
-
await this.
|
|
1085
|
+
async syncQuietly(t) {
|
|
1086
|
+
await this.services.route.call([
|
|
1941
1087
|
`luminix.${this.parent.getType()}.${this.getName()}:sync`,
|
|
1942
1088
|
{
|
|
1943
1089
|
[this.parent.getKeyName()]: this.parent.getKey()
|
|
1944
1090
|
}
|
|
1945
|
-
],
|
|
1946
|
-
data: e,
|
|
1947
|
-
errorBag: `${this.parent.getType()}[${this.parent.getKey()}].${this.getName()}:sync`
|
|
1948
|
-
});
|
|
1091
|
+
], (e) => e.withData(t));
|
|
1949
1092
|
}
|
|
1950
|
-
async syncWithPivotValuesQuietly(
|
|
1951
|
-
await this.
|
|
1093
|
+
async syncWithPivotValuesQuietly(t, e) {
|
|
1094
|
+
await this.services.route.call([
|
|
1952
1095
|
`luminix.${this.parent.getType()}.${this.getName()}:sync`,
|
|
1953
1096
|
{
|
|
1954
1097
|
[this.parent.getKeyName()]: this.parent.getKey()
|
|
1955
1098
|
}
|
|
1956
|
-
], {
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
})),
|
|
1961
|
-
errorBag: `${this.parent.getType()}[${this.parent.getKey()}].${this.getName()}:sync`
|
|
1962
|
-
});
|
|
1099
|
+
], (i) => i.withData(t.map((s) => ({
|
|
1100
|
+
[this.getRelated().getSchema().primaryKey]: s,
|
|
1101
|
+
...e
|
|
1102
|
+
}))));
|
|
1963
1103
|
}
|
|
1964
|
-
async sync(
|
|
1965
|
-
await this.syncQuietly(
|
|
1966
|
-
const
|
|
1967
|
-
this.items ? this.items.splice(0, this.items.count(), ...
|
|
1104
|
+
async sync(t) {
|
|
1105
|
+
await this.syncQuietly(t);
|
|
1106
|
+
const e = await this.all();
|
|
1107
|
+
this.items ? this.items.splice(0, this.items.count(), ...e) : this.items = e;
|
|
1968
1108
|
}
|
|
1969
|
-
async syncWithPivotValues(
|
|
1970
|
-
await this.syncWithPivotValuesQuietly(
|
|
1971
|
-
const
|
|
1972
|
-
this.items ? this.items.splice(0, this.items.count(), ...
|
|
1109
|
+
async syncWithPivotValues(t, e) {
|
|
1110
|
+
await this.syncWithPivotValuesQuietly(t, e);
|
|
1111
|
+
const i = await this.all();
|
|
1112
|
+
this.items ? this.items.splice(0, this.items.count(), ...i) : this.items = i;
|
|
1973
1113
|
}
|
|
1974
1114
|
}
|
|
1975
|
-
class
|
|
1115
|
+
class K extends N {
|
|
1976
1116
|
query() {
|
|
1977
|
-
const
|
|
1978
|
-
return
|
|
1117
|
+
const t = super.query(), e = this.guessInverseRelation();
|
|
1118
|
+
return t.where(e, this.parent.getKey()), t.lock(`where.${e}`), t;
|
|
1979
1119
|
}
|
|
1980
|
-
async saveQuietly(
|
|
1981
|
-
if (!
|
|
1982
|
-
throw new
|
|
1983
|
-
if (
|
|
1984
|
-
throw new
|
|
1985
|
-
|
|
1120
|
+
async saveQuietly(t) {
|
|
1121
|
+
if (!f(t))
|
|
1122
|
+
throw new w("HasOneOrMany.saveQuietly()");
|
|
1123
|
+
if (t.getType() !== this.getRelated().getSchemaName())
|
|
1124
|
+
throw new A("HasOneOrMany.saveQuietly()", this.getRelated().getSchemaName(), t.getType());
|
|
1125
|
+
t.setAttribute(this.getForeignKey(), this.parent.getKey()), await t.save();
|
|
1986
1126
|
}
|
|
1987
1127
|
}
|
|
1988
|
-
class
|
|
1989
|
-
constructor(
|
|
1990
|
-
if (!
|
|
1991
|
-
throw new
|
|
1992
|
-
super(
|
|
1128
|
+
class Ae extends K {
|
|
1129
|
+
constructor(t, e, i, s = null) {
|
|
1130
|
+
if (!f(s) && s !== null)
|
|
1131
|
+
throw new w("HasOne.constructor()", "Model or null");
|
|
1132
|
+
super(t, e, i, s), this.services = t, this.meta = e, this.parent = i, this.items = s;
|
|
1993
1133
|
}
|
|
1994
1134
|
isSingle() {
|
|
1995
1135
|
return !0;
|
|
@@ -2000,15 +1140,15 @@ class Ze extends Q {
|
|
|
2000
1140
|
get() {
|
|
2001
1141
|
return this.query().first();
|
|
2002
1142
|
}
|
|
2003
|
-
async save(
|
|
2004
|
-
await this.saveQuietly(
|
|
1143
|
+
async save(t) {
|
|
1144
|
+
await this.saveQuietly(t), this.items = t;
|
|
2005
1145
|
}
|
|
2006
1146
|
}
|
|
2007
|
-
class
|
|
2008
|
-
constructor(
|
|
2009
|
-
if (
|
|
2010
|
-
throw new
|
|
2011
|
-
super(
|
|
1147
|
+
class Ne extends K {
|
|
1148
|
+
constructor(t, e, i, s = null) {
|
|
1149
|
+
if (s !== null && !(s instanceof x && s.every(f)))
|
|
1150
|
+
throw new w("HasMany.constructor()", "Collection<Model> or null");
|
|
1151
|
+
super(t, e, i, s), this.services = t, this.meta = e, this.parent = i, this.items = s;
|
|
2012
1152
|
}
|
|
2013
1153
|
isSingle() {
|
|
2014
1154
|
return !1;
|
|
@@ -2016,8 +1156,8 @@ class ze extends Q {
|
|
|
2016
1156
|
isMultiple() {
|
|
2017
1157
|
return !0;
|
|
2018
1158
|
}
|
|
2019
|
-
get(
|
|
2020
|
-
return this.query().get(
|
|
1159
|
+
get(t = 1, e) {
|
|
1160
|
+
return this.query().get(t, e);
|
|
2021
1161
|
}
|
|
2022
1162
|
all() {
|
|
2023
1163
|
return this.query().all();
|
|
@@ -2025,48 +1165,48 @@ class ze extends Q {
|
|
|
2025
1165
|
first() {
|
|
2026
1166
|
return this.query().first();
|
|
2027
1167
|
}
|
|
2028
|
-
find(
|
|
2029
|
-
return this.query().find(
|
|
1168
|
+
find(t) {
|
|
1169
|
+
return this.query().find(t);
|
|
2030
1170
|
}
|
|
2031
|
-
async saveManyQuietly(
|
|
2032
|
-
if (!Array.isArray(
|
|
2033
|
-
throw new
|
|
2034
|
-
if (!
|
|
2035
|
-
throw new
|
|
2036
|
-
await Promise.all(
|
|
1171
|
+
async saveManyQuietly(t) {
|
|
1172
|
+
if (!Array.isArray(t) || !t.every(f))
|
|
1173
|
+
throw new w("HasMany.saveManyQuietly()", "Model[]");
|
|
1174
|
+
if (!t.every((e) => e.getType() === this.getRelated().getSchemaName()))
|
|
1175
|
+
throw new A("HasMany.saveManyQuietly()", this.getRelated().getSchemaName(), t.map((e) => e.getType()).join(", "));
|
|
1176
|
+
await Promise.all(t.map((e) => (e.setAttribute(this.getForeignKey(), this.parent.getKey()), e.save())));
|
|
2037
1177
|
}
|
|
2038
|
-
async saveMany(
|
|
2039
|
-
await this.saveManyQuietly(
|
|
2040
|
-
const
|
|
2041
|
-
this.items ? this.items.splice(0, this.items.count(), ...
|
|
1178
|
+
async saveMany(t) {
|
|
1179
|
+
await this.saveManyQuietly(t);
|
|
1180
|
+
const e = await this.all();
|
|
1181
|
+
this.items ? this.items.splice(0, this.items.count(), ...e) : this.items = e;
|
|
2042
1182
|
}
|
|
2043
|
-
async save(
|
|
2044
|
-
await this.saveQuietly(
|
|
1183
|
+
async save(t) {
|
|
1184
|
+
await this.saveQuietly(t), this.items === null ? this.items = await this.all() : this.items.push(t);
|
|
2045
1185
|
}
|
|
2046
1186
|
}
|
|
2047
|
-
class
|
|
1187
|
+
class le extends K {
|
|
2048
1188
|
query() {
|
|
2049
|
-
const
|
|
2050
|
-
|
|
2051
|
-
this.items =
|
|
1189
|
+
const t = this.getRelated().query();
|
|
1190
|
+
t.once("success", (i) => {
|
|
1191
|
+
this.items = i.items;
|
|
2052
1192
|
});
|
|
2053
|
-
const
|
|
2054
|
-
return
|
|
1193
|
+
const e = this.guessInverseRelation();
|
|
1194
|
+
return t.where(e + "_id", this.parent.getKey()), t.where(e + "_type", this.getRelated().getSchemaName()), t.lock(`where.${e}_id`), t.lock(`where.${e}_type`), t;
|
|
2055
1195
|
}
|
|
2056
|
-
async saveQuietly(
|
|
2057
|
-
if (!
|
|
2058
|
-
throw new
|
|
2059
|
-
if (
|
|
2060
|
-
throw new
|
|
2061
|
-
const
|
|
2062
|
-
|
|
1196
|
+
async saveQuietly(t) {
|
|
1197
|
+
if (!f(t))
|
|
1198
|
+
throw new w("MorphOneOrMany.saveQuietly()");
|
|
1199
|
+
if (t.getType() !== this.getRelated().getSchemaName())
|
|
1200
|
+
throw new A("MorphOneOrMany.saveQuietly()", this.getRelated().getSchemaName(), t.getType());
|
|
1201
|
+
const e = this.guessInverseRelation();
|
|
1202
|
+
t.setAttribute(e + "_id", this.parent.getKey()), t.setAttribute(e + "_type", this.parent.getType()), await t.save();
|
|
2063
1203
|
}
|
|
2064
1204
|
}
|
|
2065
|
-
class
|
|
2066
|
-
constructor(
|
|
2067
|
-
if (
|
|
2068
|
-
throw new
|
|
2069
|
-
super(
|
|
1205
|
+
class qe extends le {
|
|
1206
|
+
constructor(t, e, i, s = null) {
|
|
1207
|
+
if (s !== null && !(s instanceof x && s.every(f)))
|
|
1208
|
+
throw new w("MorphMany.constructor()", "Collection<Model> or null");
|
|
1209
|
+
super(t, e, i, s), this.services = t, this.meta = e, this.parent = i, this.items = s;
|
|
2070
1210
|
}
|
|
2071
1211
|
isSingle() {
|
|
2072
1212
|
return !1;
|
|
@@ -2074,8 +1214,8 @@ class Oe extends Re {
|
|
|
2074
1214
|
isMultiple() {
|
|
2075
1215
|
return !0;
|
|
2076
1216
|
}
|
|
2077
|
-
get(
|
|
2078
|
-
return this.query().get(
|
|
1217
|
+
get(t = 1, e) {
|
|
1218
|
+
return this.query().get(t, e);
|
|
2079
1219
|
}
|
|
2080
1220
|
all() {
|
|
2081
1221
|
return this.query().all();
|
|
@@ -2083,29 +1223,29 @@ class Oe extends Re {
|
|
|
2083
1223
|
first() {
|
|
2084
1224
|
return this.query().first();
|
|
2085
1225
|
}
|
|
2086
|
-
find(
|
|
2087
|
-
return this.query().find(
|
|
1226
|
+
find(t) {
|
|
1227
|
+
return this.query().find(t);
|
|
2088
1228
|
}
|
|
2089
|
-
async saveManyQuietly(
|
|
2090
|
-
if (!Array.isArray(
|
|
2091
|
-
throw new
|
|
2092
|
-
if (!
|
|
2093
|
-
throw new
|
|
2094
|
-
await Promise.all(
|
|
1229
|
+
async saveManyQuietly(t) {
|
|
1230
|
+
if (!Array.isArray(t) || !t.every(f))
|
|
1231
|
+
throw new w("MorphMany.saveManyQuietly()");
|
|
1232
|
+
if (!t.every((e) => e.getType() === this.getRelated().getSchemaName()))
|
|
1233
|
+
throw new A("MorphMany.saveManyQuietly()", this.getRelated().getSchemaName(), t.map((e) => e.getType()).join(", "));
|
|
1234
|
+
await Promise.all(t.map((e) => (e.setAttribute(this.getName() + "_id", this.parent.getKey()), e.setAttribute(this.getName() + "_type", this.parent.getType()), e.save())));
|
|
2095
1235
|
}
|
|
2096
|
-
async save(
|
|
2097
|
-
await this.saveQuietly(
|
|
1236
|
+
async save(t) {
|
|
1237
|
+
await this.saveQuietly(t), this.items ? this.items.push(t) : this.items = await this.all();
|
|
2098
1238
|
}
|
|
2099
|
-
async saveMany(
|
|
2100
|
-
await this.saveManyQuietly(
|
|
2101
|
-
const
|
|
2102
|
-
this.items ? this.items.splice(0, this.items.count(), ...
|
|
1239
|
+
async saveMany(t) {
|
|
1240
|
+
await this.saveManyQuietly(t);
|
|
1241
|
+
const e = await this.all();
|
|
1242
|
+
this.items ? this.items.splice(0, this.items.count(), ...e) : this.items = e;
|
|
2103
1243
|
}
|
|
2104
1244
|
}
|
|
2105
|
-
class
|
|
2106
|
-
constructor(
|
|
2107
|
-
if (super(
|
|
2108
|
-
throw new
|
|
1245
|
+
class Ke extends le {
|
|
1246
|
+
constructor(t, e, i, s = null) {
|
|
1247
|
+
if (super(t, e, i, s), this.services = t, this.meta = e, this.parent = i, this.items = s, s !== null && !f(s))
|
|
1248
|
+
throw new w("MorphOne.constructor()", "Model or null");
|
|
2109
1249
|
}
|
|
2110
1250
|
isSingle() {
|
|
2111
1251
|
return !0;
|
|
@@ -2116,13 +1256,13 @@ class et extends Re {
|
|
|
2116
1256
|
get() {
|
|
2117
1257
|
return this.query().first();
|
|
2118
1258
|
}
|
|
2119
|
-
async save(
|
|
2120
|
-
await this.saveQuietly(
|
|
1259
|
+
async save(t) {
|
|
1260
|
+
await this.saveQuietly(t), this.items = t;
|
|
2121
1261
|
}
|
|
2122
1262
|
}
|
|
2123
|
-
class
|
|
1263
|
+
class ke extends ue {
|
|
2124
1264
|
getRelated() {
|
|
2125
|
-
return this.
|
|
1265
|
+
return this.services.model.make(
|
|
2126
1266
|
this.parent.getAttribute(this.getName() + "_type")
|
|
2127
1267
|
);
|
|
2128
1268
|
}
|
|
@@ -2134,12 +1274,12 @@ class tt extends ve {
|
|
|
2134
1274
|
// this.of(this.parent.getAttribute(this.getName() + '_type') as string);
|
|
2135
1275
|
// return super.query();
|
|
2136
1276
|
// }
|
|
2137
|
-
async associate(
|
|
2138
|
-
if (!
|
|
2139
|
-
throw new
|
|
2140
|
-
return
|
|
2141
|
-
[this.getName() + "_id"]:
|
|
2142
|
-
[this.getName() + "_type"]:
|
|
1277
|
+
async associate(t) {
|
|
1278
|
+
if (!f(t))
|
|
1279
|
+
throw new w("MorphTo.associate()");
|
|
1280
|
+
return t.exists || await t.save(), this.parent.update({
|
|
1281
|
+
[this.getName() + "_id"]: t.getKey(),
|
|
1282
|
+
[this.getName() + "_type"]: t.getType()
|
|
2143
1283
|
});
|
|
2144
1284
|
}
|
|
2145
1285
|
dissociate() {
|
|
@@ -2149,376 +1289,353 @@ class tt extends ve {
|
|
|
2149
1289
|
});
|
|
2150
1290
|
}
|
|
2151
1291
|
}
|
|
2152
|
-
class
|
|
2153
|
-
constructor(e, t, r, i = null) {
|
|
2154
|
-
super(e, t, r, i), this.meta = e, this.facades = t, this.parent = r, this.items = i;
|
|
2155
|
-
}
|
|
1292
|
+
class je extends he {
|
|
2156
1293
|
query() {
|
|
2157
|
-
const
|
|
2158
|
-
return
|
|
1294
|
+
const t = super.query(), e = this.guessInverseRelation();
|
|
1295
|
+
return t.where(e + "_id", this.parent.getKey()), t.where(e + "_type", this.parent.getType()), t.lock(`where.${e}_id`), t.lock(`where.${e}_type`), t;
|
|
2159
1296
|
}
|
|
2160
1297
|
}
|
|
2161
|
-
var
|
|
2162
|
-
|
|
2163
|
-
class st {
|
|
1298
|
+
var Z, ee;
|
|
1299
|
+
class Oe extends (ee = q, Z = Symbol.toStringTag, ee) {
|
|
2164
1300
|
constructor(e) {
|
|
2165
|
-
|
|
2166
|
-
|
|
1301
|
+
super();
|
|
1302
|
+
p(this, "_models", {});
|
|
1303
|
+
p(this, Z, "ModelService");
|
|
2167
1304
|
this._schema = e;
|
|
2168
1305
|
}
|
|
2169
1306
|
boot(e) {
|
|
2170
|
-
this._schema &&
|
|
2171
|
-
const
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
HasMany: ze,
|
|
2184
|
-
MorphMany: Oe,
|
|
2185
|
-
MorphOne: et,
|
|
2186
|
-
MorphTo: tt,
|
|
2187
|
-
MorphToMany: rt
|
|
2188
|
-
}), 0));
|
|
1307
|
+
this._schema && Object.keys(this._schema).forEach((i) => {
|
|
1308
|
+
const s = this[`model${y.studly(i)}`], c = this.model(
|
|
1309
|
+
Te(
|
|
1310
|
+
e.make("config"),
|
|
1311
|
+
e.make("log"),
|
|
1312
|
+
e.make("model"),
|
|
1313
|
+
e.make("route"),
|
|
1314
|
+
i
|
|
1315
|
+
),
|
|
1316
|
+
i
|
|
1317
|
+
), g = s(c);
|
|
1318
|
+
this._models[i] = Re(e.make("model"), i, g);
|
|
1319
|
+
});
|
|
2189
1320
|
}
|
|
2190
1321
|
schema(e) {
|
|
2191
1322
|
if (!this._schema || e && !this._schema[e])
|
|
2192
|
-
throw new
|
|
1323
|
+
throw new j(e || "undefined");
|
|
2193
1324
|
return e ? this._schema[e] : this._schema;
|
|
2194
1325
|
}
|
|
2195
1326
|
make(e) {
|
|
2196
1327
|
if (e && !this._models[e])
|
|
2197
|
-
throw new
|
|
1328
|
+
throw new j(e);
|
|
2198
1329
|
return e ? this._models[e] : this._models;
|
|
2199
1330
|
}
|
|
1331
|
+
getRelationConstructors(e) {
|
|
1332
|
+
return this.relationMap({
|
|
1333
|
+
BelongsTo: ue,
|
|
1334
|
+
BelongsToMany: he,
|
|
1335
|
+
HasOne: Ae,
|
|
1336
|
+
HasMany: Ne,
|
|
1337
|
+
MorphMany: qe,
|
|
1338
|
+
MorphOne: Ke,
|
|
1339
|
+
MorphTo: ke,
|
|
1340
|
+
MorphToMany: je
|
|
1341
|
+
}, e);
|
|
1342
|
+
}
|
|
2200
1343
|
toString() {
|
|
2201
1344
|
return "model";
|
|
2202
1345
|
}
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
}
|
|
2211
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2212
|
-
emit(e, t) {
|
|
2213
|
-
throw new b();
|
|
1346
|
+
}
|
|
1347
|
+
const Be = ne(Oe);
|
|
1348
|
+
var te, se;
|
|
1349
|
+
class Ce extends (se = Error, te = Symbol.toStringTag, se) {
|
|
1350
|
+
constructor(e) {
|
|
1351
|
+
super(`[Luminix] Route "${e}" not found`);
|
|
1352
|
+
p(this, te, "RouteNotFoundException");
|
|
2214
1353
|
}
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
1354
|
+
}
|
|
1355
|
+
class Ie {
|
|
1356
|
+
constructor(t, e, i, s = "") {
|
|
1357
|
+
this.routes = t, this.error = e, this.http = i, this.appUrl = s;
|
|
2218
1358
|
}
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
1359
|
+
isRouteTuple(t) {
|
|
1360
|
+
if (!Array.isArray(t) || t.length < 2)
|
|
1361
|
+
return !1;
|
|
1362
|
+
const [e, ...i] = t;
|
|
1363
|
+
if (typeof e != "string")
|
|
1364
|
+
return !1;
|
|
1365
|
+
const s = ["get", "post", "put", "patch", "delete"];
|
|
1366
|
+
return !!i.every((c) => s.includes(c));
|
|
2222
1367
|
}
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
1368
|
+
extractGenerator(t) {
|
|
1369
|
+
let e, i = !1;
|
|
1370
|
+
return Array.isArray(t) ? [e, i] = t : e = t, [e, i];
|
|
2226
1371
|
}
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
1372
|
+
get(t) {
|
|
1373
|
+
if (!this.exists(t))
|
|
1374
|
+
throw new Ce(t);
|
|
1375
|
+
return m.get(this.routes, t);
|
|
2230
1376
|
}
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
1377
|
+
url(t) {
|
|
1378
|
+
const [e, i] = this.extractGenerator(t), s = this.get(e)[0].replace(/^\/|\/$/g, ""), c = /{([^}]+)}/g;
|
|
1379
|
+
if (i === !1) {
|
|
1380
|
+
if (typeof this.replaceRouteParams != "function")
|
|
1381
|
+
throw new $("RouteFacade");
|
|
1382
|
+
return this.appUrl + this.replaceRouteParams(`/${s}`);
|
|
1383
|
+
}
|
|
1384
|
+
const g = s.match(c), l = g ? g.map((h) => h.slice(1, -1)) : [], u = Object.keys(i), r = l.filter((h) => !u.includes(h)), o = u.filter((h) => !l.includes(h));
|
|
1385
|
+
if (r.length > 0)
|
|
1386
|
+
throw new TypeError(`Missing values for parameter(s): ${r.join(", ")}`);
|
|
1387
|
+
if (o.length > 0)
|
|
1388
|
+
throw new TypeError(`Unexpected parameters: ${o.join(", ")}`);
|
|
1389
|
+
const a = l.reduce((h, d) => h.replace(`{${d}}`, `${i[d]}`), s);
|
|
1390
|
+
return this.appUrl + `/${a}`;
|
|
1391
|
+
}
|
|
1392
|
+
methods(t) {
|
|
1393
|
+
const [e] = this.extractGenerator(t);
|
|
1394
|
+
return this.get(e).slice(1);
|
|
1395
|
+
}
|
|
1396
|
+
exists(t) {
|
|
1397
|
+
return m.has(this.routes, t) && this.isRouteTuple(m.get(this.routes, t));
|
|
1398
|
+
}
|
|
1399
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1400
|
+
async call(t, e = (s) => s, i = "default") {
|
|
1401
|
+
if (typeof this.clientOptions != "function" || typeof this.clientError != "function")
|
|
1402
|
+
throw new $("RouteFacade");
|
|
1403
|
+
const [s, c] = this.extractGenerator(t), [, ...g] = this.get(s), l = this.url(c ? [s, c] : s), u = e(this.http()), r = this.clientOptions({}, s);
|
|
1404
|
+
m.isEmpty(r) || u.withOptions(r);
|
|
1405
|
+
const o = g[0] ?? r.method;
|
|
1406
|
+
this.error.clear(i);
|
|
1407
|
+
const a = await u[o](l);
|
|
1408
|
+
if (ge(a)) {
|
|
1409
|
+
const h = a.json("errors");
|
|
1410
|
+
this.error.set(Object.entries(h).reduce((d, [v, b]) => (d[v] = b.join(" "), d), {}), i);
|
|
1411
|
+
} else a.failed() && this.error.set(
|
|
1412
|
+
this.clientError({ axios: a.json("message") }, {
|
|
1413
|
+
response: a,
|
|
1414
|
+
name: s,
|
|
1415
|
+
replace: c,
|
|
1416
|
+
client: u
|
|
1417
|
+
}),
|
|
1418
|
+
i
|
|
1419
|
+
);
|
|
1420
|
+
return a;
|
|
2234
1421
|
}
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
throw new b();
|
|
1422
|
+
toString() {
|
|
1423
|
+
return "route";
|
|
2238
1424
|
}
|
|
2239
1425
|
}
|
|
2240
|
-
const
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
super("[Luminix] Embed element not found. Make sure to include the `@luminixEmbed()` directive in your Blade template.");
|
|
2245
|
-
m(this, xe, "NoEmbedException");
|
|
1426
|
+
const Pe = ne(Ie);
|
|
1427
|
+
class Qe {
|
|
1428
|
+
getClient() {
|
|
1429
|
+
return new ye();
|
|
2246
1430
|
}
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
if (!document.querySelector("#luminix-embed"))
|
|
2250
|
-
throw new nt();
|
|
2251
|
-
const t = document.getElementById(`luminix-${e}::` + n);
|
|
2252
|
-
return t ? t.dataset.json && t.dataset.value ? JSON.parse(t.dataset.value) : t.dataset.value : null;
|
|
2253
|
-
}, G = A(S), ot = (n) => ke(n) && n.response !== void 0 && n.response.data !== null && "message" in n.response.data && typeof n.response.data.message == "string" && "errors" in n.response.data && typeof n.response.data.errors == "object" && n.response.data.errors !== null && Object.values(n.response.data.errors).every((e) => Array.isArray(e) && e.every((t) => typeof t == "string")) && n.response.status === 422;
|
|
2254
|
-
let ht = class {
|
|
2255
|
-
constructor() {
|
|
2256
|
-
m(this, "bags");
|
|
2257
|
-
const e = {};
|
|
2258
|
-
document.querySelectorAll('#luminix-embed [id^="luminix-error"]').forEach((r) => {
|
|
2259
|
-
const s = r.id.replace("luminix-error::", "");
|
|
2260
|
-
e[s] = Be(s, "error");
|
|
2261
|
-
}), this.bags = {
|
|
2262
|
-
default: new G(e)
|
|
2263
|
-
};
|
|
1431
|
+
baseUrl(t) {
|
|
1432
|
+
return this.getClient().baseUrl(t);
|
|
2264
1433
|
}
|
|
2265
|
-
|
|
2266
|
-
return this.
|
|
1434
|
+
asForm() {
|
|
1435
|
+
return this.getClient().asForm();
|
|
2267
1436
|
}
|
|
2268
|
-
|
|
2269
|
-
this.
|
|
1437
|
+
accept(t) {
|
|
1438
|
+
return this.getClient().accept(t);
|
|
2270
1439
|
}
|
|
2271
|
-
|
|
2272
|
-
this.
|
|
1440
|
+
acceptJson() {
|
|
1441
|
+
return this.getClient().acceptJson();
|
|
2273
1442
|
}
|
|
2274
|
-
|
|
2275
|
-
return this.
|
|
1443
|
+
withHeaders(t) {
|
|
1444
|
+
return this.getClient().withHeaders(t);
|
|
2276
1445
|
}
|
|
2277
|
-
|
|
2278
|
-
return this.
|
|
1446
|
+
withOptions(t) {
|
|
1447
|
+
return this.getClient().withOptions(t);
|
|
2279
1448
|
}
|
|
2280
|
-
|
|
2281
|
-
this.
|
|
1449
|
+
withData(t) {
|
|
1450
|
+
return this.getClient().withData(t);
|
|
2282
1451
|
}
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
class ut extends (Te = Error, _e = Symbol.toStringTag, Te) {
|
|
2286
|
-
constructor(t) {
|
|
2287
|
-
super(`[Luminix] Route "${t}" not found`);
|
|
2288
|
-
m(this, _e, "RouteNotFoundException");
|
|
1452
|
+
withQueryParameters(t) {
|
|
1453
|
+
return this.getClient().withQueryParameters(t);
|
|
2289
1454
|
}
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
constructor(e, t, r = "") {
|
|
2293
|
-
this.routes = e, this.error = t, this.appUrl = r;
|
|
1455
|
+
withBasicAuth(t, e) {
|
|
1456
|
+
return this.getClient().withBasicAuth(t, e);
|
|
2294
1457
|
}
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
return !1;
|
|
2298
|
-
const [t, ...r] = e;
|
|
2299
|
-
if (typeof t != "string")
|
|
2300
|
-
return !1;
|
|
2301
|
-
const i = ["get", "post", "put", "patch", "delete"];
|
|
2302
|
-
return !!r.every((s) => i.includes(s));
|
|
1458
|
+
withToken(t) {
|
|
1459
|
+
return this.getClient().withToken(t);
|
|
2303
1460
|
}
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
return
|
|
1461
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1462
|
+
get(t, e) {
|
|
1463
|
+
return this.getClient().get(t, e);
|
|
2307
1464
|
}
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
return f.get(this.routes, e);
|
|
1465
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1466
|
+
post(t, e) {
|
|
1467
|
+
return this.getClient().post(t, e);
|
|
2312
1468
|
}
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
if (typeof this.replaceRouteParams != "function")
|
|
2317
|
-
throw new T("RouteFacade");
|
|
2318
|
-
return this.appUrl + this.replaceRouteParams(`/${i}`);
|
|
2319
|
-
}
|
|
2320
|
-
const u = i.match(s), l = u ? u.map((x) => x.slice(1, -1)) : [], a = Object.keys(r), d = l.filter((x) => !a.includes(x)), p = a.filter((x) => !l.includes(x));
|
|
2321
|
-
if (d.length > 0)
|
|
2322
|
-
throw new TypeError(`Missing values for parameter(s): ${d.join(", ")}`);
|
|
2323
|
-
if (p.length > 0)
|
|
2324
|
-
throw new TypeError(`Unexpected parameters: ${p.join(", ")}`);
|
|
2325
|
-
const w = l.reduce((x, g) => x.replace(`{${g}}`, `${r[g]}`), i);
|
|
2326
|
-
return this.appUrl + `/${w}`;
|
|
2327
|
-
}
|
|
2328
|
-
methods(e) {
|
|
2329
|
-
const [t] = this.extractGenerator(e);
|
|
2330
|
-
return this.get(t).slice(1);
|
|
2331
|
-
}
|
|
2332
|
-
exists(e) {
|
|
2333
|
-
return f.has(this.routes, e) && this.isRouteTuple(f.get(this.routes, e));
|
|
2334
|
-
}
|
|
2335
|
-
async call(e, t = {}) {
|
|
2336
|
-
if (typeof this.axiosOptions != "function" || typeof this.axiosError != "function")
|
|
2337
|
-
throw new T("RouteFacade");
|
|
2338
|
-
const [r, i] = this.extractGenerator(e), [, ...s] = this.get(r), u = this.url(i ? [r, i] : r), l = this.axiosOptions(t, r), { method: a = s[0], errorBag: d = "route.call", ...p } = l, { data: w, ...x } = p;
|
|
2339
|
-
this.error.clear(d);
|
|
2340
|
-
try {
|
|
2341
|
-
return ["get", "delete"].includes(a) ? await I[a](u, p) : await I[a](u, w, x);
|
|
2342
|
-
} catch (g) {
|
|
2343
|
-
if (ot(g)) {
|
|
2344
|
-
const { errors: qe } = g.response.data;
|
|
2345
|
-
this.error.set(Object.entries(qe).reduce((L, [Ie, Ke]) => (L[Ie] = Ke.join(" "), L), {}));
|
|
2346
|
-
} else I.isAxiosError(g) && this.error.set(
|
|
2347
|
-
this.axiosError({ axios: g.message }, {
|
|
2348
|
-
error: g,
|
|
2349
|
-
name: r,
|
|
2350
|
-
replace: i,
|
|
2351
|
-
config: t
|
|
2352
|
-
}),
|
|
2353
|
-
d
|
|
2354
|
-
);
|
|
2355
|
-
throw g;
|
|
2356
|
-
}
|
|
1469
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1470
|
+
put(t, e) {
|
|
1471
|
+
return this.getClient().put(t, e);
|
|
2357
1472
|
}
|
|
2358
|
-
|
|
2359
|
-
|
|
1473
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1474
|
+
patch(t, e) {
|
|
1475
|
+
return this.getClient().patch(t, e);
|
|
1476
|
+
}
|
|
1477
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1478
|
+
delete(t, e) {
|
|
1479
|
+
return this.getClient().delete(t, e);
|
|
2360
1480
|
}
|
|
2361
1481
|
}
|
|
2362
|
-
const
|
|
2363
|
-
|
|
1482
|
+
const De = oe(Qe);
|
|
1483
|
+
var re, ie;
|
|
1484
|
+
class He extends (ie = me, re = Symbol.toStringTag, ie) {
|
|
2364
1485
|
constructor() {
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
m(this, "_plugins", []);
|
|
2368
|
-
}
|
|
2369
|
-
make(e = void 0) {
|
|
2370
|
-
if (!e)
|
|
2371
|
-
return this.facades;
|
|
2372
|
-
if (e in this.facades)
|
|
2373
|
-
return this.facades[e];
|
|
2374
|
-
}
|
|
2375
|
-
has(e) {
|
|
2376
|
-
return !!this.facades[e];
|
|
2377
|
-
}
|
|
2378
|
-
bind(e, t) {
|
|
2379
|
-
this.facades[e] || (this.facades[e] = t);
|
|
2380
|
-
}
|
|
2381
|
-
plugins() {
|
|
2382
|
-
return this._plugins;
|
|
2383
|
-
}
|
|
2384
|
-
async boot(e = {}) {
|
|
2385
|
-
var l, a, d, p, w, x;
|
|
2386
|
-
if (this.booted)
|
|
2387
|
-
throw new window.Error("[Luminix] App already booted");
|
|
2388
|
-
this.booted = !0, (l = e.app) != null && l.debug && console.log("[Luminix] Booting started..."), this.emit("init", {
|
|
2389
|
-
register: (g) => {
|
|
2390
|
-
this._plugins.push(g), typeof g.register == "function" && g.register(this);
|
|
2391
|
-
}
|
|
2392
|
-
});
|
|
2393
|
-
const t = (((a = e.app) == null ? void 0 : a.url) ?? "") + (((d = e.app) == null ? void 0 : d.bootUrl) ?? "/luminix-api/init");
|
|
2394
|
-
if (document.getElementById("luminix-data::config")) {
|
|
2395
|
-
if (document.getElementById("luminix-data::config")) {
|
|
2396
|
-
const g = Be("config");
|
|
2397
|
-
g && typeof g == "object" && f.merge(e, g);
|
|
2398
|
-
}
|
|
2399
|
-
} else try {
|
|
2400
|
-
const { data: g } = await I.get(t);
|
|
2401
|
-
g && typeof g == "object" && f.merge(e, g);
|
|
2402
|
-
} catch (g) {
|
|
2403
|
-
(p = e.app) != null && p.debug && console.error(g);
|
|
2404
|
-
}
|
|
2405
|
-
this.bind("log", new Ce(!!((w = e.app) != null && w.debug)));
|
|
2406
|
-
const { log: r } = this.facades, {
|
|
2407
|
-
manifest: { routes: i = {}, models: s = {} } = {},
|
|
2408
|
-
...u
|
|
2409
|
-
} = e;
|
|
2410
|
-
this.bind("config", new S(u)), this.facades.config.has("auth.user") || this.facades.config.set("auth.user", null), this.facades.config.lock("auth.user"), this.bind("error", new ht()), this.bind("route", new lt(i, this.facades.error, ((x = e.app) == null ? void 0 : x.url) ?? "")), this.bind("model", new it(s)), this.bind("auth", new Le(this)), this.emit("booting");
|
|
2411
|
-
for (const g of Object.values(this.facades))
|
|
2412
|
-
typeof g == "object" && g !== null && "boot" in g && typeof g.boot == "function" && g.boot(this);
|
|
2413
|
-
for (const g of this._plugins)
|
|
2414
|
-
typeof g.boot == "function" && g.boot(this.facades);
|
|
2415
|
-
return r.info("[Luminix] App boot completed", {
|
|
2416
|
-
config: this.facades.config.all(),
|
|
2417
|
-
plugins: this._plugins,
|
|
2418
|
-
manifest: {
|
|
2419
|
-
routes: i,
|
|
2420
|
-
models: s
|
|
2421
|
-
}
|
|
2422
|
-
}), this.emit("booted"), this.facades;
|
|
2423
|
-
}
|
|
2424
|
-
environment(...e) {
|
|
2425
|
-
return e.length > 0 ? e.includes(this.facades.config.get("app.env", "production")) : this.facades.config.get("app.env", "production");
|
|
2426
|
-
}
|
|
2427
|
-
getPlugin(e) {
|
|
2428
|
-
for (const t of this._plugins)
|
|
2429
|
-
if (t instanceof e)
|
|
2430
|
-
return t;
|
|
2431
|
-
}
|
|
2432
|
-
hasDebugModeEnabled() {
|
|
2433
|
-
return this.facades.config.get("app.debug", !1);
|
|
1486
|
+
super(...arguments);
|
|
1487
|
+
p(this, re, "LuminixServiceProvider");
|
|
2434
1488
|
}
|
|
2435
|
-
|
|
2436
|
-
|
|
1489
|
+
register() {
|
|
1490
|
+
this.registerServices(), this.registerMacros(), this.app.on("ready", () => {
|
|
1491
|
+
this.app.dump("[Luminix] App boot completed");
|
|
1492
|
+
});
|
|
2437
1493
|
}
|
|
2438
|
-
|
|
2439
|
-
|
|
1494
|
+
boot() {
|
|
1495
|
+
this.app.make("model").boot(this.app);
|
|
1496
|
+
}
|
|
1497
|
+
registerServices() {
|
|
1498
|
+
this.app.singleton("auth", () => new ve(
|
|
1499
|
+
this.app.make("config"),
|
|
1500
|
+
this.app.make("model"),
|
|
1501
|
+
this.app.make("route")
|
|
1502
|
+
)), this.app.singleton("config", () => {
|
|
1503
|
+
const e = new R(m.omit(this.app.configuration, "manifest"));
|
|
1504
|
+
return e.has("auth.user") || e.set("auth.user", null), e.lock("auth.user"), e;
|
|
1505
|
+
}), this.app.singleton("error", () => new be()), this.app.singleton("http", () => new De()), this.app.singleton("log", () => {
|
|
1506
|
+
var e;
|
|
1507
|
+
return new xe(((e = this.app.configuration.app) == null ? void 0 : e.debug) ?? !1);
|
|
1508
|
+
}), this.app.singleton("model", () => {
|
|
1509
|
+
var e;
|
|
1510
|
+
return new Be(
|
|
1511
|
+
((e = this.app.configuration.manifest) == null ? void 0 : e.models) ?? {}
|
|
1512
|
+
);
|
|
1513
|
+
}), this.app.singleton("route", () => {
|
|
1514
|
+
var e, i;
|
|
1515
|
+
return new Pe(
|
|
1516
|
+
((e = this.app.configuration.manifest) == null ? void 0 : e.routes) ?? {},
|
|
1517
|
+
this.app.make("error"),
|
|
1518
|
+
() => this.app.make("http"),
|
|
1519
|
+
(i = this.app.configuration.app) == null ? void 0 : i.url
|
|
1520
|
+
);
|
|
1521
|
+
});
|
|
2440
1522
|
}
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
1523
|
+
registerMacros() {
|
|
1524
|
+
this.app.macro("environment", (...e) => e.length > 0 ? e.includes(this.app.make("config").get("app.env", "production")) : this.app.make("config").get("app.env", "production")), this.app.macro("getLocale", () => this.app.make("config").get("app.locale", "en")), this.app.macro("hasDebugModeEnabled", () => this.app.make("config").get("app.debug", !1)), this.app.macro("isLocal", () => this.app.make("config").get("app.env", "production") === "local"), this.app.macro("isProduction", () => this.app.make("config").get("app.env", "production") === "production"), m.macro("isModel", function(e) {
|
|
1525
|
+
return typeof e == "object" && e !== null && e.__isModel === !0;
|
|
1526
|
+
});
|
|
2444
1527
|
}
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
1528
|
+
}
|
|
1529
|
+
let S;
|
|
1530
|
+
class Le {
|
|
1531
|
+
getFacadeAccessor() {
|
|
1532
|
+
return S || (S = new (oe(fe))([
|
|
1533
|
+
He
|
|
1534
|
+
])), S;
|
|
2448
1535
|
}
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
throw new window.Error("Method not implemented.");
|
|
1536
|
+
down() {
|
|
1537
|
+
S && (S.flush(), S = void 0);
|
|
2452
1538
|
}
|
|
2453
1539
|
}
|
|
2454
|
-
const
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
isProduction: y.isProduction.bind(y)
|
|
2468
|
-
};
|
|
2469
|
-
if (!y.has(n))
|
|
2470
|
-
throw new Qe(n);
|
|
2471
|
-
return y.make(n);
|
|
1540
|
+
const M = E(Le);
|
|
1541
|
+
function _(n = void 0) {
|
|
1542
|
+
return typeof n != "string" ? M : M.make(n);
|
|
1543
|
+
}
|
|
1544
|
+
function Ze() {
|
|
1545
|
+
return _("auth");
|
|
1546
|
+
}
|
|
1547
|
+
function et(n) {
|
|
1548
|
+
return new x(n);
|
|
1549
|
+
}
|
|
1550
|
+
function tt(n, t) {
|
|
1551
|
+
const e = _("config");
|
|
1552
|
+
return typeof n > "u" ? e : e.get(n, t);
|
|
2472
1553
|
}
|
|
2473
|
-
function
|
|
2474
|
-
return
|
|
1554
|
+
function st(n, t = "default") {
|
|
1555
|
+
return n ? _().make("error").get(n, t) : _().make("error");
|
|
1556
|
+
}
|
|
1557
|
+
function rt(...n) {
|
|
1558
|
+
const t = _("log");
|
|
1559
|
+
return n.length ? t.debug(...n) : t;
|
|
1560
|
+
}
|
|
1561
|
+
function it(n) {
|
|
1562
|
+
const t = _("model");
|
|
1563
|
+
return n ? t.make(n) : t;
|
|
1564
|
+
}
|
|
1565
|
+
function nt(n, t = !1) {
|
|
1566
|
+
const e = _("route");
|
|
1567
|
+
return n ? t ? e.url([n, t]) : e.url(n) : e;
|
|
1568
|
+
}
|
|
1569
|
+
class Je {
|
|
1570
|
+
getFacadeAccessor() {
|
|
1571
|
+
return "auth";
|
|
1572
|
+
}
|
|
2475
1573
|
}
|
|
2476
|
-
|
|
2477
|
-
|
|
1574
|
+
const ot = E(Je, M);
|
|
1575
|
+
class Ue {
|
|
1576
|
+
getFacadeAccessor() {
|
|
1577
|
+
return "config";
|
|
1578
|
+
}
|
|
2478
1579
|
}
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
1580
|
+
const at = E(Ue, M), ut = (n) => n instanceof we && n.unprocessableEntity() && typeof n.json("message") == "string" && typeof n.json("errors") == "object" && n.json("errors") !== null && Object.values(n.json("errors")).every((t) => Array.isArray(t) && t.every((e) => typeof e == "string"));
|
|
1581
|
+
class Fe {
|
|
1582
|
+
getFacadeAccessor() {
|
|
1583
|
+
return "error";
|
|
1584
|
+
}
|
|
2482
1585
|
}
|
|
2483
|
-
|
|
2484
|
-
|
|
1586
|
+
const ht = E(Fe, M);
|
|
1587
|
+
class Ge {
|
|
1588
|
+
getFacadeAccessor() {
|
|
1589
|
+
return "http";
|
|
1590
|
+
}
|
|
2485
1591
|
}
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
1592
|
+
const lt = E(Ge, M);
|
|
1593
|
+
class Ve {
|
|
1594
|
+
getFacadeAccessor() {
|
|
1595
|
+
return "log";
|
|
1596
|
+
}
|
|
2489
1597
|
}
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
1598
|
+
const ct = E(Ve, M);
|
|
1599
|
+
class We {
|
|
1600
|
+
getFacadeAccessor() {
|
|
1601
|
+
return "model";
|
|
1602
|
+
}
|
|
2493
1603
|
}
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
1604
|
+
const dt = E(We, M);
|
|
1605
|
+
class ze {
|
|
1606
|
+
getFacadeAccessor() {
|
|
1607
|
+
return "route";
|
|
1608
|
+
}
|
|
2497
1609
|
}
|
|
2498
|
-
|
|
1610
|
+
const pt = E(ze, M);
|
|
1611
|
+
class gt {
|
|
2499
1612
|
constructor() {
|
|
2500
|
-
|
|
2501
|
-
|
|
1613
|
+
p(this, "name");
|
|
1614
|
+
p(this, "version");
|
|
2502
1615
|
}
|
|
2503
|
-
register(
|
|
1616
|
+
register(t) {
|
|
2504
1617
|
}
|
|
2505
|
-
boot(
|
|
1618
|
+
boot(t) {
|
|
2506
1619
|
}
|
|
2507
1620
|
}
|
|
2508
1621
|
export {
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
1622
|
+
M as App,
|
|
1623
|
+
ot as Auth,
|
|
1624
|
+
at as Config,
|
|
1625
|
+
ht as Error,
|
|
1626
|
+
lt as Http,
|
|
1627
|
+
ct as Log,
|
|
1628
|
+
dt as Model,
|
|
1629
|
+
gt as Plugin,
|
|
1630
|
+
pt as Route,
|
|
1631
|
+
_ as app,
|
|
1632
|
+
Ze as auth,
|
|
1633
|
+
et as collect,
|
|
1634
|
+
tt as config,
|
|
1635
|
+
st as error,
|
|
1636
|
+
f as isModel,
|
|
1637
|
+
ut as isValidationError,
|
|
1638
|
+
rt as log,
|
|
1639
|
+
it as model,
|
|
1640
|
+
nt as route
|
|
2524
1641
|
};
|