@cratis/fundamentals 7.15.2 → 7.16.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 (64) hide show
  1. package/DerivedType.ts +1 -0
  2. package/Fields.ts +1 -1
  3. package/derivedTypeDecorator.ts +1 -1
  4. package/dist/DerivedType.d.ts +1 -0
  5. package/dist/DerivedType.d.ts.map +1 -1
  6. package/dist/DerivedType.js +1 -0
  7. package/dist/DerivedType.js.map +1 -1
  8. package/dist/Fields.d.ts +1 -1
  9. package/dist/Fields.d.ts.map +1 -1
  10. package/dist/Fields.js +1 -1
  11. package/dist/Fields.js.map +1 -1
  12. package/dist/cjs/DerivedType.d.ts +1 -0
  13. package/dist/cjs/DerivedType.d.ts.map +1 -1
  14. package/dist/cjs/DerivedType.js +2 -0
  15. package/dist/cjs/DerivedType.js.map +1 -1
  16. package/dist/cjs/Fields.d.ts +1 -1
  17. package/dist/cjs/Fields.d.ts.map +1 -1
  18. package/dist/cjs/Fields.js +1 -1
  19. package/dist/cjs/Fields.js.map +1 -1
  20. package/dist/cjs/derivedTypeDecorator.d.ts +1 -1
  21. package/dist/cjs/derivedTypeDecorator.d.ts.map +1 -1
  22. package/dist/cjs/derivedTypeDecorator.js +1 -1
  23. package/dist/cjs/derivedTypeDecorator.js.map +1 -1
  24. package/dist/cjs/json/PointJsonConverter.d.ts.map +1 -1
  25. package/dist/cjs/json/PointJsonConverter.js +3 -6
  26. package/dist/cjs/json/PointJsonConverter.js.map +1 -1
  27. package/dist/cjs/reflection.d.ts +15 -0
  28. package/dist/cjs/reflection.d.ts.map +1 -0
  29. package/dist/cjs/reflection.js +96 -0
  30. package/dist/cjs/reflection.js.map +1 -0
  31. package/dist/derivedTypeDecorator.d.ts +1 -1
  32. package/dist/derivedTypeDecorator.d.ts.map +1 -1
  33. package/dist/derivedTypeDecorator.js +1 -1
  34. package/dist/derivedTypeDecorator.js.map +1 -1
  35. package/dist/esm/DerivedType.d.ts +1 -0
  36. package/dist/esm/DerivedType.d.ts.map +1 -1
  37. package/dist/esm/DerivedType.js +2 -0
  38. package/dist/esm/DerivedType.js.map +1 -1
  39. package/dist/esm/Fields.d.ts +1 -1
  40. package/dist/esm/Fields.d.ts.map +1 -1
  41. package/dist/esm/Fields.js +1 -1
  42. package/dist/esm/Fields.js.map +1 -1
  43. package/dist/esm/derivedTypeDecorator.d.ts +1 -1
  44. package/dist/esm/derivedTypeDecorator.d.ts.map +1 -1
  45. package/dist/esm/derivedTypeDecorator.js +1 -1
  46. package/dist/esm/derivedTypeDecorator.js.map +1 -1
  47. package/dist/esm/json/PointJsonConverter.d.ts.map +1 -1
  48. package/dist/esm/json/PointJsonConverter.js +3 -6
  49. package/dist/esm/json/PointJsonConverter.js.map +1 -1
  50. package/dist/esm/reflection.d.ts +15 -0
  51. package/dist/esm/reflection.d.ts.map +1 -0
  52. package/dist/esm/reflection.js +94 -0
  53. package/dist/esm/reflection.js.map +1 -0
  54. package/dist/json/PointJsonConverter.d.ts.map +1 -1
  55. package/dist/json/PointJsonConverter.js +3 -6
  56. package/dist/json/PointJsonConverter.js.map +1 -1
  57. package/dist/reflection.d.ts +15 -0
  58. package/dist/reflection.d.ts.map +1 -0
  59. package/dist/reflection.js +95 -0
  60. package/dist/reflection.js.map +1 -0
  61. package/dist/tsconfig.tsbuildinfo +1 -1
  62. package/json/PointJsonConverter.ts +3 -6
  63. package/package.json +6 -4
  64. package/reflection.ts +139 -0
package/DerivedType.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
 
4
+ import './reflection';
4
5
  import { Constructor } from './Constructor';
5
6
 
6
7
  export class DerivedType {
package/Fields.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
 
4
- import 'reflect-metadata';
4
+ import './reflection';
5
5
  import { Constructor } from './Constructor';
6
6
  import { Field } from './Field';
7
7
 
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
 
4
- import 'reflect-metadata';
4
+ import './reflection';
5
5
  import { Constructor } from './Constructor';
6
6
  import { DerivedType } from './DerivedType';
7
7
 
@@ -1,3 +1,4 @@
1
+ import './reflection';
1
2
  import { Constructor } from './Constructor';
2
3
  export declare class DerivedType {
3
4
  static set(target: Constructor, identifier: string, targetType?: Constructor): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DerivedType.d.ts","sourceRoot":"","sources":["../DerivedType.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW;IAW5E,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAIvC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE;CAGpE"}
1
+ {"version":3,"file":"DerivedType.d.ts","sourceRoot":"","sources":["../DerivedType.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW;IAW5E,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAIvC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE;CAGpE"}
@@ -1,3 +1,4 @@
1
+ import './reflection';
1
2
  export class DerivedType {
2
3
  static set(target, identifier, targetType) {
3
4
  Reflect.defineMetadata('derivedType', identifier, target);
@@ -1 +1 @@
1
- {"version":3,"file":"DerivedType.js","sourceRoot":"","sources":["../DerivedType.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAmB,EAAE,UAAkB,EAAE,UAAwB;QACxE,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,QAAQ,GAAkB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YACzF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAmB;QAC1B,OAAO,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,UAAuB;QAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACpE,CAAC;CACJ"}
1
+ {"version":3,"file":"DerivedType.js","sourceRoot":"","sources":["../DerivedType.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AAGtB,MAAM,OAAO,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAmB,EAAE,UAAkB,EAAE,UAAwB;QACxE,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,QAAQ,GAAkB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YACzF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAmB;QAC1B,OAAO,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,UAAuB;QAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACpE,CAAC;CACJ"}
package/dist/Fields.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection';
2
2
  import { Constructor } from './Constructor';
3
3
  import { Field } from './Field';
4
4
  export declare class Fields {
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,qBAAa,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE;IASlK,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE;CAWxD"}
1
+ {"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,qBAAa,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE;IASlK,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE;CAWxD"}
package/dist/Fields.js CHANGED
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection';
2
2
  import { Field } from './Field';
3
3
  export class Fields {
4
4
  static addFieldToType(target, field, fieldType, enumerable, derivatives, genericArguments) {
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.js","sourceRoot":"","sources":["../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,MAAM,OAAO,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAE,gBAA+B;QAC9J,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB,CAAC;QAC1D,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAuB,CAAC;YACjF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
1
+ {"version":3,"file":"Fields.js","sourceRoot":"","sources":["../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,MAAM,OAAO,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAE,gBAA+B;QAC9J,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB,CAAC;QAC1D,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAuB,CAAC;YACjF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -1,3 +1,4 @@
1
+ import './reflection';
1
2
  import { Constructor } from './Constructor';
2
3
  export declare class DerivedType {
3
4
  static set(target: Constructor, identifier: string, targetType?: Constructor): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DerivedType.d.ts","sourceRoot":"","sources":["../../DerivedType.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW;IAW5E,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAIvC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE;CAGpE"}
1
+ {"version":3,"file":"DerivedType.d.ts","sourceRoot":"","sources":["../../DerivedType.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW;IAW5E,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAIvC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE;CAGpE"}
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ require('./reflection.js');
4
+
3
5
  class DerivedType {
4
6
  static set(target, identifier, targetType) {
5
7
  Reflect.defineMetadata('derivedType', identifier, target);
@@ -1 +1 @@
1
- {"version":3,"file":"DerivedType.js","sources":["../../DerivedType.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from './Constructor';\n\nexport class DerivedType {\n static set(target: Constructor, identifier: string, targetType?: Constructor) {\n Reflect.defineMetadata('derivedType', identifier, target);\n if (targetType) {\n const existing: Constructor[] = Reflect.getOwnMetadata('derivedTypes', targetType) ?? [];\n if (!existing.includes(target)) {\n existing.push(target);\n Reflect.defineMetadata('derivedTypes', existing, targetType);\n }\n }\n }\n\n static get(target: Constructor): string {\n return Reflect.getOwnMetadata('derivedType', target);\n }\n\n static getDerivedTypesFor(targetType: Constructor): Constructor[] {\n return Reflect.getOwnMetadata('derivedTypes', targetType) ?? [];\n }\n}\n"],"names":[],"mappings":";;MAKa,WAAW,CAAA;AACpB,IAAA,OAAO,GAAG,CAAC,MAAmB,EAAE,UAAkB,EAAE,UAAwB,EAAA;QACxE,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC;QACzD,IAAI,UAAU,EAAE;AACZ,YAAA,MAAM,QAAQ,GAAkB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;YACxF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5B,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC;YAChE;QACJ;IACJ;IAEA,OAAO,GAAG,CAAC,MAAmB,EAAA;QAC1B,OAAO,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC;IACxD;IAEA,OAAO,kBAAkB,CAAC,UAAuB,EAAA;QAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;IACnE;AACH;;;;"}
1
+ {"version":3,"file":"DerivedType.js","sources":["../../DerivedType.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport './reflection';\nimport { Constructor } from './Constructor';\n\nexport class DerivedType {\n static set(target: Constructor, identifier: string, targetType?: Constructor) {\n Reflect.defineMetadata('derivedType', identifier, target);\n if (targetType) {\n const existing: Constructor[] = Reflect.getOwnMetadata('derivedTypes', targetType) ?? [];\n if (!existing.includes(target)) {\n existing.push(target);\n Reflect.defineMetadata('derivedTypes', existing, targetType);\n }\n }\n }\n\n static get(target: Constructor): string {\n return Reflect.getOwnMetadata('derivedType', target);\n }\n\n static getDerivedTypesFor(targetType: Constructor): Constructor[] {\n return Reflect.getOwnMetadata('derivedTypes', targetType) ?? [];\n }\n}\n"],"names":[],"mappings":";;;;MAMa,WAAW,CAAA;AACpB,IAAA,OAAO,GAAG,CAAC,MAAmB,EAAE,UAAkB,EAAE,UAAwB,EAAA;QACxE,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC;QACzD,IAAI,UAAU,EAAE;AACZ,YAAA,MAAM,QAAQ,GAAkB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;YACxF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5B,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC;YAChE;QACJ;IACJ;IAEA,OAAO,GAAG,CAAC,MAAmB,EAAA;QAC1B,OAAO,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC;IACxD;IAEA,OAAO,kBAAkB,CAAC,UAAuB,EAAA;QAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;IACnE;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection';
2
2
  import { Constructor } from './Constructor';
3
3
  import { Field } from './Field';
4
4
  export declare class Fields {
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,qBAAa,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE;IASlK,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE;CAWxD"}
1
+ {"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,qBAAa,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE;IASlK,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE;CAWxD"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('reflect-metadata');
3
+ require('./reflection.js');
4
4
  var Field = require('./Field.js');
5
5
 
6
6
  class Fields {
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.js","sources":["../../Fields.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport 'reflect-metadata';\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\n\n/**\n * Represents a system working with fields on types.\n */\nexport class Fields {\n static addFieldToType(target: Constructor, field: string, fieldType: Constructor, enumerable: boolean, derivatives: Constructor[], genericArguments: Constructor[]) {\n let fields: Map<string, Field> = new Map<string, Field>();\n if (Reflect.hasOwnMetadata('fields', target)) {\n fields = Reflect.getOwnMetadata('fields', target);\n }\n fields.set(field, new Field(field, fieldType, enumerable, derivatives, genericArguments));\n Reflect.defineMetadata('fields', fields, target);\n }\n\n static getFieldsForType(target: Constructor): Field[] {\n const fields: Field[] = [];\n if (Reflect.hasOwnMetadata('fields', target)) {\n const fieldsMap = Reflect.getOwnMetadata('fields', target) as Map<string, Field>;\n for (const field of fieldsMap.entries()) {\n fields.push(field[1]);\n }\n }\n\n return fields;\n }\n}\n"],"names":["Field"],"mappings":";;;;;MAUa,MAAM,CAAA;AACf,IAAA,OAAO,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAE,gBAA+B,EAAA;AAC9J,QAAA,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB;QACzD,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;QACrD;AACA,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAIA,WAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACzF,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;IACpD;IAEA,OAAO,gBAAgB,CAAC,MAAmB,EAAA;QACvC,MAAM,MAAM,GAAY,EAAE;QAC1B,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAuB;YAChF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB;QACJ;AAEA,QAAA,OAAO,MAAM;IACjB;AACH;;;;"}
1
+ {"version":3,"file":"Fields.js","sources":["../../Fields.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport './reflection';\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\n\n/**\n * Represents a system working with fields on types.\n */\nexport class Fields {\n static addFieldToType(target: Constructor, field: string, fieldType: Constructor, enumerable: boolean, derivatives: Constructor[], genericArguments: Constructor[]) {\n let fields: Map<string, Field> = new Map<string, Field>();\n if (Reflect.hasOwnMetadata('fields', target)) {\n fields = Reflect.getOwnMetadata('fields', target);\n }\n fields.set(field, new Field(field, fieldType, enumerable, derivatives, genericArguments));\n Reflect.defineMetadata('fields', fields, target);\n }\n\n static getFieldsForType(target: Constructor): Field[] {\n const fields: Field[] = [];\n if (Reflect.hasOwnMetadata('fields', target)) {\n const fieldsMap = Reflect.getOwnMetadata('fields', target) as Map<string, Field>;\n for (const field of fieldsMap.entries()) {\n fields.push(field[1]);\n }\n }\n\n return fields;\n }\n}\n"],"names":["Field"],"mappings":";;;;;MAUa,MAAM,CAAA;AACf,IAAA,OAAO,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAE,gBAA+B,EAAA;AAC9J,QAAA,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB;QACzD,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;QACrD;AACA,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAIA,WAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACzF,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;IACpD;IAEA,OAAO,gBAAgB,CAAC,MAAmB,EAAA;QACvC,MAAM,MAAM,GAAY,EAAE;QAC1B,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAuB;YAChF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB;QACJ;AAEA,QAAA,OAAO,MAAM;IACjB;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection';
2
2
  import { Constructor } from './Constructor';
3
3
  export declare function derivedType(identifier: string, targetType?: Constructor): (target: any) => void;
4
4
  //# sourceMappingURL=derivedTypeDecorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"derivedTypeDecorator.d.ts","sourceRoot":"","sources":["../../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,IACnD,QAAQ,GAAG,UAY/B"}
1
+ {"version":3,"file":"derivedTypeDecorator.d.ts","sourceRoot":"","sources":["../../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,IACnD,QAAQ,GAAG,UAY/B"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('reflect-metadata');
3
+ require('./reflection.js');
4
4
  var DerivedType = require('./DerivedType.js');
5
5
 
6
6
  function derivedType(identifier, targetType) {
@@ -1 +1 @@
1
- {"version":3,"file":"derivedTypeDecorator.js","sources":["../../derivedTypeDecorator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport 'reflect-metadata';\nimport { Constructor } from './Constructor';\nimport { DerivedType } from './DerivedType';\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport function derivedType(identifier: string, targetType?: Constructor) {\n return function (target: any) {\n DerivedType.set(target, identifier, targetType);\n\n // Auto-register with every class in the prototype chain so that JsonSerializer\n // can discover all derived types via DerivedType.getDerivedTypesFor() at runtime,\n // without requiring the parent type to import each subtype (which causes circular deps).\n let proto = Object.getPrototypeOf(target.prototype);\n while (proto && proto.constructor && proto.constructor !== Object) {\n DerivedType.set(target, identifier, proto.constructor);\n proto = Object.getPrototypeOf(proto);\n }\n };\n}\n"],"names":["DerivedType"],"mappings":";;;;;AAUM,SAAU,WAAW,CAAC,UAAkB,EAAE,UAAwB,EAAA;AACpE,IAAA,OAAO,UAAU,MAAW,EAAA;QACxBA,uBAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;QAK/C,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;AACnD,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;YAC/DA,uBAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC;AACtD,YAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;QACxC;AACJ,IAAA,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"derivedTypeDecorator.js","sources":["../../derivedTypeDecorator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport './reflection';\nimport { Constructor } from './Constructor';\nimport { DerivedType } from './DerivedType';\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport function derivedType(identifier: string, targetType?: Constructor) {\n return function (target: any) {\n DerivedType.set(target, identifier, targetType);\n\n // Auto-register with every class in the prototype chain so that JsonSerializer\n // can discover all derived types via DerivedType.getDerivedTypesFor() at runtime,\n // without requiring the parent type to import each subtype (which causes circular deps).\n let proto = Object.getPrototypeOf(target.prototype);\n while (proto && proto.constructor && proto.constructor !== Object) {\n DerivedType.set(target, identifier, proto.constructor);\n proto = Object.getPrototypeOf(proto);\n }\n };\n}\n"],"names":["DerivedType"],"mappings":";;;;;AAUM,SAAU,WAAW,CAAC,UAAkB,EAAE,UAAwB,EAAA;AACpE,IAAA,OAAO,UAAU,MAAW,EAAA;QACxBA,uBAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;QAK/C,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;AACnD,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;YAC/DA,uBAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC;AACtD,YAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;QACxC;AACJ,IAAA,CAAC;AACL;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PointJsonConverter.d.ts","sourceRoot":"","sources":["../../../json/PointJsonConverter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,KAAK,CAAC;IAExD,IAAI,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,CAE7B;IAGD,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAcvB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;CAGzB"}
1
+ {"version":3,"file":"PointJsonConverter.d.ts","sourceRoot":"","sources":["../../../json/PointJsonConverter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,KAAK,CAAC;IAExD,IAAI,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,CAE7B;IAGD,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAWvB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;CAGzB"}
@@ -11,13 +11,10 @@ class PointJsonConverter extends JsonConverter.JsonConverter {
11
11
  if (value === null || value === undefined) {
12
12
  throw new Error('Cannot deserialize null or undefined to Point');
13
13
  }
14
- if (value.type === 'Point' && value.coordinates && value.coordinates.length === 2) {
15
- return new Point.Point(value.coordinates[0], value.coordinates[1]);
14
+ if (value.type !== 'Point' || !value.coordinates || value.coordinates.length !== 2) {
15
+ throw new Error('Cannot deserialize Point: invalid GeoJSON format');
16
16
  }
17
- if (typeof value.longitude === 'number' && typeof value.latitude === 'number') {
18
- return new Point.Point(value.longitude, value.latitude);
19
- }
20
- throw new Error('Cannot deserialize Point: expected GeoJSON format { type, coordinates } or { longitude, latitude }');
17
+ return new Point.Point(value.coordinates[0], value.coordinates[1]);
21
18
  }
22
19
  write(value) {
23
20
  return value?.toJSON() ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"PointJsonConverter.js","sources":["../../../json/PointJsonConverter.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from '../Constructor';\nimport { Point } from '../geospatial';\nimport { JsonConverter } from './JsonConverter';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * JSON converter for Point type (GeoJSON format).\n */\nexport class PointJsonConverter extends JsonConverter<Point> {\n /** @inheritdoc */\n get type(): Constructor<Point> {\n return Point;\n }\n\n /** @inheritdoc */\n read(value: any): Point {\n if (value === null || value === undefined) {\n throw new Error('Cannot deserialize null or undefined to Point');\n }\n if (value.type === 'Point' && value.coordinates && value.coordinates.length === 2) {\n return new Point(value.coordinates[0], value.coordinates[1]);\n }\n if (typeof value.longitude === 'number' && typeof value.latitude === 'number') {\n return new Point(value.longitude, value.latitude);\n }\n throw new Error('Cannot deserialize Point: expected GeoJSON format { type, coordinates } or { longitude, latitude }');\n }\n\n /** @inheritdoc */\n write(value: any): any {\n return value?.toJSON() ?? null;\n }\n}\n"],"names":["JsonConverter","Point"],"mappings":";;;;;AAYM,MAAO,kBAAmB,SAAQA,2BAAoB,CAAA;AAExD,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAOC,WAAK;IAChB;AAGA,IAAA,IAAI,CAAC,KAAU,EAAA;QACX,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;QACpE;AACA,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/E,YAAA,OAAO,IAAIA,WAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChE;AACA,QAAA,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC3E,OAAO,IAAIA,WAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;QACrD;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,oGAAoG,CAAC;IACzH;AAGA,IAAA,KAAK,CAAC,KAAU,EAAA;AACZ,QAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI;IAClC;AACH;;;;"}
1
+ {"version":3,"file":"PointJsonConverter.js","sources":["../../../json/PointJsonConverter.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from '../Constructor';\nimport { Point } from '../geospatial';\nimport { JsonConverter } from './JsonConverter';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * JSON converter for Point type (GeoJSON format).\n */\nexport class PointJsonConverter extends JsonConverter<Point> {\n /** @inheritdoc */\n get type(): Constructor<Point> {\n return Point;\n }\n\n /** @inheritdoc */\n read(value: any): Point {\n if (value === null || value === undefined) {\n throw new Error('Cannot deserialize null or undefined to Point');\n }\n if (value.type !== 'Point' || !value.coordinates || value.coordinates.length !== 2) {\n throw new Error('Cannot deserialize Point: invalid GeoJSON format');\n }\n return new Point(value.coordinates[0], value.coordinates[1]);\n }\n\n /** @inheritdoc */\n write(value: any): any {\n return value?.toJSON() ?? null;\n }\n}\n"],"names":["JsonConverter","Point"],"mappings":";;;;;AAYM,MAAO,kBAAmB,SAAQA,2BAAoB,CAAA;AAExD,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAOC,WAAK;IAChB;AAGA,IAAA,IAAI,CAAC,KAAU,EAAA;QACX,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;QACpE;AACA,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAChF,YAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;QACvE;AACA,QAAA,OAAO,IAAIA,WAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAChE;AAGA,IAAA,KAAK,CAAC,KAAU,EAAA;AACZ,QAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI;IAClC;AACH;;;;"}
@@ -0,0 +1,15 @@
1
+ declare global {
2
+ namespace Reflect {
3
+ function defineMetadata(metadataKey: string | symbol, metadataValue: any, target: any, propertyKey?: string | symbol): void;
4
+ function getMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): any;
5
+ function getOwnMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): any;
6
+ function hasMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;
7
+ function hasOwnMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;
8
+ function getMetadataKeys(target: any, propertyKey?: string | symbol): (string | symbol)[];
9
+ function getOwnMetadataKeys(target: any, propertyKey?: string | symbol): (string | symbol)[];
10
+ function deleteMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;
11
+ function metadata(metadataKey: string | symbol, metadataValue: any): (target: any, propertyKey?: string | symbol) => void;
12
+ }
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=reflection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../../reflection.ts"],"names":[],"mappings":"AAiBA,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,OAAO,CAAC;QACd,SAAS,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QAC5H,SAAS,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;QACpG,SAAS,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;QACvG,SAAS,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QACxG,SAAS,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3G,SAAS,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1F,SAAS,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAC7F,SAAS,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3G,SAAS,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;KAC7H;CACJ;AA6GD,OAAO,EAAE,CAAC"}
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ if (typeof Reflect.defineMetadata !== 'function' || typeof Reflect.getOwnMetadata !== 'function') {
4
+ const metadataMap = new WeakMap();
5
+ const propertyMetadataMap = new WeakMap();
6
+ function getMetadataStore(target, propertyKey) {
7
+ if (propertyKey != null) {
8
+ let propMap = propertyMetadataMap.get(target);
9
+ if (!propMap) {
10
+ propMap = new Map();
11
+ propertyMetadataMap.set(target, propMap);
12
+ }
13
+ if (!propMap.has(propertyKey)) {
14
+ propMap.set(propertyKey, new Map());
15
+ }
16
+ return propMap.get(propertyKey);
17
+ }
18
+ else {
19
+ if (!metadataMap.has(target)) {
20
+ metadataMap.set(target, new Map());
21
+ }
22
+ return metadataMap.get(target);
23
+ }
24
+ }
25
+ function getMetadataStoreIfExists(target, propertyKey) {
26
+ if (propertyKey != null) {
27
+ const propMap = propertyMetadataMap.get(target);
28
+ return propMap?.get(propertyKey);
29
+ }
30
+ else {
31
+ return metadataMap.get(target);
32
+ }
33
+ }
34
+ Reflect.defineMetadata = function (metadataKey, metadataValue, target, propertyKey) {
35
+ const store = getMetadataStore(target, propertyKey);
36
+ store.set(metadataKey, metadataValue);
37
+ };
38
+ Reflect.getMetadata = function (metadataKey, target, propertyKey) {
39
+ let currentTarget = target;
40
+ while (currentTarget !== null && currentTarget !== undefined) {
41
+ const store = getMetadataStoreIfExists(currentTarget, propertyKey);
42
+ if (store && store.has(metadataKey)) {
43
+ return store.get(metadataKey);
44
+ }
45
+ currentTarget = Object.getPrototypeOf(currentTarget);
46
+ }
47
+ return undefined;
48
+ };
49
+ Reflect.getOwnMetadata = function (metadataKey, target, propertyKey) {
50
+ const store = getMetadataStoreIfExists(target, propertyKey);
51
+ return store?.get(metadataKey);
52
+ };
53
+ Reflect.hasMetadata = function (metadataKey, target, propertyKey) {
54
+ let currentTarget = target;
55
+ while (currentTarget !== null && currentTarget !== undefined) {
56
+ const store = getMetadataStoreIfExists(currentTarget, propertyKey);
57
+ if (store && store.has(metadataKey)) {
58
+ return true;
59
+ }
60
+ currentTarget = Object.getPrototypeOf(currentTarget);
61
+ }
62
+ return false;
63
+ };
64
+ Reflect.hasOwnMetadata = function (metadataKey, target, propertyKey) {
65
+ const store = getMetadataStoreIfExists(target, propertyKey);
66
+ return store ? store.has(metadataKey) : false;
67
+ };
68
+ Reflect.getMetadataKeys = function (target, propertyKey) {
69
+ const keys = new Set();
70
+ let currentTarget = target;
71
+ while (currentTarget !== null && currentTarget !== undefined) {
72
+ const store = getMetadataStoreIfExists(currentTarget, propertyKey);
73
+ if (store) {
74
+ for (const key of store.keys()) {
75
+ keys.add(key);
76
+ }
77
+ }
78
+ currentTarget = Object.getPrototypeOf(currentTarget);
79
+ }
80
+ return Array.from(keys);
81
+ };
82
+ Reflect.getOwnMetadataKeys = function (target, propertyKey) {
83
+ const store = getMetadataStoreIfExists(target, propertyKey);
84
+ return store ? Array.from(store.keys()) : [];
85
+ };
86
+ Reflect.deleteMetadata = function (metadataKey, target, propertyKey) {
87
+ const store = getMetadataStoreIfExists(target, propertyKey);
88
+ return store ? store.delete(metadataKey) : false;
89
+ };
90
+ Reflect.metadata = function (metadataKey, metadataValue) {
91
+ return function (target, propertyKey) {
92
+ Reflect.defineMetadata(metadataKey, metadataValue, target, propertyKey);
93
+ };
94
+ };
95
+ }
96
+ //# sourceMappingURL=reflection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection.js","sources":["../../reflection.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Reflect metadata polyfill\n * Provides a minimal implementation of the reflect-metadata API using WeakMap.\n * If native Reflect metadata API is already available, this is a no-op.\n *\n * Limitations:\n * - Only supports object targets (not primitives)\n * - Property-level metadata uses a secondary Map structure keyed by property\n * - Does not support all advanced reflect-metadata features\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-namespace */\n\ndeclare global {\n namespace Reflect {\n function defineMetadata(metadataKey: string | symbol, metadataValue: any, target: any, propertyKey?: string | symbol): void;\n function getMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): any;\n function getOwnMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): any;\n function hasMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;\n function hasOwnMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;\n function getMetadataKeys(target: any, propertyKey?: string | symbol): (string | symbol)[];\n function getOwnMetadataKeys(target: any, propertyKey?: string | symbol): (string | symbol)[];\n function deleteMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;\n function metadata(metadataKey: string | symbol, metadataValue: any): (target: any, propertyKey?: string | symbol) => void;\n }\n}\n\n// Check if native metadata API is available by testing for multiple methods\nif (typeof Reflect.defineMetadata !== 'function' || typeof Reflect.getOwnMetadata !== 'function') {\n const metadataMap = new WeakMap<any, Map<string | symbol, any>>();\n const propertyMetadataMap = new WeakMap<any, Map<string | symbol, Map<string | symbol, any>>>();\n\n function getMetadataStore(target: any, propertyKey?: string | symbol): Map<string | symbol, any> {\n if (propertyKey != null) {\n let propMap = propertyMetadataMap.get(target);\n if (!propMap) {\n propMap = new Map();\n propertyMetadataMap.set(target, propMap);\n }\n if (!propMap.has(propertyKey)) {\n propMap.set(propertyKey, new Map());\n }\n return propMap.get(propertyKey)!;\n } else {\n if (!metadataMap.has(target)) {\n metadataMap.set(target, new Map());\n }\n return metadataMap.get(target)!;\n }\n }\n\n function getMetadataStoreIfExists(target: any, propertyKey?: string | symbol): Map<string | symbol, any> | undefined {\n if (propertyKey != null) {\n const propMap = propertyMetadataMap.get(target);\n return propMap?.get(propertyKey);\n } else {\n return metadataMap.get(target);\n }\n }\n\n Reflect.defineMetadata = function (metadataKey: string | symbol, metadataValue: any, target: any, propertyKey?: string | symbol): void {\n const store = getMetadataStore(target, propertyKey);\n store.set(metadataKey, metadataValue);\n };\n\n Reflect.getMetadata = function (metadataKey: string | symbol, target: any, propertyKey?: string | symbol): any {\n let currentTarget = target;\n while (currentTarget !== null && currentTarget !== undefined) {\n const store = getMetadataStoreIfExists(currentTarget, propertyKey);\n if (store && store.has(metadataKey)) {\n return store.get(metadataKey);\n }\n currentTarget = Object.getPrototypeOf(currentTarget);\n }\n return undefined;\n };\n\n Reflect.getOwnMetadata = function (metadataKey: string | symbol, target: any, propertyKey?: string | symbol): any {\n const store = getMetadataStoreIfExists(target, propertyKey);\n return store?.get(metadataKey);\n };\n\n Reflect.hasMetadata = function (metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean {\n let currentTarget = target;\n while (currentTarget !== null && currentTarget !== undefined) {\n const store = getMetadataStoreIfExists(currentTarget, propertyKey);\n if (store && store.has(metadataKey)) {\n return true;\n }\n currentTarget = Object.getPrototypeOf(currentTarget);\n }\n return false;\n };\n\n Reflect.hasOwnMetadata = function (metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean {\n const store = getMetadataStoreIfExists(target, propertyKey);\n return store ? store.has(metadataKey) : false;\n };\n\n Reflect.getMetadataKeys = function (target: any, propertyKey?: string | symbol): (string | symbol)[] {\n const keys = new Set<string | symbol>();\n let currentTarget = target;\n while (currentTarget !== null && currentTarget !== undefined) {\n const store = getMetadataStoreIfExists(currentTarget, propertyKey);\n if (store) {\n for (const key of store.keys()) {\n keys.add(key);\n }\n }\n currentTarget = Object.getPrototypeOf(currentTarget);\n }\n return Array.from(keys);\n };\n\n Reflect.getOwnMetadataKeys = function (target: any, propertyKey?: string | symbol): (string | symbol)[] {\n const store = getMetadataStoreIfExists(target, propertyKey);\n return store ? Array.from(store.keys()) : [];\n };\n\n Reflect.deleteMetadata = function (metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean {\n const store = getMetadataStoreIfExists(target, propertyKey);\n return store ? store.delete(metadataKey) : false;\n };\n\n // Decorator factory used by TypeScript's emitDecoratorMetadata output (the tslib\n // __metadata helper). Without this, 'design:type'/'design:paramtypes'/'design:returntype'\n // metadata is never recorded, which breaks constructor parameter type reflection.\n Reflect.metadata = function (metadataKey: string | symbol, metadataValue: any): (target: any, propertyKey?: string | symbol) => void {\n return function (target: any, propertyKey?: string | symbol): void {\n Reflect.defineMetadata(metadataKey, metadataValue, target, propertyKey);\n };\n };\n}\n\nexport {};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection';
2
2
  import { Constructor } from './Constructor';
3
3
  export declare function derivedType(identifier: string, targetType?: Constructor): (target: any) => void;
4
4
  //# sourceMappingURL=derivedTypeDecorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"derivedTypeDecorator.d.ts","sourceRoot":"","sources":["../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,IACnD,QAAQ,GAAG,UAY/B"}
1
+ {"version":3,"file":"derivedTypeDecorator.d.ts","sourceRoot":"","sources":["../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,IACnD,QAAQ,GAAG,UAY/B"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection';
2
2
  import { DerivedType } from './DerivedType';
3
3
  export function derivedType(identifier, targetType) {
4
4
  return function (target) {
@@ -1 +1 @@
1
- {"version":3,"file":"derivedTypeDecorator.js","sourceRoot":"","sources":["../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,UAAwB;IACpE,OAAO,UAAU,MAAW;QACxB,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAKhD,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAChE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACvD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACL,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"derivedTypeDecorator.js","sourceRoot":"","sources":["../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,UAAwB;IACpE,OAAO,UAAU,MAAW;QACxB,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAKhD,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAChE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACvD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACL,CAAC,CAAC;AACN,CAAC"}
@@ -1,3 +1,4 @@
1
+ import './reflection';
1
2
  import { Constructor } from './Constructor';
2
3
  export declare class DerivedType {
3
4
  static set(target: Constructor, identifier: string, targetType?: Constructor): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DerivedType.d.ts","sourceRoot":"","sources":["../../DerivedType.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW;IAW5E,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAIvC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE;CAGpE"}
1
+ {"version":3,"file":"DerivedType.d.ts","sourceRoot":"","sources":["../../DerivedType.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW;IAW5E,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAIvC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE;CAGpE"}
@@ -1,3 +1,5 @@
1
+ import './reflection.js';
2
+
1
3
  class DerivedType {
2
4
  static set(target, identifier, targetType) {
3
5
  Reflect.defineMetadata('derivedType', identifier, target);
@@ -1 +1 @@
1
- {"version":3,"file":"DerivedType.js","sources":["../../DerivedType.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from './Constructor';\n\nexport class DerivedType {\n static set(target: Constructor, identifier: string, targetType?: Constructor) {\n Reflect.defineMetadata('derivedType', identifier, target);\n if (targetType) {\n const existing: Constructor[] = Reflect.getOwnMetadata('derivedTypes', targetType) ?? [];\n if (!existing.includes(target)) {\n existing.push(target);\n Reflect.defineMetadata('derivedTypes', existing, targetType);\n }\n }\n }\n\n static get(target: Constructor): string {\n return Reflect.getOwnMetadata('derivedType', target);\n }\n\n static getDerivedTypesFor(targetType: Constructor): Constructor[] {\n return Reflect.getOwnMetadata('derivedTypes', targetType) ?? [];\n }\n}\n"],"names":[],"mappings":"MAKa,WAAW,CAAA;AACpB,IAAA,OAAO,GAAG,CAAC,MAAmB,EAAE,UAAkB,EAAE,UAAwB,EAAA;QACxE,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC;QACzD,IAAI,UAAU,EAAE;AACZ,YAAA,MAAM,QAAQ,GAAkB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;YACxF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5B,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC;YAChE;QACJ;IACJ;IAEA,OAAO,GAAG,CAAC,MAAmB,EAAA;QAC1B,OAAO,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC;IACxD;IAEA,OAAO,kBAAkB,CAAC,UAAuB,EAAA;QAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;IACnE;AACH;;;;"}
1
+ {"version":3,"file":"DerivedType.js","sources":["../../DerivedType.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport './reflection';\nimport { Constructor } from './Constructor';\n\nexport class DerivedType {\n static set(target: Constructor, identifier: string, targetType?: Constructor) {\n Reflect.defineMetadata('derivedType', identifier, target);\n if (targetType) {\n const existing: Constructor[] = Reflect.getOwnMetadata('derivedTypes', targetType) ?? [];\n if (!existing.includes(target)) {\n existing.push(target);\n Reflect.defineMetadata('derivedTypes', existing, targetType);\n }\n }\n }\n\n static get(target: Constructor): string {\n return Reflect.getOwnMetadata('derivedType', target);\n }\n\n static getDerivedTypesFor(targetType: Constructor): Constructor[] {\n return Reflect.getOwnMetadata('derivedTypes', targetType) ?? [];\n }\n}\n"],"names":[],"mappings":";;MAMa,WAAW,CAAA;AACpB,IAAA,OAAO,GAAG,CAAC,MAAmB,EAAE,UAAkB,EAAE,UAAwB,EAAA;QACxE,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC;QACzD,IAAI,UAAU,EAAE;AACZ,YAAA,MAAM,QAAQ,GAAkB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;YACxF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5B,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC;YAChE;QACJ;IACJ;IAEA,OAAO,GAAG,CAAC,MAAmB,EAAA;QAC1B,OAAO,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC;IACxD;IAEA,OAAO,kBAAkB,CAAC,UAAuB,EAAA;QAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;IACnE;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection';
2
2
  import { Constructor } from './Constructor';
3
3
  import { Field } from './Field';
4
4
  export declare class Fields {
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,qBAAa,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE;IASlK,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE;CAWxD"}
1
+ {"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,qBAAa,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE;IASlK,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE;CAWxD"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection.js';
2
2
  import { Field } from './Field.js';
3
3
 
4
4
  class Fields {
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.js","sources":["../../Fields.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport 'reflect-metadata';\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\n\n/**\n * Represents a system working with fields on types.\n */\nexport class Fields {\n static addFieldToType(target: Constructor, field: string, fieldType: Constructor, enumerable: boolean, derivatives: Constructor[], genericArguments: Constructor[]) {\n let fields: Map<string, Field> = new Map<string, Field>();\n if (Reflect.hasOwnMetadata('fields', target)) {\n fields = Reflect.getOwnMetadata('fields', target);\n }\n fields.set(field, new Field(field, fieldType, enumerable, derivatives, genericArguments));\n Reflect.defineMetadata('fields', fields, target);\n }\n\n static getFieldsForType(target: Constructor): Field[] {\n const fields: Field[] = [];\n if (Reflect.hasOwnMetadata('fields', target)) {\n const fieldsMap = Reflect.getOwnMetadata('fields', target) as Map<string, Field>;\n for (const field of fieldsMap.entries()) {\n fields.push(field[1]);\n }\n }\n\n return fields;\n }\n}\n"],"names":[],"mappings":";;;MAUa,MAAM,CAAA;AACf,IAAA,OAAO,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAE,gBAA+B,EAAA;AAC9J,QAAA,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB;QACzD,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;QACrD;AACA,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACzF,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;IACpD;IAEA,OAAO,gBAAgB,CAAC,MAAmB,EAAA;QACvC,MAAM,MAAM,GAAY,EAAE;QAC1B,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAuB;YAChF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB;QACJ;AAEA,QAAA,OAAO,MAAM;IACjB;AACH;;;;"}
1
+ {"version":3,"file":"Fields.js","sources":["../../Fields.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport './reflection';\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\n\n/**\n * Represents a system working with fields on types.\n */\nexport class Fields {\n static addFieldToType(target: Constructor, field: string, fieldType: Constructor, enumerable: boolean, derivatives: Constructor[], genericArguments: Constructor[]) {\n let fields: Map<string, Field> = new Map<string, Field>();\n if (Reflect.hasOwnMetadata('fields', target)) {\n fields = Reflect.getOwnMetadata('fields', target);\n }\n fields.set(field, new Field(field, fieldType, enumerable, derivatives, genericArguments));\n Reflect.defineMetadata('fields', fields, target);\n }\n\n static getFieldsForType(target: Constructor): Field[] {\n const fields: Field[] = [];\n if (Reflect.hasOwnMetadata('fields', target)) {\n const fieldsMap = Reflect.getOwnMetadata('fields', target) as Map<string, Field>;\n for (const field of fieldsMap.entries()) {\n fields.push(field[1]);\n }\n }\n\n return fields;\n }\n}\n"],"names":[],"mappings":";;;MAUa,MAAM,CAAA;AACf,IAAA,OAAO,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAE,gBAA+B,EAAA;AAC9J,QAAA,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB;QACzD,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;QACrD;AACA,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACzF,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;IACpD;IAEA,OAAO,gBAAgB,CAAC,MAAmB,EAAA;QACvC,MAAM,MAAM,GAAY,EAAE;QAC1B,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAuB;YAChF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB;QACJ;AAEA,QAAA,OAAO,MAAM;IACjB;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection';
2
2
  import { Constructor } from './Constructor';
3
3
  export declare function derivedType(identifier: string, targetType?: Constructor): (target: any) => void;
4
4
  //# sourceMappingURL=derivedTypeDecorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"derivedTypeDecorator.d.ts","sourceRoot":"","sources":["../../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,IACnD,QAAQ,GAAG,UAY/B"}
1
+ {"version":3,"file":"derivedTypeDecorator.d.ts","sourceRoot":"","sources":["../../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,IACnD,QAAQ,GAAG,UAY/B"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
1
+ import './reflection.js';
2
2
  import { DerivedType } from './DerivedType.js';
3
3
 
4
4
  function derivedType(identifier, targetType) {
@@ -1 +1 @@
1
- {"version":3,"file":"derivedTypeDecorator.js","sources":["../../derivedTypeDecorator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport 'reflect-metadata';\nimport { Constructor } from './Constructor';\nimport { DerivedType } from './DerivedType';\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport function derivedType(identifier: string, targetType?: Constructor) {\n return function (target: any) {\n DerivedType.set(target, identifier, targetType);\n\n // Auto-register with every class in the prototype chain so that JsonSerializer\n // can discover all derived types via DerivedType.getDerivedTypesFor() at runtime,\n // without requiring the parent type to import each subtype (which causes circular deps).\n let proto = Object.getPrototypeOf(target.prototype);\n while (proto && proto.constructor && proto.constructor !== Object) {\n DerivedType.set(target, identifier, proto.constructor);\n proto = Object.getPrototypeOf(proto);\n }\n };\n}\n"],"names":[],"mappings":";;;AAUM,SAAU,WAAW,CAAC,UAAkB,EAAE,UAAwB,EAAA;AACpE,IAAA,OAAO,UAAU,MAAW,EAAA;QACxB,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;QAK/C,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;AACnD,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;YAC/D,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC;AACtD,YAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;QACxC;AACJ,IAAA,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"derivedTypeDecorator.js","sources":["../../derivedTypeDecorator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport './reflection';\nimport { Constructor } from './Constructor';\nimport { DerivedType } from './DerivedType';\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport function derivedType(identifier: string, targetType?: Constructor) {\n return function (target: any) {\n DerivedType.set(target, identifier, targetType);\n\n // Auto-register with every class in the prototype chain so that JsonSerializer\n // can discover all derived types via DerivedType.getDerivedTypesFor() at runtime,\n // without requiring the parent type to import each subtype (which causes circular deps).\n let proto = Object.getPrototypeOf(target.prototype);\n while (proto && proto.constructor && proto.constructor !== Object) {\n DerivedType.set(target, identifier, proto.constructor);\n proto = Object.getPrototypeOf(proto);\n }\n };\n}\n"],"names":[],"mappings":";;;AAUM,SAAU,WAAW,CAAC,UAAkB,EAAE,UAAwB,EAAA;AACpE,IAAA,OAAO,UAAU,MAAW,EAAA;QACxB,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;QAK/C,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;AACnD,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;YAC/D,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC;AACtD,YAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;QACxC;AACJ,IAAA,CAAC;AACL;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PointJsonConverter.d.ts","sourceRoot":"","sources":["../../../json/PointJsonConverter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,KAAK,CAAC;IAExD,IAAI,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,CAE7B;IAGD,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAcvB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;CAGzB"}
1
+ {"version":3,"file":"PointJsonConverter.d.ts","sourceRoot":"","sources":["../../../json/PointJsonConverter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,KAAK,CAAC;IAExD,IAAI,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,CAE7B;IAGD,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAWvB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;CAGzB"}
@@ -9,13 +9,10 @@ class PointJsonConverter extends JsonConverter {
9
9
  if (value === null || value === undefined) {
10
10
  throw new Error('Cannot deserialize null or undefined to Point');
11
11
  }
12
- if (value.type === 'Point' && value.coordinates && value.coordinates.length === 2) {
13
- return new Point(value.coordinates[0], value.coordinates[1]);
12
+ if (value.type !== 'Point' || !value.coordinates || value.coordinates.length !== 2) {
13
+ throw new Error('Cannot deserialize Point: invalid GeoJSON format');
14
14
  }
15
- if (typeof value.longitude === 'number' && typeof value.latitude === 'number') {
16
- return new Point(value.longitude, value.latitude);
17
- }
18
- throw new Error('Cannot deserialize Point: expected GeoJSON format { type, coordinates } or { longitude, latitude }');
15
+ return new Point(value.coordinates[0], value.coordinates[1]);
19
16
  }
20
17
  write(value) {
21
18
  return value?.toJSON() ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"PointJsonConverter.js","sources":["../../../json/PointJsonConverter.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from '../Constructor';\nimport { Point } from '../geospatial';\nimport { JsonConverter } from './JsonConverter';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * JSON converter for Point type (GeoJSON format).\n */\nexport class PointJsonConverter extends JsonConverter<Point> {\n /** @inheritdoc */\n get type(): Constructor<Point> {\n return Point;\n }\n\n /** @inheritdoc */\n read(value: any): Point {\n if (value === null || value === undefined) {\n throw new Error('Cannot deserialize null or undefined to Point');\n }\n if (value.type === 'Point' && value.coordinates && value.coordinates.length === 2) {\n return new Point(value.coordinates[0], value.coordinates[1]);\n }\n if (typeof value.longitude === 'number' && typeof value.latitude === 'number') {\n return new Point(value.longitude, value.latitude);\n }\n throw new Error('Cannot deserialize Point: expected GeoJSON format { type, coordinates } or { longitude, latitude }');\n }\n\n /** @inheritdoc */\n write(value: any): any {\n return value?.toJSON() ?? null;\n }\n}\n"],"names":[],"mappings":";;;AAYM,MAAO,kBAAmB,SAAQ,aAAoB,CAAA;AAExD,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,KAAK;IAChB;AAGA,IAAA,IAAI,CAAC,KAAU,EAAA;QACX,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;QACpE;AACA,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/E,YAAA,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChE;AACA,QAAA,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC3E,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;QACrD;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,oGAAoG,CAAC;IACzH;AAGA,IAAA,KAAK,CAAC,KAAU,EAAA;AACZ,QAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI;IAClC;AACH;;;;"}
1
+ {"version":3,"file":"PointJsonConverter.js","sources":["../../../json/PointJsonConverter.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from '../Constructor';\nimport { Point } from '../geospatial';\nimport { JsonConverter } from './JsonConverter';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * JSON converter for Point type (GeoJSON format).\n */\nexport class PointJsonConverter extends JsonConverter<Point> {\n /** @inheritdoc */\n get type(): Constructor<Point> {\n return Point;\n }\n\n /** @inheritdoc */\n read(value: any): Point {\n if (value === null || value === undefined) {\n throw new Error('Cannot deserialize null or undefined to Point');\n }\n if (value.type !== 'Point' || !value.coordinates || value.coordinates.length !== 2) {\n throw new Error('Cannot deserialize Point: invalid GeoJSON format');\n }\n return new Point(value.coordinates[0], value.coordinates[1]);\n }\n\n /** @inheritdoc */\n write(value: any): any {\n return value?.toJSON() ?? null;\n }\n}\n"],"names":[],"mappings":";;;AAYM,MAAO,kBAAmB,SAAQ,aAAoB,CAAA;AAExD,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,KAAK;IAChB;AAGA,IAAA,IAAI,CAAC,KAAU,EAAA;QACX,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;QACpE;AACA,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAChF,YAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;QACvE;AACA,QAAA,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAChE;AAGA,IAAA,KAAK,CAAC,KAAU,EAAA;AACZ,QAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI;IAClC;AACH;;;;"}
@@ -0,0 +1,15 @@
1
+ declare global {
2
+ namespace Reflect {
3
+ function defineMetadata(metadataKey: string | symbol, metadataValue: any, target: any, propertyKey?: string | symbol): void;
4
+ function getMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): any;
5
+ function getOwnMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): any;
6
+ function hasMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;
7
+ function hasOwnMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;
8
+ function getMetadataKeys(target: any, propertyKey?: string | symbol): (string | symbol)[];
9
+ function getOwnMetadataKeys(target: any, propertyKey?: string | symbol): (string | symbol)[];
10
+ function deleteMetadata(metadataKey: string | symbol, target: any, propertyKey?: string | symbol): boolean;
11
+ function metadata(metadataKey: string | symbol, metadataValue: any): (target: any, propertyKey?: string | symbol) => void;
12
+ }
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=reflection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../../reflection.ts"],"names":[],"mappings":"AAiBA,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,OAAO,CAAC;QACd,SAAS,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QAC5H,SAAS,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;QACpG,SAAS,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;QACvG,SAAS,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QACxG,SAAS,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3G,SAAS,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1F,SAAS,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAC7F,SAAS,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3G,SAAS,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;KAC7H;CACJ;AA6GD,OAAO,EAAE,CAAC"}