Browse Source

chore: adds experimental decorators @model, @property and @relation

e22m4u 1 year ago
parent
commit
bb4a4f369a
100 changed files with 58 additions and 24 deletions
  1. 41 17
      .eslintrc.cjs
  2. 2 2
      .mocharc.cjs
  3. 1 1
      docs/assets/navigation.js
  4. 0 0
      docs/assets/search.js
  5. 0 0
      docs/classes/Adapter.html
  6. 0 0
      docs/classes/AdapterLoader.html
  7. 0 0
      docs/classes/AdapterRegistry.html
  8. 0 0
      docs/classes/BelongsToResolver.html
  9. 0 0
      docs/classes/DatasourceDefinitionValidator.html
  10. 0 0
      docs/classes/DefinitionRegistry.html
  11. 0 0
      docs/classes/FieldsClauseTool.html
  12. 0 0
      docs/classes/HasManyResolver.html
  13. 0 0
      docs/classes/HasOneResolver.html
  14. 0 0
      docs/classes/IncludeClauseTool.html
  15. 0 0
      docs/classes/InvalidArgumentError.html
  16. 0 0
      docs/classes/InvalidOperatorValueError.html
  17. 0 0
      docs/classes/ModelDataSanitizer.html
  18. 0 0
      docs/classes/ModelDataValidator.html
  19. 0 0
      docs/classes/ModelDecoratorUtils.html
  20. 0 0
      docs/classes/ModelDefinitionUtils.html
  21. 0 0
      docs/classes/ModelDefinitionValidator.html
  22. 0 0
      docs/classes/NotImplementedError.html
  23. 0 0
      docs/classes/OperatorClauseTool.html
  24. 0 0
      docs/classes/OrderClauseTool.html
  25. 0 0
      docs/classes/PrimaryKeysDefinitionValidator.html
  26. 0 0
      docs/classes/PropertiesDefinitionValidator.html
  27. 0 0
      docs/classes/ReferencesManyResolver.html
  28. 0 0
      docs/classes/RelationsDefinitionValidator.html
  29. 0 0
      docs/classes/Repository.html
  30. 0 0
      docs/classes/RepositoryRegistry.html
  31. 0 0
      docs/classes/Schema.html
  32. 0 0
      docs/classes/SliceClauseTool.html
  33. 0 0
      docs/classes/WhereClauseTool.html
  34. 0 0
      docs/enums/DataType.html
  35. 0 0
      docs/enums/DecoratorTargetType.html
  36. 0 0
      docs/enums/ModelDecoratorKeys.html
  37. 0 0
      docs/enums/RelationType.html
  38. 0 0
      docs/functions/capitalize.html
  39. 0 0
      docs/functions/cloneDeep.html
  40. 0 0
      docs/functions/excludeObjectKeys.html
  41. 0 0
      docs/functions/getCtorName.html
  42. 0 0
      docs/functions/getDecoratorTargetType.html
  43. 0 0
      docs/functions/getValueByPath.html
  44. 0 0
      docs/functions/isClass.html
  45. 0 0
      docs/functions/isCtor.html
  46. 0 0
      docs/functions/isPureObject.html
  47. 0 0
      docs/functions/model.html
  48. 0 0
      docs/functions/property.html
  49. 0 0
      docs/functions/relation.html
  50. 0 0
      docs/functions/selectObjectKeys.html
  51. 0 0
      docs/functions/singularize.html
  52. 0 0
      docs/functions/stringToRegexp.html
  53. 0 0
      docs/index.html
  54. 0 0
      docs/interfaces/AndClause.html
  55. 0 0
      docs/interfaces/Constructor.html
  56. 0 0
      docs/interfaces/OrClause.html
  57. 0 0
      docs/modules.html
  58. 0 0
      docs/types/AnyObject.html
  59. 0 0
      docs/types/BaseOptionValue.html
  60. 0 0
      docs/types/BelongsToDefinition.html
  61. 0 0
      docs/types/DEFAULT_PRIMARY_KEY_PROPERTY_NAME.html
  62. 0 0
      docs/types/DatasourceDefinition.html
  63. 0 0
      docs/types/ExcludePropertiesAndRelations.html
  64. 0 0
      docs/types/FieldsClause.html
  65. 0 0
      docs/types/FilterClause.html
  66. 0 0
      docs/types/Flatten.html
  67. 0 0
      docs/types/FullPropertyDefinition.html
  68. 0 0
      docs/types/HasManyDefinition.html
  69. 0 0
      docs/types/HasOneDefinition.html
  70. 0 0
      docs/types/Identity.html
  71. 0 0
      docs/types/IncludeClause.html
  72. 0 0
      docs/types/ItemFilterClause.html
  73. 0 0
      docs/types/MakeTheNamePropertyOptional.html
  74. 0 0
      docs/types/ModelData.html
  75. 0 0
      docs/types/ModelDefinition.html
  76. 0 0
      docs/types/ModelId.html
  77. 0 0
      docs/types/NestedIncludeClause.html
  78. 0 0
      docs/types/NormalizedFieldsClause.html
  79. 0 0
      docs/types/NormalizedIncludeClause.html
  80. 0 0
      docs/types/OperatorClause.html
  81. 0 0
      docs/types/OptionalUnlessRequiredId.html
  82. 0 0
      docs/types/OrderClause.html
  83. 0 0
      docs/types/PartialBy.html
  84. 0 0
      docs/types/PartialWithoutId.html
  85. 0 0
      docs/types/PolyBelongsToDefinition.html
  86. 0 0
      docs/types/PolyHasManyDefinitionWithTargetKeys.html
  87. 0 0
      docs/types/PolyHasManyDefinitionWithTargetRelationName.html
  88. 0 0
      docs/types/PolyHasOneDefinitionWithTargetKeys.html
  89. 0 0
      docs/types/PolyHasOneDefinitionWithTargetRelationName.html
  90. 0 0
      docs/types/PropertiesClause.html
  91. 0 0
      docs/types/PropertyDefinition.html
  92. 0 0
      docs/types/PropertyDefinitionMap.html
  93. 0 0
      docs/types/ReferencesManyDefinition.html
  94. 0 0
      docs/types/RelationDefinition.html
  95. 0 0
      docs/types/RelationDefinitionMap.html
  96. 0 0
      docs/types/ShortModelDefinition.html
  97. 0 0
      docs/types/WhereClause.html
  98. 0 0
      docs/types/WithoutId.html
  99. 8 3
      mocha.setup.js
  100. 6 1
      package.json

+ 41 - 17
.eslintrc.cjs

@@ -7,21 +7,45 @@ module.exports = {
     sourceType: 'module',
     ecmaVersion: 13,
   },
-  plugins: [
-    'mocha',
-    'jsdoc',
-    'chai-expect',
-  ],
-  extends: [
-    'prettier',
-    'plugin:jsdoc/recommended',
-    'plugin:mocha/recommended',
-    'plugin:chai-expect/recommended',
-    'plugin:jsdoc/recommended-error',
-  ],
-  rules: {
-    'jsdoc/require-param-description': 0,
-    'jsdoc/require-returns-description': 0,
-    'jsdoc/tag-lines': ['error', 'any', {startLines: 1}],
-  },
+  overrides: [
+    {
+      files: ['**/*.js'],
+      plugins: [
+        'mocha',
+        'jsdoc',
+        'chai-expect',
+      ],
+      extends: [
+        'prettier',
+        'plugin:jsdoc/recommended',
+        'plugin:mocha/recommended',
+        'plugin:chai-expect/recommended',
+        'plugin:jsdoc/recommended-error',
+      ],
+      rules: {
+        'jsdoc/require-param-description': 0,
+        'jsdoc/require-returns-description': 0,
+        'jsdoc/require-property-description': 0,
+        'jsdoc/tag-lines': ['error', 'any', {startLines: 1}],
+      },
+    },
+    {
+      files: ['**/*.ts'],
+      plugins: [
+        'mocha',
+        'chai-expect',
+        '@typescript-eslint',
+      ],
+      extends: [
+        'prettier',
+        'eslint:recommended',
+        'plugin:@typescript-eslint/recommended',
+      ],
+      rules: {
+        '@typescript-eslint/no-namespace': 0,
+        '@typescript-eslint/no-var-requires': 0,
+        '@typescript-eslint/no-unnecessary-type-constraint': 0,
+      },
+    }
+  ]
 }

+ 2 - 2
.mocharc.cjs

@@ -1,7 +1,7 @@
 const path = require('path');
 
 module.exports = {
-  extension: ['js'],
-  spec: 'src/**/*.spec.js',
+  extension: ['js', 'ts'],
+  spec: 'src/**/*.spec.{js,ts}',
   require: [path.join(__dirname, 'mocha.setup.js')],
 }

+ 1 - 1
docs/assets/navigation.js

@@ -1 +1 @@
-window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA6WYb2/TMBDGv0teTwwmGLB33VZEBV2r0IEmhCaT3FqDYwf7ghYQ3x2lbZrEds6u9jbPc7+zff6br38ThEdMLpJrhmxVl5CcJCXDTXKRgKwKc9p+f7bBQiQnyU8u8+Tizb+TQ2QKgiFX0hfd18YJk5yVCLoLzgQzBszpXhhGvjjzxH5ULCcIOzmCk8KaG9T1KKk1UKxLEEquzUqlYJT47WuXY6F4TQ2MqnQG1/DAJW9G9DMTPGeoPGzSTuY52MeHwfVQxHccRG6uBKsMrJQSLs92ULT3zMyZrMdH1TIEWAsJJKqnU6SZzESVA9VJx0LzfjfFmuh1VYDEqda+IvtcEdRFCbqZBp+ZqIBGu1aKP1c5iGbmfWLN9PjjG1PXE0UkprrrCRMPE/gWuTBjzKHrCGqwtcetyRuFs6IU0BQZ8pGKeUwUs60sNWVdD0nUOdC4oYFiLTUvmK4/QG2iRpX205lUCRo5xCYi7FSeFB5Ag8wgsH35fTR5d77GdYBy01lKZTgq33nQaXGE8ZPF9VDET9kGCuZSdt/JSMEzcre2DBTrywY0ybIM5A1E5jtjR+ESQT+wrLl+tOoQcfbqfLAMCUIrUoCJrBfff0CGHQHrcpt+L1jRz9++fvHqzHf36eaYzfJYQtTr6bvJ7cfV/TKdzSfp3f2H6d39Ml0sp+nq7v5mMp/aOYIBwYyeS5STxOMJcfv3HZvX18IcgeCUu+V0WpAjGCI4Xdt/DkZXQuy3xXp8nPyuEHt/mRvHOoYI4kIS9bT1EG+Wg0SOtc1pvwfj+9dCB9IXgySEgpoRth7iHe5VNuggxBFGh9qSo2iz3EuZ5aHoGzAIOTnaHkuQqnTBBP8DObWm/a54Nt1qvy1EH97tbOhQDbOa+jFxKwUYk8KvimvI3VKN+YL87uLoIDspRFkyjZyJS2epHoRIwheOG1Wh2z9bD/KUqCPOyhFbDN3ZHpu2rZheAzZ3ZV+mQMgTs7bXzxtWOLU8IjSyFYOdPKrrRMTTckZ0PCIy2IbD88S/XGw9kkccwMef6W7EnJVh7JyVIfLw7TTe5jFfmL+rBEW2HcczPaPhNYXIvWeHzetJQcrYZhe9y2Ws5Lg9oTrEQyWz7Sv0tFOHnPOXfYRQzdqA0ktoRQIAj9ujcfd8GS7/DuSYCOAa8AqVHq7mDtWTacj2x9plvWwAfk7PQaC4uRo89zvETiFDl5UG+8nXB3Q6gTEgIEN6hG0PheNyXQmmR6ZNT6YgqLlcNz/Y1/DonTxDh4P69h+oE9qJHRkAAA=="
+window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA6WZXW/bNhSG/4uug2UN1m7LnZO4mNE6NhSnRTAMASed2FwpUiOpImqx/z7IkiyKH4c0euv3Pc+h+HF4JP/5PdPwqrPr7I5osmtryC6ymuhDdp0Bbyp1Of7+00FXLLvIvlBeZte//XcxRUIhJNFC7ojcg/ZCXEuYtxYlsFPEB2iVjXMdYVoOjGgquG9YphYmLEpSa5BTcMGIUqAuB2Ee+ebKE/tRkBIh9HICJ4c9VVq2QdJowFg3wATfq53IQQn21Tcux4Lxuh2iRCMLuIMXymk3o58Io2W3OC4btaN5TvbwNLgejPieAivVLSONgp0QzOXZDoz2B1FrwtvwrFqGCGvDAUUZOkZa8YI1JWAP6Vhw3tdusRZy31TA9VJK3yL7XAnUTQ3HI/2JsAZwtGvF+H3FIJo8kG57fPPNqetJIiJb3fXEiWNVe9SUqRByZkpgjocCh85cZ1CjM3DeOb8XelXVDLqNA2VgF3hMGHPcLdgxcD0oUZaA4+YGjLWVtCKy7S6ypFnF/XgmUYPUFFITIXYsTw4vIIEXECmJfh9O7u/stAfA3HiWWiiqhe+OmbQ0Qvi2cj0Y8aE4QEVcSv87Gslogd4AlgFjfT6ARFmWAe1qeNkbJwrlGuQLKbqWZlTniKu37wzEreBKy6aYrb4BMXQMs5HIQEYRAyx4u/n7Hyj0RNBtfXyKQbCif/791zdvr8y2jCjY1MMObcDmWHKUNnZw08Z3iK4lRr1bvl88ftw9b/PVepE/PX9YPj1v8812me+enu8X66WdIxoQzejpFp0kHk+Mu3w99jxTgVvw8lQs7ASoOZbJbCFtsKnFOUyDs01HzqRFOYxoDc4kDj9HoxvGhnlowyvid8XYQ38cxjqGBOKGIzvH1mO8VQlcU93anPH3aLzZaTsQU4ySNFTYjrD1GG9NvsDuAPekGrd521cbwmw0Yo1mGRtihzkKaYTgglpyEm1VeimrMhZ9D0pDia6pxxKlClkRRr9BiVUOvyudjY/ab4vR5w20DZ2rcVa/ox45A6Vy+LehEkp3qUK+KH/qzh3kJMUoWyI1JezGKQgnIZHwmeqDaLT7fLYe5QnWJtz9AVsK3SnC3dj673rzb3VTpkjID2Ydb+KuIJ2Z3QxNHMXsvkh6dCTix3ImPHhCZHQMp67Hf1xsPZGHXPPndw5uxJrUceya1DHy/AU1POaQL87vVwIj247zmZ7Z8Jpi5IeDkDpyBfs8Ma7xzmjjDClKCRXR5OpZkJrq4803IV4aXhwb/ctJnXPe/WIimOjOHNRewigiAOhfNvqXxnlZmUCOCQHuQd9qIedVYkIZMg5B/+eZ8aJ/99jo4yvtTbvtWH6k4UBQtKtByjtjg4QHz74izGKd7wdW6LaRYH8AMAGTjmCq7tT44o8CElgPpc0XO2pIuBxqgS981JBwBQwKjW9Y24PhKN83jMjAKTRkDKIl5fvuD6w9vHrP4tzhoP76Hy+UGeEbHQAA"

File diff suppressed because it is too large
+ 0 - 0
docs/assets/search.js


File diff suppressed because it is too large
+ 0 - 0
docs/classes/Adapter.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/AdapterLoader.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/AdapterRegistry.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/BelongsToResolver.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/DatasourceDefinitionValidator.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/DefinitionRegistry.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/FieldsClauseTool.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/HasManyResolver.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/HasOneResolver.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/IncludeClauseTool.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/InvalidArgumentError.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/InvalidOperatorValueError.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/ModelDataSanitizer.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/ModelDataValidator.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/ModelDecoratorUtils.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/ModelDefinitionUtils.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/ModelDefinitionValidator.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/NotImplementedError.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/OperatorClauseTool.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/OrderClauseTool.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/PrimaryKeysDefinitionValidator.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/PropertiesDefinitionValidator.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/ReferencesManyResolver.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/RelationsDefinitionValidator.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/Repository.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/RepositoryRegistry.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/Schema.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/SliceClauseTool.html


File diff suppressed because it is too large
+ 0 - 0
docs/classes/WhereClauseTool.html


File diff suppressed because it is too large
+ 0 - 0
docs/enums/DataType.html


File diff suppressed because it is too large
+ 0 - 0
docs/enums/DecoratorTargetType.html


File diff suppressed because it is too large
+ 0 - 0
docs/enums/ModelDecoratorKeys.html


File diff suppressed because it is too large
+ 0 - 0
docs/enums/RelationType.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/capitalize.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/cloneDeep.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/excludeObjectKeys.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/getCtorName.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/getDecoratorTargetType.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/getValueByPath.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/isClass.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/isCtor.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/isPureObject.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/model.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/property.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/relation.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/selectObjectKeys.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/singularize.html


File diff suppressed because it is too large
+ 0 - 0
docs/functions/stringToRegexp.html


File diff suppressed because it is too large
+ 0 - 0
docs/index.html


File diff suppressed because it is too large
+ 0 - 0
docs/interfaces/AndClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/interfaces/Constructor.html


File diff suppressed because it is too large
+ 0 - 0
docs/interfaces/OrClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/modules.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/AnyObject.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/BaseOptionValue.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/BelongsToDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/DEFAULT_PRIMARY_KEY_PROPERTY_NAME.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/DatasourceDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/ExcludePropertiesAndRelations.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/FieldsClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/FilterClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/Flatten.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/FullPropertyDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/HasManyDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/HasOneDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/Identity.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/IncludeClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/ItemFilterClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/MakeTheNamePropertyOptional.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/ModelData.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/ModelDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/ModelId.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/NestedIncludeClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/NormalizedFieldsClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/NormalizedIncludeClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/OperatorClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/OptionalUnlessRequiredId.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/OrderClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PartialBy.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PartialWithoutId.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PolyBelongsToDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PolyHasManyDefinitionWithTargetKeys.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PolyHasManyDefinitionWithTargetRelationName.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PolyHasOneDefinitionWithTargetKeys.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PolyHasOneDefinitionWithTargetRelationName.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PropertiesClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PropertyDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/PropertyDefinitionMap.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/ReferencesManyDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/RelationDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/RelationDefinitionMap.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/ShortModelDefinition.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/WhereClause.html


File diff suppressed because it is too large
+ 0 - 0
docs/types/WithoutId.html


+ 8 - 3
mocha.setup.js

@@ -1,10 +1,15 @@
+process.env['NODE_ENV'] = 'test';
+
+// ts loader
+import {register} from 'node:module';
+import {pathToFileURL} from 'node:url';
+register('ts-node/esm', pathToFileURL('./'));
+
+// chai
 import chai from 'chai';
 import chaiSpies from 'chai-spies';
 import chaiSubset from 'chai-subset';
 import chaiAsPromised from 'chai-as-promised';
-
-process.env['NODE_ENV'] = 'test';
-
 chai.use(chaiSpies);
 chai.use(chaiSubset);
 chai.use(chaiAsPromised);

+ 6 - 1
package.json

@@ -35,11 +35,15 @@
   "homepage": "https://github.com/e22m4u/js-repository",
   "dependencies": {
     "@e22m4u/js-format": "0.0.7",
-    "@e22m4u/js-service": "0.0.7"
+    "@e22m4u/js-service": "0.0.7",
+    "reflect-metadata": "^0.2.1"
   },
   "devDependencies": {
     "@commitlint/cli": "^18.4.3",
     "@commitlint/config-conventional": "^18.4.3",
+    "@types/mocha": "^10.0.6",
+    "@typescript-eslint/eslint-plugin": "^6.16.0",
+    "@typescript-eslint/parser": "^6.16.0",
     "c8": "^8.0.1",
     "chai": "^4.3.10",
     "chai-as-promised": "^7.1.1",
@@ -53,6 +57,7 @@
     "husky": "^8.0.3",
     "mocha": "^10.2.0",
     "prettier": "^3.1.1",
+    "ts-node": "^10.9.2",
     "typedoc": "^0.25.4",
     "typescript": "^5.3.3"
   }

Some files were not shown because too many files changed in this diff