@omriashke/dynamico-core 0.1.7 → 0.1.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAC9C,OAAO,CAuBT"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAoCxC;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAC9C,OAAO,CAwBT"}
package/dist/loader.js CHANGED
@@ -1,3 +1,39 @@
1
+ /** esbuild CJS bundles assign exports before the component function; materialize at end. */
2
+ function patchEsbuildDefaultExport(code) {
3
+ const m = code.match(/default:\s*\(\)\s*=>\s*(\w+)/);
4
+ if (!m)
5
+ return code;
6
+ const fn = m[1];
7
+ return `${code}\n;try{var __d=${fn};if(typeof __d==='function'){try{Object.defineProperty(module.exports,'default',{value:__d,enumerable:true,writable:true,configurable:true});}catch(e){module.exports.default=__d;}}}catch(e){}\n`;
8
+ }
9
+ /** Replace getter-only exports with plain values (Hermes-safe). */
10
+ function materializeGetterExports(exports) {
11
+ for (const key of Object.getOwnPropertyNames(exports)) {
12
+ const desc = Object.getOwnPropertyDescriptor(exports, key);
13
+ if (!desc?.get || desc.set)
14
+ continue;
15
+ try {
16
+ const value = desc.get.call(exports);
17
+ if (value !== undefined) {
18
+ try {
19
+ Object.defineProperty(exports, key, {
20
+ value,
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ });
25
+ }
26
+ catch {
27
+ // Hermes may leave non-configurable getters; assign directly.
28
+ exports[key] = value;
29
+ }
30
+ }
31
+ }
32
+ catch {
33
+ /* leave getter */
34
+ }
35
+ }
36
+ }
1
37
  /**
2
38
  * Execute a CommonJS-style code string in a controlled scope.
3
39
  *
@@ -27,8 +63,9 @@ export function loadModule(code, scope, requireRelative) {
27
63
  };
28
64
  // The compiled body is just the function body; arguments are well-known.
29
65
  // eslint-disable-next-line no-new-func
30
- const fn = new Function("module", "exports", "require", code);
66
+ const fn = new Function("module", "exports", "require", patchEsbuildDefaultExport(code));
31
67
  fn(moduleObj, moduleObj.exports, requireFn);
68
+ materializeGetterExports(moduleObj.exports);
32
69
  return moduleObj.exports;
33
70
  }
34
71
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,KAAY,EACZ,eAA+C;IAE/C,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,EAA6B,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAW,EAAE;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5E,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,uEAAuE;QACvE,gEAAgE;QAChE,sDAAsD;QACtD,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,sEAAsE,CACzF,CAAC;IACJ,CAAC,CAAC;IAEF,yEAAyE;IACzE,uCAAuC;IACvC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9D,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE5C,OAAO,SAAS,CAAC,OAAO,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,SAAS,yBAAyB,CAAC,IAAY;IAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACrD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,GAAG,IAAI,kBAAkB,EAAE,mMAAmM,CAAC;AACxO,CAAC;AAED,mEAAmE;AACnE,SAAS,wBAAwB,CAAC,OAAgC;IAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG;YAAE,SAAS;QACrC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE;wBAClC,KAAK;wBACL,UAAU,EAAE,IAAI;wBAChB,YAAY,EAAE,IAAI;wBAClB,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,8DAA8D;oBAC7D,OAAmC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,KAAY,EACZ,eAA+C;IAE/C,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,EAA6B,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAW,EAAE;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5E,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,uEAAuE;QACvE,gEAAgE;QAChE,sDAAsD;QACtD,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,sEAAsE,CACzF,CAAC;IACJ,CAAC,CAAC;IAEF,yEAAyE;IACzE,uCAAuC;IACvC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5C,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,SAAS,CAAC,OAAO,CAAC;AAC3B,CAAC"}
@@ -98,15 +98,26 @@ export function createRuntime(defaultScope, options = {}) {
98
98
  return { DynamicoProvider, DynamicComponent, useDynamico, useScope };
99
99
  }
100
100
  function pickDefault(factory) {
101
- if (factory && typeof factory === "object") {
102
- if ("default" in factory && factory.default)
103
- return factory.default;
104
- // CommonJS interop: the value itself may be the component
105
- if (typeof factory === "function")
106
- return factory;
107
- }
108
101
  if (typeof factory === "function")
109
102
  return factory;
103
+ if (!factory || typeof factory !== "object")
104
+ return undefined;
105
+ if ("default" in factory) {
106
+ const desc = Object.getOwnPropertyDescriptor(factory, "default");
107
+ if (desc?.get && !desc.set) {
108
+ try {
109
+ const fromGetter = desc.get.call(factory);
110
+ if (typeof fromGetter === "function")
111
+ return fromGetter;
112
+ }
113
+ catch {
114
+ /* fall through */
115
+ }
116
+ }
117
+ const d = factory.default;
118
+ if (typeof d === "function")
119
+ return d;
120
+ }
110
121
  return undefined;
111
122
  }
112
123
  function defaultErrorView(error) {
@@ -1 +1 @@
1
- {"version":3,"file":"createRuntime.js","sourceRoot":"","sources":["../../src/react/createRuntime.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createRuntime.js","sourceRoot":"","sources":["../../src/react/createRuntime.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omriashke/dynamico-core",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "Renderer-agnostic core for dynamico: source adapters, module loader, versioned component registry.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
package/src/loader.ts CHANGED
@@ -1,5 +1,39 @@
1
1
  import type { Scope } from "./types.js";
2
2
 
3
+ /** esbuild CJS bundles assign exports before the component function; materialize at end. */
4
+ function patchEsbuildDefaultExport(code: string): string {
5
+ const m = code.match(/default:\s*\(\)\s*=>\s*(\w+)/);
6
+ if (!m) return code;
7
+ const fn = m[1];
8
+ return `${code}\n;try{var __d=${fn};if(typeof __d==='function'){try{Object.defineProperty(module.exports,'default',{value:__d,enumerable:true,writable:true,configurable:true});}catch(e){module.exports.default=__d;}}}catch(e){}\n`;
9
+ }
10
+
11
+ /** Replace getter-only exports with plain values (Hermes-safe). */
12
+ function materializeGetterExports(exports: Record<string, unknown>): void {
13
+ for (const key of Object.getOwnPropertyNames(exports)) {
14
+ const desc = Object.getOwnPropertyDescriptor(exports, key);
15
+ if (!desc?.get || desc.set) continue;
16
+ try {
17
+ const value = desc.get.call(exports);
18
+ if (value !== undefined) {
19
+ try {
20
+ Object.defineProperty(exports, key, {
21
+ value,
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ });
26
+ } catch {
27
+ // Hermes may leave non-configurable getters; assign directly.
28
+ (exports as Record<string, unknown>)[key] = value;
29
+ }
30
+ }
31
+ } catch {
32
+ /* leave getter */
33
+ }
34
+ }
35
+ }
36
+
3
37
  /**
4
38
  * Execute a CommonJS-style code string in a controlled scope.
5
39
  *
@@ -36,8 +70,9 @@ export function loadModule(
36
70
 
37
71
  // The compiled body is just the function body; arguments are well-known.
38
72
  // eslint-disable-next-line no-new-func
39
- const fn = new Function("module", "exports", "require", code);
73
+ const fn = new Function("module", "exports", "require", patchEsbuildDefaultExport(code));
40
74
  fn(moduleObj, moduleObj.exports, requireFn);
75
+ materializeGetterExports(moduleObj.exports);
41
76
 
42
77
  return moduleObj.exports;
43
78
  }
@@ -187,12 +187,21 @@ export function createRuntime(
187
187
  }
188
188
 
189
189
  function pickDefault(factory: ComponentFactory): unknown {
190
- if (factory && typeof factory === "object") {
191
- if ("default" in factory && factory.default) return factory.default;
192
- // CommonJS interop: the value itself may be the component
193
- if (typeof factory === "function") return factory;
194
- }
195
190
  if (typeof factory === "function") return factory;
191
+ if (!factory || typeof factory !== "object") return undefined;
192
+ if ("default" in factory) {
193
+ const desc = Object.getOwnPropertyDescriptor(factory, "default");
194
+ if (desc?.get && !desc.set) {
195
+ try {
196
+ const fromGetter = desc.get.call(factory);
197
+ if (typeof fromGetter === "function") return fromGetter;
198
+ } catch {
199
+ /* fall through */
200
+ }
201
+ }
202
+ const d = factory.default;
203
+ if (typeof d === "function") return d;
204
+ }
196
205
  return undefined;
197
206
  }
198
207