@lokascript/core 1.1.0 → 1.1.2

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 (46) hide show
  1. package/dist/behaviors/index.js +1151 -0
  2. package/dist/behaviors/index.js.map +1 -0
  3. package/dist/behaviors/index.mjs +1141 -0
  4. package/dist/behaviors/index.mjs.map +1 -0
  5. package/dist/commands/index.js +9080 -0
  6. package/dist/commands/index.js.map +1 -0
  7. package/dist/commands/index.mjs +8922 -0
  8. package/dist/commands/index.mjs.map +1 -0
  9. package/dist/expressions/index.js +6484 -0
  10. package/dist/expressions/index.js.map +1 -0
  11. package/dist/expressions/index.mjs +6466 -0
  12. package/dist/expressions/index.mjs.map +1 -0
  13. package/dist/metadata.js +378 -0
  14. package/dist/metadata.js.map +1 -0
  15. package/dist/metadata.mjs +368 -0
  16. package/dist/metadata.mjs.map +1 -0
  17. package/dist/parser/full-parser.js +6408 -0
  18. package/dist/parser/full-parser.js.map +1 -0
  19. package/dist/parser/full-parser.mjs +6405 -0
  20. package/dist/parser/full-parser.mjs.map +1 -0
  21. package/dist/parser/regex-parser.js +412 -0
  22. package/dist/parser/regex-parser.js.map +1 -0
  23. package/dist/parser/regex-parser.mjs +409 -0
  24. package/dist/parser/regex-parser.mjs.map +1 -0
  25. package/dist/reference/index.js +602 -0
  26. package/dist/reference/index.js.map +1 -0
  27. package/dist/reference/index.mjs +593 -0
  28. package/dist/reference/index.mjs.map +1 -0
  29. package/dist/registry/browser-types.js +81 -0
  30. package/dist/registry/browser-types.js.map +1 -0
  31. package/dist/registry/browser-types.mjs +76 -0
  32. package/dist/registry/browser-types.mjs.map +1 -0
  33. package/dist/registry/environment.js +36 -0
  34. package/dist/registry/environment.js.map +1 -0
  35. package/dist/registry/environment.mjs +30 -0
  36. package/dist/registry/environment.mjs.map +1 -0
  37. package/dist/registry/index.js +7111 -0
  38. package/dist/registry/index.js.map +1 -0
  39. package/dist/registry/index.mjs +7087 -0
  40. package/dist/registry/index.mjs.map +1 -0
  41. package/dist/registry/universal-types.js +91 -0
  42. package/dist/registry/universal-types.js.map +1 -0
  43. package/dist/registry/universal-types.mjs +86 -0
  44. package/dist/registry/universal-types.mjs.map +1 -0
  45. package/package.json +2 -2
  46. package/src/expressions/properties/impl/index.test.ts +3 -2
@@ -0,0 +1,91 @@
1
+ 'use strict';
2
+
3
+ function isBrowserEnvironment() {
4
+ return typeof window !== 'undefined' && typeof document !== 'undefined';
5
+ }
6
+ function isNodeEnvironment() {
7
+ return (typeof process !== 'undefined' && process.versions != null && process.versions.node != null);
8
+ }
9
+
10
+ function createTimerEventSource(name, interval) {
11
+ return {
12
+ name,
13
+ description: `Timer that fires every ${interval}ms`,
14
+ supportedEvents: [name],
15
+ subscribe(options, context) {
16
+ const handler = () => {
17
+ const payload = {
18
+ type: name,
19
+ data: { timestamp: Date.now() },
20
+ target: isBrowserEnvironment() && typeof document !== 'undefined' ? document.body : {},
21
+ };
22
+ options.handler(payload, context);
23
+ };
24
+ const timerId = setInterval(handler, interval);
25
+ return {
26
+ id: `${name}_${Date.now()}_${Math.random().toString(36).slice(2)}`,
27
+ source: name,
28
+ event: name,
29
+ unsubscribe: () => clearInterval(timerId),
30
+ };
31
+ },
32
+ supports(event) {
33
+ return event === name;
34
+ },
35
+ };
36
+ }
37
+ function createAdaptiveEventSource(name, options) {
38
+ return {
39
+ name,
40
+ description: options?.description ?? `Adaptive ${name} events`,
41
+ supportedEvents: [name],
42
+ subscribe(subscribeOptions, context) {
43
+ let unsubscribe;
44
+ if (isBrowserEnvironment()) {
45
+ const handler = (e) => {
46
+ const customEvent = e;
47
+ const payload = {
48
+ type: name,
49
+ data: customEvent.detail,
50
+ target: e.target instanceof Element ? e.target : null,
51
+ nativeEvent: e,
52
+ };
53
+ subscribeOptions.handler(payload, context);
54
+ };
55
+ document.addEventListener(name, handler);
56
+ unsubscribe = () => document.removeEventListener(name, handler);
57
+ }
58
+ else if (isNodeEnvironment()) {
59
+ unsubscribe = () => {
60
+ };
61
+ }
62
+ else {
63
+ unsubscribe = () => { };
64
+ }
65
+ return {
66
+ id: `${name}_${Date.now()}_${Math.random().toString(36).slice(2)}`,
67
+ source: name,
68
+ event: name,
69
+ unsubscribe,
70
+ };
71
+ },
72
+ supports(event) {
73
+ return event === name;
74
+ },
75
+ };
76
+ }
77
+ function isBrowserLikePayload(payload) {
78
+ return isBrowserEnvironment() && (payload.target == null || payload.target instanceof Element);
79
+ }
80
+ function isServerLikePayload(payload) {
81
+ return (isNodeEnvironment() &&
82
+ typeof payload.data === 'object' &&
83
+ payload.data !== null &&
84
+ 'request' in payload.data);
85
+ }
86
+
87
+ exports.createAdaptiveEventSource = createAdaptiveEventSource;
88
+ exports.createTimerEventSource = createTimerEventSource;
89
+ exports.isBrowserLikePayload = isBrowserLikePayload;
90
+ exports.isServerLikePayload = isServerLikePayload;
91
+ //# sourceMappingURL=universal-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal-types.js","sources":["../../../src/registry/environment.ts","../../../src/registry/universal-types.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ function isBrowserEnvironment() {
2
+ return typeof window !== 'undefined' && typeof document !== 'undefined';
3
+ }
4
+ function isNodeEnvironment() {
5
+ return (typeof process !== 'undefined' && process.versions != null && process.versions.node != null);
6
+ }
7
+
8
+ function createTimerEventSource(name, interval) {
9
+ return {
10
+ name,
11
+ description: `Timer that fires every ${interval}ms`,
12
+ supportedEvents: [name],
13
+ subscribe(options, context) {
14
+ const handler = () => {
15
+ const payload = {
16
+ type: name,
17
+ data: { timestamp: Date.now() },
18
+ target: isBrowserEnvironment() && typeof document !== 'undefined' ? document.body : {},
19
+ };
20
+ options.handler(payload, context);
21
+ };
22
+ const timerId = setInterval(handler, interval);
23
+ return {
24
+ id: `${name}_${Date.now()}_${Math.random().toString(36).slice(2)}`,
25
+ source: name,
26
+ event: name,
27
+ unsubscribe: () => clearInterval(timerId),
28
+ };
29
+ },
30
+ supports(event) {
31
+ return event === name;
32
+ },
33
+ };
34
+ }
35
+ function createAdaptiveEventSource(name, options) {
36
+ return {
37
+ name,
38
+ description: options?.description ?? `Adaptive ${name} events`,
39
+ supportedEvents: [name],
40
+ subscribe(subscribeOptions, context) {
41
+ let unsubscribe;
42
+ if (isBrowserEnvironment()) {
43
+ const handler = (e) => {
44
+ const customEvent = e;
45
+ const payload = {
46
+ type: name,
47
+ data: customEvent.detail,
48
+ target: e.target instanceof Element ? e.target : null,
49
+ nativeEvent: e,
50
+ };
51
+ subscribeOptions.handler(payload, context);
52
+ };
53
+ document.addEventListener(name, handler);
54
+ unsubscribe = () => document.removeEventListener(name, handler);
55
+ }
56
+ else if (isNodeEnvironment()) {
57
+ unsubscribe = () => {
58
+ };
59
+ }
60
+ else {
61
+ unsubscribe = () => { };
62
+ }
63
+ return {
64
+ id: `${name}_${Date.now()}_${Math.random().toString(36).slice(2)}`,
65
+ source: name,
66
+ event: name,
67
+ unsubscribe,
68
+ };
69
+ },
70
+ supports(event) {
71
+ return event === name;
72
+ },
73
+ };
74
+ }
75
+ function isBrowserLikePayload(payload) {
76
+ return isBrowserEnvironment() && (payload.target == null || payload.target instanceof Element);
77
+ }
78
+ function isServerLikePayload(payload) {
79
+ return (isNodeEnvironment() &&
80
+ typeof payload.data === 'object' &&
81
+ payload.data !== null &&
82
+ 'request' in payload.data);
83
+ }
84
+
85
+ export { createAdaptiveEventSource, createTimerEventSource, isBrowserLikePayload, isServerLikePayload };
86
+ //# sourceMappingURL=universal-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal-types.mjs","sources":["../../../src/registry/environment.ts","../../../src/registry/universal-types.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokascript/core",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Multilingual, tree-shakeable hyperscript",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -86,7 +86,7 @@
86
86
  "require": "./dist/parser/regex-parser.js"
87
87
  },
88
88
  "./browser/modular": {
89
- "default": "./dist/lokascript-modular.js"
89
+ "default": "./dist/hyperfixi.mjs"
90
90
  },
91
91
  "./behaviors": {
92
92
  "types": "./dist/behaviors/index.d.ts",
@@ -974,9 +974,10 @@ describe('Enhanced Property Expressions', () => {
974
974
  durations.push(duration);
975
975
  }
976
976
 
977
- // Performance should be consistent (all operations under 5ms)
977
+ // Performance should be consistent (all operations under 50ms)
978
+ // Note: CI environments have variable performance, so we use a generous threshold
978
979
  durations.forEach(duration => {
979
- expect(duration).toBeLessThan(5);
980
+ expect(duration).toBeLessThan(50);
980
981
  });
981
982
  });
982
983
  });