@toyz/loom 0.6.0 → 0.8.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 (42) hide show
  1. package/dist/app.js +1 -1
  2. package/dist/app.js.map +1 -1
  3. package/dist/decorators/symbols.d.ts +1 -0
  4. package/dist/decorators/symbols.d.ts.map +1 -1
  5. package/dist/decorators/symbols.js +1 -0
  6. package/dist/decorators/symbols.js.map +1 -1
  7. package/dist/element/lifecycle.d.ts +19 -5
  8. package/dist/element/lifecycle.d.ts.map +1 -1
  9. package/dist/element/lifecycle.js +55 -4
  10. package/dist/element/lifecycle.js.map +1 -1
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +2 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/query/decorators.d.ts +59 -0
  16. package/dist/query/decorators.d.ts.map +1 -0
  17. package/dist/query/decorators.js +78 -0
  18. package/dist/query/decorators.js.map +1 -0
  19. package/dist/query/index.d.ts +8 -0
  20. package/dist/query/index.d.ts.map +1 -0
  21. package/dist/query/index.js +8 -0
  22. package/dist/query/index.js.map +1 -0
  23. package/dist/query/registry.d.ts +10 -0
  24. package/dist/query/registry.d.ts.map +1 -0
  25. package/dist/query/registry.js +9 -0
  26. package/dist/query/registry.js.map +1 -0
  27. package/dist/query/state.d.ts +10 -0
  28. package/dist/query/state.d.ts.map +1 -0
  29. package/dist/query/state.js +197 -0
  30. package/dist/query/state.js.map +1 -0
  31. package/dist/query/types.d.ts +58 -0
  32. package/dist/query/types.d.ts.map +1 -0
  33. package/dist/query/types.js +7 -0
  34. package/dist/query/types.js.map +1 -0
  35. package/dist/router/link.d.ts +1 -1
  36. package/dist/router/link.d.ts.map +1 -1
  37. package/dist/router/link.js +4 -2
  38. package/dist/router/link.js.map +1 -1
  39. package/dist/router/outlet.d.ts.map +1 -1
  40. package/dist/router/outlet.js +4 -1
  41. package/dist/router/outlet.js.map +1 -1
  42. package/package.json +1 -1
package/dist/app.js CHANGED
@@ -14,7 +14,7 @@
14
14
  * ```
15
15
  */
16
16
  import { renderLoop } from "./render-loop";
17
- import { INJECT_PARAMS, ON_HANDLERS } from "./decorators";
17
+ import { INJECT_PARAMS, ON_HANDLERS } from "./decorators/symbols";
18
18
  import { bus } from "./bus";
19
19
  class LoomApp {
20
20
  providers = new Map();
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare const WATCHERS: unique symbol;
5
5
  export declare const EMITTERS: unique symbol;
6
6
  export declare const COMPUTED_DIRTY: unique symbol;
7
7
  export declare const CATCH_HANDLER: unique symbol;
8
+ export declare const CATCH_HANDLERS: unique symbol;
8
9
  export declare const MOUNT_HANDLERS: unique symbol;
9
10
  export declare const UNMOUNT_HANDLERS: unique symbol;
10
11
  export declare const INJECT_PARAMS: unique symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/decorators/symbols.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,eAA2B,CAAC;AAClD,eAAO,MAAM,KAAK,eAAuB,CAAC;AAC1C,eAAO,MAAM,WAAW,eAAoB,CAAC;AAC7C,eAAO,MAAM,QAAQ,eAAuB,CAAC;AAC7C,eAAO,MAAM,QAAQ,eAAsB,CAAC;AAC5C,eAAO,MAAM,cAAc,eAAgC,CAAC;AAC5D,eAAO,MAAM,aAAa,eAAuB,CAAC;AAClD,eAAO,MAAM,cAAc,eAAuB,CAAC;AACnD,eAAO,MAAM,gBAAgB,eAAyB,CAAC;AACvD,eAAO,MAAM,aAAa,eAA+B,CAAC;AAC1D,eAAO,MAAM,WAAW,eAA6B,CAAC;AACtD,eAAO,MAAM,UAAU,eAA4B,CAAC;AACpD,eAAO,MAAM,WAAW,eAA6B,CAAC;AACtD,eAAO,MAAM,WAAW,eAA6B,CAAC;AACtD,eAAO,MAAM,aAAa,eAA+B,CAAC;AAC1D,eAAO,MAAM,mBAAmB,eAAqC,CAAC"}
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/decorators/symbols.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,eAA2B,CAAC;AAClD,eAAO,MAAM,KAAK,eAAuB,CAAC;AAC1C,eAAO,MAAM,WAAW,eAAoB,CAAC;AAC7C,eAAO,MAAM,QAAQ,eAAuB,CAAC;AAC7C,eAAO,MAAM,QAAQ,eAAsB,CAAC;AAC5C,eAAO,MAAM,cAAc,eAAgC,CAAC;AAC5D,eAAO,MAAM,aAAa,eAAuB,CAAC;AAClD,eAAO,MAAM,cAAc,eAA6B,CAAC;AACzD,eAAO,MAAM,cAAc,eAAuB,CAAC;AACnD,eAAO,MAAM,gBAAgB,eAAyB,CAAC;AACvD,eAAO,MAAM,aAAa,eAA+B,CAAC;AAC1D,eAAO,MAAM,WAAW,eAA6B,CAAC;AACtD,eAAO,MAAM,UAAU,eAA4B,CAAC;AACpD,eAAO,MAAM,WAAW,eAA6B,CAAC;AACtD,eAAO,MAAM,WAAW,eAA6B,CAAC;AACtD,eAAO,MAAM,aAAa,eAA+B,CAAC;AAC1D,eAAO,MAAM,mBAAmB,eAAqC,CAAC"}
@@ -7,6 +7,7 @@ export const WATCHERS = Symbol("loom:watch");
7
7
  export const EMITTERS = Symbol("loom:emit");
8
8
  export const COMPUTED_DIRTY = Symbol("loom:computed:dirty");
9
9
  export const CATCH_HANDLER = Symbol("loom:catch");
10
+ export const CATCH_HANDLERS = Symbol("loom:catch:named");
10
11
  export const MOUNT_HANDLERS = Symbol("loom:mount");
11
12
  export const UNMOUNT_HANDLERS = Symbol("loom:unmount");
12
13
  export const INJECT_PARAMS = Symbol("loom:inject:params");
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/decorators/symbols.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,sDAAsD;AAEtD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/decorators/symbols.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,sDAAsD;AAEtD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC"}
@@ -6,21 +6,35 @@
6
6
  * @mount — Run method on connectedCallback
7
7
  * @unmount — Run method on disconnectedCallback
8
8
  */
9
- /** Function called when update() throws */
9
+ /** Function called when update() throws or an @api fetch fails */
10
10
  type CatchFn = (error: unknown, element: HTMLElement & {
11
11
  shadow: ShadowRoot;
12
12
  }) => void;
13
13
  /**
14
- * Error-boundary decorator. If update() throws, catches the error
15
- * and calls the handler with (error, element).
14
+ * Error-boundary decorator works as class or method decorator.
16
15
  *
16
+ * Also handles @api fetch errors — when an API call fails,
17
+ * the same handler is invoked automatically.
18
+ *
19
+ * **Class decorator** (inline handler — catch-all):
17
20
  * ```ts
18
- * @component("my-page")
19
21
  * @catch_((err, el) => { el.shadow.innerHTML = `<p>Error: ${err}</p>`; })
20
22
  * class MyPage extends LoomElement { ... }
21
23
  * ```
24
+ *
25
+ * **Method decorator** (catch-all):
26
+ * ```ts
27
+ * @catch_
28
+ * handleError(err: unknown) { ... }
29
+ * ```
30
+ *
31
+ * **Named method decorator** (scoped to a specific @api accessor):
32
+ * ```ts
33
+ * @catch_("team")
34
+ * handleTeamError(err: unknown) { ... }
35
+ * ```
22
36
  */
23
- export declare function catch_(handler: CatchFn): (value: Function, _context: ClassDecoratorContext) => void;
37
+ export declare function catch_(handlerOrMethodOrName: CatchFn | Function | string, context?: ClassDecoratorContext | ClassMethodDecoratorContext): any;
24
38
  /**
25
39
  * Suspend decorator. Wraps an async method with loading/error state
26
40
  * management. Sets `this.loading = true` before the call, and
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/element/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,2CAA2C;AAC3C,KAAK,OAAO,GAAG,CACb,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,KAC1C,IAAI,CAAC;AAEV;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,IAC7B,OAAO,QAAQ,EAAE,UAAU,qBAAqB,UAWzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,KACb,QAAQ,QAAQ,EAAE,SAAS,2BAA2B,MAC3C,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,kBAkB7C;AAGD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,QAO3E;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,QAQ7E"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/element/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,kEAAkE;AAClE,KAAK,OAAO,GAAG,CACb,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,KAC1C,IAAI,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,MAAM,CACpB,qBAAqB,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,EAClD,OAAO,CAAC,EAAE,qBAAqB,GAAG,2BAA2B,GAC5D,GAAG,CA8CL;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,KACb,QAAQ,QAAQ,EAAE,SAAS,2BAA2B,MAC3C,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,kBAkB7C;AAGD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,QAO3E;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,QAQ7E"}
@@ -7,18 +7,69 @@
7
7
  * @unmount — Run method on disconnectedCallback
8
8
  */
9
9
  import { CONNECT_HOOKS } from "../decorators/symbols";
10
+ import { CATCH_HANDLER, CATCH_HANDLERS } from "../decorators/symbols";
10
11
  /**
11
- * Error-boundary decorator. If update() throws, catches the error
12
- * and calls the handler with (error, element).
12
+ * Error-boundary decorator works as class or method decorator.
13
13
  *
14
+ * Also handles @api fetch errors — when an API call fails,
15
+ * the same handler is invoked automatically.
16
+ *
17
+ * **Class decorator** (inline handler — catch-all):
14
18
  * ```ts
15
- * @component("my-page")
16
19
  * @catch_((err, el) => { el.shadow.innerHTML = `<p>Error: ${err}</p>`; })
17
20
  * class MyPage extends LoomElement { ... }
18
21
  * ```
22
+ *
23
+ * **Method decorator** (catch-all):
24
+ * ```ts
25
+ * @catch_
26
+ * handleError(err: unknown) { ... }
27
+ * ```
28
+ *
29
+ * **Named method decorator** (scoped to a specific @api accessor):
30
+ * ```ts
31
+ * @catch_("team")
32
+ * handleTeamError(err: unknown) { ... }
33
+ * ```
19
34
  */
20
- export function catch_(handler) {
35
+ export function catch_(handlerOrMethodOrName, context) {
36
+ // ── @catch_ (bare method decorator) ──
37
+ if (context && context.kind === "method") {
38
+ const method = handlerOrMethodOrName;
39
+ context.addInitializer(function () {
40
+ const handler = (err, el) => method.call(el, err, el);
41
+ this[CATCH_HANDLER] = handler;
42
+ const origUpdate = this.update?.bind(this);
43
+ if (origUpdate) {
44
+ this.update = function () {
45
+ try {
46
+ return origUpdate();
47
+ }
48
+ catch (err) {
49
+ handler(err, this);
50
+ return null;
51
+ }
52
+ };
53
+ }
54
+ });
55
+ return;
56
+ }
57
+ // ── @catch_("name") (named method decorator) ──
58
+ if (typeof handlerOrMethodOrName === "string") {
59
+ const name = handlerOrMethodOrName;
60
+ return (method, ctx) => {
61
+ ctx.addInitializer(function () {
62
+ if (!this[CATCH_HANDLERS])
63
+ this[CATCH_HANDLERS] = new Map();
64
+ const handler = (err, el) => method.call(el, err, el);
65
+ this[CATCH_HANDLERS].set(name, handler);
66
+ });
67
+ };
68
+ }
69
+ // ── @catch_((err, el) => { ... }) (class decorator — catch-all) ──
70
+ const handler = handlerOrMethodOrName;
21
71
  return (value, _context) => {
72
+ value.prototype[CATCH_HANDLER] = handler;
22
73
  const origUpdate = value.prototype.update;
23
74
  value.prototype.update = function () {
24
75
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/element/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQtD;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CAAC,OAAgB;IACrC,OAAO,CAAC,KAAe,EAAE,QAA+B,EAAE,EAAE;QAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG;YACvB,IAAI,CAAC;gBACH,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,EAAE,IAA4C,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,MAAgB,EAAE,OAAoC,EAAE,EAAE;QAChE,OAAO,UAAqB,GAAG,IAAW;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,OAAO,EAAE;iBACrB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;iBACtC,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE;gBACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;gBACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;gBACjB,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAGD;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,MAAgB,EAAE,OAAoC;IAC1E,OAAO,CAAC,cAAc,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAO,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,MAAgB,EAAE,OAAoC;IAC5E,OAAO,CAAC,cAAc,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QACnD,0DAA0D;QAC1D,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAO,EAAE,EAAE;YACnC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/element/lifecycle.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -27,4 +27,6 @@ export type { TransformSchema } from "./transform";
27
27
  export { on, emit, createDecorator } from "./decorators";
28
28
  export { LoomRouter, RouteChanged, route, guard, group, matchRoute, routes, LoomOutlet, LoomLink, HashMode, HistoryMode, onRouteEnter, onRouteLeave, } from "./router";
29
29
  export type { RouterMode, RouterOptions, RouteInfo, RouteEntry, GroupMeta } from "./router";
30
+ export { api, intercept, createApiState } from "./query";
31
+ export type { ApiCtx, ApiState, ApiOptions, InterceptOptions } from "./query";
30
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,EACL,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EACvE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC5C,KAAK,EACL,KAAK,GACN,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EAAE,OAAO,EAAE,YAAY,EACjC,cAAc,EAAE,aAAa,EAAE,cAAc,GAC9C,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,uGAAuG;AACvG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAClC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAC7B,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGxH,OAAO,EACL,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAC/D,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGzD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,EACL,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EACvE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC5C,KAAK,EACL,KAAK,GACN,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EAAE,OAAO,EAAE,YAAY,EACjC,cAAc,EAAE,aAAa,EAAE,cAAc,GAC9C,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,uGAAuG;AACvG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAClC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAC7B,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGxH,OAAO,EACL,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAC/D,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGzD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG5F,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzD,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -32,4 +32,6 @@ export { transform, createTransform, typed, typedTransformer, toNumber, toBoolea
32
32
  export { on, emit, createDecorator } from "./decorators";
33
33
  // Router
34
34
  export { LoomRouter, RouteChanged, route, guard, group, matchRoute, routes, LoomOutlet, LoomLink, HashMode, HistoryMode, onRouteEnter, onRouteLeave, } from "./router";
35
+ // Query: @api data fetching + @intercept middleware
36
+ export { api, intercept, createApiState } from "./query";
35
37
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kBAAkB;AAClB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wDAAwD;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,0BAA0B;AAE1B,qCAAqC;AACrC,OAAO,EACL,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EACvE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC5C,KAAK,EACL,KAAK,GACN,MAAM,SAAS,CAAC;AAMjB,mCAAmC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,uGAAuG;AACvG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,MAAM,CAAC;AAE7C,0CAA0C;AAC1C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAClC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAC7B,MAAM,WAAW,CAAC;AAGnB,8BAA8B;AAC9B,OAAO,EACL,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAC/D,MAAM,aAAa,CAAC;AAGrB,yCAAyC;AACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEzD,SAAS;AACT,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kBAAkB;AAClB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wDAAwD;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,0BAA0B;AAE1B,qCAAqC;AACrC,OAAO,EACL,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EACvE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC5C,KAAK,EACL,KAAK,GACN,MAAM,SAAS,CAAC;AAMjB,mCAAmC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,uGAAuG;AACvG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,MAAM,CAAC;AAE7C,0CAA0C;AAC1C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAClC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAC7B,MAAM,WAAW,CAAC;AAGnB,8BAA8B;AAC9B,OAAO,EACL,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAC/D,MAAM,aAAa,CAAC;AAGrB,yCAAyC;AACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEzD,SAAS;AACT,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,oDAAoD;AACpD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Loom — @api + @intercept decorators
3
+ *
4
+ * @api<T>(fn | opts) — auto-accessor decorator for async data fetching.
5
+ * @intercept(name?) — method decorator for named request interceptors.
6
+ *
7
+ * Models interceptors after @guard: named, globally registered, DI-aware.
8
+ */
9
+ import type { ApiState, ApiOptions } from "./types";
10
+ export { interceptRegistry } from "./registry";
11
+ /** Options for @intercept */
12
+ export interface InterceptOptions {
13
+ name?: string;
14
+ /** When true, runs after the fetch (response transformer) instead of before */
15
+ after?: boolean;
16
+ }
17
+ /**
18
+ * Mark a method as a named API interceptor.
19
+ *
20
+ * Interceptors receive a mutable ApiCtx and can modify url, headers, params, init.
21
+ * Return false to block the request (same as @guard).
22
+ * Name defaults to the method name if not provided (same as @guard).
23
+ *
24
+ * Pre-fetch (default):
25
+ * ```ts
26
+ * @intercept()
27
+ * auth(ctx: ApiCtx) { ctx.headers["Authorization"] = `Bearer ${jwt}`; }
28
+ * ```
29
+ *
30
+ * Post-fetch (response transformer):
31
+ * ```ts
32
+ * @intercept({ after: true })
33
+ * json(ctx: ApiCtx) { return ctx.response!.json(); }
34
+ * ```
35
+ */
36
+ export declare const intercept: (nameOrOpts?: string | InterceptOptions | undefined) => (method: Function, context: ClassMethodDecoratorContext) => void;
37
+ /**
38
+ * @api<T>(fn | opts) — Auto-accessor decorator for async data fetching.
39
+ *
40
+ * Simple form:
41
+ * ```ts
42
+ * @api<User>(() => fetch("/api/me").then(r => r.json()))
43
+ * accessor user!: ApiState<User>;
44
+ * ```
45
+ *
46
+ * Options form:
47
+ * ```ts
48
+ * @api<Post>({
49
+ * fn: (el) => fetch(`/api/posts/${el.postId}`).then(r => r.json()),
50
+ * key: (el) => `/api/posts/${el.postId}`,
51
+ * use: ["auth", "json"],
52
+ * staleTime: 30_000,
53
+ * retry: 3,
54
+ * })
55
+ * accessor post!: ApiState<Post>;
56
+ * ```
57
+ */
58
+ export declare function api<T extends object>(fnOrOpts: ((el?: any) => Promise<T>) | ApiOptions<T>): <This extends object>(_target: ClassAccessorDecoratorTarget<This, ApiState<T>>, context: ClassAccessorDecoratorContext<This, ApiState<T>>) => ClassAccessorDecoratorResult<This, ApiState<T>>;
59
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/query/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAyB,MAAM,SAAS,CAAC;AAK3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C,6BAA6B;AAC7B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,SAAS,0HAMrB,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,EAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAE5C,IAAI,SAAS,MAAM,EACzB,SAAS,4BAA4B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EACxD,SAAS,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KACxD,4BAA4B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAmBnD"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Loom — @api + @intercept decorators
3
+ *
4
+ * @api<T>(fn | opts) — auto-accessor decorator for async data fetching.
5
+ * @intercept(name?) — method decorator for named request interceptors.
6
+ *
7
+ * Models interceptors after @guard: named, globally registered, DI-aware.
8
+ */
9
+ import { createDecorator } from "../decorators/create";
10
+ import { createApiState } from "./state";
11
+ import { interceptRegistry } from "./registry";
12
+ // Re-export for barrel
13
+ export { interceptRegistry } from "./registry";
14
+ /**
15
+ * Mark a method as a named API interceptor.
16
+ *
17
+ * Interceptors receive a mutable ApiCtx and can modify url, headers, params, init.
18
+ * Return false to block the request (same as @guard).
19
+ * Name defaults to the method name if not provided (same as @guard).
20
+ *
21
+ * Pre-fetch (default):
22
+ * ```ts
23
+ * @intercept()
24
+ * auth(ctx: ApiCtx) { ctx.headers["Authorization"] = `Bearer ${jwt}`; }
25
+ * ```
26
+ *
27
+ * Post-fetch (response transformer):
28
+ * ```ts
29
+ * @intercept({ after: true })
30
+ * json(ctx: ApiCtx) { return ctx.response!.json(); }
31
+ * ```
32
+ */
33
+ export const intercept = createDecorator((method, key, nameOrOpts) => {
34
+ const opts = typeof nameOrOpts === "string" ? { name: nameOrOpts } : (nameOrOpts ?? {});
35
+ const interceptName = opts.name ?? key;
36
+ interceptRegistry.set(interceptName, { method, key, after: opts.after });
37
+ });
38
+ // ── @api (auto-accessor decorator) ──
39
+ /**
40
+ * @api<T>(fn | opts) — Auto-accessor decorator for async data fetching.
41
+ *
42
+ * Simple form:
43
+ * ```ts
44
+ * @api<User>(() => fetch("/api/me").then(r => r.json()))
45
+ * accessor user!: ApiState<User>;
46
+ * ```
47
+ *
48
+ * Options form:
49
+ * ```ts
50
+ * @api<Post>({
51
+ * fn: (el) => fetch(`/api/posts/${el.postId}`).then(r => r.json()),
52
+ * key: (el) => `/api/posts/${el.postId}`,
53
+ * use: ["auth", "json"],
54
+ * staleTime: 30_000,
55
+ * retry: 3,
56
+ * })
57
+ * accessor post!: ApiState<Post>;
58
+ * ```
59
+ */
60
+ export function api(fnOrOpts) {
61
+ return (_target, context) => {
62
+ const stateKey = Symbol(`api:${String(context.name)}`);
63
+ const opts = typeof fnOrOpts === "function" ? { fn: fnOrOpts } : fnOrOpts;
64
+ return {
65
+ get() {
66
+ if (!this[stateKey]) {
67
+ const scheduleUpdate = () => this.scheduleUpdate?.();
68
+ this[stateKey] = createApiState(opts, scheduleUpdate, this, String(context.name));
69
+ }
70
+ return this[stateKey];
71
+ },
72
+ set(_val) {
73
+ // Ignore external sets — state is managed internally
74
+ },
75
+ };
76
+ };
77
+ }
78
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/query/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,uBAAuB;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAa/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CACtC,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;IAC1B,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACxF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;IACvC,iBAAiB,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3E,CAAC,CACF,CAAC;AAEF,uCAAuC;AAEvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,GAAG,CACjB,QAAoD;IAEpD,OAAO,CACL,OAAwD,EACxD,OAAyD,EACR,EAAE;QACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,MAAM,IAAI,GACR,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE/D,OAAO;YACL,GAAG;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAI,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvF,CAAC;gBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,GAAG,CAAY,IAAiB;gBAC9B,qDAAqD;YACvD,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Loom — Query module barrel
3
+ */
4
+ export type { ApiCtx, ApiState, ApiOptions, InterceptRegistration } from "./types";
5
+ export { createApiState } from "./state";
6
+ export { api, intercept, interceptRegistry } from "./decorators";
7
+ export type { InterceptOptions } from "./decorators";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGnF,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Loom — Query module barrel
3
+ */
4
+ // Core factory
5
+ export { createApiState } from "./state";
6
+ // Decorators
7
+ export { api, intercept, interceptRegistry } from "./decorators";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,aAAa;AACb,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Loom — Intercept Registry
3
+ *
4
+ * Global registry for @intercept-decorated methods.
5
+ * Separated from decorators to avoid circular imports with state.ts.
6
+ */
7
+ import type { InterceptRegistration } from "./types";
8
+ /** Global interceptor registry — populated by @intercept decorator */
9
+ export declare const interceptRegistry: Map<string, InterceptRegistration>;
10
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/query/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,oCAA2C,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Loom — Intercept Registry
3
+ *
4
+ * Global registry for @intercept-decorated methods.
5
+ * Separated from decorators to avoid circular imports with state.ts.
6
+ */
7
+ /** Global interceptor registry — populated by @intercept decorator */
8
+ export const interceptRegistry = new Map();
9
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/query/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAiC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Loom — createApiState
3
+ *
4
+ * Pure factory (no DOM dependency) — testable in isolation.
5
+ * Mirrors createFormState's pattern.
6
+ */
7
+ import type { ApiState, ApiOptions } from "./types";
8
+ /** Create an ApiState<T> instance bound to a host element */
9
+ export declare function createApiState<T>(opts: ApiOptions<T>, scheduleUpdate: () => void, host?: any, apiName?: string): ApiState<T>;
10
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/query/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAiC,MAAM,SAAS,CAAC;AAMnF,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,cAAc,EAAE,MAAM,IAAI,EAC1B,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,GACf,QAAQ,CAAC,CAAC,CAAC,CAyMb"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Loom — createApiState
3
+ *
4
+ * Pure factory (no DOM dependency) — testable in isolation.
5
+ * Mirrors createFormState's pattern.
6
+ */
7
+ import { interceptRegistry } from "./registry";
8
+ import { app } from "../app";
9
+ import { CATCH_HANDLER, CATCH_HANDLERS } from "../decorators/symbols";
10
+ import { INJECT_PARAMS } from "../decorators/symbols";
11
+ /** Create an ApiState<T> instance bound to a host element */
12
+ export function createApiState(opts, scheduleUpdate, host, apiName) {
13
+ let data;
14
+ let error;
15
+ let loading = true;
16
+ let stale = false;
17
+ let lastKey;
18
+ let lastFetchTime = 0;
19
+ let controller = null;
20
+ let fetching = false;
21
+ const staleTime = opts.staleTime ?? 0;
22
+ const maxRetries = opts.retry ?? 0;
23
+ async function runFetch() {
24
+ // Abort any in-flight request
25
+ controller?.abort();
26
+ controller = new AbortController();
27
+ const { signal } = controller;
28
+ loading = data === undefined; // SWR: only show loading if no data yet
29
+ error = undefined;
30
+ stale = false;
31
+ fetching = true;
32
+ scheduleUpdate();
33
+ // ── Run interceptors ──
34
+ const ctx = {
35
+ url: "",
36
+ headers: {},
37
+ params: {},
38
+ init: {},
39
+ signal,
40
+ };
41
+ if (opts.use) {
42
+ for (const name of opts.use) {
43
+ const reg = interceptRegistry.get(name);
44
+ if (!reg) {
45
+ console.warn(`[Loom] @intercept "${name}" not found in registry`);
46
+ continue;
47
+ }
48
+ // Resolve @inject params (same pattern as @guard in router)
49
+ const args = resolveInjectParams(reg.method, reg.key);
50
+ const result = await reg.method.call(null, ctx, ...args);
51
+ if (result === false) {
52
+ error = new Error(`Interceptor "${name}" blocked the request`);
53
+ loading = false;
54
+ fetching = false;
55
+ scheduleUpdate();
56
+ return;
57
+ }
58
+ }
59
+ }
60
+ // Merge ctx.params into URL
61
+ let url = ctx.url || "";
62
+ const paramStr = new URLSearchParams(ctx.params).toString();
63
+ if (paramStr) {
64
+ url += (url.includes("?") ? "&" : "?") + paramStr;
65
+ }
66
+ // Build final RequestInit
67
+ const init = {
68
+ ...ctx.init,
69
+ headers: { ...ctx.headers, ...ctx.init.headers },
70
+ signal,
71
+ };
72
+ // ── Execute fetch with retry ──
73
+ let attempt = 0;
74
+ while (true) {
75
+ try {
76
+ // The user's fn does the actual fetch — we pass interceptor-enriched context
77
+ // via host element (the fn can read ctx through closure or we modify fetch globally)
78
+ // Actually: the fn is user-provided and does its own fetch().
79
+ // Interceptors modify the context which the user accesses if they want,
80
+ // but the PRIMARY use is: interceptor sets headers, we wrap fetch.
81
+ data = await opts.fn(host);
82
+ // ── Run pipe (after) interceptors ──
83
+ if (opts.pipe) {
84
+ for (const name of opts.pipe) {
85
+ const reg = interceptRegistry.get(name);
86
+ if (!reg) {
87
+ console.warn(`[Loom] @intercept pipe "${name}" not found in registry`);
88
+ continue;
89
+ }
90
+ ctx.response = data; // expose raw result to transformer
91
+ const args = resolveInjectParams(reg.method, reg.key);
92
+ const result = await reg.method.call(null, ctx, ...args);
93
+ if (result !== undefined) {
94
+ data = result;
95
+ }
96
+ }
97
+ }
98
+ error = undefined;
99
+ loading = false;
100
+ fetching = false;
101
+ lastFetchTime = Date.now();
102
+ scheduleUpdate();
103
+ return;
104
+ }
105
+ catch (e) {
106
+ if (signal.aborted) {
107
+ fetching = false;
108
+ return; // Key changed or disconnected — silently stop
109
+ }
110
+ attempt++;
111
+ if (attempt > maxRetries) {
112
+ error = e instanceof Error ? e : new Error(String(e));
113
+ loading = false;
114
+ fetching = false;
115
+ // Invoke @catch_ handler if present on host
116
+ // Named handler (@catch_("name")) takes priority over catch-all
117
+ const namedMap = host?.[CATCH_HANDLERS];
118
+ const catchFn = (apiName && namedMap?.get(apiName)) || host?.[CATCH_HANDLER];
119
+ if (typeof catchFn === "function") {
120
+ try {
121
+ catchFn(error, host);
122
+ }
123
+ catch (_) { /* handler threw — swallow */ }
124
+ }
125
+ scheduleUpdate();
126
+ return;
127
+ }
128
+ // Exponential backoff: 200ms, 400ms, 800ms...
129
+ await new Promise((r) => setTimeout(r, 200 * Math.pow(2, attempt - 1)));
130
+ }
131
+ }
132
+ }
133
+ /** Check if current key matches — if not, refetch */
134
+ function checkKey() {
135
+ if (!opts.key)
136
+ return;
137
+ const newKey = opts.key(host);
138
+ if (newKey !== lastKey) {
139
+ lastKey = newKey;
140
+ runFetch();
141
+ }
142
+ }
143
+ /** Check if stale */
144
+ function checkStale() {
145
+ if (staleTime > 0 && lastFetchTime > 0 && !stale) {
146
+ if (Date.now() - lastFetchTime > staleTime) {
147
+ stale = true;
148
+ }
149
+ }
150
+ }
151
+ // Resolve @inject params for interceptor methods
152
+ function resolveInjectParams(method, methodKey) {
153
+ const proto = method;
154
+ const injectMeta = proto[INJECT_PARAMS] ?? [];
155
+ const methodParams = injectMeta
156
+ .filter((m) => m.method === methodKey)
157
+ .sort((a, b) => a.index - b.index);
158
+ if (methodParams.length === 0)
159
+ return [];
160
+ const args = [];
161
+ for (const param of methodParams) {
162
+ args[param.index] = app.get(param.key);
163
+ }
164
+ return args;
165
+ }
166
+ const state = {
167
+ get data() {
168
+ checkKey();
169
+ checkStale();
170
+ return data;
171
+ },
172
+ get error() {
173
+ return error;
174
+ },
175
+ get loading() {
176
+ return loading;
177
+ },
178
+ get stale() {
179
+ checkStale();
180
+ return stale;
181
+ },
182
+ async refetch() {
183
+ await runFetch();
184
+ },
185
+ invalidate() {
186
+ stale = true;
187
+ runFetch();
188
+ },
189
+ };
190
+ // Fire initial fetch
191
+ if (opts.key) {
192
+ lastKey = opts.key(host);
193
+ }
194
+ runFetch();
195
+ return state;
196
+ }
197
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/query/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Loom — @api types
3
+ *
4
+ * Shared interfaces for the API query module.
5
+ */
6
+ /** Context passed to @intercept methods — mutate properties to modify the fetch */
7
+ export interface ApiCtx {
8
+ /** Request URL — prepend base, append paths */
9
+ url: string;
10
+ /** Request headers — add auth tokens, content type */
11
+ headers: Record<string, string>;
12
+ /** Query params — merged into URL as ?key=val */
13
+ params: Record<string, string>;
14
+ /** Raw RequestInit overrides — method, body, credentials, etc */
15
+ init: RequestInit;
16
+ /** Auto-managed AbortSignal — read-only */
17
+ signal: AbortSignal;
18
+ /** Raw Response object — available in `pipe` (after) interceptors */
19
+ response?: Response;
20
+ }
21
+ /** Registration entry in the global intercept registry */
22
+ export interface InterceptRegistration {
23
+ method: Function;
24
+ key: string;
25
+ /** When true, this interceptor runs after the fetch (response transformer) */
26
+ after?: boolean;
27
+ }
28
+ /** Reactive state container for an @api-decorated accessor */
29
+ export interface ApiState<T> {
30
+ /** Resolved data (undefined while loading or on error) */
31
+ readonly data: T | undefined;
32
+ /** Error from the last fetch attempt */
33
+ readonly error: Error | undefined;
34
+ /** True during the initial fetch or refetch */
35
+ readonly loading: boolean;
36
+ /** True when staleTime has elapsed since last successful fetch */
37
+ readonly stale: boolean;
38
+ /** Manually re-execute the fetch */
39
+ refetch(): Promise<void>;
40
+ /** Mark data as stale and trigger refetch */
41
+ invalidate(): void;
42
+ }
43
+ /** Options object form for @api */
44
+ export interface ApiOptions<T, El = any> {
45
+ /** The fetch function — receives the host element for parameterized queries */
46
+ fn: (el: El) => Promise<T>;
47
+ /** Dynamic cache key — when it changes, abort + refetch. Receives the host element */
48
+ key?: (el: El) => string;
49
+ /** Named interceptors to run before fetch (like guards on @route) */
50
+ use?: string[];
51
+ /** Named interceptors to run after fetch — transform the response (e.g. `.json()`) */
52
+ pipe?: string[];
53
+ /** Milliseconds before data is considered stale (default: 0 = always stale) */
54
+ staleTime?: number;
55
+ /** Number of retries on failure with exponential backoff (default: 0) */
56
+ retry?: number;
57
+ }
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/query/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,mFAAmF;AACnF,MAAM,WAAW,MAAM;IACrB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,iEAAiE;IACjE,IAAI,EAAE,WAAW,CAAC;IAClB,2CAA2C;IAC3C,MAAM,EAAE,WAAW,CAAC;IACpB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,QAAQ,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,8DAA8D;AAC9D,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,6CAA6C;IAC7C,UAAU,IAAI,IAAI,CAAC;CACpB;AAED,mCAAmC;AACnC,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG;IACrC,+EAA+E;IAC/E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,sFAAsF;IACtF,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,MAAM,CAAC;IACzB,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,sFAAsF;IACtF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Loom — @api types
3
+ *
4
+ * Shared interfaces for the API query module.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/query/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -5,7 +5,7 @@
5
5
  * its href to the current router mode (hash vs history).
6
6
  * Adds `.active` class when the current route matches.
7
7
  */
8
- import { LoomElement } from "../element";
8
+ import { LoomElement } from "../element/element";
9
9
  declare class LoomLink extends LoomElement {
10
10
  accessor to: string;
11
11
  /** Named route — when set, overrides `to` with the resolved path */
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/router/link.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOzC,cACM,QAAS,SAAQ,WAAW;IAC1B,QAAQ,CAAC,EAAE,SAAO;IACxB,oEAAoE;IAC9D,QAAQ,CAAC,IAAI,SAAM;IACzB,0EAA0E;IACpE,QAAQ,CAAC,MAAM,SAAM;IAEf,QAAQ,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAEhD,OAAO,KAAK,MAAM,GAEjB;IAED,iBAAiB;IA+BjB,6CAA6C;IAC7C,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,KAAK;CASd;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/router/link.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD,cACM,QAAS,SAAQ,WAAW;IAC1B,QAAQ,CAAC,EAAE,SAAO;IACxB,oEAAoE;IAC9D,QAAQ,CAAC,IAAI,SAAM;IACzB,0EAA0E;IACpE,QAAQ,CAAC,MAAM,SAAM;IAEf,QAAQ,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAEhD,OAAO,KAAK,MAAM,GAEjB;IAED,iBAAiB;IA+BjB,6CAA6C;IAC7C,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,KAAK;CASd;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -39,8 +39,10 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
39
39
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
40
40
  done = true;
41
41
  };
42
- import { LoomElement } from "../element";
43
- import { component, prop, on, query } from "../decorators";
42
+ import { LoomElement } from "../element/element";
43
+ import { component, query } from "../element/decorators";
44
+ import { prop } from "../store/decorators";
45
+ import { on } from "../decorators/events";
44
46
  import { app } from "../app";
45
47
  import { LoomRouter } from "./router";
46
48
  import { RouteChanged } from "./events";
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/router/link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/router/link.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"outlet.d.ts","sourceRoot":"","sources":["../../src/router/outlet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,cACM,UAAW,SAAQ,WAAW;IAClC,sEAAsE;IAChE,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAM;IACtC,QAAQ,CAAC,WAAW,UAAQ;IAElC,oEAAoE;IACpE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEtD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,gBAAgB,CAAS;IAGjC,cAAc,CAAC,CAAC,EAAE,YAAY;IAI9B,0EAA0E;IAC1E,YAAY;IAUZ,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,MAAM;IAmBd;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAyCxB,2CAA2C;IAC3C,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,YAAY;CAkBrB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"outlet.d.ts","sourceRoot":"","sources":["../../src/router/outlet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,cACM,UAAW,SAAQ,WAAW;IAClC,sEAAsE;IAChE,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAM;IACtC,QAAQ,CAAC,WAAW,UAAQ;IAElC,oEAAoE;IACpE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEtD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,gBAAgB,CAAS;IAGjC,cAAc,CAAC,CAAC,EAAE,YAAY;IAI9B,0EAA0E;IAC1E,YAAY;IAUZ,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,MAAM;IAmBd;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAyCxB,2CAA2C;IAC3C,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,YAAY;CAkBrB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -43,7 +43,10 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
43
43
  done = true;
44
44
  };
45
45
  import { LoomElement } from "../element/element";
46
- import { component, on, prop, ROUTE_PROPS, TRANSFORMS } from "../decorators";
46
+ import { component } from "../element/decorators";
47
+ import { on } from "../decorators/events";
48
+ import { prop } from "../store/decorators";
49
+ import { ROUTE_PROPS, TRANSFORMS } from "../decorators/symbols";
47
50
  import { matchRoute } from "./route";
48
51
  import { RouteChanged } from "./events";
49
52
  import { params as paramsSentinel, routeQuery as querySentinel } from "../store/decorators";
@@ -1 +1 @@
1
- {"version":3,"file":"outlet.js","sourceRoot":"","sources":["../../src/router/outlet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outlet.js","sourceRoot":"","sources":["../../src/router/outlet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toyz/loom",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "type": "module",
5
5
  "description": "Decorator-driven web component framework with reactive state, DOM morphing, DI, and JSX",
6
6
  "license": "MIT",