@unispechq/unispec-core 0.3.2 → 0.3.4
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.
- package/dist/cache/cache-factory.d.ts +2 -2
- package/dist/cache/cache-factory.js +1 -1
- package/dist/cache/cache-manager.d.ts +2 -2
- package/dist/cache/cache-manager.js +9 -7
- package/dist/cache/hash-utils.d.ts +1 -11
- package/dist/cache/hash-utils.js +1 -21
- package/dist/cache/hashing.d.ts +15 -6
- package/dist/cache/hashing.js +8 -12
- package/dist/cache/index.d.ts +6 -6
- package/dist/cache/index.js +5 -5
- package/dist/cache/lru-cache.d.ts +1 -13
- package/dist/cache/lru-cache.js +3 -24
- package/dist/cjs/cache/cache-factory.js +1 -1
- package/dist/cjs/cache/cache-manager.js +9 -7
- package/dist/cjs/cache/hash-utils.js +1 -23
- package/dist/cjs/cache/hashing.js +7 -13
- package/dist/cjs/cache/index.js +6 -8
- package/dist/cjs/cache/lru-cache.js +3 -24
- package/dist/cjs/diff/annotators.js +3 -2
- package/dist/cjs/diff/core.js +2 -2
- package/dist/cjs/diff/enhanced-diff.js +7 -21
- package/dist/cjs/diff/index.js +8 -8
- package/dist/cjs/errors/config-error.js +1 -1
- package/dist/cjs/errors/error-factory.js +7 -7
- package/dist/cjs/errors/index.js +8 -8
- package/dist/cjs/errors/loader-error.js +1 -1
- package/dist/cjs/errors/reference-error.js +1 -1
- package/dist/cjs/errors/schema-error.js +1 -1
- package/dist/cjs/errors/security-error.js +1 -1
- package/dist/cjs/errors/semantic-error.js +1 -1
- package/dist/cjs/index.js +13 -13
- package/dist/cjs/loader/index.js +4 -4
- package/dist/cjs/loader/security-validator.js +1 -1
- package/dist/cjs/loader/unispec-loader.js +3 -3
- package/dist/cjs/loader/yaml-loader.js +1 -1
- package/dist/cjs/normalizer/core.js +11 -6
- package/dist/cjs/normalizer/index.js +1 -1
- package/dist/cjs/normalizer/utils.js +23 -7
- package/dist/cjs/optimizer/core.js +35 -10
- package/dist/cjs/optimizer/index.js +3 -3
- package/dist/cjs/optimizer/optimization-functions.js +2 -2
- package/dist/cjs/schemas/dedupe.js +27 -14
- package/dist/cjs/schemas/index.js +3 -3
- package/dist/cjs/schemas/resolver.js +3 -2
- package/dist/cjs/validator/ajv-validator.js +1 -1
- package/dist/cjs/validator/config-validator-main.js +4 -4
- package/dist/cjs/validator/config-validator.js +1 -1
- package/dist/cjs/validator/index.js +7 -7
- package/dist/cjs/validator/reference-validator.js +1 -1
- package/dist/cjs/validator/tests-validator.js +2 -2
- package/dist/cjs/validator/unispec-validator.js +7 -11
- package/dist/cjs/validator/validator-factory.js +1 -1
- package/dist/diff/annotators.d.ts +1 -1
- package/dist/diff/annotators.js +3 -2
- package/dist/diff/change-reports.d.ts +1 -1
- package/dist/diff/core.d.ts +2 -2
- package/dist/diff/core.js +2 -2
- package/dist/diff/enhanced-diff.d.ts +3 -3
- package/dist/diff/enhanced-diff.js +7 -21
- package/dist/diff/impact-strategies-refactored.d.ts +2 -2
- package/dist/diff/impact-strategies.d.ts +2 -2
- package/dist/diff/index.d.ts +8 -8
- package/dist/diff/index.js +8 -8
- package/dist/diff/metrics-calculator.d.ts +1 -1
- package/dist/diff/risk-calculator.d.ts +1 -1
- package/dist/diff/suggestion-generator.d.ts +2 -2
- package/dist/errors/config-error.d.ts +1 -1
- package/dist/errors/config-error.js +1 -1
- package/dist/errors/error-factory.d.ts +7 -7
- package/dist/errors/error-factory.js +7 -7
- package/dist/errors/index.d.ts +8 -8
- package/dist/errors/index.js +8 -8
- package/dist/errors/loader-error.d.ts +1 -1
- package/dist/errors/loader-error.js +1 -1
- package/dist/errors/reference-error.d.ts +1 -1
- package/dist/errors/reference-error.js +1 -1
- package/dist/errors/schema-error.d.ts +1 -1
- package/dist/errors/schema-error.js +1 -1
- package/dist/errors/security-error.d.ts +1 -1
- package/dist/errors/security-error.js +1 -1
- package/dist/errors/semantic-error.d.ts +1 -1
- package/dist/errors/semantic-error.js +1 -1
- package/dist/index.cjs +13 -13
- package/dist/index.d.ts +13 -13
- package/dist/index.js +13 -13
- package/dist/loader/index.d.ts +5 -5
- package/dist/loader/index.js +4 -4
- package/dist/loader/security-validator.d.ts +1 -1
- package/dist/loader/security-validator.js +1 -1
- package/dist/loader/unispec-loader.d.ts +2 -2
- package/dist/loader/unispec-loader.js +3 -3
- package/dist/loader/yaml-loader.d.ts +1 -1
- package/dist/loader/yaml-loader.js +1 -1
- package/dist/normalizer/core.d.ts +2 -2
- package/dist/normalizer/core.js +11 -6
- package/dist/normalizer/graphql-normalizer.d.ts +1 -1
- package/dist/normalizer/index.d.ts +2 -2
- package/dist/normalizer/index.js +1 -1
- package/dist/normalizer/rest-normalizer.d.ts +1 -1
- package/dist/normalizer/types.d.ts +1 -1
- package/dist/normalizer/utils.d.ts +6 -3
- package/dist/normalizer/utils.js +23 -7
- package/dist/normalizer/websocket-normalizer.d.ts +1 -1
- package/dist/optimizer/core.d.ts +2 -2
- package/dist/optimizer/core.js +35 -10
- package/dist/optimizer/index.d.ts +4 -4
- package/dist/optimizer/index.js +3 -3
- package/dist/optimizer/optimization-functions.d.ts +2 -2
- package/dist/optimizer/optimization-functions.js +2 -2
- package/dist/optimizer/types.d.ts +1 -1
- package/dist/schemas/dedupe.d.ts +1 -1
- package/dist/schemas/dedupe.js +27 -14
- package/dist/schemas/index.d.ts +3 -3
- package/dist/schemas/index.js +3 -3
- package/dist/schemas/resolver.d.ts +1 -1
- package/dist/schemas/resolver.js +3 -2
- package/dist/types/index.d.ts +2 -1
- package/dist/validator/ajv-validator.d.ts +1 -1
- package/dist/validator/ajv-validator.js +1 -1
- package/dist/validator/config-validator-main.d.ts +2 -2
- package/dist/validator/config-validator-main.js +4 -4
- package/dist/validator/config-validator.d.ts +1 -1
- package/dist/validator/config-validator.js +1 -1
- package/dist/validator/index.d.ts +10 -10
- package/dist/validator/index.js +7 -7
- package/dist/validator/reference-validator.d.ts +1 -1
- package/dist/validator/reference-validator.js +1 -1
- package/dist/validator/schema-references.d.ts +1 -1
- package/dist/validator/semantic-validator.d.ts +1 -1
- package/dist/validator/tests-validator.d.ts +2 -2
- package/dist/validator/tests-validator.js +2 -2
- package/dist/validator/types.d.ts +3 -3
- package/dist/validator/unispec-validator.d.ts +2 -2
- package/dist/validator/unispec-validator.js +7 -11
- package/dist/validator/validator-factory.d.ts +3 -3
- package/dist/validator/validator-factory.js +1 -1
- package/package.json +3 -3
- package/dist/cjs/src/cache/cache-factory.js +0 -72
- package/dist/cjs/src/cache/cache-manager.js +0 -128
- package/dist/cjs/src/cache/constants.js +0 -25
- package/dist/cjs/src/cache/hash-utils.js +0 -19
- package/dist/cjs/src/cache/hashing.js +0 -230
- package/dist/cjs/src/cache/index.js +0 -24
- package/dist/cjs/src/cache/lru-cache.js +0 -144
- package/dist/cjs/src/cache/types.js +0 -5
- package/dist/cjs/src/diff/annotators.js +0 -160
- package/dist/cjs/src/diff/change-reports.js +0 -369
- package/dist/cjs/src/diff/core.js +0 -158
- package/dist/cjs/src/diff/enhanced-diff.js +0 -65
- package/dist/cjs/src/diff/impact-strategies-refactored.js +0 -230
- package/dist/cjs/src/diff/impact-strategies.js +0 -219
- package/dist/cjs/src/diff/index.js +0 -27
- package/dist/cjs/src/diff/metrics-calculator.js +0 -69
- package/dist/cjs/src/diff/risk-calculator.js +0 -58
- package/dist/cjs/src/diff/suggestion-generator.js +0 -78
- package/dist/cjs/src/diff/types.js +0 -11
- package/dist/cjs/src/errors/base-error.js +0 -33
- package/dist/cjs/src/errors/config-error.js +0 -11
- package/dist/cjs/src/errors/error-factory.js +0 -48
- package/dist/cjs/src/errors/index.js +0 -19
- package/dist/cjs/src/errors/loader-error.js +0 -11
- package/dist/cjs/src/errors/reference-error.js +0 -11
- package/dist/cjs/src/errors/schema-error.js +0 -11
- package/dist/cjs/src/errors/security-error.js +0 -11
- package/dist/cjs/src/errors/semantic-error.js +0 -11
- package/dist/cjs/src/generated-schemas.js +0 -2100
- package/dist/cjs/src/index.js +0 -59
- package/dist/cjs/src/loader/index.js +0 -13
- package/dist/cjs/src/loader/security-validator.js +0 -53
- package/dist/cjs/src/loader/types.js +0 -11
- package/dist/cjs/src/loader/unispec-loader.js +0 -84
- package/dist/cjs/src/loader/yaml-loader.js +0 -76
- package/dist/cjs/src/normalizer/core.js +0 -37
- package/dist/cjs/src/normalizer/graphql-normalizer.js +0 -67
- package/dist/cjs/src/normalizer/index.js +0 -7
- package/dist/cjs/src/normalizer/rest-normalizer.js +0 -51
- package/dist/cjs/src/normalizer/types.js +0 -2
- package/dist/cjs/src/normalizer/utils.js +0 -49
- package/dist/cjs/src/normalizer/websocket-normalizer.js +0 -81
- package/dist/cjs/src/optimizer/core.js +0 -140
- package/dist/cjs/src/optimizer/index.js +0 -17
- package/dist/cjs/src/optimizer/optimization-functions.js +0 -185
- package/dist/cjs/src/optimizer/types.js +0 -2
- package/dist/cjs/src/optimizer/utils.js +0 -32
- package/dist/cjs/src/schemas/dedupe.js +0 -113
- package/dist/cjs/src/schemas/index.js +0 -14
- package/dist/cjs/src/schemas/resolver.js +0 -42
- package/dist/cjs/src/schemas/utils.js +0 -53
- package/dist/cjs/src/types/index.js +0 -2
- package/dist/cjs/src/validator/ajv-validator.js +0 -82
- package/dist/cjs/src/validator/config-validator-main.js +0 -34
- package/dist/cjs/src/validator/config-validator.js +0 -17
- package/dist/cjs/src/validator/index.js +0 -23
- package/dist/cjs/src/validator/object-traversal.js +0 -112
- package/dist/cjs/src/validator/reference-validator.js +0 -233
- package/dist/cjs/src/validator/schema-references.js +0 -116
- package/dist/cjs/src/validator/semantic-validator.js +0 -328
- package/dist/cjs/src/validator/tests-validator.js +0 -16
- package/dist/cjs/src/validator/types.js +0 -2
- package/dist/cjs/src/validator/unispec-validator.js +0 -80
- package/dist/cjs/src/validator/validator-factory.js +0 -77
- package/dist/cjs/src/versions.js +0 -147
- package/dist/cjs/tests/cache/cache.test.js +0 -274
- package/dist/cjs/tests/cache/utils.js +0 -32
- package/dist/cjs/tests/concurrency-normalizer-optimizer.test.js +0 -1
- package/dist/cjs/tests/diff/diff-annotators.test.js +0 -280
- package/dist/cjs/tests/diff/diff-comprehensive.test.js +0 -262
- package/dist/cjs/tests/diff/diff-extended.test.js +0 -235
- package/dist/cjs/tests/diff/diff.test.js +0 -189
- package/dist/cjs/tests/diff/utils.js +0 -8
- package/dist/cjs/tests/errors/errors-integration.test.js +0 -173
- package/dist/cjs/tests/errors/errors.test.js +0 -280
- package/dist/cjs/tests/errors/utils.js +0 -7
- package/dist/cjs/tests/loader/integration.test.js +0 -216
- package/dist/cjs/tests/loader/loader.test.js +0 -341
- package/dist/cjs/tests/normalizer/normalizer-comprehensive.test.js +0 -648
- package/dist/cjs/tests/normalizer/normalizer-invalid.test.js +0 -258
- package/dist/cjs/tests/normalizer/normalizer-valid.test.js +0 -238
- package/dist/cjs/tests/normalizer/utils.js +0 -47
- package/dist/cjs/tests/optimizer/compress-references.test.js +0 -304
- package/dist/cjs/tests/optimizer/deduplication.test.js +0 -132
- package/dist/cjs/tests/optimizer/integration.test.js +0 -131
- package/dist/cjs/tests/optimizer/optimization-report.test.js +0 -222
- package/dist/cjs/tests/optimizer/optimize-document.test.js +0 -187
- package/dist/cjs/tests/optimizer/orphaned-schemas.test.js +0 -194
- package/dist/cjs/tests/optimizer/sort-schemas.test.js +0 -131
- package/dist/cjs/tests/optimizer/utils.js +0 -209
- package/dist/cjs/tests/schemas/schemas-edge-cases.test.js +0 -223
- package/dist/cjs/tests/schemas/schemas.test.js +0 -400
- package/dist/cjs/tests/schemas/utils.js +0 -7
- package/dist/cjs/tests/utils.js +0 -131
- package/dist/cjs/tests/validator/config-validator.test.js +0 -78
- package/dist/cjs/tests/validator/debug-config.js +0 -1
- package/dist/cjs/tests/validator/debug-missing-service.js +0 -1
- package/dist/cjs/tests/validator/debug-other-configs.js +0 -1
- package/dist/cjs/tests/validator/debug-references.js +0 -1
- package/dist/cjs/tests/validator/unispec-validator.test.js +0 -103
- package/dist/cjs/tests/validator/utils.js +0 -25
- package/dist/src/cache/cache-factory.d.ts +0 -31
- package/dist/src/cache/cache-factory.js +0 -65
- package/dist/src/cache/cache-manager.d.ts +0 -62
- package/dist/src/cache/cache-manager.js +0 -124
- package/dist/src/cache/constants.d.ts +0 -21
- package/dist/src/cache/constants.js +0 -22
- package/dist/src/cache/hash-utils.d.ts +0 -11
- package/dist/src/cache/hash-utils.js +0 -15
- package/dist/src/cache/hashing.d.ts +0 -28
- package/dist/src/cache/hashing.js +0 -193
- package/dist/src/cache/index.d.ts +0 -6
- package/dist/src/cache/index.js +0 -10
- package/dist/src/cache/lru-cache.d.ts +0 -44
- package/dist/src/cache/lru-cache.js +0 -140
- package/dist/src/cache/types.d.ts +0 -24
- package/dist/src/cache/types.js +0 -4
- package/dist/src/diff/annotators.d.ts +0 -4
- package/dist/src/diff/annotators.js +0 -155
- package/dist/src/diff/change-reports.d.ts +0 -37
- package/dist/src/diff/change-reports.js +0 -366
- package/dist/src/diff/core.d.ts +0 -26
- package/dist/src/diff/core.js +0 -155
- package/dist/src/diff/enhanced-diff.d.ts +0 -51
- package/dist/src/diff/enhanced-diff.js +0 -62
- package/dist/src/diff/impact-strategies-refactored.d.ts +0 -69
- package/dist/src/diff/impact-strategies-refactored.js +0 -223
- package/dist/src/diff/impact-strategies.d.ts +0 -41
- package/dist/src/diff/impact-strategies.js +0 -212
- package/dist/src/diff/index.d.ts +0 -8
- package/dist/src/diff/index.js +0 -11
- package/dist/src/diff/metrics-calculator.d.ts +0 -23
- package/dist/src/diff/metrics-calculator.js +0 -65
- package/dist/src/diff/risk-calculator.d.ts +0 -23
- package/dist/src/diff/risk-calculator.js +0 -55
- package/dist/src/diff/suggestion-generator.d.ts +0 -18
- package/dist/src/diff/suggestion-generator.js +0 -74
- package/dist/src/diff/types.d.ts +0 -24
- package/dist/src/diff/types.js +0 -8
- package/dist/src/errors/base-error.d.ts +0 -20
- package/dist/src/errors/base-error.js +0 -29
- package/dist/src/errors/config-error.d.ts +0 -4
- package/dist/src/errors/config-error.js +0 -7
- package/dist/src/errors/error-factory.d.ts +0 -22
- package/dist/src/errors/error-factory.js +0 -45
- package/dist/src/errors/index.d.ts +0 -8
- package/dist/src/errors/index.js +0 -8
- package/dist/src/errors/loader-error.d.ts +0 -4
- package/dist/src/errors/loader-error.js +0 -7
- package/dist/src/errors/reference-error.d.ts +0 -4
- package/dist/src/errors/reference-error.js +0 -7
- package/dist/src/errors/schema-error.d.ts +0 -4
- package/dist/src/errors/schema-error.js +0 -7
- package/dist/src/errors/security-error.d.ts +0 -4
- package/dist/src/errors/security-error.js +0 -7
- package/dist/src/errors/semantic-error.d.ts +0 -4
- package/dist/src/errors/semantic-error.js +0 -7
- package/dist/src/generated-schemas.d.ts +0 -2073
- package/dist/src/generated-schemas.js +0 -2097
- package/dist/src/index.d.ts +0 -13
- package/dist/src/index.js +0 -43
- package/dist/src/loader/index.d.ts +0 -5
- package/dist/src/loader/index.js +0 -5
- package/dist/src/loader/security-validator.d.ts +0 -5
- package/dist/src/loader/security-validator.js +0 -50
- package/dist/src/loader/types.d.ts +0 -30
- package/dist/src/loader/types.js +0 -8
- package/dist/src/loader/unispec-loader.d.ts +0 -10
- package/dist/src/loader/unispec-loader.js +0 -81
- package/dist/src/loader/yaml-loader.d.ts +0 -10
- package/dist/src/loader/yaml-loader.js +0 -39
- package/dist/src/normalizer/core.d.ts +0 -24
- package/dist/src/normalizer/core.js +0 -34
- package/dist/src/normalizer/graphql-normalizer.d.ts +0 -8
- package/dist/src/normalizer/graphql-normalizer.js +0 -64
- package/dist/src/normalizer/index.d.ts +0 -2
- package/dist/src/normalizer/index.js +0 -3
- package/dist/src/normalizer/rest-normalizer.d.ts +0 -8
- package/dist/src/normalizer/rest-normalizer.js +0 -48
- package/dist/src/normalizer/types.d.ts +0 -7
- package/dist/src/normalizer/types.js +0 -1
- package/dist/src/normalizer/utils.d.ts +0 -17
- package/dist/src/normalizer/utils.js +0 -45
- package/dist/src/normalizer/websocket-normalizer.d.ts +0 -8
- package/dist/src/normalizer/websocket-normalizer.js +0 -78
- package/dist/src/optimizer/core.d.ts +0 -17
- package/dist/src/optimizer/core.js +0 -136
- package/dist/src/optimizer/index.d.ts +0 -4
- package/dist/src/optimizer/index.js +0 -7
- package/dist/src/optimizer/optimization-functions.d.ts +0 -32
- package/dist/src/optimizer/optimization-functions.js +0 -179
- package/dist/src/optimizer/types.d.ts +0 -28
- package/dist/src/optimizer/types.js +0 -1
- package/dist/src/optimizer/utils.d.ts +0 -7
- package/dist/src/optimizer/utils.js +0 -29
- package/dist/src/schemas/dedupe.d.ts +0 -9
- package/dist/src/schemas/dedupe.js +0 -110
- package/dist/src/schemas/index.d.ts +0 -3
- package/dist/src/schemas/index.js +0 -6
- package/dist/src/schemas/resolver.d.ts +0 -19
- package/dist/src/schemas/resolver.js +0 -38
- package/dist/src/schemas/utils.d.ts +0 -20
- package/dist/src/schemas/utils.js +0 -49
- package/dist/src/types/index.d.ts +0 -434
- package/dist/src/types/index.js +0 -1
- package/dist/src/validator/ajv-validator.d.ts +0 -15
- package/dist/src/validator/ajv-validator.js +0 -75
- package/dist/src/validator/config-validator-main.d.ts +0 -10
- package/dist/src/validator/config-validator-main.js +0 -31
- package/dist/src/validator/config-validator.d.ts +0 -5
- package/dist/src/validator/config-validator.js +0 -14
- package/dist/src/validator/index.d.ts +0 -10
- package/dist/src/validator/index.js +0 -11
- package/dist/src/validator/object-traversal.d.ts +0 -52
- package/dist/src/validator/object-traversal.js +0 -104
- package/dist/src/validator/reference-validator.d.ts +0 -31
- package/dist/src/validator/reference-validator.js +0 -230
- package/dist/src/validator/schema-references.d.ts +0 -23
- package/dist/src/validator/schema-references.js +0 -111
- package/dist/src/validator/semantic-validator.d.ts +0 -26
- package/dist/src/validator/semantic-validator.js +0 -325
- package/dist/src/validator/tests-validator.d.ts +0 -9
- package/dist/src/validator/tests-validator.js +0 -13
- package/dist/src/validator/types.d.ts +0 -29
- package/dist/src/validator/types.js +0 -1
- package/dist/src/validator/unispec-validator.d.ts +0 -15
- package/dist/src/validator/unispec-validator.js +0 -77
- package/dist/src/validator/validator-factory.d.ts +0 -10
- package/dist/src/validator/validator-factory.js +0 -73
- package/dist/src/versions.d.ts +0 -10
- package/dist/src/versions.js +0 -143
- package/dist/tests/cache/cache.test.d.ts +0 -1
- package/dist/tests/cache/cache.test.js +0 -269
- package/dist/tests/cache/utils.d.ts +0 -4
- package/dist/tests/cache/utils.js +0 -24
- package/dist/tests/concurrency-normalizer-optimizer.test.d.ts +0 -0
- package/dist/tests/concurrency-normalizer-optimizer.test.js +0 -1
- package/dist/tests/diff/diff-annotators.test.d.ts +0 -1
- package/dist/tests/diff/diff-annotators.test.js +0 -275
- package/dist/tests/diff/diff-comprehensive.test.d.ts +0 -1
- package/dist/tests/diff/diff-comprehensive.test.js +0 -257
- package/dist/tests/diff/diff-extended.test.d.ts +0 -1
- package/dist/tests/diff/diff-extended.test.js +0 -230
- package/dist/tests/diff/diff.test.d.ts +0 -1
- package/dist/tests/diff/diff.test.js +0 -184
- package/dist/tests/diff/utils.d.ts +0 -2
- package/dist/tests/diff/utils.js +0 -3
- package/dist/tests/errors/errors-integration.test.d.ts +0 -1
- package/dist/tests/errors/errors-integration.test.js +0 -168
- package/dist/tests/errors/errors.test.d.ts +0 -1
- package/dist/tests/errors/errors.test.js +0 -275
- package/dist/tests/errors/utils.d.ts +0 -2
- package/dist/tests/errors/utils.js +0 -3
- package/dist/tests/loader/integration.test.d.ts +0 -1
- package/dist/tests/loader/integration.test.js +0 -211
- package/dist/tests/loader/loader.test.d.ts +0 -1
- package/dist/tests/loader/loader.test.js +0 -336
- package/dist/tests/normalizer/normalizer-comprehensive.test.d.ts +0 -1
- package/dist/tests/normalizer/normalizer-comprehensive.test.js +0 -643
- package/dist/tests/normalizer/normalizer-invalid.test.d.ts +0 -1
- package/dist/tests/normalizer/normalizer-invalid.test.js +0 -253
- package/dist/tests/normalizer/normalizer-valid.test.d.ts +0 -1
- package/dist/tests/normalizer/normalizer-valid.test.js +0 -233
- package/dist/tests/normalizer/utils.d.ts +0 -18
- package/dist/tests/normalizer/utils.js +0 -36
- package/dist/tests/optimizer/compress-references.test.d.ts +0 -1
- package/dist/tests/optimizer/compress-references.test.js +0 -299
- package/dist/tests/optimizer/deduplication.test.d.ts +0 -1
- package/dist/tests/optimizer/deduplication.test.js +0 -127
- package/dist/tests/optimizer/integration.test.d.ts +0 -1
- package/dist/tests/optimizer/integration.test.js +0 -126
- package/dist/tests/optimizer/optimization-report.test.d.ts +0 -1
- package/dist/tests/optimizer/optimization-report.test.js +0 -217
- package/dist/tests/optimizer/optimize-document.test.d.ts +0 -1
- package/dist/tests/optimizer/optimize-document.test.js +0 -182
- package/dist/tests/optimizer/orphaned-schemas.test.d.ts +0 -1
- package/dist/tests/optimizer/orphaned-schemas.test.js +0 -189
- package/dist/tests/optimizer/sort-schemas.test.d.ts +0 -1
- package/dist/tests/optimizer/sort-schemas.test.js +0 -126
- package/dist/tests/optimizer/utils.d.ts +0 -8
- package/dist/tests/optimizer/utils.js +0 -199
- package/dist/tests/schemas/schemas-edge-cases.test.d.ts +0 -1
- package/dist/tests/schemas/schemas-edge-cases.test.js +0 -218
- package/dist/tests/schemas/schemas.test.d.ts +0 -1
- package/dist/tests/schemas/schemas.test.js +0 -395
- package/dist/tests/schemas/utils.d.ts +0 -2
- package/dist/tests/schemas/utils.js +0 -3
- package/dist/tests/utils.d.ts +0 -10
- package/dist/tests/utils.js +0 -118
- package/dist/tests/validator/config-validator.test.d.ts +0 -1
- package/dist/tests/validator/config-validator.test.js +0 -73
- package/dist/tests/validator/debug-config.d.ts +0 -0
- package/dist/tests/validator/debug-config.js +0 -1
- package/dist/tests/validator/debug-missing-service.d.ts +0 -0
- package/dist/tests/validator/debug-missing-service.js +0 -1
- package/dist/tests/validator/debug-other-configs.d.ts +0 -0
- package/dist/tests/validator/debug-other-configs.js +0 -1
- package/dist/tests/validator/debug-references.d.ts +0 -0
- package/dist/tests/validator/debug-references.js +0 -1
- package/dist/tests/validator/unispec-validator.test.d.ts +0 -1
- package/dist/tests/validator/unispec-validator.test.js +0 -98
- package/dist/tests/validator/utils.d.ts +0 -6
- package/dist/tests/validator/utils.js +0 -20
package/dist/src/versions.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
2
|
-
import { dirname, join } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
let cachedUniSpecVersion = null;
|
|
5
|
-
let cachedSchemaPackagePath = null;
|
|
6
|
-
/**
|
|
7
|
-
* Validate package.json content to ensure it's the correct @unispechq/unispec-schema package
|
|
8
|
-
* @param content Package.json content as string
|
|
9
|
-
* @returns Package info object if valid, null otherwise
|
|
10
|
-
*/
|
|
11
|
-
function validatePackageJson(content) {
|
|
12
|
-
try {
|
|
13
|
-
const packageInfo = JSON.parse(content);
|
|
14
|
-
if (packageInfo.name === "@unispechq/unispec-schema" &&
|
|
15
|
-
packageInfo.version) {
|
|
16
|
-
return packageInfo;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
// Invalid JSON
|
|
21
|
-
}
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Get current module directory (supports both ESM and CJS)
|
|
26
|
-
* @returns Current directory path
|
|
27
|
-
*/
|
|
28
|
-
function getCurrentDirectory() {
|
|
29
|
-
if (typeof __dirname !== "undefined") {
|
|
30
|
-
return __dirname;
|
|
31
|
-
}
|
|
32
|
-
// Try ESM import.meta.url
|
|
33
|
-
try {
|
|
34
|
-
if (typeof globalThis !== "undefined" &&
|
|
35
|
-
globalThis.import
|
|
36
|
-
?.meta?.url) {
|
|
37
|
-
return dirname(fileURLToPath(globalThis
|
|
38
|
-
.import.meta.url));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
// Fallback to current working directory
|
|
43
|
-
}
|
|
44
|
-
return process.cwd();
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Find the package.json path for @unispechq/unispec-schema
|
|
48
|
-
* Works in both ESM and CJS contexts with improved reliability
|
|
49
|
-
* @returns Path to package.json file
|
|
50
|
-
*/
|
|
51
|
-
function findSchemaPackagePath() {
|
|
52
|
-
// Return cached path if available
|
|
53
|
-
if (cachedSchemaPackagePath) {
|
|
54
|
-
return cachedSchemaPackagePath;
|
|
55
|
-
}
|
|
56
|
-
const currentDir = getCurrentDirectory();
|
|
57
|
-
// Define all possible paths to check
|
|
58
|
-
const candidatePaths = [
|
|
59
|
-
// Try direct package.json resolution first (most reliable for CJS)
|
|
60
|
-
() => {
|
|
61
|
-
if (typeof require !== "undefined") {
|
|
62
|
-
try {
|
|
63
|
-
return require.resolve("@unispechq/unispec-schema/package.json");
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return null;
|
|
70
|
-
},
|
|
71
|
-
// Try require.resolve for main entry point
|
|
72
|
-
() => {
|
|
73
|
-
if (typeof require !== "undefined") {
|
|
74
|
-
try {
|
|
75
|
-
const packageMainPath = require.resolve("@unispechq/unispec-schema");
|
|
76
|
-
return join(dirname(packageMainPath), "package.json");
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return null;
|
|
83
|
-
},
|
|
84
|
-
// Fallback paths
|
|
85
|
-
() => join(process.cwd(), "node_modules", "@unispechq", "unispec-schema", "package.json"),
|
|
86
|
-
() => join(currentDir, "..", "node_modules", "@unispechq", "unispec-schema", "package.json"),
|
|
87
|
-
() => join(currentDir, "..", "..", "node_modules", "@unispechq", "unispec-schema", "package.json"),
|
|
88
|
-
() => join(currentDir, "..", "..", "..", "node_modules", "@unispechq", "unispec-schema", "package.json"),
|
|
89
|
-
];
|
|
90
|
-
// Try each candidate path
|
|
91
|
-
for (const getPath of candidatePaths) {
|
|
92
|
-
try {
|
|
93
|
-
const path = getPath();
|
|
94
|
-
if (!path)
|
|
95
|
-
continue;
|
|
96
|
-
const content = readFileSync(path, "utf-8");
|
|
97
|
-
const packageInfo = validatePackageJson(content);
|
|
98
|
-
if (packageInfo) {
|
|
99
|
-
cachedSchemaPackagePath = path;
|
|
100
|
-
return path;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
catch {
|
|
104
|
-
// Continue to next path
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
throw new Error(`Could not find @unispechq/unispec-schema package.json. Searched in multiple node_modules locations.`);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get the latest supported UniSpec version from @unispechq/unispec-schema package
|
|
111
|
-
* The version is derived from the package.json version (major.minor.0 format)
|
|
112
|
-
* @returns The latest UniSpec format version (SemVer)
|
|
113
|
-
*/
|
|
114
|
-
export function getLatestUniSpecVersion() {
|
|
115
|
-
if (cachedUniSpecVersion) {
|
|
116
|
-
return cachedUniSpecVersion;
|
|
117
|
-
}
|
|
118
|
-
try {
|
|
119
|
-
// Find and read package.json from @unispechq/unispec-schema
|
|
120
|
-
const schemaPackagePath = findSchemaPackagePath();
|
|
121
|
-
const packageJson = readFileSync(schemaPackagePath, "utf-8");
|
|
122
|
-
const packageInfo = JSON.parse(packageJson);
|
|
123
|
-
// Extract version and convert to major.minor.0 format
|
|
124
|
-
const version = packageInfo.version;
|
|
125
|
-
const [major, minor] = version.split(".");
|
|
126
|
-
// Create UniSpec version in major.minor.0 format
|
|
127
|
-
const unispecVersion = `${major}.${minor}.0`;
|
|
128
|
-
cachedUniSpecVersion = unispecVersion;
|
|
129
|
-
return unispecVersion;
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
// Fallback to default version if package.json is not available
|
|
133
|
-
cachedUniSpecVersion = "1.0.0";
|
|
134
|
-
return cachedUniSpecVersion;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Clear the version cache (useful for testing or dynamic updates)
|
|
139
|
-
*/
|
|
140
|
-
export function clearVersionCache() {
|
|
141
|
-
cachedUniSpecVersion = null;
|
|
142
|
-
cachedSchemaPackagePath = null;
|
|
143
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert";
|
|
2
|
-
import { describe, it } from "node:test";
|
|
3
|
-
import { createCacheManager, createNamedCacheManager, getManagersStats, } from "../../src/cache/cache-factory.js";
|
|
4
|
-
import { UniSpecCacheManager } from "../../src/cache/cache-manager.js";
|
|
5
|
-
import { generateDiffHash, generateDocumentHash } from "../../src/cache/hash-utils.js";
|
|
6
|
-
import { LRUCache } from "../../src/cache/lru-cache.js";
|
|
7
|
-
const createTestDoc = (name) => ({
|
|
8
|
-
unispecVersion: "1.0.0",
|
|
9
|
-
service: {
|
|
10
|
-
name,
|
|
11
|
-
description: `Test service ${name}`,
|
|
12
|
-
protocols: {
|
|
13
|
-
rest: {
|
|
14
|
-
routes: [
|
|
15
|
-
{
|
|
16
|
-
name: "test",
|
|
17
|
-
method: "GET",
|
|
18
|
-
path: "/test",
|
|
19
|
-
responses: { "200": { description: "Success" } },
|
|
20
|
-
},
|
|
21
|
-
],
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
describe("cache module", () => {
|
|
27
|
-
describe("LRUCache", () => {
|
|
28
|
-
it("should store and retrieve values", async () => {
|
|
29
|
-
const cache = new LRUCache();
|
|
30
|
-
await cache.set("key", "value");
|
|
31
|
-
assert.strictEqual(await cache.get("key"), "value");
|
|
32
|
-
});
|
|
33
|
-
it("should handle LRU eviction", async () => {
|
|
34
|
-
const cache = new LRUCache({ maxSize: 2 });
|
|
35
|
-
await cache.set("a", "1");
|
|
36
|
-
await cache.set("b", "2");
|
|
37
|
-
await cache.set("c", "3"); // evicts a
|
|
38
|
-
assert.strictEqual(await cache.get("a"), undefined);
|
|
39
|
-
assert.strictEqual(await cache.get("b"), "2");
|
|
40
|
-
assert.strictEqual(await cache.get("c"), "3");
|
|
41
|
-
});
|
|
42
|
-
it("should track statistics", async () => {
|
|
43
|
-
const cache = new LRUCache({ enableStats: true });
|
|
44
|
-
await cache.set("key", "value");
|
|
45
|
-
await cache.get("key"); // hit
|
|
46
|
-
await cache.get("missing"); // miss
|
|
47
|
-
const stats = cache.getStats();
|
|
48
|
-
assert.strictEqual(stats.hits, 1);
|
|
49
|
-
assert.strictEqual(stats.misses, 1);
|
|
50
|
-
assert.strictEqual(stats.hitRate, 0.5);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
describe("CacheManager", () => {
|
|
54
|
-
it("should handle validation caching", async () => {
|
|
55
|
-
const manager = new UniSpecCacheManager({ enableStats: true });
|
|
56
|
-
const doc = createTestDoc("test");
|
|
57
|
-
const hash = await generateDocumentHash(doc);
|
|
58
|
-
const result = { valid: true, errors: [] };
|
|
59
|
-
await manager.setValidationResult(hash, result);
|
|
60
|
-
const cached = await manager.getValidationResult(hash);
|
|
61
|
-
assert.deepStrictEqual(cached, result);
|
|
62
|
-
assert.strictEqual(manager.getStats().validation.size, 1);
|
|
63
|
-
manager.destroy();
|
|
64
|
-
});
|
|
65
|
-
it("should handle normalization caching", async () => {
|
|
66
|
-
const manager = new UniSpecCacheManager({ enableStats: true });
|
|
67
|
-
const doc = createTestDoc("test");
|
|
68
|
-
const hash = await generateDocumentHash(doc);
|
|
69
|
-
const normalized = { ...doc, normalized: true };
|
|
70
|
-
await manager.setNormalizationResult(hash, normalized);
|
|
71
|
-
const cached = await manager.getNormalizationResult(hash);
|
|
72
|
-
assert.deepStrictEqual(cached, normalized);
|
|
73
|
-
assert.strictEqual(manager.getStats().normalization.size, 1);
|
|
74
|
-
manager.destroy();
|
|
75
|
-
});
|
|
76
|
-
it("should handle diff caching", async () => {
|
|
77
|
-
const manager = new UniSpecCacheManager({ enableStats: true });
|
|
78
|
-
const doc1 = createTestDoc("test1");
|
|
79
|
-
const doc2 = createTestDoc("test2");
|
|
80
|
-
const hash = await generateDiffHash(doc1, doc2);
|
|
81
|
-
const diffResult = { changes: [] };
|
|
82
|
-
await manager.setDiffResult(hash, diffResult);
|
|
83
|
-
const cached = await manager.getDiffResult(hash);
|
|
84
|
-
assert.deepStrictEqual(cached, diffResult);
|
|
85
|
-
assert.strictEqual(manager.getStats().diff.size, 1);
|
|
86
|
-
manager.destroy();
|
|
87
|
-
});
|
|
88
|
-
it("should provide comprehensive statistics", async () => {
|
|
89
|
-
const manager = new UniSpecCacheManager({ enableStats: true });
|
|
90
|
-
const doc = createTestDoc("test");
|
|
91
|
-
const hash = await generateDocumentHash(doc);
|
|
92
|
-
await manager.setValidationResult(hash, { valid: true, errors: [] });
|
|
93
|
-
await manager.setNormalizationResult(hash, { normalized: true });
|
|
94
|
-
await manager.setDiffResult(hash, { changes: [] });
|
|
95
|
-
const stats = manager.getStats();
|
|
96
|
-
assert.strictEqual(stats.total.size, 3);
|
|
97
|
-
assert.strictEqual(stats.validation.size, 1);
|
|
98
|
-
assert.strictEqual(stats.normalization.size, 1);
|
|
99
|
-
assert.strictEqual(stats.diff.size, 1);
|
|
100
|
-
manager.destroy();
|
|
101
|
-
});
|
|
102
|
-
it("should clear all caches", async () => {
|
|
103
|
-
const manager = new UniSpecCacheManager({ enableStats: true });
|
|
104
|
-
const doc = createTestDoc("test");
|
|
105
|
-
const hash = await generateDocumentHash(doc);
|
|
106
|
-
await manager.setValidationResult(hash, { valid: true, errors: [] });
|
|
107
|
-
await manager.setNormalizationResult(hash, { normalized: true });
|
|
108
|
-
await manager.setDiffResult(hash, { changes: [] });
|
|
109
|
-
manager.clearAll();
|
|
110
|
-
const stats = manager.getStats();
|
|
111
|
-
assert.strictEqual(stats.total.size, 0);
|
|
112
|
-
manager.destroy();
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
describe("CacheFactory", () => {
|
|
116
|
-
it("should create isolated instances", () => {
|
|
117
|
-
const manager1 = createCacheManager();
|
|
118
|
-
const manager2 = createCacheManager();
|
|
119
|
-
assert.notStrictEqual(manager1, manager2);
|
|
120
|
-
manager1.destroy();
|
|
121
|
-
manager2.destroy();
|
|
122
|
-
});
|
|
123
|
-
it("should create named managers with cleanup", () => {
|
|
124
|
-
const manager1 = createNamedCacheManager("test");
|
|
125
|
-
const manager2 = createNamedCacheManager("test"); // replaces first
|
|
126
|
-
assert.notStrictEqual(manager1, manager2);
|
|
127
|
-
manager1.destroy();
|
|
128
|
-
manager2.destroy();
|
|
129
|
-
});
|
|
130
|
-
it("should provide statistics for multiple managers", () => {
|
|
131
|
-
const manager1 = createNamedCacheManager("stats1", { enableStats: true });
|
|
132
|
-
const manager2 = createNamedCacheManager("stats2", { enableStats: true });
|
|
133
|
-
const stats = getManagersStats([manager1, manager2]);
|
|
134
|
-
assert.ok(stats.stats1);
|
|
135
|
-
assert.ok(stats.stats2);
|
|
136
|
-
assert.strictEqual(Object.keys(stats).length, 2);
|
|
137
|
-
manager1.destroy();
|
|
138
|
-
manager2.destroy();
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
describe("HashUtils", () => {
|
|
142
|
-
it("should generate consistent hashes", async () => {
|
|
143
|
-
const doc = createTestDoc("test");
|
|
144
|
-
const hash1 = await generateDocumentHash(doc);
|
|
145
|
-
const hash2 = await generateDocumentHash(doc);
|
|
146
|
-
assert.strictEqual(hash1, hash2);
|
|
147
|
-
assert.strictEqual(hash1.length, 20);
|
|
148
|
-
});
|
|
149
|
-
it("should generate different hashes for different documents", async () => {
|
|
150
|
-
const doc1 = createTestDoc("test1");
|
|
151
|
-
const doc2 = createTestDoc("test2");
|
|
152
|
-
const hash1 = await generateDocumentHash(doc1);
|
|
153
|
-
const hash2 = await generateDocumentHash(doc2);
|
|
154
|
-
assert.notStrictEqual(hash1, hash2);
|
|
155
|
-
});
|
|
156
|
-
it("should handle deep copies consistently", async () => {
|
|
157
|
-
const doc = createTestDoc("test");
|
|
158
|
-
const copy = JSON.parse(JSON.stringify(doc));
|
|
159
|
-
const hash1 = await generateDocumentHash(doc);
|
|
160
|
-
const hash2 = await generateDocumentHash(copy);
|
|
161
|
-
assert.strictEqual(hash1, hash2);
|
|
162
|
-
});
|
|
163
|
-
it("should generate diff hashes", async () => {
|
|
164
|
-
const doc1 = createTestDoc("test1");
|
|
165
|
-
const doc2 = createTestDoc("test2");
|
|
166
|
-
const hash = await generateDiffHash(doc1, doc2);
|
|
167
|
-
assert.strictEqual(typeof hash, "string");
|
|
168
|
-
assert.strictEqual(hash.length, 22);
|
|
169
|
-
});
|
|
170
|
-
it("should generate different diff hashes for different pairs", async () => {
|
|
171
|
-
const doc1 = createTestDoc("test1");
|
|
172
|
-
const doc2 = createTestDoc("test2");
|
|
173
|
-
const doc3 = createTestDoc("test3");
|
|
174
|
-
const hash1 = await generateDiffHash(doc1, doc2);
|
|
175
|
-
const hash2 = await generateDiffHash(doc2, doc3);
|
|
176
|
-
assert.notStrictEqual(hash1, hash2);
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
describe("Integration", () => {
|
|
180
|
-
it("should handle complete workflow", async () => {
|
|
181
|
-
const manager = createCacheManager({ enableStats: true });
|
|
182
|
-
const validDoc = createTestDoc("valid");
|
|
183
|
-
const invalidDoc = { unispecVersion: "1.0.0" };
|
|
184
|
-
// Process valid document
|
|
185
|
-
const validHash = await generateDocumentHash(validDoc);
|
|
186
|
-
await manager.setValidationResult(validHash, { valid: true, errors: [] });
|
|
187
|
-
await manager.setNormalizationResult(validHash, {
|
|
188
|
-
...validDoc,
|
|
189
|
-
normalized: true,
|
|
190
|
-
});
|
|
191
|
-
// Process invalid document
|
|
192
|
-
const invalidHash = await generateDocumentHash(invalidDoc);
|
|
193
|
-
await manager.setValidationResult(invalidHash, {
|
|
194
|
-
valid: false,
|
|
195
|
-
errors: [{ path: "/", message: "Invalid", code: "INVALID" }],
|
|
196
|
-
});
|
|
197
|
-
// Process diff
|
|
198
|
-
const diffHash = await generateDiffHash(validDoc, invalidDoc);
|
|
199
|
-
await manager.setDiffResult(diffHash, { changes: [] });
|
|
200
|
-
// Verify results
|
|
201
|
-
const validResult = await manager.getValidationResult(validHash);
|
|
202
|
-
const invalidResult = await manager.getValidationResult(invalidHash);
|
|
203
|
-
const normResult = await manager.getNormalizationResult(validHash);
|
|
204
|
-
const diffResult = await manager.getDiffResult(diffHash);
|
|
205
|
-
assert.strictEqual(validResult?.valid, true);
|
|
206
|
-
assert.strictEqual(invalidResult?.valid, false);
|
|
207
|
-
assert.notStrictEqual(normResult, undefined);
|
|
208
|
-
assert.notStrictEqual(diffResult, undefined);
|
|
209
|
-
// Verify statistics
|
|
210
|
-
const stats = manager.getStats();
|
|
211
|
-
assert.strictEqual(stats.total.size, 4);
|
|
212
|
-
manager.destroy();
|
|
213
|
-
});
|
|
214
|
-
it("should handle concurrent operations", async () => {
|
|
215
|
-
const manager = createCacheManager({ enableStats: true });
|
|
216
|
-
const promises = [];
|
|
217
|
-
// Create concurrent operations
|
|
218
|
-
for (let i = 0; i < 10; i++) {
|
|
219
|
-
const doc = createTestDoc(`test${i}`);
|
|
220
|
-
const hash = await generateDocumentHash(doc);
|
|
221
|
-
promises.push(manager.setValidationResult(hash, { valid: true, errors: [] }));
|
|
222
|
-
promises.push(manager
|
|
223
|
-
.getValidationResult(hash)
|
|
224
|
-
.then(() => { })
|
|
225
|
-
.catch(() => { }));
|
|
226
|
-
}
|
|
227
|
-
await Promise.all(promises);
|
|
228
|
-
// Verify integrity
|
|
229
|
-
const stats = manager.getStats();
|
|
230
|
-
assert.ok(stats.validation.size >= 0);
|
|
231
|
-
manager.destroy();
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
describe("Error handling", () => {
|
|
235
|
-
it("should handle malformed documents", async () => {
|
|
236
|
-
const manager = createCacheManager();
|
|
237
|
-
const malformedDocs = [
|
|
238
|
-
{ unispecVersion: "1.0.0" },
|
|
239
|
-
{ service: { name: "test" } },
|
|
240
|
-
];
|
|
241
|
-
for (const doc of malformedDocs) {
|
|
242
|
-
try {
|
|
243
|
-
const hash = await generateDocumentHash(doc);
|
|
244
|
-
await manager.setValidationResult(hash, { valid: false, errors: [] });
|
|
245
|
-
const result = await manager.getValidationResult(hash);
|
|
246
|
-
assert.strictEqual(result?.valid, false);
|
|
247
|
-
}
|
|
248
|
-
catch (error) {
|
|
249
|
-
// Expected for some malformed docs
|
|
250
|
-
assert.ok(error instanceof Error);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
manager.destroy();
|
|
254
|
-
});
|
|
255
|
-
it("should handle cache overflow gracefully", async () => {
|
|
256
|
-
const manager = createCacheManager({ enableStats: true, maxSize: 5 });
|
|
257
|
-
// Fill beyond capacity
|
|
258
|
-
for (let i = 0; i < 10; i++) {
|
|
259
|
-
const doc = createTestDoc(`test${i}`);
|
|
260
|
-
const hash = await generateDocumentHash(doc);
|
|
261
|
-
await manager.setValidationResult(hash, { valid: true, errors: [] });
|
|
262
|
-
}
|
|
263
|
-
const stats = manager.getStats();
|
|
264
|
-
assert.strictEqual(stats.validation.size, 5); // Should respect max size
|
|
265
|
-
assert.ok(stats.validation.evictions >= 0); // May have evictions
|
|
266
|
-
manager.destroy();
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
});
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { examplesDir, getExamplePath, loadExample } from "../../tests/utils.js";
|
|
3
|
-
// Cache-specific utilities
|
|
4
|
-
export function getValidExamplePaths() {
|
|
5
|
-
const validSpecDir = path.join(examplesDir, "valid", "spec");
|
|
6
|
-
return [
|
|
7
|
-
path.join(validSpecDir, "rest-simple.json"),
|
|
8
|
-
path.join(validSpecDir, "graphql-simple.json"),
|
|
9
|
-
path.join(validSpecDir, "websocket-simple.json"),
|
|
10
|
-
path.join(validSpecDir, "mixed-complete.json"),
|
|
11
|
-
];
|
|
12
|
-
}
|
|
13
|
-
export function getInvalidExamplePaths() {
|
|
14
|
-
const invalidSpecDir = path.join(examplesDir, "invalid", "spec");
|
|
15
|
-
return [
|
|
16
|
-
path.join(invalidSpecDir, "missing-unispec-version.json"),
|
|
17
|
-
path.join(invalidSpecDir, "missing-service-name.json"),
|
|
18
|
-
path.join(invalidSpecDir, "invalid-rest-method.json"),
|
|
19
|
-
path.join(invalidSpecDir, "graphql-missing-name.json"),
|
|
20
|
-
path.join(invalidSpecDir, "invalid-identifier.json"),
|
|
21
|
-
];
|
|
22
|
-
}
|
|
23
|
-
// Re-export commonly used functions from tests/utils for convenience
|
|
24
|
-
export { loadExample, getExamplePath };
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|