ivue 0.0.32 → 0.1.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.
Files changed (157) hide show
  1. package/.babelrc.json +14 -0
  2. package/.eslintrc.cjs +24 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/compiler.xml +7 -0
  5. package/.idea/infinite-vue.iml +10 -0
  6. package/.idea/inspectionProfiles/Project_Default.xml +11 -0
  7. package/.idea/modules.xml +8 -0
  8. package/.idea/php.xml +20 -0
  9. package/.idea/vcs.xml +6 -0
  10. package/.vscode/extensions.json +3 -0
  11. package/LICENSE +19 -0
  12. package/README.md +31 -0
  13. package/demo/App.vue +72 -0
  14. package/demo/components/IVueTest.vue +298 -0
  15. package/demo/components/PreComponent.vue +13 -0
  16. package/demo/components/SubComponent2.vue +45 -0
  17. package/demo/components/TraitsComponent.vue +120 -0
  18. package/demo/components/useIVueTest.vue +136 -0
  19. package/demo/main.ts +21 -0
  20. package/demo/router/index.ts +14 -0
  21. package/demo/tests/IVueTests.ts +255 -0
  22. package/demo/tests/Mouse.ts +79 -0
  23. package/demo/tests/ParentIVueTests.ts +36 -0
  24. package/demo/tests/TApp.ts +15 -0
  25. package/demo/tests/TAuth.ts +23 -0
  26. package/demo/tests/TField.ts +84 -0
  27. package/demo/tests/TMessage.ts +52 -0
  28. package/demo/tests/TRouter.ts +18 -0
  29. package/demo/tests/TUser.ts +19 -0
  30. package/demo/tests/Test.ts +86 -0
  31. package/demo/tests/useField.ts +82 -0
  32. package/demo/tests/useIVueTests.ts +57 -0
  33. package/demo/vite.config.ts +13 -0
  34. package/dist/favicon.ico +0 -0
  35. package/dist/index.es.js +518 -0
  36. package/dist/index.umd.js +1 -0
  37. package/dist/src/behavior.d.ts +72 -0
  38. package/dist/src/config.d.ts +6 -0
  39. package/dist/src/index.d.ts +21 -0
  40. package/dist/src/ivue.d.ts +35 -0
  41. package/dist/src/kernel.d.ts +182 -0
  42. package/dist/src/traits/UseCapsule.d.ts +9 -0
  43. package/dist/src/traits/UseEmit.d.ts +3 -0
  44. package/dist/src/traits/UseInstance.d.ts +6 -0
  45. package/dist/src/traits/UseMounting.d.ts +11 -0
  46. package/dist/src/traits/UseRefs.d.ts +8 -0
  47. package/dist/src/traits/UseRoute.d.ts +3 -0
  48. package/dist/src/traits/UseRouter.d.ts +3 -0
  49. package/dist/src/traits/UseRouting.d.ts +6 -0
  50. package/dist/src/traits/UseTick.d.ts +4 -0
  51. package/dist/src/traits/UseVue.d.ts +13 -0
  52. package/dist/src/types/core.d.ts +46 -0
  53. package/dist/src/utils/dispose-garbage.d.ts +12 -0
  54. package/dist/src/utils/extend.d.ts +12 -0
  55. package/dist/src/utils/getters.d.ts +21 -0
  56. package/dist/src/utils/index.d.ts +7 -0
  57. package/dist/src/utils/is.d.ts +14 -0
  58. package/dist/src/utils/pre.d.ts +9 -0
  59. package/dist/src/utils/raw.d.ts +12 -0
  60. package/dist/src/utils/safe-class-name.d.ts +7 -0
  61. package/dist/src/utils/traits.d.ts +41 -0
  62. package/env.d.ts +1 -0
  63. package/index.html +13 -0
  64. package/package-lock.json +14305 -0
  65. package/package.json +89 -10
  66. package/public/favicon.ico +0 -0
  67. package/src/App/App.ts +27 -0
  68. package/src/App/Auth/Auth.ts +105 -0
  69. package/src/App/Auth/Auth.vue +98 -0
  70. package/src/App/Auth/Logout.vue +14 -0
  71. package/src/App/Auth/User.ts +6 -0
  72. package/src/App/BlackBox.ts +75 -0
  73. package/src/App/Config.ts +6 -0
  74. package/src/App/Generators/generators.ts +47 -0
  75. package/src/App/Home/Home.vue +16 -0
  76. package/src/App/Services/Http/FakeHttp.ts +8 -0
  77. package/src/App/Services/Http/Http.ts +51 -0
  78. package/src/App/Services/Message/Message.ts +49 -0
  79. package/src/App/Services/Message/Message.vue +15 -0
  80. package/src/App/Services/Navigation/Navigation.ts +83 -0
  81. package/src/App/Services/Navigation/Navigation.vue +59 -0
  82. package/src/App/Services/Routing/FakeRouter.ts +7 -0
  83. package/src/App/Services/Routing/NotFoundRoute.vue +13 -0
  84. package/src/App/Services/Routing/Router.ts +262 -0
  85. package/src/App/Services/Routing/Routes.ts +49 -0
  86. package/src/App/Stubs/SingleBookResultStub.ts +13 -0
  87. package/src/App/Traits/UseApp.ts +6 -0
  88. package/src/App/Traits/UseBlackline.ts +0 -0
  89. package/src/App/Traits/UseQuasar.ts +8 -0
  90. package/src/behavior.ts +269 -0
  91. package/src/config.ts +15 -0
  92. package/src/dev/dev-utils.ts +78 -0
  93. package/src/index.ts +83 -0
  94. package/src/ivue.ts +296 -0
  95. package/src/kernel.ts +810 -0
  96. package/src/tests/auth.spec.ts +48 -0
  97. package/src/traits/UseCapsule.ts +28 -0
  98. package/src/traits/UseEmit.ts +3 -0
  99. package/src/traits/UseInstance.ts +17 -0
  100. package/src/traits/UseMounting.ts +23 -0
  101. package/src/traits/UseRefs.ts +17 -0
  102. package/src/traits/UseRoute.ts +6 -0
  103. package/src/traits/UseRouter.ts +5 -0
  104. package/src/traits/UseRouting.ts +7 -0
  105. package/src/traits/UseTick.ts +5 -0
  106. package/src/traits/UseVue.ts +38 -0
  107. package/src/types/core.ts +64 -0
  108. package/src/utils/dispose-garbage.ts +34 -0
  109. package/src/utils/extend.ts +85 -0
  110. package/src/utils/getters.ts +62 -0
  111. package/src/utils/index.ts +16 -0
  112. package/src/utils/is.ts +22 -0
  113. package/src/utils/pre.ts +29 -0
  114. package/src/utils/raw.ts +19 -0
  115. package/src/utils/safe-class-name.ts +15 -0
  116. package/src/utils/traits.ts +121 -0
  117. package/tsconfig.app.json +47 -0
  118. package/tsconfig.json +14 -0
  119. package/tsconfig.node.json +14 -0
  120. package/tsconfig.vitest.json +9 -0
  121. package/vite.config.ts +55 -0
  122. package/vitest.config.ts +18 -0
  123. package/dist/index.js +0 -218
  124. package/docs/index.html +0 -195
  125. package/docs/index.json +0 -3
  126. package/docs/input.html +0 -41
  127. package/docs/items.html +0 -42
  128. package/gulpfile.js +0 -5
  129. package/src/components/checkbox.js +0 -47
  130. package/src/components/data.js +0 -6
  131. package/src/components/file.js +0 -40
  132. package/src/components/form.js +0 -7
  133. package/src/components/index.js +0 -15
  134. package/src/components/input.js +0 -80
  135. package/src/components/items.js +0 -65
  136. package/src/components/modal.js +0 -42
  137. package/src/components/paginate-old.js +0 -88
  138. package/src/components/paginate.js +0 -35
  139. package/src/components/select-search.js +0 -152
  140. package/src/components/select.js +0 -62
  141. package/src/components/submit.js +0 -10
  142. package/src/components/textarea.js +0 -72
  143. package/src/components/upload.js +0 -49
  144. package/src/directives/href.js +0 -10
  145. package/src/directives/index.js +0 -1
  146. package/src/filters/date.js +0 -3
  147. package/src/filters/datetime.js +0 -3
  148. package/src/filters/index.js +0 -4
  149. package/src/filters/json.js +0 -3
  150. package/src/filters/money.js +0 -3
  151. package/src/index.js +0 -4
  152. package/src/mixins/data.js +0 -13
  153. package/src/mixins/form.js +0 -85
  154. package/src/mixins/resource.js +0 -31
  155. package/src/services/client.js +0 -32
  156. package/src/services/flash.js +0 -17
  157. package/src/services/index.js +0 -2
@@ -0,0 +1,518 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import { markRaw as t, getCurrentScope as e, effectScope as n, reactive as r, computed as o, onScopeDispose as i, toRef as s, toRaw as u, getCurrentInstance as c, onBeforeMount as a, onMounted as f, onBeforeUnmount as l, onUnmounted as h, toValue as p, nextTick as b } from "vue";
8
+ function g(t2) {
9
+ delete t2.__v_skip;
10
+ }
11
+ function d(e2) {
12
+ return t(e2);
13
+ }
14
+ function y(t2) {
15
+ return t2 && "object" == typeof t2 && !Array.isArray(t2);
16
+ }
17
+ function v(t2, ...e2) {
18
+ return m(t2, [...e2], /* @__PURE__ */ new WeakMap());
19
+ }
20
+ function m(t2, e2, n2 = null) {
21
+ if (!e2.length)
22
+ return t2;
23
+ n2.set(t2, true);
24
+ const r2 = e2.shift();
25
+ if (y(t2) && y(r2))
26
+ for (const e3 in r2)
27
+ y(r2[e3]) && "Object" === r2[e3].constructor.name ? n2.has(r2[e3]) || null !== (o2 = r2[e3]) && "object" == typeof o2 && "function" == typeof o2.then && "function" == typeof o2.catch || void 0 === t2[e3] ? t2[e3] = r2[e3] : y(t2[e3]) ? "Object" !== t2[e3].constructor.name ? t2[e3] = r2[e3] : m(t2[e3], [r2[e3]], n2) : t2[e3] = r2[e3] : t2[e3] = r2[e3];
28
+ var o2;
29
+ return m(t2, e2, n2);
30
+ }
31
+ function O(t2, e2) {
32
+ const n2 = {}, r2 = Object.getOwnPropertyNames(t2.prototype).reduce((e3, r3) => {
33
+ const o3 = Object.getOwnPropertyDescriptor(t2.prototype, r3);
34
+ let i2 = false;
35
+ return (o3 == null ? void 0 : o3.set) && !(o3 == null ? void 0 : o3.get) && (n2[r3] = o3 == null ? void 0 : o3.set, i2 = true), i2 || (e3[r3] = true), e3;
36
+ }, {}), o2 = {};
37
+ e2.reverse().forEach((e3) => {
38
+ const i2 = new e3(t2);
39
+ for (const e4 in i2)
40
+ e4 in r2 || (o2[e4] = true), e4 in o2 && Object.defineProperty(t2.prototype, e4, { value: i2[e4], writable: true });
41
+ Object.getOwnPropertyNames(e3.prototype).forEach((i3) => {
42
+ if ("constructor" !== i3 && (i3 in r2 || (o2[i3] = true), i3 in o2)) {
43
+ const r3 = Object.getOwnPropertyDescriptor(e3.prototype, i3) || /* @__PURE__ */ Object.create(null);
44
+ (r3 == null ? void 0 : r3.set) && !(i3 in n2) && (n2[i3] = r3 == null ? void 0 : r3.set), (r3 == null ? void 0 : r3.get) && !(r3 == null ? void 0 : r3.set) && i3 in n2 && (r3.set = n2[i3]), Object.defineProperty(t2.prototype, i3, r3);
45
+ }
46
+ });
47
+ });
48
+ }
49
+ const w = /* @__PURE__ */ new Map();
50
+ function P(t2) {
51
+ if (w.has(t2))
52
+ return w.get(t2);
53
+ const e2 = t2, n2 = [];
54
+ for (; t2 && "Object" !== t2.constructor.name; )
55
+ n2.push.apply(n2, Object.entries(Object.getOwnPropertyDescriptors(t2))), t2 = Object.getPrototypeOf(t2.constructor.prototype);
56
+ const r2 = /* @__PURE__ */ new Map();
57
+ for (let t3 = 0; t3 < n2.length; t3++)
58
+ "__proto__" !== n2[t3][0] && "function" == typeof n2[t3][1].get && r2.set(n2[t3][0], n2[t3][1]);
59
+ return w.set(e2, r2), r2;
60
+ }
61
+ function E(t2) {
62
+ let e2 = "";
63
+ try {
64
+ e2 = (t2 == null ? void 0 : t2.name) || String(t2);
65
+ } catch (t3) {
66
+ e2 = "Unknown[failed to convert to string]";
67
+ }
68
+ return e2;
69
+ }
70
+ function j(t2, e2 = 2) {
71
+ const n2 = /* @__PURE__ */ new Set();
72
+ return JSON.stringify(t2, function(t3, e3) {
73
+ if ("object" == typeof e3 && null !== e3) {
74
+ if (n2.has(e3))
75
+ try {
76
+ return JSON.parse(JSON.stringify(e3));
77
+ } catch (t4) {
78
+ return "[**circular**]";
79
+ }
80
+ n2.add(e3);
81
+ }
82
+ return e3;
83
+ }, e2);
84
+ }
85
+ let F = { router: null, debug: false };
86
+ function C(t2 = {}) {
87
+ v(F, t2);
88
+ }
89
+ const S = { before: /* @__PURE__ */ new Map(), after: /* @__PURE__ */ new Map() };
90
+ function k(t2, e2, n2) {
91
+ const r2 = S[t2].get(e2);
92
+ for (let t3 = 0; t3 < (r2 == null ? void 0 : r2.length); t3++)
93
+ if (true === r2[t3](n2, ...n2.args))
94
+ return n2.return;
95
+ }
96
+ function T(t2, e2, n2, r2) {
97
+ var _a;
98
+ S[t2].has(e2) ? (_a = S[t2].get(e2)) == null ? void 0 : _a[r2.top ? "unshift" : "push"](n2) : S[t2].set(e2, [n2]);
99
+ }
100
+ function N(t2, e2) {
101
+ var _a;
102
+ if (Array.isArray(t2)) {
103
+ if ("function" != typeof t2[0])
104
+ throw new Error("ivue.kernel.behavior: Cannot autobind intercept to " + t2[0] + ". Supply a valid Class to autobind behavior.");
105
+ if ("function" == typeof t2[1]) {
106
+ const n2 = t2[1].toString();
107
+ if (!("class" === n2.substring(0, 5))) {
108
+ const r2 = n2.indexOf("(");
109
+ n2.substring(0, r2).split(" "), t2[0].behavior = { ..."object" == typeof t2[0].behavior ? t2[0].behavior : {}, funcName: e2 ? "SCOPED_INTERCEPT" : "INTERCEPT" };
110
+ }
111
+ return t2[1];
112
+ }
113
+ throw new Error('ivue.kernel.behavior: Cannot autobind intercept "' + t2[1] + '" to ' + (((_a = t2[0]) == null ? void 0 : _a.name) ?? t2[0]));
114
+ }
115
+ return t2;
116
+ }
117
+ function _(t2, e2, n2 = { top: false, scoped: false }) {
118
+ T("before", N(t2, n2.scoped), e2, n2);
119
+ }
120
+ function I(t2, e2, n2 = { top: false, scoped: false }) {
121
+ T("after", N(t2, n2.scoped), e2, n2);
122
+ }
123
+ function M(t2, e2, n2, r2, o2) {
124
+ let i2 = S[t2].get(e2.constructor.prototype[n2]);
125
+ for (let t3 = 0; t3 < (i2 == null ? void 0 : i2.length); t3++)
126
+ if (true === i2[t3](o2, ...r2))
127
+ return true;
128
+ i2 = S[t2].get(e2[n2]);
129
+ for (let t3 = 0; t3 < (i2 == null ? void 0 : i2.length); t3++)
130
+ if (true === i2[t3](o2, ...r2))
131
+ return true;
132
+ }
133
+ var R = ((t2) => (t2.SCOPED = "SCOPED", t2.SCOPED_INTERCEPT = "SCOPED_INTERCEPT", t2.INTERCEPT = "INTERCEPT", t2.OFF = "OFF", t2))(R || {});
134
+ function $(t2, e2, n2, r2, o2, i2, s2) {
135
+ let u2;
136
+ if ("SCOPED" === e2)
137
+ return Object.defineProperty(r2, o2, { value: function(...t3) {
138
+ return i2.run(() => u2 = n2.bind(r2)(...t3)), u2;
139
+ }, writable: true, configurable: true, enumerable: false });
140
+ const c2 = (...e3) => (true === M("before", r2, o2, e3, s2 = { mapping: t2, self: r2, return: u2, name: o2, args: e3 }) || (u2 = n2.bind(r2)(...e3), s2.return = u2, M("after", r2, o2, e3, s2)), s2.return);
141
+ switch (e2) {
142
+ case "INTERCEPT":
143
+ return Object.defineProperty(r2, o2, { value: function(...t3) {
144
+ return c2(...t3);
145
+ }, writable: true, configurable: true, enumerable: false });
146
+ case "SCOPED_INTERCEPT":
147
+ return Object.defineProperty(r2, o2, { value: function(...t3) {
148
+ return i2.run(() => u2 = c2(...t3)), u2;
149
+ }, writable: true, configurable: true, enumerable: false });
150
+ }
151
+ }
152
+ function D(t2, ...s2) {
153
+ let u2 = e(), c2 = n(!!u2), a2 = P(t2.prototype), f2 = a2.size ? {} : null, l2 = new Proxy(r(new t2(...s2)), { get: (t3, e2) => {
154
+ var _a, _b;
155
+ return a2.has(e2) && ((_b = (_a = l2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in f2 || (c2 == null ? void 0 : c2.run(() => f2[e2] = o(() => a2.get(e2).get.bind(l2)()))), f2[e2].value) : "toRefs" === e2 ? J(l2, a2, f2, c2) : t3[e2];
156
+ } });
157
+ return "init" in l2 && c2.run(() => l2.init()), u2 && i(() => {
158
+ let t3;
159
+ for (t3 in c2 == null ? void 0 : c2.stop(), l2)
160
+ delete l2[t3];
161
+ for (t3 in f2)
162
+ delete f2[t3];
163
+ u2 = c2 = a2 = f2 = l2 = t3 = null;
164
+ }), l2;
165
+ }
166
+ function x(t2) {
167
+ let o2 = e(), s2 = n(!!o2), u2 = function(t3) {
168
+ const e2 = /* @__PURE__ */ new Map(), n2 = Object.entries(Object.getOwnPropertyDescriptors(t3));
169
+ for (let t4 = 0; t4 < n2.length; t4++)
170
+ "function" == typeof n2[t4][1].get && "__proto__" !== n2[t4][0] && e2.set(n2[t4][0], n2[t4][1]);
171
+ return e2;
172
+ }(t2), c2 = u2.size ? {} : null, a2 = W(r(t2), u2, c2, s2);
173
+ return "init" in a2 && s2.run(() => a2.init()), o2 && i(() => {
174
+ let e2;
175
+ for (e2 in s2 == null ? void 0 : s2.stop(), a2)
176
+ delete a2[e2];
177
+ for (e2 in c2)
178
+ delete c2[e2];
179
+ o2 = s2 = u2 = c2 = t2 = a2 = e2 = null;
180
+ }), a2;
181
+ }
182
+ function W(t2, e2, n2, r2, ...i2) {
183
+ return new Proxy(t2, { get: (i3, s2) => {
184
+ var _a, _b;
185
+ return e2.has(s2) && ((_b = (_a = t2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[s2]) !== R.OFF ? (s2 in n2 || (r2 == null ? void 0 : r2.run(() => n2[s2] = o(() => {
186
+ var _a2;
187
+ return (_a2 = e2.get(s2)) == null ? void 0 : _a2.get.bind(t2)();
188
+ }))), n2[s2].value) : "toRefs" === s2 ? J(t2, e2, n2, r2) : i3[s2];
189
+ } });
190
+ }
191
+ function J(t2, e2, n2, r2) {
192
+ return function(...i2) {
193
+ const u2 = {};
194
+ if (i2.length)
195
+ for (let c2 = 0; c2 < i2.length; c2++) {
196
+ const a2 = i2[c2];
197
+ e2.has(a2) ? a2 in n2 ? u2[a2] = n2[a2] : r2.run(() => u2[a2] = n2[a2] = o(() => {
198
+ var _a;
199
+ return (_a = e2.get(a2)) == null ? void 0 : _a.get.bind(t2)();
200
+ })) : "function" == typeof t2[a2] ? u2[a2] = t2[a2].bind(t2) : u2[a2] = s(t2, a2);
201
+ }
202
+ else {
203
+ for (const n3 in t2)
204
+ e2.has(n3) || ("function" == typeof t2[n3] ? u2[n3] = t2[n3].bind(t2) : u2[n3] = s(t2, n3));
205
+ e2.forEach((e3, i3) => {
206
+ i3 in n2 ? u2[i3] = n2[i3] : r2.run(() => u2[i3] = n2[i3] = o(() => e3.get.bind(t2)()));
207
+ });
208
+ }
209
+ return new Proxy(t2, { get: (e3, n3) => n3 in u2 ? u2[n3] : n3 in e3 ? e3[n3].bind(t2) : void 0 });
210
+ };
211
+ }
212
+ function z(t2) {
213
+ return !!e() && (i(t2), true);
214
+ }
215
+ const A = (t2) => {
216
+ let e2 = u(t2), n2 = Object.getOwnPropertyNames(e2);
217
+ for (let t3 = 0; t3 < n2.length; t3++)
218
+ delete e2[n2[t3]];
219
+ e2 = null, n2 = null;
220
+ };
221
+ class U {
222
+ constructor(t2) {
223
+ __publicField(this, "to");
224
+ __publicField(this, "scope", "singleton");
225
+ __publicField(this, "type", "generic");
226
+ __publicField(this, "onInit", q);
227
+ this.from = t2, this.to = t2;
228
+ }
229
+ }
230
+ class K {
231
+ constructor() {
232
+ __publicField(this, "transients", /* @__PURE__ */ new WeakMap());
233
+ __publicField(this, "singletons", /* @__PURE__ */ new WeakMap());
234
+ __publicField(this, "instances", /* @__PURE__ */ new WeakMap());
235
+ __publicField(this, "subscribers", /* @__PURE__ */ new WeakMap());
236
+ __publicField(this, "effectScopes", /* @__PURE__ */ new WeakMap());
237
+ __publicField(this, "current");
238
+ }
239
+ bind(t2) {
240
+ return this.current = new U(t2), this;
241
+ }
242
+ to(t2) {
243
+ return this.current.to = t2, this;
244
+ }
245
+ singleton() {
246
+ return this.current.scope = "singleton", this[this.current.scope + "s"].set(this.current.from, this.current), this;
247
+ }
248
+ transient() {
249
+ return this.current.scope = "transient", this[this.current.scope + "s"].set(this.current.from, this.current), this;
250
+ }
251
+ type(t2) {
252
+ return this.current.type = t2, this;
253
+ }
254
+ ivue() {
255
+ return this.current.type = "ivue", this.current.onInit = () => {
256
+ }, this;
257
+ }
258
+ onInit(t2) {
259
+ return this.current.onInit = t2, this;
260
+ }
261
+ get(t2, ...e2) {
262
+ if (this.instances.has(t2))
263
+ return this.instances.get(t2);
264
+ let n2 = this.singletons.get(t2);
265
+ n2 || (this.bind(t2).singleton(), n2 = this.singletons.get(t2));
266
+ const r2 = n2.onInit(n2, ...e2);
267
+ return this.instances.set(t2, r2), r2;
268
+ }
269
+ make(t2, ...e2) {
270
+ let n2 = this.transients.get(t2);
271
+ return n2 || (this.bind(t2).transient(), n2 = this.transients.get(t2)), n2.onInit(n2, ...e2);
272
+ }
273
+ use(i2, ...s2) {
274
+ let u2, a2, f2, l2, h2, p2, b2;
275
+ if (this.subscribers.set(i2, (this.subscribers.get(i2) || 0) + 1), z(() => {
276
+ var _a;
277
+ const t2 = (this.subscribers.get(i2) || 0) - 1;
278
+ if (this.subscribers.set(i2, t2), this.effectScopes.has(i2) && t2 <= 0) {
279
+ let t3;
280
+ if ((_a = this.effectScopes.get(i2)) == null ? void 0 : _a.stop(), f2)
281
+ for (t3 in f2)
282
+ delete f2[t3];
283
+ if (h2)
284
+ for (t3 in h2)
285
+ h2[t3] = null;
286
+ if (p2)
287
+ for (t3 in p2)
288
+ p2[t3] = null;
289
+ if (b2)
290
+ for (t3 in b2)
291
+ b2[t3] = null;
292
+ f2 && A(f2), u2 = a2 = f2 = h2 = p2 = b2 = t3 = null, this.effectScopes.delete(i2), this.instances.delete(i2), this.subscribers.delete(i2), F.debug && console.log("ivue.kernel: instance deleted:", i2.name);
293
+ }
294
+ }), this.instances.has(i2))
295
+ return this.instances.get(i2);
296
+ {
297
+ if (a2 = this.singletons.get(i2), a2) {
298
+ if ("ivue" !== a2.type)
299
+ throw new Error("ivue.kernel: use(" + E(i2) + ") method should be used only with 'ivue' mappings, use get(" + E(i2) + ") method for standard JavaScript singleton Kernel mappings.");
300
+ } else
301
+ this.bind(i2).singleton().ivue(), a2 = this.singletons.get(i2);
302
+ if (u2 = n(!!e()), this.effectScopes.set(i2, u2), S.before.has(a2.to) && (p2 = { mapping: a2, self: null, return: null, name: a2.to.constructor.name, args: s2 }, true === k("before", a2.to, p2)))
303
+ return this.instances.set(i2, p2.return), p2.return;
304
+ l2 = P(a2.to.prototype), h2 = l2.size ? {} : null;
305
+ let f3 = new Proxy(r(new i2(...s2)), { get: (t2, e2) => {
306
+ var _a, _b;
307
+ return l2.has(e2) && ((_b = (_a = f3.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in h2 || (u2 == null ? void 0 : u2.run(() => h2[e2] = o(() => l2.get(e2).get.bind(f3)()))), h2[e2].value) : "toRefs" === e2 ? J(f3, l2, h2, u2) : t2[e2];
308
+ } });
309
+ if ("behavior" in f3.constructor) {
310
+ for (const e2 in f3.constructor.behavior)
311
+ if (!l2.has(e2))
312
+ if ("function" == typeof f3[e2]) {
313
+ if (f3.constructor.behavior[e2] === R.OFF)
314
+ continue;
315
+ y(b2) || (b2 = {}), b2[e2] = f3[e2], $(a2, f3.constructor.behavior[e2], b2[e2], f3, e2, u2, p2);
316
+ } else
317
+ f3.constructor.behavior[e2] === R.OFF && (f3 == null ? void 0 : f3[e2]) && "object" == typeof f3[e2] && (f3[e2] = t(f3[e2]));
318
+ }
319
+ return S.after.has(a2.to) && (p2 = { mapping: a2, self: f3, name: a2.to.constructor.name, return: f3, args: s2 }, true === k("after", a2.to, p2)) ? (this.instances.set(i2, p2.return), p2.return) : ("init" in f3 && u2.run(() => f3.init()), this.instances.set(i2, f3), F.debug && console.log("ivue.kernel: instance created:", i2.name, "current scope", e(), "current instance", c()), f3);
320
+ }
321
+ }
322
+ init(i2, ...s2) {
323
+ let u2 = this.transients.get(i2);
324
+ if (u2) {
325
+ if ("ivue" !== u2.type)
326
+ throw new Error("ivue.kernel: init(" + E(i2) + ") method should be used only with 'ivue' mappings, use make(" + E(i2) + ") method for standard JavaScript transient Kernel mappings.");
327
+ } else
328
+ this.bind(i2).transient().ivue(), u2 = this.transients.get(i2);
329
+ let c2, a2, f2, l2 = n(!!e());
330
+ if (S.before.has(u2.to) && (c2 = { mapping: u2, self: null, return: null, name: u2.to.constructor.name, args: s2 }, true === k("before", u2.to, c2)))
331
+ return c2.return;
332
+ let h2 = P(u2.to.prototype);
333
+ a2 = h2.size ? {} : null;
334
+ let p2 = new Proxy(r(new i2(...s2)), { get: (t2, e2) => {
335
+ var _a, _b;
336
+ return h2.has(e2) && ((_b = (_a = p2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in a2 || (l2 == null ? void 0 : l2.run(() => a2[e2] = o(() => h2.get(e2).get.bind(p2)()))), a2[e2].value) : "toRefs" === e2 ? J(p2, h2, a2, l2) : t2[e2];
337
+ } });
338
+ if ("behavior" in p2.constructor) {
339
+ for (const e2 in p2.constructor.behavior)
340
+ if (!h2.has(e2))
341
+ if ("function" == typeof p2[e2]) {
342
+ if (p2.constructor.behavior[e2] === R.OFF)
343
+ continue;
344
+ y(f2) || (f2 = {}), f2[e2] = p2[e2], $(u2, p2.constructor.behavior[e2], f2[e2], p2, e2, l2, c2);
345
+ } else
346
+ p2.constructor.behavior[e2] === R.OFF && (p2 == null ? void 0 : p2[e2]) && "object" == typeof p2[e2] && (p2[e2] = t(p2[e2]));
347
+ }
348
+ return S.after.has(u2.to) && (c2 = { mapping: u2, self: p2, return: p2, name: u2.to.constructor.name, args: s2 }, true === k("after", u2.to, c2)) ? c2.return : ("init" in p2 && l2.run(() => p2.init()), z(() => {
349
+ let t2;
350
+ if (l2 == null ? void 0 : l2.stop(), A(p2), c2)
351
+ for (t2 in c2)
352
+ c2[t2] = null;
353
+ if (a2)
354
+ for (t2 in a2)
355
+ a2[t2] = null;
356
+ if (f2)
357
+ for (t2 in f2)
358
+ f2[t2] = null;
359
+ l2 = p2 = u2 = a2 = c2 = f2 = t2 = null;
360
+ }), p2);
361
+ }
362
+ }
363
+ function q(t2, ...r2) {
364
+ if (S.before.has(t2.to)) {
365
+ const e2 = { mapping: t2, self: null, return: null, name: t2.to.constructor.name, args: r2 };
366
+ if (true === k("before", t2.to, e2))
367
+ return e2.return;
368
+ }
369
+ let o2, i2 = new t2.to(...r2);
370
+ const s2 = P(t2.to.prototype);
371
+ if ("behavior" in i2.constructor && "object" == typeof i2.constructor.behavior) {
372
+ for (const r3 in i2.constructor.behavior)
373
+ if (!s2.has(r3) && "function" == typeof i2[r3]) {
374
+ if (i2.constructor.behavior[r3] === R.OFF)
375
+ continue;
376
+ y(o2) || (o2 = {}), o2[r3] = i2[r3], $(t2, i2.constructor.behavior[r3], o2[r3], i2, r3, n(!!e()), void 0);
377
+ }
378
+ }
379
+ if (S.after.has(t2.to)) {
380
+ const e2 = { mapping: t2, self: i2, return: i2, name: t2.to.constructor.name, args: r2 };
381
+ if (true === k("after", t2.to, e2))
382
+ return e2.return;
383
+ }
384
+ return i2;
385
+ }
386
+ function B(t2, o2, ...i2) {
387
+ let s2 = n(!!e()), u2 = P(Reflect.getPrototypeOf(o2)), c2 = u2.value ? {} : null, a2 = W(r(Object.create(o2)), u2, c2, s2, ...i2);
388
+ return "function" == typeof a2.init && s2.run(() => a2.init()), z(() => {
389
+ s2 == null ? void 0 : s2.stop(), A(a2), s2 = a2 = null;
390
+ }), a2;
391
+ }
392
+ const G = new K(), H = G.bind.bind(G), L = G.get.bind(G), Q = G.make.bind(G), V = G.use.bind(G), X = G.init.bind(G);
393
+ class Y {
394
+ constructor() {
395
+ __publicField(this, "$");
396
+ __publicField(this, "capsule");
397
+ }
398
+ useCapsule(e2 = []) {
399
+ this.$ = V(this.capsule, this, ...e2), t(this.$);
400
+ }
401
+ initCapsule(e2 = []) {
402
+ this.$ = X(this.capsule, this, ...e2), t(this.$);
403
+ }
404
+ getCapsule(t2 = []) {
405
+ this.$ = L(this.capsule, this, ...t2);
406
+ }
407
+ makeCapsule(t2 = []) {
408
+ this.$ = Q(this.capsule, this, ...t2);
409
+ }
410
+ }
411
+ function Z(t2, e2) {
412
+ t2.behavior = v(t2.behavior ?? {}, { $instance: R.OFF });
413
+ }
414
+ class tt {
415
+ get $instance() {
416
+ return c();
417
+ }
418
+ constructor(t2) {
419
+ Z(t2);
420
+ }
421
+ }
422
+ function et(t2, e2) {
423
+ I(t2, ({ self: t3 }) => {
424
+ "beforeMount" in t3 && a(() => t3.beforeMount()), "mounted" in t3 && f(() => t3.mounted()), "beforeUnmount" in t3 && l(() => t3.beforeUnmount()), "unmounted" in t3 && h(() => t3.unmounted());
425
+ });
426
+ }
427
+ class nt {
428
+ constructor(t2) {
429
+ __publicField(this, "beforeMount", function() {
430
+ });
431
+ __publicField(this, "mounted", function() {
432
+ });
433
+ __publicField(this, "beforeUnmount", function() {
434
+ });
435
+ __publicField(this, "unmounted", function() {
436
+ });
437
+ et(t2);
438
+ }
439
+ }
440
+ function rt(t2, e2) {
441
+ t2.behavior = v(t2.behavior ?? {}, { $refs: R.OFF });
442
+ }
443
+ class ot {
444
+ get $refs() {
445
+ var _a;
446
+ return (_a = c()) == null ? void 0 : _a.refs;
447
+ }
448
+ constructor(t2) {
449
+ rt(t2);
450
+ }
451
+ }
452
+ class it {
453
+ get route() {
454
+ var _a;
455
+ return p((_a = F.router) == null ? void 0 : _a.currentRoute);
456
+ }
457
+ }
458
+ class st {
459
+ get router() {
460
+ return F.router;
461
+ }
462
+ }
463
+ class ut {
464
+ }
465
+ O(ut, [st, it]);
466
+ class ct {
467
+ constructor() {
468
+ __publicField(this, "$emit", (...t2) => {
469
+ });
470
+ }
471
+ }
472
+ class at {
473
+ constructor() {
474
+ __publicField(this, "$nextTick", b);
475
+ }
476
+ }
477
+ class ft {
478
+ constructor(t2) {
479
+ !function(t3, e2) {
480
+ Z(t3), rt(t3), et(t3);
481
+ }(t2);
482
+ }
483
+ }
484
+ O(ft, [ut, nt, ct, at, ot, tt]);
485
+ export {
486
+ R as IVUE,
487
+ K as Kernel,
488
+ U as Mapping,
489
+ O as Traits,
490
+ Y as UseCapsule,
491
+ ct as UseEmit,
492
+ tt as UseInstance,
493
+ nt as UseMounting,
494
+ ot as UseRefs,
495
+ it as UseRoute,
496
+ st as UseRouter,
497
+ ut as UseRouting,
498
+ at as UseTick,
499
+ ft as UseVue,
500
+ I as after,
501
+ _ as before,
502
+ H as bind,
503
+ F as config,
504
+ v as extend,
505
+ L as get,
506
+ X as init,
507
+ x as iobj,
508
+ D as ivue,
509
+ B as ivueInversify,
510
+ W as ivueTransform,
511
+ G as kernel,
512
+ Q as make,
513
+ j as pre,
514
+ d as raw,
515
+ C as setup,
516
+ g as unraw,
517
+ V as use
518
+ };
@@ -0,0 +1 @@
1
+ var __defProp=Object.defineProperty,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__publicField=(e,t,n)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,n),n);!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ivue={},e.Vue)}(this,(function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&!Array.isArray(e)}function r(e,...t){return o(e,[...t],new WeakMap)}function o(e,t,r=null){if(!t.length)return e;r.set(e,!0);const i=t.shift();if(n(e)&&n(i))for(const u in i)n(i[u])&&"Object"===i[u].constructor.name?r.has(i[u])||null!==(s=i[u])&&"object"==typeof s&&"function"==typeof s.then&&"function"==typeof s.catch||void 0===e[u]?e[u]=i[u]:n(e[u])?"Object"!==e[u].constructor.name?e[u]=i[u]:o(e[u],[i[u]],r):e[u]=i[u]:e[u]=i[u];var s;return o(e,t,r)}function i(e,t){const n={},r=Object.getOwnPropertyNames(e.prototype).reduce(((t,r)=>{const o=Object.getOwnPropertyDescriptor(e.prototype,r);let i=!1;return(null==o?void 0:o.set)&&!(null==o?void 0:o.get)&&(n[r]=null==o?void 0:o.set,i=!0),i||(t[r]=!0),t}),{}),o={};t.reverse().forEach((t=>{const i=new t(e);for(const n in i)n in r||(o[n]=!0),n in o&&Object.defineProperty(e.prototype,n,{value:i[n],writable:!0});Object.getOwnPropertyNames(t.prototype).forEach((i=>{if("constructor"!==i&&(i in r||(o[i]=!0),i in o)){const r=Object.getOwnPropertyDescriptor(t.prototype,i)||Object.create(null);(null==r?void 0:r.set)&&!(i in n)&&(n[i]=null==r?void 0:r.set),(null==r?void 0:r.get)&&!(null==r?void 0:r.set)&&i in n&&(r.set=n[i]),Object.defineProperty(e.prototype,i,r)}}))}))}const s=new Map;function u(e){if(s.has(e))return s.get(e);const t=e,n=[];for(;e&&"Object"!==e.constructor.name;)n.push.apply(n,Object.entries(Object.getOwnPropertyDescriptors(e))),e=Object.getPrototypeOf(e.constructor.prototype);const r=new Map;for(let o=0;o<n.length;o++)"__proto__"!==n[o][0]&&"function"==typeof n[o][1].get&&r.set(n[o][0],n[o][1]);return s.set(t,r),r}function c(e){let t="";try{t=(null==e?void 0:e.name)||String(e)}catch(n){t="Unknown[failed to convert to string]"}return t}let l={router:null,debug:!1};const a={before:new Map,after:new Map};function f(e,t,n){const r=a[e].get(t);for(let o=0;o<(null==r?void 0:r.length);o++)if(!0===r[o](n,...n.args))return n.return}function p(e,t,n,r){var o;a[e].has(t)?null==(o=a[e].get(t))||o[r.top?"unshift":"push"](n):a[e].set(t,[n])}function h(e,t){var n;if(Array.isArray(e)){if("function"!=typeof e[0])throw new Error("ivue.kernel.behavior: Cannot autobind intercept to "+e[0]+". Supply a valid Class to autobind behavior.");if("function"==typeof e[1]){const n=e[1].toString();if("class"!==n.substring(0,5)){const r=n.indexOf("(");n.substring(0,r).split(" "),e[0].behavior={..."object"==typeof e[0].behavior?e[0].behavior:{},funcName:t?"SCOPED_INTERCEPT":"INTERCEPT"}}return e[1]}throw new Error('ivue.kernel.behavior: Cannot autobind intercept "'+e[1]+'" to '+((null==(n=e[0])?void 0:n.name)??e[0]))}return e}function b(e,t,n={top:!1,scoped:!1}){p("after",h(e,n.scoped),t,n)}function d(e,t,n,r,o){let i=a[e].get(t.constructor.prototype[n]);for(let s=0;s<(null==i?void 0:i.length);s++)if(!0===i[s](o,...r))return!0;i=a[e].get(t[n]);for(let s=0;s<(null==i?void 0:i.length);s++)if(!0===i[s](o,...r))return!0}var g,v=((g=v||{}).SCOPED="SCOPED",g.SCOPED_INTERCEPT="SCOPED_INTERCEPT",g.INTERCEPT="INTERCEPT",g.OFF="OFF",g);function m(e,t,n,r,o,i,s){let u;if("SCOPED"===t)return Object.defineProperty(r,o,{value:function(...e){return i.run((()=>u=n.bind(r)(...e))),u},writable:!0,configurable:!0,enumerable:!1});const c=(...t)=>(!0===d("before",r,o,t,s={mapping:e,self:r,return:u,name:o,args:t})||(u=n.bind(r)(...t),s.return=u,d("after",r,o,t,s)),s.return);switch(t){case"INTERCEPT":return Object.defineProperty(r,o,{value:function(...e){return c(...e)},writable:!0,configurable:!0,enumerable:!1});case"SCOPED_INTERCEPT":return Object.defineProperty(r,o,{value:function(...e){return i.run((()=>u=c(...e))),u},writable:!0,configurable:!0,enumerable:!1})}}function y(e,n,r,o,...i){return new Proxy(e,{get:(i,s)=>{var u,c;return n.has(s)&&(null==(c=null==(u=e.constructor)?void 0:u.behavior)?void 0:c[s])!==v.OFF?(s in r||(null==o||o.run((()=>r[s]=t.computed((()=>{var t;return null==(t=n.get(s))?void 0:t.get.bind(e)()}))))),r[s].value):"toRefs"===s?_(e,n,r,o):i[s]}})}function _(e,n,r,o){return function(...i){const s={};if(i.length)for(let u=0;u<i.length;u++){const c=i[u];n.has(c)?c in r?s[c]=r[c]:o.run((()=>s[c]=r[c]=t.computed((()=>{var t;return null==(t=n.get(c))?void 0:t.get.bind(e)()})))):"function"==typeof e[c]?s[c]=e[c].bind(e):s[c]=t.toRef(e,c)}else{for(const r in e)n.has(r)||("function"==typeof e[r]?s[r]=e[r].bind(e):s[r]=t.toRef(e,r));n.forEach(((n,i)=>{i in r?s[i]=r[i]:o.run((()=>s[i]=r[i]=t.computed((()=>n.get.bind(e)()))))}))}return new Proxy(e,{get:(t,n)=>n in s?s[n]:n in t?t[n].bind(e):void 0})}}function w(e){return!!t.getCurrentScope()&&(t.onScopeDispose(e),!0)}const O=e=>{let n=t.toRaw(e),r=Object.getOwnPropertyNames(n);for(let t=0;t<r.length;t++)delete n[r[t]];n=null,r=null};class F{constructor(e){__publicField(this,"to"),__publicField(this,"scope","singleton"),__publicField(this,"type","generic"),__publicField(this,"onInit",S),this.from=e,this.to=e}}class P{constructor(){__publicField(this,"transients",new WeakMap),__publicField(this,"singletons",new WeakMap),__publicField(this,"instances",new WeakMap),__publicField(this,"subscribers",new WeakMap),__publicField(this,"effectScopes",new WeakMap),__publicField(this,"current")}bind(e){return this.current=new F(e),this}to(e){return this.current.to=e,this}singleton(){return this.current.scope="singleton",this[this.current.scope+"s"].set(this.current.from,this.current),this}transient(){return this.current.scope="transient",this[this.current.scope+"s"].set(this.current.from,this.current),this}type(e){return this.current.type=e,this}ivue(){return this.current.type="ivue",this.current.onInit=()=>{},this}onInit(e){return this.current.onInit=e,this}get(e,...t){if(this.instances.has(e))return this.instances.get(e);let n=this.singletons.get(e);n||(this.bind(e).singleton(),n=this.singletons.get(e));const r=n.onInit(n,...t);return this.instances.set(e,r),r}make(e,...t){let n=this.transients.get(e);return n||(this.bind(e).transient(),n=this.transients.get(e)),n.onInit(n,...t)}use(e,...r){let o,i,s,p,h,b,d;if(this.subscribers.set(e,(this.subscribers.get(e)||0)+1),w((()=>{var t;const n=(this.subscribers.get(e)||0)-1;if(this.subscribers.set(e,n),this.effectScopes.has(e)&&n<=0){let n;if(null==(t=this.effectScopes.get(e))||t.stop(),s)for(n in s)delete s[n];if(h)for(n in h)h[n]=null;if(b)for(n in b)b[n]=null;if(d)for(n in d)d[n]=null;s&&O(s),o=i=s=h=b=d=n=null,this.effectScopes.delete(e),this.instances.delete(e),this.subscribers.delete(e),l.debug&&console.log("ivue.kernel: instance deleted:",e.name)}})),this.instances.has(e))return this.instances.get(e);{if(i=this.singletons.get(e),i){if("ivue"!==i.type)throw new Error("ivue.kernel: use("+c(e)+") method should be used only with 'ivue' mappings, use get("+c(e)+") method for standard JavaScript singleton Kernel mappings.")}else this.bind(e).singleton().ivue(),i=this.singletons.get(e);if(o=t.effectScope(!!t.getCurrentScope()),this.effectScopes.set(e,o),a.before.has(i.to)&&(b={mapping:i,self:null,return:null,name:i.to.constructor.name,args:r},!0===f("before",i.to,b)))return this.instances.set(e,b.return),b.return;p=u(i.to.prototype),h=p.size?{}:null;let s=new Proxy(t.reactive(new e(...r)),{get:(e,n)=>{var r,i;return p.has(n)&&(null==(i=null==(r=s.constructor)?void 0:r.behavior)?void 0:i[n])!==v.OFF?(n in h||(null==o||o.run((()=>h[n]=t.computed((()=>p.get(n).get.bind(s)()))))),h[n].value):"toRefs"===n?_(s,p,h,o):e[n]}});if("behavior"in s.constructor)for(const e in s.constructor.behavior)if(!p.has(e))if("function"==typeof s[e]){if(s.constructor.behavior[e]===v.OFF)continue;n(d)||(d={}),d[e]=s[e],m(i,s.constructor.behavior[e],d[e],s,e,o,b)}else s.constructor.behavior[e]===v.OFF&&(null==s?void 0:s[e])&&"object"==typeof s[e]&&(s[e]=t.markRaw(s[e]));return a.after.has(i.to)&&(b={mapping:i,self:s,name:i.to.constructor.name,return:s,args:r},!0===f("after",i.to,b))?(this.instances.set(e,b.return),b.return):("init"in s&&o.run((()=>s.init())),this.instances.set(e,s),l.debug&&console.log("ivue.kernel: instance created:",e.name,"current scope",t.getCurrentScope(),"current instance",t.getCurrentInstance()),s)}}init(e,...r){let o=this.transients.get(e);if(o){if("ivue"!==o.type)throw new Error("ivue.kernel: init("+c(e)+") method should be used only with 'ivue' mappings, use make("+c(e)+") method for standard JavaScript transient Kernel mappings.")}else this.bind(e).transient().ivue(),o=this.transients.get(e);let i,s,l,p=t.effectScope(!!t.getCurrentScope());if(a.before.has(o.to)&&(i={mapping:o,self:null,return:null,name:o.to.constructor.name,args:r},!0===f("before",o.to,i)))return i.return;let h=u(o.to.prototype);s=h.size?{}:null;let b=new Proxy(t.reactive(new e(...r)),{get:(e,n)=>{var r,o;return h.has(n)&&(null==(o=null==(r=b.constructor)?void 0:r.behavior)?void 0:o[n])!==v.OFF?(n in s||(null==p||p.run((()=>s[n]=t.computed((()=>h.get(n).get.bind(b)()))))),s[n].value):"toRefs"===n?_(b,h,s,p):e[n]}});if("behavior"in b.constructor)for(const u in b.constructor.behavior)if(!h.has(u))if("function"==typeof b[u]){if(b.constructor.behavior[u]===v.OFF)continue;n(l)||(l={}),l[u]=b[u],m(o,b.constructor.behavior[u],l[u],b,u,p,i)}else b.constructor.behavior[u]===v.OFF&&(null==b?void 0:b[u])&&"object"==typeof b[u]&&(b[u]=t.markRaw(b[u]));return a.after.has(o.to)&&(i={mapping:o,self:b,return:b,name:o.to.constructor.name,args:r},!0===f("after",o.to,i))?i.return:("init"in b&&p.run((()=>b.init())),w((()=>{let e;if(null==p||p.stop(),O(b),i)for(e in i)i[e]=null;if(s)for(e in s)s[e]=null;if(l)for(e in l)l[e]=null;p=b=o=s=i=l=e=null})),b)}}function S(e,...r){if(a.before.has(e.to)){const t={mapping:e,self:null,return:null,name:e.to.constructor.name,args:r};if(!0===f("before",e.to,t))return t.return}let o,i=new e.to(...r);const s=u(e.to.prototype);if("behavior"in i.constructor&&"object"==typeof i.constructor.behavior)for(const u in i.constructor.behavior)if(!s.has(u)&&"function"==typeof i[u]){if(i.constructor.behavior[u]===v.OFF)continue;n(o)||(o={}),o[u]=i[u],m(e,i.constructor.behavior[u],o[u],i,u,t.effectScope(!!t.getCurrentScope()),void 0)}if(a.after.has(e.to)){const t={mapping:e,self:i,return:i,name:e.to.constructor.name,args:r};if(!0===f("after",e.to,t))return t.return}return i}const C=new P,E=C.bind.bind(C),j=C.get.bind(C),k=C.make.bind(C),R=C.use.bind(C),T=C.init.bind(C);function I(e,t){e.behavior=r(e.behavior??{},{$instance:v.OFF})}class M{get $instance(){return t.getCurrentInstance()}constructor(e){I(e)}}function N(e,n){b(e,(({self:e})=>{"beforeMount"in e&&t.onBeforeMount((()=>e.beforeMount())),"mounted"in e&&t.onMounted((()=>e.mounted())),"beforeUnmount"in e&&t.onBeforeUnmount((()=>e.beforeUnmount())),"unmounted"in e&&t.onUnmounted((()=>e.unmounted()))}))}class U{constructor(e){__publicField(this,"beforeMount",(function(){})),__publicField(this,"mounted",(function(){})),__publicField(this,"beforeUnmount",(function(){})),__publicField(this,"unmounted",(function(){})),N(e)}}function D(e,t){e.behavior=r(e.behavior??{},{$refs:v.OFF})}class ${get $refs(){var e;return null==(e=t.getCurrentInstance())?void 0:e.refs}constructor(e){D(e)}}class x{get route(){var e;return t.toValue(null==(e=l.router)?void 0:e.currentRoute)}}class W{get router(){return l.router}}class J{}i(J,[W,x]);class z{constructor(){__publicField(this,"$emit",((...e)=>{}))}}class A{constructor(){__publicField(this,"$nextTick",t.nextTick)}}class V{constructor(e){var t;I(t=e),D(t),N(t)}}i(V,[J,U,z,A,$,M]),e.IVUE=v,e.Kernel=P,e.Mapping=F,e.Traits=i,e.UseCapsule=class{constructor(){__publicField(this,"$"),__publicField(this,"capsule")}useCapsule(e=[]){this.$=R(this.capsule,this,...e),t.markRaw(this.$)}initCapsule(e=[]){this.$=T(this.capsule,this,...e),t.markRaw(this.$)}getCapsule(e=[]){this.$=j(this.capsule,this,...e)}makeCapsule(e=[]){this.$=k(this.capsule,this,...e)}},e.UseEmit=z,e.UseInstance=M,e.UseMounting=U,e.UseRefs=$,e.UseRoute=x,e.UseRouter=W,e.UseRouting=J,e.UseTick=A,e.UseVue=V,e.after=b,e.before=function(e,t,n={top:!1,scoped:!1}){p("before",h(e,n.scoped),t,n)},e.bind=E,e.config=l,e.extend=r,e.get=j,e.init=T,e.iobj=function(e){let n=t.getCurrentScope(),r=t.effectScope(!!n),o=function(e){const t=new Map,n=Object.entries(Object.getOwnPropertyDescriptors(e));for(let r=0;r<n.length;r++)"function"==typeof n[r][1].get&&"__proto__"!==n[r][0]&&t.set(n[r][0],n[r][1]);return t}(e),i=o.size?{}:null,s=y(t.reactive(e),o,i,r);return"init"in s&&r.run((()=>s.init())),n&&t.onScopeDispose((()=>{let t;for(t in null==r||r.stop(),s)delete s[t];for(t in i)delete i[t];n=r=o=i=e=s=t=null})),s},e.ivue=function(e,...n){let r=t.getCurrentScope(),o=t.effectScope(!!r),i=u(e.prototype),s=i.size?{}:null,c=new Proxy(t.reactive(new e(...n)),{get:(e,n)=>{var r,u;return i.has(n)&&(null==(u=null==(r=c.constructor)?void 0:r.behavior)?void 0:u[n])!==v.OFF?(n in s||(null==o||o.run((()=>s[n]=t.computed((()=>i.get(n).get.bind(c)()))))),s[n].value):"toRefs"===n?_(c,i,s,o):e[n]}});return"init"in c&&o.run((()=>c.init())),r&&t.onScopeDispose((()=>{let e;for(e in null==o||o.stop(),c)delete c[e];for(e in s)delete s[e];r=o=i=s=c=e=null})),c},e.ivueInversify=function(e,n,...r){let o=t.effectScope(!!t.getCurrentScope()),i=u(Reflect.getPrototypeOf(n)),s=i.value?{}:null,c=y(t.reactive(Object.create(n)),i,s,o,...r);return"function"==typeof c.init&&o.run((()=>c.init())),w((()=>{null==o||o.stop(),O(c),o=c=null})),c},e.ivueTransform=y,e.kernel=C,e.make=k,e.pre=function(e,t=2){const n=new Set;return JSON.stringify(e,(function(e,t){if("object"==typeof t&&null!==t){if(n.has(t))try{return JSON.parse(JSON.stringify(t))}catch(r){return"[**circular**]"}n.add(t)}return t}),t)},e.raw=function(e){return t.markRaw(e)},e.setup=function(e={}){r(l,e)},e.unraw=function(e){delete e.__v_skip},e.use=R,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1,72 @@
1
+ import { type EffectScope } from 'vue';
2
+ import { Mapping } from './kernel';
3
+ import type { AnyClass, Class } from './types/core';
4
+ import type { Intercept, InterceptsMap, InterceptFn, InterceptOptions, InterceptAttachTo } from './types/core';
5
+ /**
6
+ * Hash maps for all available intercept methods.
7
+ */
8
+ export declare const intercepts: InterceptsMap;
9
+ /**
10
+ * Run intercept attached to the Class constructor.
11
+ *
12
+ * @param type
13
+ * @param mapping
14
+ * @param intercept
15
+ * @return
16
+ */
17
+ export declare function interceptConstructor(type: keyof InterceptsMap, obj: any, intercept: Intercept): any;
18
+ /**
19
+ * Function to run before an interceptable method in ivue.
20
+ *
21
+ * @param fn
22
+ * @param callback
23
+ * @param opts
24
+ */
25
+ export declare function before(to: InterceptAttachTo, callback: InterceptFn, opts?: InterceptOptions): void;
26
+ /**
27
+ * Function to run after an interceptable method in ivue.
28
+ *
29
+ * @param fn
30
+ * @param callback
31
+ * @param opts
32
+ */
33
+ export declare function after(to: InterceptAttachTo, callback: InterceptFn, opts?: InterceptOptions): void;
34
+ /**
35
+ * Run method intercepts.
36
+ *
37
+ * @param type
38
+ * @param self
39
+ * @param prop
40
+ * @param args
41
+ * @param intercept
42
+ */
43
+ export declare function interceptMethod(type: keyof InterceptsMap, self: Class, prop: string, args: any[], intercept: Intercept): boolean;
44
+ /**
45
+ * Behavior definitions:
46
+ *
47
+ * SCOPED: Allows watch(), computed(), watchEffect() to be auto garbage collected.
48
+ *
49
+ * SCOPED_INTERCEPT: Allows scoping AND before & after method intercepts.
50
+ *
51
+ * INTERCEPT: Allows before & after method intercepts only,
52
+ * watch(), computed(), watchEffect() will NOT be garbage collected.
53
+ *
54
+ * OFF: For objects -> makes them markRaw() non-reactive,
55
+ * For getters -> makes them non-computed normal getters.
56
+ */
57
+ export declare enum IVUE {
58
+ SCOPED = "SCOPED",
59
+ SCOPED_INTERCEPT = "SCOPED_INTERCEPT",
60
+ INTERCEPT = "INTERCEPT",
61
+ OFF = "OFF"
62
+ }
63
+ /**
64
+ * Override function depending on behavior type.
65
+ * @see IVUE
66
+ *
67
+ * @param type
68
+ * @param func
69
+ * @param self
70
+ * @param prop
71
+ */
72
+ export declare function changeMethodBehavior<T extends AnyClass>(mapping: Mapping, type: IVUE, func: Function, self: Class, prop: string, scope: EffectScope, intercept: Intercept): Class;
@@ -0,0 +1,6 @@
1
+ export type Config = {
2
+ router?: any;
3
+ debug?: boolean;
4
+ };
5
+ export declare let config: Config;
6
+ export declare function setup(options?: Config): void;
@@ -0,0 +1,21 @@
1
+ import type { Null, AnyObj, AnyClass, Class, Params, IVue, IVueToRefs, IVueToRefsObj, MappingScope, MappingType, InferredArgs, Getters, InterceptsMap, Intercept, InterceptOptions, InterceptsFns, InterceptFn, InterceptAttachTo } from "./types/core";
2
+ import { config, setup } from "./config";
3
+ import { ivue, iobj, ivueTransform } from "./ivue";
4
+ import { Mapping, Kernel, kernel, ivueInversify, bind, get, make, use, init } from "./kernel";
5
+ import { IVUE, after, before } from "./behavior";
6
+ import { raw, unraw, Traits, extend, pre } from "./utils";
7
+ import { UseCapsule } from './traits/UseCapsule';
8
+ import { UseInstance } from './traits/UseInstance';
9
+ import { UseMounting } from './traits/UseMounting';
10
+ import { UseRefs } from './traits/UseRefs';
11
+ import { UseRoute } from './traits/UseRoute';
12
+ import { UseRouter } from './traits/UseRouter';
13
+ import { UseRouting } from './traits/UseRouting';
14
+ import { UseEmit } from './traits/UseEmit';
15
+ import { UseTick } from './traits/UseTick';
16
+ import { UseVue } from './traits/UseVue';
17
+ export { config, setup, ivue, iobj, ivueTransform, Mapping, // class
18
+ Kernel, // class
19
+ ivueInversify, kernel, bind, get, make, use, init, IVUE, // enum
20
+ before, after, UseCapsule, UseEmit, UseInstance, UseMounting, UseRefs, UseRoute, UseRouter, UseRouting, UseTick, UseVue, raw, unraw, Traits, extend, pre };
21
+ export type { Null, AnyObj, AnyClass, Class, Params, IVue, IVueToRefs, IVueToRefsObj, MappingScope, MappingType, InferredArgs, Getters, InterceptsMap, Intercept, InterceptOptions, InterceptsFns, InterceptFn, InterceptAttachTo, };