xml-model 0.3.0 → 1.0.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 (135) hide show
  1. package/README.md +46 -1
  2. package/dist/defaults.d.ts +14 -0
  3. package/dist/defaults.js +129 -0
  4. package/{build/main → dist}/errors.d.ts +1 -1
  5. package/dist/errors.js +51 -0
  6. package/dist/index.d.ts +6 -0
  7. package/dist/index.js +19 -0
  8. package/{build/main → dist}/middleware.d.ts +2 -2
  9. package/dist/middleware.js +31 -0
  10. package/dist/model/built-ins.d.ts +2 -0
  11. package/dist/model/built-ins.js +46 -0
  12. package/{build/module → dist}/model/index.d.ts +7 -11
  13. package/dist/model/index.js +242 -0
  14. package/{build/main → dist}/model/property.d.ts +2 -2
  15. package/dist/model/property.js +71 -0
  16. package/dist/model/registry.d.ts +8 -0
  17. package/dist/model/registry.js +26 -0
  18. package/{build/module → dist}/model/types.d.ts +7 -7
  19. package/dist/model/types.js +2 -0
  20. package/{build/module → dist}/types.d.ts +4 -4
  21. package/dist/types.js +2 -0
  22. package/dist/util/is-regexp.d.ts +11 -0
  23. package/dist/util/is-regexp.js +11 -0
  24. package/dist/util/kebab-case.d.ts +15 -0
  25. package/dist/util/kebab-case.js +18 -0
  26. package/dist/util/merge-maps.js +27 -0
  27. package/{build/main → dist}/xml/index.d.ts +4 -4
  28. package/dist/xml/index.js +73 -0
  29. package/{build/main → dist}/xml/xml-js.d.ts +1 -4
  30. package/dist/xml/xml-js.js +9 -0
  31. package/package.json +56 -39
  32. package/vite/dist/_virtual/_commonjs-dynamic-modules.js +7 -0
  33. package/vite/dist/_virtual/_commonjsHelpers.js +47 -0
  34. package/vite/dist/_virtual/_typescript.js +5 -0
  35. package/vite/dist/_virtual/api-call-transformer.js +5 -0
  36. package/vite/dist/_virtual/class-analyzer.js +5 -0
  37. package/vite/dist/_virtual/compile-error.js +5 -0
  38. package/vite/dist/_virtual/declarations-emitter.js +5 -0
  39. package/vite/dist/_virtual/encode-parameter.js +5 -0
  40. package/vite/dist/_virtual/find-relative-path.js +5 -0
  41. package/vite/dist/_virtual/flags.js +5 -0
  42. package/vite/dist/_virtual/format.js +5 -0
  43. package/vite/dist/_virtual/forward-ref.js +5 -0
  44. package/vite/dist/_virtual/get-exports-for-symbol.js +5 -0
  45. package/vite/dist/_virtual/import-analyzer.js +5 -0
  46. package/vite/dist/_virtual/index.js +8 -0
  47. package/vite/dist/_virtual/index2.js +5 -0
  48. package/vite/dist/_virtual/index3.js +5 -0
  49. package/vite/dist/_virtual/interface-analyzer.js +5 -0
  50. package/vite/dist/_virtual/legacy-decorator.js +5 -0
  51. package/vite/dist/_virtual/legacy-type-encoder.js +5 -0
  52. package/vite/dist/_virtual/literal-node.js +5 -0
  53. package/vite/dist/_virtual/metadata-collector.js +5 -0
  54. package/vite/dist/_virtual/metadata-decorator.js +5 -0
  55. package/vite/dist/_virtual/metadata-emitter.js +5 -0
  56. package/vite/dist/_virtual/metadata-encoder.js +5 -0
  57. package/vite/dist/_virtual/rt-helper.js +5 -0
  58. package/vite/dist/_virtual/rtti-visitor-base.js +5 -0
  59. package/vite/dist/_virtual/serialize.js +5 -0
  60. package/vite/dist/_virtual/type-encoder.js +5 -0
  61. package/vite/dist/_virtual/type-literal.js +5 -0
  62. package/vite/dist/_virtual/utils.js +5 -0
  63. package/vite/dist/_virtual/visitor-base.js +5 -0
  64. package/vite/dist/_virtual/workarounds.js +5 -0
  65. package/vite/dist/index.d.ts +21 -0
  66. package/vite/dist/index.js +62 -0
  67. package/vite/dist/node_modules/typescript-rtti/dist/common/format.js +69 -0
  68. package/vite/dist/node_modules/typescript-rtti/dist/common/index.js +34 -0
  69. package/vite/dist/node_modules/typescript-rtti/dist/transformer/api-call-transformer.js +197 -0
  70. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/class-analyzer.js +124 -0
  71. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/compile-error.js +18 -0
  72. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/import-analyzer.js +130 -0
  73. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/interface-analyzer.js +98 -0
  74. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/visitor-base.js +132 -0
  75. package/vite/dist/node_modules/typescript-rtti/dist/transformer/declarations-emitter.js +72 -0
  76. package/vite/dist/node_modules/typescript-rtti/dist/transformer/encode-parameter.js +110 -0
  77. package/vite/dist/node_modules/typescript-rtti/dist/transformer/find-relative-path.js +51 -0
  78. package/vite/dist/node_modules/typescript-rtti/dist/transformer/flags.js +59 -0
  79. package/vite/dist/node_modules/typescript-rtti/dist/transformer/forward-ref.js +35 -0
  80. package/vite/dist/node_modules/typescript-rtti/dist/transformer/get-exports-for-symbol.js +75 -0
  81. package/vite/dist/node_modules/typescript-rtti/dist/transformer/index.js +174 -0
  82. package/vite/dist/node_modules/typescript-rtti/dist/transformer/legacy-decorator.js +20 -0
  83. package/vite/dist/node_modules/typescript-rtti/dist/transformer/legacy-type-encoder.js +123 -0
  84. package/vite/dist/node_modules/typescript-rtti/dist/transformer/literal-node.js +19 -0
  85. package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-collector.js +96 -0
  86. package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-decorator.js +99 -0
  87. package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-emitter.js +475 -0
  88. package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-encoder.js +261 -0
  89. package/vite/dist/node_modules/typescript-rtti/dist/transformer/rt-helper.js +113 -0
  90. package/vite/dist/node_modules/typescript-rtti/dist/transformer/rtti-visitor-base.js +39 -0
  91. package/vite/dist/node_modules/typescript-rtti/dist/transformer/serialize.js +46 -0
  92. package/vite/dist/node_modules/typescript-rtti/dist/transformer/type-encoder.js +96 -0
  93. package/vite/dist/node_modules/typescript-rtti/dist/transformer/type-literal.js +546 -0
  94. package/vite/dist/node_modules/typescript-rtti/dist/transformer/utils.js +922 -0
  95. package/vite/dist/node_modules/typescript-rtti/dist/transformer/workarounds.js +16 -0
  96. package/build/main/defaults/index.d.ts +0 -14
  97. package/build/main/defaults/index.js +0 -170
  98. package/build/main/defaults/models.d.ts +0 -1
  99. package/build/main/defaults/models.js +0 -55
  100. package/build/main/errors.js +0 -93
  101. package/build/main/helper/merge-maps.js +0 -42
  102. package/build/main/index.d.ts +0 -6
  103. package/build/main/index.js +0 -46
  104. package/build/main/middleware.js +0 -61
  105. package/build/main/model/index.d.ts +0 -23
  106. package/build/main/model/index.js +0 -342
  107. package/build/main/model/property.js +0 -100
  108. package/build/main/model/types.d.ts +0 -73
  109. package/build/main/model/types.js +0 -152
  110. package/build/main/types.d.ts +0 -16
  111. package/build/main/types.js +0 -41
  112. package/build/main/xml/index.js +0 -105
  113. package/build/main/xml/xml-js.js +0 -26
  114. package/build/module/defaults/index.d.ts +0 -14
  115. package/build/module/defaults/index.js +0 -164
  116. package/build/module/defaults/models.d.ts +0 -1
  117. package/build/module/defaults/models.js +0 -54
  118. package/build/module/errors.d.ts +0 -23
  119. package/build/module/errors.js +0 -89
  120. package/build/module/helper/merge-maps.d.ts +0 -1
  121. package/build/module/helper/merge-maps.js +0 -39
  122. package/build/module/index.d.ts +0 -6
  123. package/build/module/index.js +0 -21
  124. package/build/module/middleware.d.ts +0 -9
  125. package/build/module/middleware.js +0 -56
  126. package/build/module/model/index.js +0 -334
  127. package/build/module/model/property.d.ts +0 -5
  128. package/build/module/model/property.js +0 -99
  129. package/build/module/model/types.js +0 -152
  130. package/build/module/types.js +0 -38
  131. package/build/module/xml/index.d.ts +0 -32
  132. package/build/module/xml/index.js +0 -94
  133. package/build/module/xml/xml-js.d.ts +0 -9
  134. package/build/module/xml/xml-js.js +0 -24
  135. /package/{build/main/helper → dist/util}/merge-maps.d.ts +0 -0
@@ -1,89 +0,0 @@
1
- const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metadata(k, v)(t, ...a) : void 0, f: (f, d, n) => (d.forEach(d => d(f)), Object.defineProperty(f, "name", { value: n, writable: false }), f), c: (c, d, dp, dsp, n) => (d.forEach(d => d(c)), dp.forEach(([p, d]) => d(c.prototype, p)), dsp.forEach(([p, d]) => d(c, p)), n ? Object.defineProperty(c, "name", { value: n, writable: false }) : undefined, c), r: (o, a) => (Object.assign(o, a)), a: id => {
2
- let t = __RΦ.t[id];
3
- if (t === void 0)
4
- return void 0;
5
- if (t.RΦ) {
6
- let r = t.RΦ;
7
- delete t.RΦ;
8
- __RΦ.r(t, r(t));
9
- }
10
- else if (t.LΦ) {
11
- let l = t.LΦ();
12
- delete t.LΦ;
13
- __RΦ.t[id] = t = l;
14
- }
15
- return t;
16
- }, t: { [2698]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(2699), p: [__RΦ.a(2696), __RΦ.a(211)], m: [{ n: "model", f: "", t: __RΦ.a(2700) }, { n: "xml", f: "", t: __RΦ.a(100) }] }) }, [2699]: { LΦ: t => Object }, [2696]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(220), p: [__RΦ.a(2641)] }) }, [220]: { LΦ: t => LΦ_0.IΦfromXMLContext }, [2641]: { LΦ: t => Object }, [211]: { LΦ: t => "properties" }, [2700]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(2641)] }) }, [269]: { LΦ: t => LΦ_1.XMLModel }, [100]: { RΦ: t => ({ TΦ: "O", m: [{ n: "elements", f: "", t: __RΦ.a(96) }] }) }, [96]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(93) }) }, [93]: { LΦ: t => LΦ_2.IΦXMLElement }, [8]: { RΦ: t => ({ TΦ: "U" }) }, [13]: { LΦ: t => String }, [2650]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(2651), p: [__RΦ.a(2648), __RΦ.a(211)], m: [{ n: "model", f: "", t: __RΦ.a(2654) }, { n: "xml", f: "", t: __RΦ.a(100) }] }) }, [2651]: { LΦ: t => Object }, [2648]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(220), p: [__RΦ.a(2646)] }) }, [2646]: { LΦ: t => Object }, [2654]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(2646)] }) }, [2652]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(298), p: [__RΦ.a(2646)] }) }, [298]: { LΦ: t => LΦ_0.IΦPropertyFromXMLContext }, [2717]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(2718), p: [__RΦ.a(2715), __RΦ.a(211)], m: [{ n: "object", f: "", t: __RΦ.a(2664) }, { n: "model", f: "", t: __RΦ.a(2719) }] }) }, [2718]: { LΦ: t => Object }, [2715]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(258), p: [__RΦ.a(2664)] }) }, [258]: { LΦ: t => LΦ_0.IΦtoXMLContext }, [2664]: { LΦ: t => Object }, [2719]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(2664)] }) }, [2673]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(2674), p: [__RΦ.a(2671), __RΦ.a(211)], m: [{ n: "object", f: "", t: __RΦ.a(2669) }, { n: "model", f: "", t: __RΦ.a(2679) }] }) }, [2674]: { LΦ: t => Object }, [2671]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(258), p: [__RΦ.a(2669)] }) }, [2669]: { LΦ: t => Object }, [2679]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(2669)] }) }, [2675]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1322), p: [__RΦ.a(2669)] }) }, [1322]: { LΦ: t => LΦ_0.IΦPropertyToXMLContext } } };
17
- import * as LΦ_0 from "./model/types";
18
- import * as LΦ_1 from "./model";
19
- import * as LΦ_2 from "./types";
20
- export class FromXMLConversionError extends Error {
21
- constructor(context, error) {
22
- const message = `[Model: ${context.model.type.name}] failed to convert from XML`;
23
- super(message);
24
- this.context = context;
25
- this.error = error;
26
- this.name = "FromXMLConversionError";
27
- }
28
- }
29
- (t => __RΦ.t[2640] = t)(FromXMLConversionError);
30
- __RΦ.m("rt:SP", [])(FromXMLConversionError);
31
- __RΦ.m("rt:P", ["name", "context", "error"])(FromXMLConversionError);
32
- __RΦ.m("rt:Sm", [])(FromXMLConversionError);
33
- __RΦ.m("rt:m", [])(FromXMLConversionError);
34
- __RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(2698), b: void 0, v: null, f: "$" }, { n: "error", t: () => __RΦ.a(8), b: void 0, v: null, f: "$" }])(FromXMLConversionError);
35
- __RΦ.m("rt:f", "Ce")(FromXMLConversionError);
36
- __RΦ.m("rt:t", () => __RΦ.a(13))(FromXMLConversionError.prototype, "name");
37
- __RΦ.m("rt:f", "P")(FromXMLConversionError.prototype, "name");
38
- export class PropertyFromXMLConversionError extends FromXMLConversionError {
39
- constructor(context, propertyContext, error) {
40
- super(context, error);
41
- this.propertyContext = propertyContext;
42
- this.name = "PropertyFromXMLConversionError";
43
- this.message = `[Model: ${context.model.type.name}] failed to convert prop <${String(propertyContext.property.name)}> from XML`;
44
- }
45
- }
46
- (t => __RΦ.t[2645] = t)(PropertyFromXMLConversionError);
47
- __RΦ.m("rt:SP", [])(PropertyFromXMLConversionError);
48
- __RΦ.m("rt:P", ["name", "propertyContext"])(PropertyFromXMLConversionError);
49
- __RΦ.m("rt:Sm", [])(PropertyFromXMLConversionError);
50
- __RΦ.m("rt:m", [])(PropertyFromXMLConversionError);
51
- __RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(2650), b: void 0, v: null }, { n: "propertyContext", t: () => __RΦ.a(2652), b: void 0, v: null, f: "$" }, { n: "error", t: () => __RΦ.a(8), b: void 0, v: null }])(PropertyFromXMLConversionError);
52
- __RΦ.m("rt:f", "Ce")(PropertyFromXMLConversionError);
53
- __RΦ.m("rt:t", () => __RΦ.a(13))(PropertyFromXMLConversionError.prototype, "name");
54
- __RΦ.m("rt:f", "P")(PropertyFromXMLConversionError.prototype, "name");
55
- export class ToXMLConversionError extends Error {
56
- constructor(context, cause) {
57
- const message = `[Model: ${context.model.type.name}] failed to convert to XML`;
58
- super(message);
59
- this.context = context;
60
- this.cause = cause;
61
- this.name = "ToXMLConversionError";
62
- }
63
- }
64
- (t => __RΦ.t[2663] = t)(ToXMLConversionError);
65
- __RΦ.m("rt:SP", [])(ToXMLConversionError);
66
- __RΦ.m("rt:P", ["name", "context", "cause"])(ToXMLConversionError);
67
- __RΦ.m("rt:Sm", [])(ToXMLConversionError);
68
- __RΦ.m("rt:m", [])(ToXMLConversionError);
69
- __RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(2717), b: void 0, v: null, f: "$" }, { n: "cause", t: () => __RΦ.a(8), b: void 0, v: null, f: "$" }])(ToXMLConversionError);
70
- __RΦ.m("rt:f", "Ce")(ToXMLConversionError);
71
- __RΦ.m("rt:t", () => __RΦ.a(13))(ToXMLConversionError.prototype, "name");
72
- __RΦ.m("rt:f", "P")(ToXMLConversionError.prototype, "name");
73
- export class PropertyToXMLConversionError extends ToXMLConversionError {
74
- constructor(context, propertyContext, cause) {
75
- super(context, cause);
76
- this.propertyContext = propertyContext;
77
- this.name = "PropertyToXMLConversionError";
78
- this.message = `[Model: ${context.model.type.name}] failed to convert prop <${String(propertyContext.property.name)}> to XML`;
79
- }
80
- }
81
- (t => __RΦ.t[2668] = t)(PropertyToXMLConversionError);
82
- __RΦ.m("rt:SP", [])(PropertyToXMLConversionError);
83
- __RΦ.m("rt:P", ["name", "propertyContext"])(PropertyToXMLConversionError);
84
- __RΦ.m("rt:Sm", [])(PropertyToXMLConversionError);
85
- __RΦ.m("rt:m", [])(PropertyToXMLConversionError);
86
- __RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(2673), b: void 0, v: null }, { n: "propertyContext", t: () => __RΦ.a(2675), b: void 0, v: null, f: "$" }, { n: "cause", t: () => __RΦ.a(8), b: void 0, v: null }])(PropertyToXMLConversionError);
87
- __RΦ.m("rt:f", "Ce")(PropertyToXMLConversionError);
88
- __RΦ.m("rt:t", () => __RΦ.a(13))(PropertyToXMLConversionError.prototype, "name");
89
- __RΦ.m("rt:f", "P")(PropertyToXMLConversionError.prototype, "name");
@@ -1 +0,0 @@
1
- export default function mergeMaps<K, V>(...sources: Map<K, V>[]): Map<K, V>;
@@ -1,39 +0,0 @@
1
- const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metadata(k, v)(t, ...a) : void 0, f: (f, d, n) => (d.forEach(d => d(f)), Object.defineProperty(f, "name", { value: n, writable: false }), f), c: (c, d, dp, dsp, n) => (d.forEach(d => d(c)), dp.forEach(([p, d]) => d(c.prototype, p)), dsp.forEach(([p, d]) => d(c, p)), n ? Object.defineProperty(c, "name", { value: n, writable: false }) : undefined, c), r: (o, a) => (Object.assign(o, a)), a: id => {
2
- let t = __RΦ.t[id];
3
- if (t === void 0)
4
- return void 0;
5
- if (t.RΦ) {
6
- let r = t.RΦ;
7
- delete t.RΦ;
8
- __RΦ.r(t, r(t));
9
- }
10
- else if (t.LΦ) {
11
- let l = t.LΦ();
12
- delete t.LΦ;
13
- __RΦ.t[id] = t = l;
14
- }
15
- return t;
16
- }, t: { [2362]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(2361) }) }, [2361]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1066), p: [__RΦ.a(2359), __RΦ.a(2360)] }) }, [1066]: { LΦ: t => Map }, [2359]: { LΦ: t => Object }, [2360]: { LΦ: t => Object }, [4]: { RΦ: t => ({ TΦ: "~" }) }, [22]: { RΦ: t => ({ TΦ: "V" }) } } };
17
- export default function mergeMaps(...sources) {
18
- const res = new Map();
19
- sources.forEach(__RΦ.f((source) => {
20
- const overrides = new Map();
21
- const additions = new Map();
22
- source.forEach(__RΦ.f((val, key) => (res.has(key) ? overrides : additions).set(key, val), [__RΦ.m("rt:p", [{ n: "val", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "key", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(2361))], ""));
23
- if (overrides.size) {
24
- const entries = Array.from(res.entries());
25
- entries.forEach(__RΦ.f((entry) => {
26
- const key = entry[0];
27
- if (overrides.has(key))
28
- entry[1] = overrides.get(key);
29
- }, [__RΦ.m("rt:p", [{ n: "entry", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
30
- res.clear();
31
- entries.forEach(__RΦ.f(([key, val]) => res.set(key, val), [__RΦ.m("rt:p", [{ n: void 0, t: () => __RΦ.a(4), b: [{ n: "key", t: () => __RΦ.a(2359), b: void 0, v: null }, { n: "val", t: () => __RΦ.a(2360), b: void 0, v: null }], v: null, f: "[" }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(2361))], ""));
32
- }
33
- additions.forEach(__RΦ.f((val, key) => res.set(key, val), [__RΦ.m("rt:p", [{ n: "val", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "key", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(2361))], ""));
34
- }, [__RΦ.m("rt:p", [{ n: "source", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
35
- return res;
36
- }
37
- __RΦ.m("rt:p", [{ n: "sources", t: () => __RΦ.a(2362), b: void 0, v: null, f: "3" }])(mergeMaps);
38
- __RΦ.m("rt:f", "F")(mergeMaps);
39
- __RΦ.m("rt:t", () => __RΦ.a(2361))(mergeMaps);
@@ -1,6 +0,0 @@
1
- export type { XMLElement, XMLRoot, Constructor } from "./types";
2
- export { defaults } from "./defaults";
3
- export { getModel, createModel, Model, Prop } from "./model";
4
- export * from "./errors";
5
- import XML from "./xml";
6
- export { XML };
@@ -1,21 +0,0 @@
1
- const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metadata(k, v)(t, ...a) : void 0, f: (f, d, n) => (d.forEach(d => d(f)), Object.defineProperty(f, "name", { value: n, writable: false }), f), c: (c, d, dp, dsp, n) => (d.forEach(d => d(c)), dp.forEach(([p, d]) => d(c.prototype, p)), dsp.forEach(([p, d]) => d(c, p)), n ? Object.defineProperty(c, "name", { value: n, writable: false }) : undefined, c), r: (o, a) => (Object.assign(o, a)), a: id => {
2
- let t = __RΦ.t[id];
3
- if (t === void 0)
4
- return void 0;
5
- if (t.RΦ) {
6
- let r = t.RΦ;
7
- delete t.RΦ;
8
- __RΦ.r(t, r(t));
9
- }
10
- else if (t.LΦ) {
11
- let l = t.LΦ();
12
- delete t.LΦ;
13
- __RΦ.t[id] = t = l;
14
- }
15
- return t;
16
- }, t: {} };
17
- export { defaults } from "./defaults";
18
- export { getModel, createModel, Model, Prop } from "./model";
19
- export * from "./errors";
20
- import XML from "./xml";
21
- export { XML };
@@ -1,9 +0,0 @@
1
- export declare type Middleware<C, T> = (context: C, next: () => T) => T;
2
- interface ChainableOptions<C, T> {
3
- parent: ChainableOptions<C, T> | null;
4
- middlewares: Middleware<C, T>[];
5
- }
6
- export declare function MiddlewareChain<C, T>(options: ChainableOptions<C, T>): Generator<Middleware<C, T>, void, unknown>;
7
- declare type MiddlewareChain<C, T> = Iterator<Middleware<C, T>>;
8
- export declare function resolve<C, T>(middlewares: MiddlewareChain<C, T>, context: C): T;
9
- export {};
@@ -1,56 +0,0 @@
1
- const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metadata(k, v)(t, ...a) : void 0, f: (f, d, n) => (d.forEach(d => d(f)), Object.defineProperty(f, "name", { value: n, writable: false }), f), c: (c, d, dp, dsp, n) => (d.forEach(d => d(c)), dp.forEach(([p, d]) => d(c.prototype, p)), dsp.forEach(([p, d]) => d(c, p)), n ? Object.defineProperty(c, "name", { value: n, writable: false }) : undefined, c), r: (o, a) => (Object.assign(o, a)), a: id => {
2
- let t = __RΦ.t[id];
3
- if (t === void 0)
4
- return void 0;
5
- if (t.RΦ) {
6
- let r = t.RΦ;
7
- delete t.RΦ;
8
- __RΦ.r(t, r(t));
9
- }
10
- else if (t.LΦ) {
11
- let l = t.LΦ();
12
- delete t.LΦ;
13
- __RΦ.t[id] = t = l;
14
- }
15
- return t;
16
- }, t: { [109]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(106)] }) }, [12]: { RΦ: t => ({ TΦ: "n" }) }, [106]: { TΦ: "5", name: "ChainableOptions" }, [112]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(111) }) }, [111]: { RΦ: t => ({ TΦ: "O", m: [] }) }, [115]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(106), p: [__RΦ.a(113), __RΦ.a(114)] }) }, [113]: { LΦ: t => Object }, [114]: { LΦ: t => Object }, [134]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(129), p: [__RΦ.a(116), __RΦ.a(22), __RΦ.a(8)] }) }, [129]: { LΦ: t => Object }, [116]: { RΦ: t => ({ TΦ: "O", m: [] }) }, [22]: { RΦ: t => ({ TΦ: "V" }) }, [8]: { RΦ: t => ({ TΦ: "U" }) }, [146]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(138), p: [__RΦ.a(149), __RΦ.a(1), __RΦ.a(10)] }) }, [138]: { LΦ: t => Object }, [149]: { RΦ: t => ({ TΦ: "O", m: [] }) }, [1]: { RΦ: t => ({ TΦ: "~" }) }, [10]: { RΦ: t => ({ TΦ: "u" }) }, [144]: { LΦ: t => Object }, [145]: { LΦ: t => Object } } };
17
- var IΦChainableOptions = { name: "ChainableOptions", prototype: {}, identity: Symbol("ChainableOptions (interface)") };
18
- (t => __RΦ.t[106] = t)(IΦChainableOptions);
19
- __RΦ.m("rt:P", ["parent", "middlewares"])(IΦChainableOptions);
20
- __RΦ.m("rt:m", [])(IΦChainableOptions);
21
- __RΦ.m("rt:f", "I")(IΦChainableOptions);
22
- __RΦ.m("rt:t", () => __RΦ.a(109))(IΦChainableOptions.prototype, "parent");
23
- __RΦ.m("rt:f", "P")(IΦChainableOptions.prototype, "parent");
24
- __RΦ.m("rt:t", () => __RΦ.a(112))(IΦChainableOptions.prototype, "middlewares");
25
- __RΦ.m("rt:f", "P")(IΦChainableOptions.prototype, "middlewares");
26
- export function* MiddlewareChain(options) {
27
- do {
28
- for (let index = options.middlewares.length - 1; index >= 0; index--) {
29
- yield options.middlewares[index];
30
- }
31
- if (options.parent)
32
- options = options.parent;
33
- else
34
- return;
35
- } while (true);
36
- }
37
- __RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(115), b: void 0, v: null }])(MiddlewareChain);
38
- __RΦ.m("rt:f", "F")(MiddlewareChain);
39
- __RΦ.m("rt:t", () => __RΦ.a(134))(MiddlewareChain);
40
- export function resolve(middlewares, context) {
41
- const next = __RΦ.f(() => {
42
- const { value: nextMiddleware, done } = middlewares.next();
43
- if (done || !nextMiddleware) {
44
- // previous middlewares should have returned a value before
45
- // TODO: dedicated error class
46
- throw new Error("no more next middleware");
47
- }
48
- else {
49
- return nextMiddleware(context, next);
50
- }
51
- }, [__RΦ.m("rt:p", []), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(145))], "next");
52
- return next();
53
- }
54
- __RΦ.m("rt:p", [{ n: "middlewares", t: () => __RΦ.a(146), b: void 0, v: null }, { n: "context", t: () => __RΦ.a(144), b: void 0, v: null }])(resolve);
55
- __RΦ.m("rt:f", "F")(resolve);
56
- __RΦ.m("rt:t", () => __RΦ.a(145))(resolve);
@@ -1,334 +0,0 @@
1
- const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metadata(k, v)(t, ...a) : void 0, f: (f, d, n) => (d.forEach(d => d(f)), Object.defineProperty(f, "name", { value: n, writable: false }), f), c: (c, d, dp, dsp, n) => (d.forEach(d => d(c)), dp.forEach(([p, d]) => d(c.prototype, p)), dsp.forEach(([p, d]) => d(c, p)), n ? Object.defineProperty(c, "name", { value: n, writable: false }) : undefined, c), r: (o, a) => (Object.assign(o, a)), a: id => {
2
- let t = __RΦ.t[id];
3
- if (t === void 0)
4
- return void 0;
5
- if (t.RΦ) {
6
- let r = t.RΦ;
7
- delete t.RΦ;
8
- __RΦ.r(t, r(t));
9
- }
10
- else if (t.LΦ) {
11
- let l = t.LΦ();
12
- delete t.LΦ;
13
- __RΦ.t[id] = t = l;
14
- }
15
- return t;
16
- }, t: { [1316]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(270)] }) }, [777]: { LΦ: t => LΦ_0.IΦConstructor }, [270]: { LΦ: t => Object }, [1076]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(8)] }) }, [8]: { RΦ: t => ({ TΦ: "U" }) }, [2448]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(129), p: [__RΦ.a(1076), __RΦ.a(22), __RΦ.a(8)] }) }, [129]: { LΦ: t => Object }, [22]: { RΦ: t => ({ TΦ: "V" }) }, [272]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(1)] }) }, [269]: { TΦ: "5", name: "XMLModel" }, [1]: { RΦ: t => ({ TΦ: "~" }) }, [2452]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(272)] }) }, [12]: { RΦ: t => ({ TΦ: "n" }) }, [2461]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(2268), p: [__RΦ.a(270)] }) }, [2268]: { LΦ: t => LΦ_1.IΦCreateXMLModelOptions }, [527]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(198), p: [__RΦ.a(270)] }) }, [198]: { LΦ: t => LΦ_1.IΦXMLModelOptions }, [2485]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(2043)] }) }, [2043]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(335), __RΦ.a(2041)] }) }, [216]: { LΦ: t => LΦ_1.IΦConversionOptions }, [335]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(336), p: [__RΦ.a(279), __RΦ.a(211)], m: [{ n: "model", f: "", t: __RΦ.a(272) }, { n: "xml", f: "", t: __RΦ.a(100) }] }) }, [336]: { LΦ: t => Object }, [279]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(220), p: [__RΦ.a(1)] }) }, [220]: { LΦ: t => LΦ_1.IΦfromXMLContext }, [211]: { LΦ: t => "properties" }, [100]: { RΦ: t => ({ TΦ: "O", m: [{ n: "elements", f: "", t: __RΦ.a(96) }] }) }, [96]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(93) }) }, [93]: { LΦ: t => LΦ_2.IΦXMLElement }, [2041]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(2042), p: [__RΦ.a(1)], m: [] }) }, [2042]: { LΦ: t => Object }, [4]: { RΦ: t => ({ TΦ: "~" }) }, [576]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(577), p: [__RΦ.a(270)], m: [] }) }, [577]: { LΦ: t => Object }, [2493]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(2491)] }) }, [2491]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(1333), __RΦ.a(1302)] }) }, [1333]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(1334), p: [__RΦ.a(1293), __RΦ.a(211)], m: [{ n: "object", f: "", t: __RΦ.a(1) }, { n: "model", f: "", t: __RΦ.a(272) }] }) }, [1334]: { LΦ: t => Object }, [1293]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(258), p: [__RΦ.a(1)] }) }, [258]: { LΦ: t => LΦ_1.IΦtoXMLContext }, [1302]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(1303), p: [__RΦ.a(1)], m: [] }) }, [1303]: { LΦ: t => Object }, [1359]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(1360), p: [__RΦ.a(270)], m: [] }) }, [1360]: { LΦ: t => Object }, [20]: { LΦ: t => Boolean }, [579]: { RΦ: t => ({ TΦ: "O", m: [{ n: "fromXML", f: "", t: __RΦ.a(588) }, { n: "toXML", f: "", t: __RΦ.a(1369) }, { n: "options", f: "", t: __RΦ.a(1577) }] }) }, [588]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(586), __RΦ.a(576)] }) }, [586]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(587), p: [__RΦ.a(528), __RΦ.a(211)], m: [{ n: "model", f: "", t: __RΦ.a(269) }, { n: "xml", f: "", t: __RΦ.a(100) }] }) }, [587]: { LΦ: t => Object }, [528]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(220), p: [__RΦ.a(270)] }) }, [1369]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(1367), __RΦ.a(1359)] }) }, [1367]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(1368), p: [__RΦ.a(1340), __RΦ.a(211)], m: [{ n: "object", f: "", t: __RΦ.a(270) }, { n: "model", f: "", t: __RΦ.a(269) }] }) }, [1368]: { LΦ: t => Object }, [1340]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(258), p: [__RΦ.a(270)] }) }, [1577]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1066), p: [__RΦ.a(1575), __RΦ.a(1576)] }) }, [1066]: { LΦ: t => Map }, [1575]: { LΦ: t => Object }, [1576]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(235), p: [__RΦ.a(270)] }) }, [235]: { LΦ: t => LΦ_1.IΦXMLModelPropertyOptions }, [2509]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(2507)] }) }, [2507]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(279), __RΦ.a(1)] }) }, [2513]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(2511)] }) }, [2511]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(1293), __RΦ.a(100)] }) }, [13]: { LΦ: t => String }, [352]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(13), __RΦ.a(100)] }) }, [28]: { LΦ: t => Object }, [1768]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1764), p: [__RΦ.a(1316)] }) }, [1764]: { LΦ: t => LΦ_0.ReflectedClass }, [1562]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1066), p: [__RΦ.a(13), __RΦ.a(1561)] }) }, [1561]: { RΦ: t => ({ TΦ: "&", t: [__RΦ.a(338), __RΦ.a(1560)] }) }, [338]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(235), p: [__RΦ.a(1)] }) }, [1560]: { RΦ: t => ({ TΦ: "O", m: [{ n: "model", f: "", t: __RΦ.a(1) }] }) }, [2272]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(2267)] }) }, [2267]: { LΦ: t => Object }, [2271]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(2268), p: [__RΦ.a(2267)] }) }, [2302]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(2267)] }) }, [1055]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(1054)] }) }, [1054]: { LΦ: t => Object }, [1080]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(10), __RΦ.a(1079)] }) }, [10]: { RΦ: t => ({ TΦ: "u" }) }, [1079]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(1054)] }) }, [782]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(776)] }) }, [776]: { LΦ: t => Object }, [1081]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(776)] }) }, [2564]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(2268), p: [__RΦ.a(2563)] }) }, [2563]: { LΦ: t => Object }, [2566]: { RΦ: t => ({ TΦ: "F", r: __RΦ.a(22), p: [{ n: "constructor", t: () => __RΦ.a(2567), b: void 0, v: null }], f: "" }) }, [2567]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(2563)] }) } } };
17
- import { reflect } from "typescript-rtti";
18
- import { MiddlewareChain, resolve } from "../middleware";
19
- import { getPropertyConversionOptions } from "./property";
20
- import XML from "../xml";
21
- import { defaults } from "../defaults";
22
- function* ParentChain(constructor) {
23
- let parent = Object.getPrototypeOf(constructor);
24
- if (parent === constructor) {
25
- return;
26
- }
27
- while (parent) {
28
- yield parent;
29
- const _parent = Object.getPrototypeOf(constructor);
30
- if (parent === _parent) {
31
- return;
32
- }
33
- parent = _parent;
34
- }
35
- return;
36
- }
37
- __RΦ.m("rt:p", [{ n: "constructor", t: () => __RΦ.a(1076), b: void 0, v: null }])(ParentChain);
38
- __RΦ.m("rt:f", "F")(ParentChain);
39
- __RΦ.m("rt:t", () => __RΦ.a(2448))(ParentChain);
40
- import * as LΦ_1 from "./types";
41
- import * as LΦ_2 from "../types";
42
- function getParentModel(model) {
43
- if (model.options.parent)
44
- return model.options.parent;
45
- for (const constructor of ParentChain(model.type)) {
46
- const model = findModel(constructor);
47
- if (model) {
48
- return model;
49
- }
50
- }
51
- return null;
52
- }
53
- __RΦ.m("rt:p", [{ n: "model", t: () => __RΦ.a(272), b: void 0, v: null }])(getParentModel);
54
- __RΦ.m("rt:f", "F")(getParentModel);
55
- __RΦ.m("rt:t", () => __RΦ.a(2452))(getParentModel);
56
- import * as LΦ_0 from "typescript-rtti/dist";
57
- export class XMLModel {
58
- constructor(type, options) {
59
- this.type = type;
60
- // eslint-disable-next-line @typescript-eslint/no-this-alias
61
- const model = this;
62
- let parent = undefined;
63
- const getParent = __RΦ.f(() => {
64
- if (typeof parent === "undefined")
65
- parent = getParentModel(this);
66
- return parent;
67
- }, [__RΦ.m("rt:p", []), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(2452))], "getParent");
68
- let propertiesLoaded = false;
69
- const properties = {
70
- options: new Map(),
71
- fromXML: {
72
- get parent() {
73
- var _a;
74
- return ((_a = getParent()) === null || _a === void 0 ? void 0 : _a.options.properties.fromXML) || null;
75
- },
76
- middlewares: [
77
- __RΦ.f((context, next) => {
78
- const record = getParent() ? next() : {};
79
- properties.options.forEach(__RΦ.f((property) => {
80
- const xml = context.xml;
81
- const elements = property.resolveElements({
82
- model,
83
- xml,
84
- property,
85
- });
86
- const propertyFromXMLContext = {
87
- model,
88
- xml: context.xml,
89
- property,
90
- elements,
91
- };
92
- try {
93
- record[property.name] = property.fromXML(propertyFromXMLContext);
94
- }
95
- catch (error) {
96
- if (error instanceof FromXMLConversionError) {
97
- // TODO: might add some more context
98
- throw error;
99
- }
100
- else {
101
- throw new PropertyFromXMLConversionError(context, propertyFromXMLContext, error);
102
- }
103
- }
104
- }, [__RΦ.m("rt:p", [{ n: "property", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
105
- return record;
106
- }, [__RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "next", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(576))], ""),
107
- ],
108
- },
109
- toXML: {
110
- get parent() {
111
- var _a;
112
- return ((_a = getParent()) === null || _a === void 0 ? void 0 : _a.options.properties.toXML) || null;
113
- },
114
- middlewares: [
115
- __RΦ.f((context, next) => {
116
- const record = getParent() ? next() : {};
117
- properties.options.forEach(__RΦ.f((options) => {
118
- const propertyToXMLContext = {
119
- model,
120
- object: context.object,
121
- property: options,
122
- value: context.object[options.name],
123
- };
124
- try {
125
- record[options.name] = options.toXML(propertyToXMLContext);
126
- }
127
- catch (error) {
128
- if (error instanceof ToXMLConversionError) {
129
- // TODO: might add some more context
130
- throw error;
131
- }
132
- else {
133
- throw new PropertyToXMLConversionError(context, propertyToXMLContext, error);
134
- }
135
- }
136
- }, [__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
137
- return record;
138
- }, [__RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "next", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(1359))], ""),
139
- ],
140
- },
141
- };
142
- const loadProperties = __RΦ.f(() => {
143
- const props = this.reflectedClass.ownProperties.filter(__RΦ.f((prop) => typeof prop.host.constructor.prototype[prop.name] !== "function", [__RΦ.m("rt:p", [{ n: "prop", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(20))], "")); // filter out methods like String.prototype.concat etc... that are seen as properties
144
- props.forEach(__RΦ.f((property) => {
145
- const options = getPropertyConversionOptions(this.type, property.name);
146
- if (!options.ignored) {
147
- properties.options.set(property.name, options);
148
- }
149
- }, [__RΦ.m("rt:p", [{ n: "property", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
150
- propertiesLoaded = true;
151
- }, [__RΦ.m("rt:p", []), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], "");
152
- this.options = {
153
- get properties() {
154
- if (!propertiesLoaded)
155
- loadProperties();
156
- return properties;
157
- },
158
- fromXML: {
159
- middlewares: [],
160
- get parent() {
161
- var _a;
162
- return ((_a = getParent()) === null || _a === void 0 ? void 0 : _a.options.fromXML) || null;
163
- },
164
- },
165
- toXML: {
166
- middlewares: [],
167
- get parent() {
168
- var _a;
169
- return ((_a = getParent()) === null || _a === void 0 ? void 0 : _a.options.toXML) || null;
170
- },
171
- },
172
- get tagname() {
173
- return options.tagname || defaults.tagnameFromModel(model);
174
- },
175
- };
176
- if (options.parent)
177
- this.options.parent = options.parent;
178
- if (!getParent()) {
179
- this.options.fromXML.middlewares.push(__RΦ.f((...args) => defaults.fromXML(...args), [__RΦ.m("rt:p", [{ n: "args", t: () => __RΦ.a(4), b: void 0, v: null, f: "3" }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(1))], ""));
180
- this.options.toXML.middlewares.push(__RΦ.f((...args) => defaults.toXML(...args), [__RΦ.m("rt:p", [{ n: "args", t: () => __RΦ.a(4), b: void 0, v: null, f: "3" }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(100))], ""));
181
- }
182
- if (options.fromXML)
183
- this.options.fromXML.middlewares.push(options.fromXML);
184
- if (options.toXML)
185
- this.options.toXML.middlewares.push(options.toXML);
186
- }
187
- fromXML(xml) {
188
- const _xml = typeof xml === "string" ? XML.parse(xml) : xml;
189
- // eslint-disable-next-line @typescript-eslint/no-this-alias
190
- const model = this;
191
- const context = {
192
- xml: _xml,
193
- get properties() {
194
- const propContext = {
195
- xml: _xml,
196
- model,
197
- };
198
- return resolve(MiddlewareChain(model.options.properties.fromXML), propContext);
199
- },
200
- model,
201
- };
202
- return resolve(MiddlewareChain(this.options.fromXML), context);
203
- }
204
- toXML(instance) {
205
- // eslint-disable-next-line @typescript-eslint/no-this-alias
206
- const model = this;
207
- if (instance instanceof this.type ||
208
- (typeof instance !== "undefined" && instance.constructor === this.type) // FIXME: allow instance to be Undefined ?
209
- ) {
210
- // intanceof won't work with type "String" for example
211
- const context = {
212
- object: instance,
213
- get properties() {
214
- const propContext = {
215
- object: instance,
216
- model,
217
- };
218
- return resolve(MiddlewareChain(model.options.properties.toXML), propContext);
219
- },
220
- model: this,
221
- };
222
- return resolve(MiddlewareChain(this.options.toXML), context);
223
- }
224
- else {
225
- throw new TypeError(`provided object is not an instance of ${this.type.name}`);
226
- }
227
- }
228
- get reflectedClass() {
229
- return reflect(this.type, { TΦ: "c", t: void 0, p: [__RΦ.a(1316)], r: void 0, tp: [] });
230
- }
231
- resolveAllProperties() {
232
- const ownProperties = new Map();
233
- const parent = getParentModel(this);
234
- this.options.properties.options.forEach(__RΦ.f((options, key) => {
235
- ownProperties.set(key, new Proxy(options, {
236
- get: __RΦ.f((target, p, reciever) => {
237
- if (p === "model")
238
- return this;
239
- else
240
- return Reflect.get(target, p, reciever);
241
- }, [__RΦ.m("rt:p", [{ n: "target", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "p", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "reciever", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(1))], "get"),
242
- }) // FIXME: is typing ok ?
243
- );
244
- }, [__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "key", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
245
- const res = parent
246
- ? mergeMaps(parent.resolveAllProperties(), ownProperties)
247
- : ownProperties;
248
- return res;
249
- }
250
- }
251
- (t => __RΦ.t[269] = t)(XMLModel);
252
- __RΦ.m("rt:SP", [])(XMLModel);
253
- __RΦ.m("rt:P", ["options", "type", "reflectedClass"])(XMLModel);
254
- __RΦ.m("rt:Sm", [])(XMLModel);
255
- __RΦ.m("rt:m", ["fromXML", "toXML", "resolveAllProperties"])(XMLModel);
256
- __RΦ.m("rt:p", [{ n: "type", t: () => __RΦ.a(1316), b: void 0, v: null, f: "R" }, { n: "options", t: () => __RΦ.a(2461), b: void 0, v: null }])(XMLModel);
257
- __RΦ.m("rt:f", "Ce")(XMLModel);
258
- __RΦ.m("rt:t", () => __RΦ.a(527))(XMLModel.prototype, "options");
259
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "options");
260
- __RΦ.m("rt:t", () => __RΦ.a(2485))(XMLModel.prototype, "parent");
261
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "parent");
262
- __RΦ.m("rt:t", () => __RΦ.a(2493))(XMLModel.prototype, "parent");
263
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "parent");
264
- __RΦ.m("rt:t", () => __RΦ.a(579))(XMLModel.prototype, "properties");
265
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "properties");
266
- __RΦ.m("rt:t", () => __RΦ.a(2509))(XMLModel.prototype, "parent");
267
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "parent");
268
- __RΦ.m("rt:t", () => __RΦ.a(2513))(XMLModel.prototype, "parent");
269
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "parent");
270
- __RΦ.m("rt:t", () => __RΦ.a(13))(XMLModel.prototype, "tagname");
271
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "tagname");
272
- __RΦ.m("rt:f", "M.")(XMLModel.prototype["fromXML"]);
273
- ((t, p) => __RΦ.m("rt:h", () => typeof t === "object" ? t.constructor : t)(t[p]))(XMLModel.prototype, "fromXML");
274
- __RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(352), b: void 0, v: null }])(XMLModel.prototype, "fromXML");
275
- __RΦ.m("rt:f", "M.")(XMLModel.prototype, "fromXML");
276
- __RΦ.m("rt:t", () => __RΦ.a(270))(XMLModel.prototype, "fromXML");
277
- __RΦ.m("rt:t", () => __RΦ.a(576))(XMLModel.prototype, "properties");
278
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "properties");
279
- __RΦ.m("rt:f", "M.")(XMLModel.prototype["toXML"]);
280
- ((t, p) => __RΦ.m("rt:h", () => typeof t === "object" ? t.constructor : t)(t[p]))(XMLModel.prototype, "toXML");
281
- __RΦ.m("rt:p", [{ n: "instance", t: () => __RΦ.a(28), b: void 0, v: null }])(XMLModel.prototype, "toXML");
282
- __RΦ.m("rt:f", "M.")(XMLModel.prototype, "toXML");
283
- __RΦ.m("rt:t", () => __RΦ.a(100))(XMLModel.prototype, "toXML");
284
- __RΦ.m("rt:t", () => __RΦ.a(1359))(XMLModel.prototype, "properties");
285
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "properties");
286
- __RΦ.m("rt:t", () => __RΦ.a(1768))(XMLModel.prototype, "reflectedClass");
287
- __RΦ.m("rt:f", "P")(XMLModel.prototype, "reflectedClass");
288
- __RΦ.m("rt:f", "M.")(XMLModel.prototype["resolveAllProperties"]);
289
- ((t, p) => __RΦ.m("rt:h", () => typeof t === "object" ? t.constructor : t)(t[p]))(XMLModel.prototype, "resolveAllProperties");
290
- __RΦ.m("rt:p", [])(XMLModel.prototype, "resolveAllProperties");
291
- __RΦ.m("rt:f", "M.")(XMLModel.prototype, "resolveAllProperties");
292
- __RΦ.m("rt:t", () => __RΦ.a(1562))(XMLModel.prototype, "resolveAllProperties");
293
- export function createModel(type, options) {
294
- if (findModel(type)) {
295
- throw new TypeError(`a model for type ${type.name} already exists`);
296
- }
297
- const model = new XMLModel(type, options);
298
- Models.set(type, model);
299
- return model;
300
- }
301
- __RΦ.m("rt:p", [{ n: "type", t: () => __RΦ.a(2272), b: void 0, v: null }, { n: "options", t: () => __RΦ.a(2271), b: void 0, v: null }])(createModel);
302
- __RΦ.m("rt:f", "F")(createModel);
303
- __RΦ.m("rt:t", () => __RΦ.a(2302))(createModel);
304
- export const Models = new Map();
305
- export function findModel(id) {
306
- return Models.get(id);
307
- }
308
- __RΦ.m("rt:p", [{ n: "id", t: () => __RΦ.a(1055), b: void 0, v: null }])(findModel);
309
- __RΦ.m("rt:f", "F")(findModel);
310
- __RΦ.m("rt:t", () => __RΦ.a(1080))(findModel);
311
- export function getModel(id) {
312
- const model = findModel(id);
313
- if (model)
314
- return model;
315
- else
316
- throw new TypeError(`couln't find model for type ${id.name}`);
317
- }
318
- __RΦ.m("rt:p", [{ n: "id", t: () => __RΦ.a(782), b: void 0, v: null }])(getModel);
319
- __RΦ.m("rt:f", "F")(getModel);
320
- __RΦ.m("rt:t", () => __RΦ.a(1081))(getModel);
321
- // Model decorator
322
- function ModelDecoratorFactory(options) {
323
- return __RΦ.f(function (constructor) {
324
- findModel(constructor) || createModel(constructor, options || {});
325
- }, [__RΦ.m("rt:p", [{ n: "constructor", t: () => __RΦ.a(2567), b: void 0, v: null }]), __RΦ.m("rt:f", "M"), __RΦ.m("rt:t", () => __RΦ.a(22))], "");
326
- }
327
- __RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(2564), b: void 0, v: null, f: "?" }])(ModelDecoratorFactory);
328
- __RΦ.m("rt:f", "F")(ModelDecoratorFactory);
329
- __RΦ.m("rt:t", () => __RΦ.a(2566))(ModelDecoratorFactory);
330
- export { ModelDecoratorFactory as Model };
331
- export { Prop } from "./property";
332
- import "../defaults/models";
333
- import { FromXMLConversionError, PropertyFromXMLConversionError, PropertyToXMLConversionError, ToXMLConversionError, } from "../errors";
334
- import mergeMaps from "../helper/merge-maps";
@@ -1,5 +0,0 @@
1
- import type { Constructor } from "typescript-rtti";
2
- import type { XMLModelProperty, XMLModelPropertyOptions, CreateXMLModelPropertyOptions } from "./types";
3
- export declare function getPropertyConversionOptions<T>(constructor: Constructor<T>, property: XMLModelProperty<T>): XMLModelPropertyOptions<T>;
4
- declare function PropDecoratorFactory<T = any>(options?: CreateXMLModelPropertyOptions<T>): (prototype: any, property: XMLModelProperty<T>) => void;
5
- export { PropDecoratorFactory as Prop };