semantifold 0.12.0 → 0.14.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 (73) hide show
  1. package/README.md +2 -0
  2. package/build/src/backends/effects.js +5 -2
  3. package/build/src/backends/java.js +33 -14
  4. package/build/src/backends/javascript.js +83 -18
  5. package/build/src/backends/php.d.ts.map +1 -1
  6. package/build/src/backends/php.js +88 -16
  7. package/build/src/backends/ruby.js +37 -12
  8. package/build/src/backends/scalars.js +2 -2
  9. package/build/src/backends/shared.d.ts +2 -1
  10. package/build/src/backends/shared.d.ts.map +1 -1
  11. package/build/src/backends/shared.js +299 -42
  12. package/build/src/backends/typescript.js +83 -18
  13. package/build/src/backends/writer.d.ts +18 -4
  14. package/build/src/backends/writer.d.ts.map +1 -1
  15. package/build/src/backends/writer.js +40 -4
  16. package/build/src/frontends/java.d.ts +9 -1
  17. package/build/src/frontends/java.d.ts.map +1 -1
  18. package/build/src/frontends/java.js +90 -43
  19. package/build/src/frontends/javascript-typescript.d.ts +3 -1
  20. package/build/src/frontends/javascript-typescript.d.ts.map +1 -1
  21. package/build/src/frontends/javascript-typescript.js +133 -52
  22. package/build/src/frontends/php.d.ts +13 -1
  23. package/build/src/frontends/php.d.ts.map +1 -1
  24. package/build/src/frontends/php.js +226 -59
  25. package/build/src/frontends/ruby.d.ts +4 -1
  26. package/build/src/frontends/ruby.d.ts.map +1 -1
  27. package/build/src/frontends/ruby.js +113 -37
  28. package/build/src/frontends/types.d.ts +9 -2
  29. package/build/src/frontends/types.d.ts.map +1 -1
  30. package/build/src/frontends/types.js +26 -9
  31. package/build/src/language-registry.d.ts.map +1 -1
  32. package/build/src/language-registry.js +14 -6
  33. package/build/src/mapping.d.ts.map +1 -1
  34. package/build/src/mapping.js +4 -2
  35. package/build/src/semantic/effects.d.ts.map +1 -1
  36. package/build/src/semantic/effects.js +20 -6
  37. package/build/src/semantic/lifetime.js +28 -4
  38. package/build/src/semantic/provenance.d.ts.map +1 -1
  39. package/build/src/semantic/provenance.js +61 -9
  40. package/build/src/semantic/types.d.ts +214 -23
  41. package/build/src/semantic/types.d.ts.map +1 -1
  42. package/build/src/semantic/types.js +58 -11
  43. package/build/src/semantic/validate.d.ts +31 -2
  44. package/build/src/semantic/validate.d.ts.map +1 -1
  45. package/build/src/semantic/validate.js +450 -60
  46. package/docs/adr/20261026-typed-error-handling-extension.md +55 -0
  47. package/docs/adr-bounded-subtyping.md +180 -0
  48. package/docs/adr-numeric-tower.md +156 -0
  49. package/docs/architecture.md +1 -1
  50. package/docs/language-support.md +8 -8
  51. package/docs/testing.md +5 -3
  52. package/package.json +1 -1
  53. package/src/backends/effects.js +3 -1
  54. package/src/backends/java.js +33 -14
  55. package/src/backends/javascript.js +83 -18
  56. package/src/backends/php.js +89 -16
  57. package/src/backends/ruby.js +36 -12
  58. package/src/backends/scalars.js +1 -1
  59. package/src/backends/shared.js +298 -47
  60. package/src/backends/typescript.js +83 -18
  61. package/src/backends/writer.js +41 -3
  62. package/src/frontends/java.js +95 -43
  63. package/src/frontends/javascript-typescript.js +145 -53
  64. package/src/frontends/php.js +243 -58
  65. package/src/frontends/ruby.js +117 -35
  66. package/src/frontends/types.js +26 -8
  67. package/src/language-registry.js +13 -5
  68. package/src/mapping.js +3 -1
  69. package/src/semantic/effects.js +18 -5
  70. package/src/semantic/lifetime.js +29 -3
  71. package/src/semantic/provenance.js +60 -14
  72. package/src/semantic/types.js +62 -10
  73. package/src/semantic/validate.js +481 -61
@@ -1,6 +1,33 @@
1
1
  export type RecordRegistry = Map<string, import("./types.js").RecordDeclaration>;
2
2
  export type ClassRegistry = Map<string, import("./types.js").ClassDeclaration>;
3
+ export type InterfaceRegistry = Map<string, import("./types.js").InterfaceDeclaration>;
3
4
  export type ErrorRegistry = Map<string, import("./types.js").ErrorDeclaration>;
5
+ export type InterfaceContractMember = {
6
+ /**
7
+ * - Declaring interface identity.
8
+ */
9
+ interfaceId: string;
10
+ /**
11
+ * - Declaring interface method identity.
12
+ */
13
+ methodId: string;
14
+ /**
15
+ * - Contract method name.
16
+ */
17
+ name: string;
18
+ /**
19
+ * - Source-ordered contract parameters.
20
+ */
21
+ parameters: import("./types.js").Parameter[];
22
+ /**
23
+ * - Contract return type.
24
+ */
25
+ returnType: import("./types.js").SemanticFunctionReturnType;
26
+ /**
27
+ * - Declaring method source location.
28
+ */
29
+ location: import("./types.js").SourceLocation;
30
+ };
4
31
  export type Binding = {
5
32
  /**
6
33
  * - Whether assignment is allowed.
@@ -90,12 +117,13 @@ export type SemanticFail = (code: string, detail: string, location: import("./ty
90
117
  * Enforces the coherent release-candidate semantic subset after adaptation.
91
118
  * @param {import("./types.js").SemanticModule} module - Adapted semantic module.
92
119
  * @param {import("./types.js").SemanticLanguage} language - Source language.
93
- * @param {{classes?: Map<string, import("./types.js").ClassDeclaration>, functions?: Map<string, import("./types.js").FunctionDeclaration>, records?: Map<string, import("./types.js").RecordDeclaration>, errors?: Map<string, import("./types.js").ErrorDeclaration>, callEffects?: Map<string, Set<string>>}} [visible] - Program imports visible during validation.
120
+ * @param {{classes?: Map<string, import("./types.js").ClassDeclaration>, functions?: Map<string, import("./types.js").FunctionDeclaration>, interfaces?: Map<string, import("./types.js").InterfaceDeclaration>, records?: Map<string, import("./types.js").RecordDeclaration>, errors?: Map<string, import("./types.js").ErrorDeclaration>, callEffects?: Map<string, Set<string>>}} [visible] - Program imports visible during validation.
94
121
  * @returns {import("./types.js").SemanticModule} Validated module.
95
122
  */
96
123
  export declare function validateParsedModule(module: import("./types.js").SemanticModule, language: import("./types.js").SemanticLanguage, visible?: {
97
124
  classes?: Map<string, import("./types.js").ClassDeclaration>;
98
125
  functions?: Map<string, import("./types.js").FunctionDeclaration>;
126
+ interfaces?: Map<string, import("./types.js").InterfaceDeclaration>;
99
127
  records?: Map<string, import("./types.js").RecordDeclaration>;
100
128
  errors?: Map<string, import("./types.js").ErrorDeclaration>;
101
129
  callEffects?: Map<string, Set<string>>;
@@ -104,12 +132,13 @@ export declare function validateParsedModule(module: import("./types.js").Semant
104
132
  * Validates scalar types and bindings for a caller-supplied semantic module before emission.
105
133
  * @param {import("./types.js").SemanticModule} module - Semantic module.
106
134
  * @param {import("./types.js").BackendLanguage} language - Backend language or binary target.
107
- * @param {{classes?: Map<string, import("./types.js").ClassDeclaration>, functions?: Map<string, import("./types.js").FunctionDeclaration>, records?: Map<string, import("./types.js").RecordDeclaration>, errors?: Map<string, import("./types.js").ErrorDeclaration>, callEffects?: Map<string, Set<string>>}} [visible] - Resolved program imports.
135
+ * @param {{classes?: Map<string, import("./types.js").ClassDeclaration>, functions?: Map<string, import("./types.js").FunctionDeclaration>, interfaces?: Map<string, import("./types.js").InterfaceDeclaration>, records?: Map<string, import("./types.js").RecordDeclaration>, errors?: Map<string, import("./types.js").ErrorDeclaration>, callEffects?: Map<string, Set<string>>}} [visible] - Resolved program imports.
108
136
  * @returns {void}
109
137
  */
110
138
  export declare function validateBackendTypes(module: import("./types.js").SemanticModule, language: import("./types.js").BackendLanguage, visible?: {
111
139
  classes?: Map<string, import("./types.js").ClassDeclaration>;
112
140
  functions?: Map<string, import("./types.js").FunctionDeclaration>;
141
+ interfaces?: Map<string, import("./types.js").InterfaceDeclaration>;
113
142
  records?: Map<string, import("./types.js").RecordDeclaration>;
114
143
  errors?: Map<string, import("./types.js").ErrorDeclaration>;
115
144
  callEffects?: Map<string, Set<string>>;
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/semantic/validate.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/semantic/validate.js"],"names":[],"mappings":"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"}