@blue-labs/language 4.1.2 → 5.0.0-rc.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 (199) hide show
  1. package/dist/Blue-B7SYp5QY.mjs +8237 -0
  2. package/dist/Blue-CTQkRrnu.js +98 -0
  3. package/dist/conformance.d.ts +3 -0
  4. package/dist/conformance.d.ts.map +1 -0
  5. package/dist/conformance.js +6 -0
  6. package/dist/conformance.mjs +1258 -0
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -27
  10. package/dist/index.mjs +679 -6799
  11. package/dist/lib/Blue.d.ts +5 -2
  12. package/dist/lib/Blue.d.ts.map +1 -1
  13. package/dist/lib/conformance/BlueConformanceSuiteRunner.d.ts +68 -0
  14. package/dist/lib/conformance/BlueConformanceSuiteRunner.d.ts.map +1 -0
  15. package/dist/lib/conformance/BlueLanguageConformanceReport.d.ts +37 -0
  16. package/dist/lib/conformance/BlueLanguageConformanceReport.d.ts.map +1 -0
  17. package/dist/lib/conformance/JavaBlueIdCalculator.d.ts +19 -0
  18. package/dist/lib/conformance/JavaBlueIdCalculator.d.ts.map +1 -0
  19. package/dist/lib/conformance/conformance-expect.d.ts +17 -0
  20. package/dist/lib/conformance/conformance-expect.d.ts.map +1 -0
  21. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/.gitkeep +1 -0
  22. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_double_1e0.yaml +6 -0
  23. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_double_negative_zero.yaml +14 -0
  24. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_double_overflow_rejected.yaml +9 -0
  25. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_empty_list.yaml +6 -0
  26. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_empty_object_list_element_rejected.yaml +10 -0
  27. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_empty_placeholder.yaml +10 -0
  28. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_integer_1_vs_double_1_0.yaml +7 -0
  29. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_invalid_this_placeholder_rejected.yaml +7 -0
  30. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_large_integer_quoted_explicit_integer.yaml +10 -0
  31. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_list_sugar_equivalence.yaml +12 -0
  32. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_malformed_empty_rejected.yaml +8 -0
  33. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_null_list_element_rejected.yaml +10 -0
  34. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_object_field_null_removal.yaml +8 -0
  35. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_payload_only_scalar_typed_identity.yaml +11 -0
  36. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_plain_blueid_validation.yaml +7 -0
  37. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_pos_rejected.yaml +10 -0
  38. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_previous_invalid_blueid_rejected.yaml +11 -0
  39. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_replace_rejected.yaml +10 -0
  40. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_root_empty_object.yaml +6 -0
  41. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_root_list.yaml +8 -0
  42. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_root_null_rejected.yaml +6 -0
  43. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_root_pure_reference.yaml +7 -0
  44. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_root_scalar.yaml +6 -0
  45. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_scalar_sugar_equivalence.yaml +8 -0
  46. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_type_alias_rejected_in_direct_blueid_input.yaml +9 -0
  47. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/blueid/B_unquoted_large_integer_rejected.yaml +7 -0
  48. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/circular/C_circular_reference_set_ids.yaml +14 -0
  49. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/circular/C_duplicate_preliminary_ids_deterministic_or_rejected.yaml +12 -0
  50. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/circular/C_this_placeholder_rejected_outside_cyclic_api.yaml +7 -0
  51. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/circular/C_three_document_cycle_stable_order.yaml +18 -0
  52. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/circular/C_zero_blueid_rejected_in_final_input.yaml +7 -0
  53. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/lint/L_no_profile_era_language_conformance_terms.yaml +45 -0
  54. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/manifest.yaml +234 -0
  55. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_collapse_does_not_produce_mixed_blueid.yaml +10 -0
  56. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_collapse_nested_subtree_preserves_node_blueid.yaml +10 -0
  57. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_collapse_preserves_node_blueid.yaml +9 -0
  58. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_expand_missing_nested_content_fails.yaml +9 -0
  59. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_expand_nested_reference_preserves_node_blueid.yaml +14 -0
  60. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_expand_preserves_node_blueid.yaml +11 -0
  61. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_expand_wrong_nested_provider_content_fails.yaml +12 -0
  62. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_provider_missing_content_fails.yaml +9 -0
  63. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/provider/F_provider_wrong_blueid_rejected.yaml +13 -0
  64. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/registry/changingCoreTypeDescriptionChangesBlueId.yaml +9 -0
  65. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/registry/coreRegistryBooleanNodeHashesToPublishedBlueId.yaml +7 -0
  66. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/registry/coreRegistryDictionaryNodeHashesToPublishedBlueId.yaml +7 -0
  67. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/registry/coreRegistryDoubleNodeHashesToPublishedBlueId.yaml +7 -0
  68. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/registry/coreRegistryIntegerNodeHashesToPublishedBlueId.yaml +7 -0
  69. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/registry/coreRegistryListNodeHashesToPublishedBlueId.yaml +7 -0
  70. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/registry/coreRegistryTextNodeHashesToPublishedBlueId.yaml +7 -0
  71. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_blue_imports.yaml +15 -0
  72. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_blue_imports_type_itemType_keyType_valueType.yaml +24 -0
  73. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_canonical_overlay_no_previous_no_pos.yaml +18 -0
  74. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_canonicalization_deterministic_for_same_resolved_view.yaml +11 -0
  75. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_child_field_labels_materialize_until_overridden.yaml +26 -0
  76. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_contracts_canonicalization_deterministic.yaml +18 -0
  77. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_contracts_merge_as_content.yaml +21 -0
  78. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_core_type_compatibility_nominal_by_blueid.yaml +11 -0
  79. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_enum_integer_vs_double.yaml +14 -0
  80. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_inherited_append_only_policy.yaml +16 -0
  81. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_inherited_item_type.yaml +13 -0
  82. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_inherited_keyType_valueType.yaml +16 -0
  83. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_instance_field_kept.yaml +11 -0
  84. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_provider_reference_canonicalizes_back.yaml +13 -0
  85. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_provider_reference_with_overlay_keeps_overlay.yaml +16 -0
  86. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_schema_double_multiple_of_exact.yaml +17 -0
  87. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_schema_double_multiple_of_rejects_decimal_approximation.yaml +12 -0
  88. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_schema_enum_order_and_duplicates_canonical.yaml +26 -0
  89. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_schema_integer_multiple_of_lcm_merge.yaml +17 -0
  90. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_schema_large_integer_minimum_with_type_alias.yaml +15 -0
  91. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_schema_value_shapes.yaml +10 -0
  92. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_schema_wrong_kind_keywords_rejected.yaml +10 -0
  93. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_source_empty_object_list_to_empty.yaml +14 -0
  94. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_source_null_list_to_empty.yaml +14 -0
  95. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_source_recursive_empty_object_list_to_empty.yaml +15 -0
  96. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_top_level_type_name_description_not_inherited.yaml +21 -0
  97. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_type_aliases_removed_from_canonical_overlay.yaml +15 -0
  98. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_type_derived_field_removed.yaml +11 -0
  99. package/dist/lib/conformance/fixtures/blue-language-1.0/fixtures/resolver/R_view_path_root_is_empty_string.yaml +25 -0
  100. package/dist/lib/conformance/fixtures/blue-language-1.0/language/1.0/spec.md +2932 -0
  101. package/dist/lib/conformance/fixtures/blue-language-1.0/registry/blue-language-1.0/Boolean.blue +6 -0
  102. package/dist/lib/conformance/fixtures/blue-language-1.0/registry/blue-language-1.0/Dictionary.blue +17 -0
  103. package/dist/lib/conformance/fixtures/blue-language-1.0/registry/blue-language-1.0/Double.blue +12 -0
  104. package/dist/lib/conformance/fixtures/blue-language-1.0/registry/blue-language-1.0/Integer.blue +11 -0
  105. package/dist/lib/conformance/fixtures/blue-language-1.0/registry/blue-language-1.0/List.blue +14 -0
  106. package/dist/lib/conformance/fixtures/blue-language-1.0/registry/blue-language-1.0/Text.blue +9 -0
  107. package/dist/lib/conformance/fixtures/blue-language-1.0/registry/blue-language-1.0/manifest.yaml +8 -0
  108. package/dist/lib/errors/BlueError.d.ts +23 -1
  109. package/dist/lib/errors/BlueError.d.ts.map +1 -1
  110. package/dist/lib/identity/CyclicSetIdentityService.d.ts +1 -1
  111. package/dist/lib/identity/CyclicSetIdentityService.d.ts.map +1 -1
  112. package/dist/lib/identity/SemanticIdentityService.d.ts.map +1 -1
  113. package/dist/lib/index.d.ts +3 -0
  114. package/dist/lib/index.d.ts.map +1 -1
  115. package/dist/lib/mapping/ComplexObjectConverter.d.ts.map +1 -1
  116. package/dist/lib/mapping/ConverterFactory.d.ts.map +1 -1
  117. package/dist/lib/mapping/ValueConverter.d.ts.map +1 -1
  118. package/dist/lib/merge/Merger.d.ts +4 -0
  119. package/dist/lib/merge/Merger.d.ts.map +1 -1
  120. package/dist/lib/merge/MergingProcessor.d.ts +10 -0
  121. package/dist/lib/merge/MergingProcessor.d.ts.map +1 -1
  122. package/dist/lib/merge/processors/DictionaryProcessor.d.ts.map +1 -1
  123. package/dist/lib/merge/processors/ListProcessor.d.ts +2 -0
  124. package/dist/lib/merge/processors/ListProcessor.d.ts.map +1 -1
  125. package/dist/lib/merge/processors/SchemaPropagator.d.ts +13 -0
  126. package/dist/lib/merge/processors/SchemaPropagator.d.ts.map +1 -0
  127. package/dist/lib/merge/processors/SchemaVerifier.d.ts +16 -0
  128. package/dist/lib/merge/processors/SchemaVerifier.d.ts.map +1 -0
  129. package/dist/lib/merge/processors/SequentialMergingProcessor.d.ts +2 -0
  130. package/dist/lib/merge/processors/SequentialMergingProcessor.d.ts.map +1 -1
  131. package/dist/lib/merge/processors/TypeAssigner.d.ts.map +1 -1
  132. package/dist/lib/merge/processors/ValuePropagator.d.ts.map +1 -1
  133. package/dist/lib/merge/processors/index.d.ts +2 -0
  134. package/dist/lib/merge/processors/index.d.ts.map +1 -1
  135. package/dist/lib/merge/utils/default.d.ts.map +1 -1
  136. package/dist/lib/model/Node.d.ts +18 -1
  137. package/dist/lib/model/Node.d.ts.map +1 -1
  138. package/dist/lib/model/NodeDeserializer.d.ts +5 -0
  139. package/dist/lib/model/NodeDeserializer.d.ts.map +1 -1
  140. package/dist/lib/model/ResolvedNode.d.ts.map +1 -1
  141. package/dist/lib/model/Schema.d.ts +14 -0
  142. package/dist/lib/model/Schema.d.ts.map +1 -0
  143. package/dist/lib/model/index.d.ts +1 -0
  144. package/dist/lib/model/index.d.ts.map +1 -1
  145. package/dist/lib/preprocess/Preprocessor.d.ts +8 -1
  146. package/dist/lib/preprocess/Preprocessor.d.ts.map +1 -1
  147. package/dist/lib/provider/InMemoryNodeProvider.d.ts.map +1 -1
  148. package/dist/lib/provider/RepositoryBasedNodeProvider.d.ts +2 -0
  149. package/dist/lib/provider/RepositoryBasedNodeProvider.d.ts.map +1 -1
  150. package/dist/lib/provider/VerifyingNodeProvider.d.ts +14 -0
  151. package/dist/lib/provider/VerifyingNodeProvider.d.ts.map +1 -0
  152. package/dist/lib/repository/BuiltinRuntimeTypes.d.ts +360 -0
  153. package/dist/lib/repository/BuiltinRuntimeTypes.d.ts.map +1 -0
  154. package/dist/lib/repository/RepositoryContentCanonicalizer.d.ts.map +1 -1
  155. package/dist/lib/repository/RepositoryRuntime.d.ts +1 -1
  156. package/dist/lib/repository/RepositoryRuntime.d.ts.map +1 -1
  157. package/dist/lib/snapshot/CanonicalOverlayPatchEngine.d.ts +6 -0
  158. package/dist/lib/snapshot/CanonicalOverlayPatchEngine.d.ts.map +1 -0
  159. package/dist/lib/snapshot/FrozenNode.d.ts +80 -0
  160. package/dist/lib/snapshot/FrozenNode.d.ts.map +1 -0
  161. package/dist/lib/snapshot/FrozenNodeToBlueIdInput.d.ts +5 -0
  162. package/dist/lib/snapshot/FrozenNodeToBlueIdInput.d.ts.map +1 -0
  163. package/dist/lib/snapshot/ResolvedReferenceCache.d.ts +8 -0
  164. package/dist/lib/snapshot/ResolvedReferenceCache.d.ts.map +1 -0
  165. package/dist/lib/snapshot/ResolvedSnapshot.d.ts +8 -0
  166. package/dist/lib/snapshot/ResolvedSnapshot.d.ts.map +1 -0
  167. package/dist/lib/snapshot/index.d.ts +6 -0
  168. package/dist/lib/snapshot/index.d.ts.map +1 -0
  169. package/dist/lib/types/BlueRepository.d.ts +1 -1
  170. package/dist/lib/utils/BlueIdCalculator.d.ts +19 -1
  171. package/dist/lib/utils/BlueIdCalculator.d.ts.map +1 -1
  172. package/dist/lib/utils/BlueIds.d.ts +9 -1
  173. package/dist/lib/utils/BlueIds.d.ts.map +1 -1
  174. package/dist/lib/utils/BlueNumbers.d.ts +7 -0
  175. package/dist/lib/utils/BlueNumbers.d.ts.map +1 -0
  176. package/dist/lib/utils/ListControls.d.ts.map +1 -1
  177. package/dist/lib/utils/MergeReverser.d.ts +10 -0
  178. package/dist/lib/utils/MergeReverser.d.ts.map +1 -1
  179. package/dist/lib/utils/NodePatch/patch-utils.d.ts +1 -1
  180. package/dist/lib/utils/NodeProviderWrapper.d.ts +4 -0
  181. package/dist/lib/utils/NodeProviderWrapper.d.ts.map +1 -1
  182. package/dist/lib/utils/NodeToBlueIdInput.d.ts +34 -0
  183. package/dist/lib/utils/NodeToBlueIdInput.d.ts.map +1 -0
  184. package/dist/lib/utils/NodeToMapListOrValue.d.ts.map +1 -1
  185. package/dist/lib/utils/NodeTransformer.d.ts.map +1 -1
  186. package/dist/lib/utils/NodeTypeMatcher.d.ts +27 -1
  187. package/dist/lib/utils/NodeTypeMatcher.d.ts.map +1 -1
  188. package/dist/lib/utils/NodeTypes.d.ts +1 -0
  189. package/dist/lib/utils/NodeTypes.d.ts.map +1 -1
  190. package/dist/lib/utils/Properties.d.ts +97 -10
  191. package/dist/lib/utils/Properties.d.ts.map +1 -1
  192. package/dist/lib/utils/TypeSchema.d.ts +0 -1
  193. package/dist/lib/utils/TypeSchema.d.ts.map +1 -1
  194. package/dist/lib/utils/index.d.ts +4 -1
  195. package/dist/lib/utils/index.d.ts.map +1 -1
  196. package/dist/schema/jsonBlue.d.ts +1 -1
  197. package/dist/schema/utils.d.ts.map +1 -1
  198. package/dist/utils/yamlBlue/type/float.d.ts.map +1 -1
  199. package/package.json +8 -3
@@ -0,0 +1,16 @@
1
+ id: R_provider_reference_with_overlay_keeps_overlay
2
+ category: Canonicalization
3
+ operation: canonicalize
4
+ description: provider materialization canonicalizes back to a pure reference plus
5
+ instance overlay
6
+ source:
7
+ type:
8
+ blueId: 5ajuwjHoLj33yG5t5UFsJtUb3vnRaJQEMPqSLz6VyoHK
9
+ local: overlay
10
+ provider:
11
+ - requestedBlueId: 5ajuwjHoLj33yG5t5UFsJtUb3vnRaJQEMPqSLz6VyoHK
12
+ node: {}
13
+ expectedCanonicalOverlay:
14
+ type:
15
+ blueId: 5ajuwjHoLj33yG5t5UFsJtUb3vnRaJQEMPqSLz6VyoHK
16
+ local: overlay
@@ -0,0 +1,17 @@
1
+ id: R_schema_double_multiple_of_exact
2
+ category: Schema
3
+ operation: resolve
4
+ description: Double multipleOf uses exact rational arithmetic over IEEE 754 binary64
5
+ values
6
+ source:
7
+ type:
8
+ blueId: 9eWaHYz2vKrFofdHTHAizNNu8xP6QE3WQ5y7DGrGZvyJ
9
+ schema:
10
+ multipleOf: 0.5
11
+ value: 1.5
12
+ expectedResolved:
13
+ type:
14
+ blueId: 9eWaHYz2vKrFofdHTHAizNNu8xP6QE3WQ5y7DGrGZvyJ
15
+ schema:
16
+ multipleOf: 0.5
17
+ value: 1.5
@@ -0,0 +1,12 @@
1
+ id: R_schema_double_multiple_of_rejects_decimal_approximation
2
+ category: Schema
3
+ operation: resolve
4
+ description: Double multipleOf uses exact binary64 rational arithmetic, not decimal epsilon behavior
5
+ expectError: true
6
+ expectedErrorCategory: SchemaViolation
7
+ source:
8
+ type:
9
+ blueId: 9eWaHYz2vKrFofdHTHAizNNu8xP6QE3WQ5y7DGrGZvyJ
10
+ schema:
11
+ multipleOf: 0.1
12
+ value: 0.3
@@ -0,0 +1,26 @@
1
+ id: R_schema_enum_order_and_duplicates_canonical
2
+ category: Schema
3
+ operation: resolve
4
+ description: enum order and duplicate entries normalize to a duplicate-free canonical
5
+ effective schema
6
+ source:
7
+ type:
8
+ schema:
9
+ enum:
10
+ - B
11
+ - A
12
+ - A
13
+ schema:
14
+ enum:
15
+ - A
16
+ - B
17
+ expectedResolved:
18
+ type:
19
+ schema:
20
+ enum:
21
+ - value: A
22
+ - value: B
23
+ schema:
24
+ enum:
25
+ - value: A
26
+ - value: B
@@ -0,0 +1,17 @@
1
+ id: R_schema_integer_multiple_of_lcm_merge
2
+ category: Schema
3
+ operation: resolve
4
+ description: inherited and instance integer multipleOf constraints merge deterministically
5
+ using LCM
6
+ source:
7
+ type:
8
+ schema:
9
+ multipleOf: 4
10
+ schema:
11
+ multipleOf: 6
12
+ expectedResolved:
13
+ type:
14
+ schema:
15
+ multipleOf: 4
16
+ schema:
17
+ multipleOf: 12
@@ -0,0 +1,15 @@
1
+ id: R_schema_large_integer_minimum_with_type_alias
2
+ category: Schema
3
+ operation: preprocess
4
+ description: schema numeric explicit Integer node may use a core alias before preprocessing
5
+ source:
6
+ schema:
7
+ minimum:
8
+ type: Integer
9
+ value: '9007199254740992'
10
+ expectedPreprocessed:
11
+ schema:
12
+ minimum:
13
+ type:
14
+ blueId: E2LM6qgzWG9ttagq2xTmiZkgYEAgkYedFCmU9v7NnVEq
15
+ value: '9007199254740992'
@@ -0,0 +1,10 @@
1
+ id: R_schema_value_shapes
2
+ category: Schema
3
+ operation: parseSource
4
+ description: schema keyword value shapes are strict
5
+ expectError: true
6
+ expectedErrorCategory: SchemaVocabularyError
7
+ source:
8
+ schema:
9
+ required:
10
+ value: true
@@ -0,0 +1,10 @@
1
+ id: R_schema_wrong_kind_keywords_rejected
2
+ category: Schema
3
+ operation: resolve
4
+ description: schema keywords applied to incompatible value kinds fail deterministically
5
+ expectError: true
6
+ expectedErrorCategory: SchemaViolation
7
+ source:
8
+ schema:
9
+ minLength: 1
10
+ value: 123
@@ -0,0 +1,14 @@
1
+ id: R_source_empty_object_list_to_empty
2
+ category: Resolution
3
+ operation: preprocess
4
+ description: source list empty object normalizes to exact empty placeholder
5
+ source:
6
+ items:
7
+ - A
8
+ - {}
9
+ - B
10
+ expectedPreprocessed:
11
+ items:
12
+ - value: A
13
+ - $empty: true
14
+ - value: B
@@ -0,0 +1,14 @@
1
+ id: R_source_null_list_to_empty
2
+ category: Resolution
3
+ operation: preprocess
4
+ description: source list null normalizes to exact empty placeholder
5
+ source:
6
+ items:
7
+ - A
8
+ - null
9
+ - B
10
+ expectedPreprocessed:
11
+ items:
12
+ - value: A
13
+ - $empty: true
14
+ - value: B
@@ -0,0 +1,15 @@
1
+ id: R_source_recursive_empty_object_list_to_empty
2
+ category: Resolution
3
+ operation: preprocess
4
+ description: source list element that recursively cleans to an empty object normalizes
5
+ to exact empty placeholder
6
+ source:
7
+ items:
8
+ - A
9
+ - x: null
10
+ - B
11
+ expectedPreprocessed:
12
+ items:
13
+ - value: A
14
+ - $empty: true
15
+ - value: B
@@ -0,0 +1,21 @@
1
+ id: R_top_level_type_name_description_not_inherited
2
+ category: Resolution
3
+ operation: resolve
4
+ description: root name and description from an inline type are not inherited onto
5
+ the instance root
6
+ source:
7
+ type:
8
+ name: Base Type
9
+ description: Base description
10
+ inherited: true
11
+ own: child
12
+ expectedResolved:
13
+ type:
14
+ name: Base Type
15
+ description: Base description
16
+ inherited:
17
+ value: true
18
+ inherited:
19
+ value: true
20
+ own:
21
+ value: child
@@ -0,0 +1,15 @@
1
+ id: R_type_aliases_removed_from_canonical_overlay
2
+ category: Canonicalization
3
+ operation: canonicalize
4
+ description: type aliases are removed from canonical overlay after preprocessing
5
+ source:
6
+ blue:
7
+ imports:
8
+ Label:
9
+ blueId: GX7CFUmSDrE2MzptunLCCdZwnuwwrenRQqEnHL4x3uoC
10
+ type: Label
11
+ value: hello
12
+ expectedCanonicalOverlay:
13
+ type:
14
+ blueId: GX7CFUmSDrE2MzptunLCCdZwnuwwrenRQqEnHL4x3uoC
15
+ value: hello
@@ -0,0 +1,11 @@
1
+ id: R_type_derived_field_removed
2
+ category: Canonicalization
3
+ operation: canonicalize
4
+ description: canonical overlay omits content inherited from the type root
5
+ source:
6
+ type:
7
+ inherited: from-type
8
+ local: from-instance
9
+ expectedCanonicalOverlay:
10
+ type: {}
11
+ local: from-instance
@@ -0,0 +1,25 @@
1
+ id: R_view_path_root_is_empty_string
2
+ category: Resolution
3
+ operation: assertViewPath
4
+ description: Blue Language view paths use RFC 6901 root as the empty string; slash
5
+ selects an empty-key member
6
+ document:
7
+ "": empty-key
8
+ regular:
9
+ items:
10
+ - first
11
+ - second
12
+ a/b:
13
+ c~d: escaped
14
+ assertions:
15
+ - path: ''
16
+ expectedRoot: true
17
+ - path: /
18
+ expectedNode:
19
+ value: empty-key
20
+ - path: /regular/items/0
21
+ expectedNode:
22
+ value: first
23
+ - path: /a~1b/c~0d
24
+ expectedNode:
25
+ value: escaped