@kernlang/core 3.5.9-canary.220.1.c398cd95 → 4.0.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.
- package/dist/capability-matrix.js +8 -6
- package/dist/capability-matrix.js.map +1 -1
- package/dist/closure-eligibility.d.ts +104 -0
- package/dist/closure-eligibility.js +443 -0
- package/dist/closure-eligibility.js.map +1 -0
- package/dist/closure-python-lowering.d.ts +26 -0
- package/dist/closure-python-lowering.js +132 -22
- package/dist/closure-python-lowering.js.map +1 -1
- package/dist/codegen/body-ts.js +13 -0
- package/dist/codegen/body-ts.js.map +1 -1
- package/dist/codegen/type-system.js +50 -3
- package/dist/codegen/type-system.js.map +1 -1
- package/dist/codegen-core.js +29 -0
- package/dist/codegen-core.js.map +1 -1
- package/dist/codegen-expression.js +7 -0
- package/dist/codegen-expression.js.map +1 -1
- package/dist/constructor-super.d.ts +34 -0
- package/dist/constructor-super.js +122 -0
- package/dist/constructor-super.js.map +1 -0
- package/dist/core-contracts/boolean.d.ts +147 -0
- package/dist/core-contracts/boolean.js +110 -0
- package/dist/core-contracts/boolean.js.map +1 -0
- package/dist/core-contracts/function.d.ts +6 -0
- package/dist/core-contracts/function.js +7 -0
- package/dist/core-contracts/function.js.map +1 -0
- package/dist/core-contracts/index.d.ts +1032 -0
- package/dist/core-contracts/index.js +30 -0
- package/dist/core-contracts/index.js.map +1 -0
- package/dist/core-contracts/list.d.ts +87 -0
- package/dist/core-contracts/list.js +54 -0
- package/dist/core-contracts/list.js.map +1 -0
- package/dist/core-contracts/nullish.d.ts +12 -0
- package/dist/core-contracts/nullish.js +13 -0
- package/dist/core-contracts/nullish.js.map +1 -0
- package/dist/core-contracts/number.d.ts +291 -0
- package/dist/core-contracts/number.js +214 -0
- package/dist/core-contracts/number.js.map +1 -0
- package/dist/core-contracts/record.d.ts +60 -0
- package/dist/core-contracts/record.js +32 -0
- package/dist/core-contracts/record.js.map +1 -0
- package/dist/core-contracts/schema.d.ts +71 -0
- package/dist/core-contracts/schema.js +98 -0
- package/dist/core-contracts/schema.js.map +1 -0
- package/dist/core-contracts/semantics.d.ts +7 -0
- package/dist/core-contracts/semantics.js +221 -0
- package/dist/core-contracts/semantics.js.map +1 -0
- package/dist/core-contracts/string.d.ts +414 -0
- package/dist/core-contracts/string.js +335 -0
- package/dist/core-contracts/string.js.map +1 -0
- package/dist/core-runtime/contract-adapter.d.ts +8 -0
- package/dist/core-runtime/contract-adapter.js +73 -0
- package/dist/core-runtime/contract-adapter.js.map +1 -0
- package/dist/core-runtime/index.d.ts +109 -0
- package/dist/core-runtime/index.js +1946 -0
- package/dist/core-runtime/index.js.map +1 -0
- package/dist/core-runtime/shape-validator.d.ts +61 -0
- package/dist/core-runtime/shape-validator.js +564 -0
- package/dist/core-runtime/shape-validator.js.map +1 -0
- package/dist/core-runtime/value-brand.d.ts +2 -0
- package/dist/core-runtime/value-brand.js +6 -0
- package/dist/core-runtime/value-brand.js.map +1 -0
- package/dist/decompiler.js +46 -0
- package/dist/decompiler.js.map +1 -1
- package/dist/eligibility-taxonomy.d.ts +58 -0
- package/dist/eligibility-taxonomy.generated.d.ts +472 -0
- package/dist/eligibility-taxonomy.generated.js +566 -0
- package/dist/eligibility-taxonomy.generated.js.map +1 -0
- package/dist/eligibility-taxonomy.js +55 -0
- package/dist/eligibility-taxonomy.js.map +1 -0
- package/dist/index.d.ts +19 -2
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/instanceof-rhs.d.ts +53 -0
- package/dist/instanceof-rhs.js +74 -0
- package/dist/instanceof-rhs.js.map +1 -0
- package/dist/ir/semantics/lambda.js +9 -1
- package/dist/ir/semantics/lambda.js.map +1 -1
- package/dist/native-eligibility-ast.d.ts +5 -0
- package/dist/native-eligibility-ast.js +242 -63
- package/dist/native-eligibility-ast.js.map +1 -1
- package/dist/parser-expression.d.ts +1 -1
- package/dist/parser-expression.js +90 -1
- package/dist/parser-expression.js.map +1 -1
- package/dist/rag-assertions.d.ts +3 -0
- package/dist/rag-assertions.js +15 -0
- package/dist/rag-assertions.js.map +1 -0
- package/dist/rag-runtime.d.ts +169 -0
- package/dist/rag-runtime.js +823 -0
- package/dist/rag-runtime.js.map +1 -0
- package/dist/schema.d.ts +1 -0
- package/dist/schema.js +197 -2
- package/dist/schema.js.map +1 -1
- package/dist/semantic-substrate.d.ts +108 -0
- package/dist/semantic-substrate.js +263 -0
- package/dist/semantic-substrate.js.map +1 -0
- package/dist/semantic-validator.d.ts +332 -0
- package/dist/semantic-validator.js +3387 -0
- package/dist/semantic-validator.js.map +1 -1
- package/dist/spec.d.ts +2 -2
- package/dist/spec.js +15 -1
- package/dist/spec.js.map +1 -1
- package/dist/value-ir.d.ts +11 -1
- package/dist/value-ir.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BOOLEAN_CONTRACT } from './boolean.js';
|
|
2
|
+
import { FUNCTION_CONTRACT } from './function.js';
|
|
3
|
+
import { LIST_CONTRACT } from './list.js';
|
|
4
|
+
import { NULL_CONTRACT, UNDEFINED_CONTRACT } from './nullish.js';
|
|
5
|
+
import { NUMBER_CONTRACT } from './number.js';
|
|
6
|
+
import { RECORD_CONTRACT } from './record.js';
|
|
7
|
+
import { STRING_CONTRACT } from './string.js';
|
|
8
|
+
export { BOOLEAN_CONTRACT } from './boolean.js';
|
|
9
|
+
export { FUNCTION_CONTRACT } from './function.js';
|
|
10
|
+
export { LIST_CONTRACT } from './list.js';
|
|
11
|
+
export { NULL_CONTRACT, UNDEFINED_CONTRACT } from './nullish.js';
|
|
12
|
+
export { NUMBER_CONTRACT } from './number.js';
|
|
13
|
+
export { RECORD_CONTRACT } from './record.js';
|
|
14
|
+
export { CORE_FIXTURE_FUNCTION, CORE_FIXTURE_UNDEFINED, CORE_TYPE_NAMES, contractToGraphEdges, isCoreFixtureFunction, isCoreFixtureUndefined, } from './schema.js';
|
|
15
|
+
export { CoreContractEvaluationError, coreFixtureValueType, evaluateCoreContractOperation, } from './semantics.js';
|
|
16
|
+
export { STRING_CONTRACT } from './string.js';
|
|
17
|
+
export const CORE_TYPE_CONTRACTS = {
|
|
18
|
+
schemaVersion: 1,
|
|
19
|
+
types: {
|
|
20
|
+
String: STRING_CONTRACT,
|
|
21
|
+
Boolean: BOOLEAN_CONTRACT,
|
|
22
|
+
Number: NUMBER_CONTRACT,
|
|
23
|
+
List: LIST_CONTRACT,
|
|
24
|
+
Record: RECORD_CONTRACT,
|
|
25
|
+
Function: FUNCTION_CONTRACT,
|
|
26
|
+
Null: NULL_CONTRACT,
|
|
27
|
+
Undefined: UNDEFINED_CONTRACT,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core-contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAe9C,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,CAAC;IAChB,KAAK,EAAE;QACL,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,kBAAkB;KAC9B;CAC0C,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
export declare const LIST_CONTRACT: {
|
|
2
|
+
readonly name: "List";
|
|
3
|
+
readonly kind: "collection";
|
|
4
|
+
readonly strict: true;
|
|
5
|
+
readonly operations: readonly [{
|
|
6
|
+
readonly id: "List.length";
|
|
7
|
+
readonly kind: "property";
|
|
8
|
+
readonly args: readonly ["List"];
|
|
9
|
+
readonly returns: "Number";
|
|
10
|
+
readonly lowers: {
|
|
11
|
+
readonly kern: "List.length($0)";
|
|
12
|
+
readonly ts: "__kernListLength($0)";
|
|
13
|
+
readonly python: "__kern_list_length($0)";
|
|
14
|
+
};
|
|
15
|
+
readonly fixtures: readonly [{
|
|
16
|
+
readonly args: readonly [readonly []];
|
|
17
|
+
readonly returns: 0;
|
|
18
|
+
}, {
|
|
19
|
+
readonly args: readonly [readonly [1, 2, 3]];
|
|
20
|
+
readonly returns: 3;
|
|
21
|
+
}, {
|
|
22
|
+
readonly args: readonly ["not-list"];
|
|
23
|
+
readonly throws: {
|
|
24
|
+
readonly code: "strict-type";
|
|
25
|
+
readonly message: "List.length expects List.";
|
|
26
|
+
};
|
|
27
|
+
}];
|
|
28
|
+
readonly review: {
|
|
29
|
+
readonly summary: "Strict list cardinality.";
|
|
30
|
+
readonly graph: readonly ["List", "Number", "strict", "portable"];
|
|
31
|
+
};
|
|
32
|
+
}, {
|
|
33
|
+
readonly id: "List.index";
|
|
34
|
+
readonly kind: "method";
|
|
35
|
+
readonly args: readonly ["List", "Number"];
|
|
36
|
+
readonly returns: readonly ["String", "Boolean", "Number", "List", "Record", "Function", "Null", "Undefined"];
|
|
37
|
+
readonly lowers: {
|
|
38
|
+
readonly kern: "List.index($0, $1)";
|
|
39
|
+
readonly ts: "__kernListIndex($0, $1)";
|
|
40
|
+
readonly python: "__kern_list_index($0, $1)";
|
|
41
|
+
};
|
|
42
|
+
readonly fixtures: readonly [{
|
|
43
|
+
readonly args: readonly [readonly [10, 20, 30], 0];
|
|
44
|
+
readonly returns: 10;
|
|
45
|
+
}, {
|
|
46
|
+
readonly args: readonly [readonly [10, 20, 30], 2];
|
|
47
|
+
readonly returns: 30;
|
|
48
|
+
}, {
|
|
49
|
+
readonly args: readonly [readonly [10, 20, 30], 3];
|
|
50
|
+
readonly returns: {
|
|
51
|
+
readonly __kernFixture: "Undefined";
|
|
52
|
+
};
|
|
53
|
+
}, {
|
|
54
|
+
readonly args: readonly [readonly [10, 20, 30], -1];
|
|
55
|
+
readonly returns: {
|
|
56
|
+
readonly __kernFixture: "Undefined";
|
|
57
|
+
};
|
|
58
|
+
}, {
|
|
59
|
+
readonly args: readonly [readonly [10, 20, 30], 1.5];
|
|
60
|
+
readonly returns: {
|
|
61
|
+
readonly __kernFixture: "Undefined";
|
|
62
|
+
};
|
|
63
|
+
}, {
|
|
64
|
+
readonly args: readonly [readonly [10, {
|
|
65
|
+
readonly __kernFixture: "Undefined";
|
|
66
|
+
}, 30], 1];
|
|
67
|
+
readonly returns: {
|
|
68
|
+
readonly __kernFixture: "Undefined";
|
|
69
|
+
};
|
|
70
|
+
}, {
|
|
71
|
+
readonly args: readonly [readonly [], 0];
|
|
72
|
+
readonly returns: {
|
|
73
|
+
readonly __kernFixture: "Undefined";
|
|
74
|
+
};
|
|
75
|
+
}, {
|
|
76
|
+
readonly args: readonly [readonly [10], "0"];
|
|
77
|
+
readonly throws: {
|
|
78
|
+
readonly code: "strict-type";
|
|
79
|
+
readonly message: "List.index expects List, Number.";
|
|
80
|
+
};
|
|
81
|
+
}];
|
|
82
|
+
readonly review: {
|
|
83
|
+
readonly summary: "Strict list index by numeric offset; misses return Undefined.";
|
|
84
|
+
readonly graph: readonly ["List", "Number", "Undefined", "strict", "portable"];
|
|
85
|
+
};
|
|
86
|
+
}];
|
|
87
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { CORE_FIXTURE_UNDEFINED } from './schema.js';
|
|
2
|
+
export const LIST_CONTRACT = {
|
|
3
|
+
name: 'List',
|
|
4
|
+
kind: 'collection',
|
|
5
|
+
strict: true,
|
|
6
|
+
operations: [
|
|
7
|
+
{
|
|
8
|
+
id: 'List.length',
|
|
9
|
+
kind: 'property',
|
|
10
|
+
args: ['List'],
|
|
11
|
+
returns: 'Number',
|
|
12
|
+
lowers: {
|
|
13
|
+
kern: 'List.length($0)',
|
|
14
|
+
ts: '__kernListLength($0)',
|
|
15
|
+
python: '__kern_list_length($0)',
|
|
16
|
+
},
|
|
17
|
+
fixtures: [
|
|
18
|
+
{ args: [[]], returns: 0 },
|
|
19
|
+
{ args: [[1, 2, 3]], returns: 3 },
|
|
20
|
+
{ args: ['not-list'], throws: { code: 'strict-type', message: 'List.length expects List.' } },
|
|
21
|
+
],
|
|
22
|
+
review: {
|
|
23
|
+
summary: 'Strict list cardinality.',
|
|
24
|
+
graph: ['List', 'Number', 'strict', 'portable'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 'List.index',
|
|
29
|
+
kind: 'method',
|
|
30
|
+
args: ['List', 'Number'],
|
|
31
|
+
returns: ['String', 'Boolean', 'Number', 'List', 'Record', 'Function', 'Null', 'Undefined'],
|
|
32
|
+
lowers: {
|
|
33
|
+
kern: 'List.index($0, $1)',
|
|
34
|
+
ts: '__kernListIndex($0, $1)',
|
|
35
|
+
python: '__kern_list_index($0, $1)',
|
|
36
|
+
},
|
|
37
|
+
fixtures: [
|
|
38
|
+
{ args: [[10, 20, 30], 0], returns: 10 },
|
|
39
|
+
{ args: [[10, 20, 30], 2], returns: 30 },
|
|
40
|
+
{ args: [[10, 20, 30], 3], returns: CORE_FIXTURE_UNDEFINED },
|
|
41
|
+
{ args: [[10, 20, 30], -1], returns: CORE_FIXTURE_UNDEFINED },
|
|
42
|
+
{ args: [[10, 20, 30], 1.5], returns: CORE_FIXTURE_UNDEFINED },
|
|
43
|
+
{ args: [[10, CORE_FIXTURE_UNDEFINED, 30], 1], returns: CORE_FIXTURE_UNDEFINED },
|
|
44
|
+
{ args: [[], 0], returns: CORE_FIXTURE_UNDEFINED },
|
|
45
|
+
{ args: [[10], '0'], throws: { code: 'strict-type', message: 'List.index expects List, Number.' } },
|
|
46
|
+
],
|
|
47
|
+
review: {
|
|
48
|
+
summary: 'Strict list index by numeric offset; misses return Undefined.',
|
|
49
|
+
graph: ['List', 'Number', 'Undefined', 'strict', 'portable'],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/core-contracts/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,aAAa,CAAC;AAE5E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE;QACV;YACE,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE;gBACN,IAAI,EAAE,iBAAiB;gBACvB,EAAE,EAAE,sBAAsB;gBAC1B,MAAM,EAAE,wBAAwB;aACjC;YACD,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;gBAC1B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;gBACjC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE;aAC9F;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,0BAA0B;gBACnC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;aAChD;SACF;QACD;YACE,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;YACxB,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC;YAC3F,MAAM,EAAE;gBACN,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,yBAAyB;gBAC7B,MAAM,EAAE,2BAA2B;aACpC;YACD,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBACxC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBACxC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE;gBAC5D,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE;gBAC7D,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE;gBAC9D,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE;gBAChF,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE;gBAClD,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,kCAAkC,EAAE,EAAE;aACpG;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,+DAA+D;gBACxE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC;aAC7D;SACF;KACF;CACkC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const NULL_CONTRACT: {
|
|
2
|
+
readonly name: "Null";
|
|
3
|
+
readonly kind: "nullish";
|
|
4
|
+
readonly strict: true;
|
|
5
|
+
readonly operations: readonly [];
|
|
6
|
+
};
|
|
7
|
+
export declare const UNDEFINED_CONTRACT: {
|
|
8
|
+
readonly name: "Undefined";
|
|
9
|
+
readonly kind: "nullish";
|
|
10
|
+
readonly strict: true;
|
|
11
|
+
readonly operations: readonly [];
|
|
12
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const NULL_CONTRACT = {
|
|
2
|
+
name: 'Null',
|
|
3
|
+
kind: 'nullish',
|
|
4
|
+
strict: true,
|
|
5
|
+
operations: [],
|
|
6
|
+
};
|
|
7
|
+
export const UNDEFINED_CONTRACT = {
|
|
8
|
+
name: 'Undefined',
|
|
9
|
+
kind: 'nullish',
|
|
10
|
+
strict: true,
|
|
11
|
+
operations: [],
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=nullish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullish.js","sourceRoot":"","sources":["../../src/core-contracts/nullish.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,EAAE;CACqB,CAAC;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,EAAE;CACqB,CAAC"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
export declare const NUMBER_CONTRACT: {
|
|
2
|
+
readonly name: "Number";
|
|
3
|
+
readonly kind: "primitive";
|
|
4
|
+
readonly strict: true;
|
|
5
|
+
readonly operations: readonly [{
|
|
6
|
+
readonly id: "Number.negate";
|
|
7
|
+
readonly kind: "method";
|
|
8
|
+
readonly args: readonly ["Number"];
|
|
9
|
+
readonly returns: "Number";
|
|
10
|
+
readonly lowers: {
|
|
11
|
+
readonly kern: "Number.negate($0)";
|
|
12
|
+
readonly ts: "__kernNumberNegate($0)";
|
|
13
|
+
readonly python: "__kern_number_negate($0)";
|
|
14
|
+
};
|
|
15
|
+
readonly fixtures: readonly [{
|
|
16
|
+
readonly args: readonly [3];
|
|
17
|
+
readonly returns: -3;
|
|
18
|
+
}, {
|
|
19
|
+
readonly args: readonly [-3];
|
|
20
|
+
readonly returns: 3;
|
|
21
|
+
}, {
|
|
22
|
+
readonly args: readonly ["3"];
|
|
23
|
+
readonly throws: {
|
|
24
|
+
readonly code: "strict-type";
|
|
25
|
+
readonly message: "Number.negate expects Number.";
|
|
26
|
+
};
|
|
27
|
+
}];
|
|
28
|
+
readonly review: {
|
|
29
|
+
readonly summary: "Strict numeric negation over finite KERN Numbers.";
|
|
30
|
+
readonly graph: readonly ["Number", "strict", "portable"];
|
|
31
|
+
};
|
|
32
|
+
}, {
|
|
33
|
+
readonly id: "Number.add";
|
|
34
|
+
readonly kind: "method";
|
|
35
|
+
readonly args: readonly ["Number", "Number"];
|
|
36
|
+
readonly returns: "Number";
|
|
37
|
+
readonly lowers: {
|
|
38
|
+
readonly kern: "Number.add($0, $1)";
|
|
39
|
+
readonly ts: "__kernNumberAdd($0, $1)";
|
|
40
|
+
readonly python: "__kern_number_add($0, $1)";
|
|
41
|
+
};
|
|
42
|
+
readonly fixtures: readonly [{
|
|
43
|
+
readonly args: readonly [2, 3];
|
|
44
|
+
readonly returns: 5;
|
|
45
|
+
}, {
|
|
46
|
+
readonly args: readonly [-2, 3];
|
|
47
|
+
readonly returns: 1;
|
|
48
|
+
}, {
|
|
49
|
+
readonly args: readonly [2, "3"];
|
|
50
|
+
readonly throws: {
|
|
51
|
+
readonly code: "strict-type";
|
|
52
|
+
readonly message: "Number.add expects Number, Number.";
|
|
53
|
+
};
|
|
54
|
+
}];
|
|
55
|
+
readonly review: {
|
|
56
|
+
readonly summary: "Strict numeric addition over finite KERN Numbers.";
|
|
57
|
+
readonly graph: readonly ["Number", "strict", "portable"];
|
|
58
|
+
};
|
|
59
|
+
}, {
|
|
60
|
+
readonly id: "Number.subtract";
|
|
61
|
+
readonly kind: "method";
|
|
62
|
+
readonly args: readonly ["Number", "Number"];
|
|
63
|
+
readonly returns: "Number";
|
|
64
|
+
readonly lowers: {
|
|
65
|
+
readonly kern: "Number.subtract($0, $1)";
|
|
66
|
+
readonly ts: "__kernNumberSubtract($0, $1)";
|
|
67
|
+
readonly python: "__kern_number_subtract($0, $1)";
|
|
68
|
+
};
|
|
69
|
+
readonly fixtures: readonly [{
|
|
70
|
+
readonly args: readonly [5, 3];
|
|
71
|
+
readonly returns: 2;
|
|
72
|
+
}, {
|
|
73
|
+
readonly args: readonly [3, 5];
|
|
74
|
+
readonly returns: -2;
|
|
75
|
+
}, {
|
|
76
|
+
readonly args: readonly [5, false];
|
|
77
|
+
readonly throws: {
|
|
78
|
+
readonly code: "strict-type";
|
|
79
|
+
readonly message: "Number.subtract expects Number, Number.";
|
|
80
|
+
};
|
|
81
|
+
}];
|
|
82
|
+
readonly review: {
|
|
83
|
+
readonly summary: "Strict numeric subtraction over finite KERN Numbers.";
|
|
84
|
+
readonly graph: readonly ["Number", "strict", "portable"];
|
|
85
|
+
};
|
|
86
|
+
}, {
|
|
87
|
+
readonly id: "Number.multiply";
|
|
88
|
+
readonly kind: "method";
|
|
89
|
+
readonly args: readonly ["Number", "Number"];
|
|
90
|
+
readonly returns: "Number";
|
|
91
|
+
readonly lowers: {
|
|
92
|
+
readonly kern: "Number.multiply($0, $1)";
|
|
93
|
+
readonly ts: "__kernNumberMultiply($0, $1)";
|
|
94
|
+
readonly python: "__kern_number_multiply($0, $1)";
|
|
95
|
+
};
|
|
96
|
+
readonly fixtures: readonly [{
|
|
97
|
+
readonly args: readonly [3, 4];
|
|
98
|
+
readonly returns: 12;
|
|
99
|
+
}, {
|
|
100
|
+
readonly args: readonly [-3, 4];
|
|
101
|
+
readonly returns: -12;
|
|
102
|
+
}, {
|
|
103
|
+
readonly args: readonly [3, null];
|
|
104
|
+
readonly throws: {
|
|
105
|
+
readonly code: "strict-type";
|
|
106
|
+
readonly message: "Number.multiply expects Number, Number.";
|
|
107
|
+
};
|
|
108
|
+
}];
|
|
109
|
+
readonly review: {
|
|
110
|
+
readonly summary: "Strict numeric multiplication over finite KERN Numbers.";
|
|
111
|
+
readonly graph: readonly ["Number", "strict", "portable"];
|
|
112
|
+
};
|
|
113
|
+
}, {
|
|
114
|
+
readonly id: "Number.divide";
|
|
115
|
+
readonly kind: "method";
|
|
116
|
+
readonly args: readonly ["Number", "Number"];
|
|
117
|
+
readonly returns: "Number";
|
|
118
|
+
readonly lowers: {
|
|
119
|
+
readonly kern: "Number.divide($0, $1)";
|
|
120
|
+
readonly ts: "__kernNumberDivide($0, $1)";
|
|
121
|
+
readonly python: "__kern_number_divide($0, $1)";
|
|
122
|
+
};
|
|
123
|
+
readonly fixtures: readonly [{
|
|
124
|
+
readonly args: readonly [6, 2];
|
|
125
|
+
readonly returns: 3;
|
|
126
|
+
}, {
|
|
127
|
+
readonly args: readonly [5, 2];
|
|
128
|
+
readonly returns: 2.5;
|
|
129
|
+
}, {
|
|
130
|
+
readonly args: readonly [1, 0];
|
|
131
|
+
readonly throws: {
|
|
132
|
+
readonly code: "division-by-zero";
|
|
133
|
+
readonly message: "Number.divide division by zero.";
|
|
134
|
+
};
|
|
135
|
+
}, {
|
|
136
|
+
readonly args: readonly [6, "2"];
|
|
137
|
+
readonly throws: {
|
|
138
|
+
readonly code: "strict-type";
|
|
139
|
+
readonly message: "Number.divide expects Number, Number.";
|
|
140
|
+
};
|
|
141
|
+
}];
|
|
142
|
+
readonly review: {
|
|
143
|
+
readonly summary: "Strict numeric division over finite KERN Numbers; zero divisor is a contract error.";
|
|
144
|
+
readonly graph: readonly ["Number", "strict", "portable"];
|
|
145
|
+
};
|
|
146
|
+
}, {
|
|
147
|
+
readonly id: "Number.remainder";
|
|
148
|
+
readonly kind: "method";
|
|
149
|
+
readonly args: readonly ["Number", "Number"];
|
|
150
|
+
readonly returns: "Number";
|
|
151
|
+
readonly lowers: {
|
|
152
|
+
readonly kern: "Number.remainder($0, $1)";
|
|
153
|
+
readonly ts: "__kernNumberRemainder($0, $1)";
|
|
154
|
+
readonly python: "__kern_number_remainder($0, $1)";
|
|
155
|
+
};
|
|
156
|
+
readonly fixtures: readonly [{
|
|
157
|
+
readonly args: readonly [5, 2];
|
|
158
|
+
readonly returns: 1;
|
|
159
|
+
}, {
|
|
160
|
+
readonly args: readonly [-5, 2];
|
|
161
|
+
readonly returns: -1;
|
|
162
|
+
}, {
|
|
163
|
+
readonly args: readonly [5, -2];
|
|
164
|
+
readonly returns: 1;
|
|
165
|
+
}, {
|
|
166
|
+
readonly args: readonly [1, 0];
|
|
167
|
+
readonly throws: {
|
|
168
|
+
readonly code: "division-by-zero";
|
|
169
|
+
readonly message: "Number.remainder division by zero.";
|
|
170
|
+
};
|
|
171
|
+
}, {
|
|
172
|
+
readonly args: readonly [5, "2"];
|
|
173
|
+
readonly throws: {
|
|
174
|
+
readonly code: "strict-type";
|
|
175
|
+
readonly message: "Number.remainder expects Number, Number.";
|
|
176
|
+
};
|
|
177
|
+
}];
|
|
178
|
+
readonly review: {
|
|
179
|
+
readonly summary: "Strict numeric remainder using KERN dividend-sign semantics; zero divisor is a contract error.";
|
|
180
|
+
readonly graph: readonly ["Number", "strict", "portable"];
|
|
181
|
+
};
|
|
182
|
+
}, {
|
|
183
|
+
readonly id: "Number.lessThan";
|
|
184
|
+
readonly kind: "method";
|
|
185
|
+
readonly args: readonly ["Number", "Number"];
|
|
186
|
+
readonly returns: "Boolean";
|
|
187
|
+
readonly lowers: {
|
|
188
|
+
readonly kern: "Number.lessThan($0, $1)";
|
|
189
|
+
readonly ts: "__kernNumberLessThan($0, $1)";
|
|
190
|
+
readonly python: "__kern_number_less_than($0, $1)";
|
|
191
|
+
};
|
|
192
|
+
readonly fixtures: readonly [{
|
|
193
|
+
readonly args: readonly [2, 3];
|
|
194
|
+
readonly returns: true;
|
|
195
|
+
}, {
|
|
196
|
+
readonly args: readonly [3, 2];
|
|
197
|
+
readonly returns: false;
|
|
198
|
+
}, {
|
|
199
|
+
readonly args: readonly [2, "3"];
|
|
200
|
+
readonly throws: {
|
|
201
|
+
readonly code: "strict-type";
|
|
202
|
+
readonly message: "Number.lessThan expects Number, Number.";
|
|
203
|
+
};
|
|
204
|
+
}];
|
|
205
|
+
readonly review: {
|
|
206
|
+
readonly summary: "Strict numeric less-than comparison.";
|
|
207
|
+
readonly graph: readonly ["Number", "Boolean", "strict", "portable"];
|
|
208
|
+
};
|
|
209
|
+
}, {
|
|
210
|
+
readonly id: "Number.lessThanOrEqual";
|
|
211
|
+
readonly kind: "method";
|
|
212
|
+
readonly args: readonly ["Number", "Number"];
|
|
213
|
+
readonly returns: "Boolean";
|
|
214
|
+
readonly lowers: {
|
|
215
|
+
readonly kern: "Number.lessThanOrEqual($0, $1)";
|
|
216
|
+
readonly ts: "__kernNumberLessThanOrEqual($0, $1)";
|
|
217
|
+
readonly python: "__kern_number_less_than_or_equal($0, $1)";
|
|
218
|
+
};
|
|
219
|
+
readonly fixtures: readonly [{
|
|
220
|
+
readonly args: readonly [2, 2];
|
|
221
|
+
readonly returns: true;
|
|
222
|
+
}, {
|
|
223
|
+
readonly args: readonly [3, 2];
|
|
224
|
+
readonly returns: false;
|
|
225
|
+
}, {
|
|
226
|
+
readonly args: readonly [2, null];
|
|
227
|
+
readonly throws: {
|
|
228
|
+
readonly code: "strict-type";
|
|
229
|
+
readonly message: "Number.lessThanOrEqual expects Number, Number.";
|
|
230
|
+
};
|
|
231
|
+
}];
|
|
232
|
+
readonly review: {
|
|
233
|
+
readonly summary: "Strict numeric less-than-or-equal comparison.";
|
|
234
|
+
readonly graph: readonly ["Number", "Boolean", "strict", "portable"];
|
|
235
|
+
};
|
|
236
|
+
}, {
|
|
237
|
+
readonly id: "Number.greaterThan";
|
|
238
|
+
readonly kind: "method";
|
|
239
|
+
readonly args: readonly ["Number", "Number"];
|
|
240
|
+
readonly returns: "Boolean";
|
|
241
|
+
readonly lowers: {
|
|
242
|
+
readonly kern: "Number.greaterThan($0, $1)";
|
|
243
|
+
readonly ts: "__kernNumberGreaterThan($0, $1)";
|
|
244
|
+
readonly python: "__kern_number_greater_than($0, $1)";
|
|
245
|
+
};
|
|
246
|
+
readonly fixtures: readonly [{
|
|
247
|
+
readonly args: readonly [3, 2];
|
|
248
|
+
readonly returns: true;
|
|
249
|
+
}, {
|
|
250
|
+
readonly args: readonly [2, 3];
|
|
251
|
+
readonly returns: false;
|
|
252
|
+
}, {
|
|
253
|
+
readonly args: readonly [3, true];
|
|
254
|
+
readonly throws: {
|
|
255
|
+
readonly code: "strict-type";
|
|
256
|
+
readonly message: "Number.greaterThan expects Number, Number.";
|
|
257
|
+
};
|
|
258
|
+
}];
|
|
259
|
+
readonly review: {
|
|
260
|
+
readonly summary: "Strict numeric greater-than comparison.";
|
|
261
|
+
readonly graph: readonly ["Number", "Boolean", "strict", "portable"];
|
|
262
|
+
};
|
|
263
|
+
}, {
|
|
264
|
+
readonly id: "Number.greaterThanOrEqual";
|
|
265
|
+
readonly kind: "method";
|
|
266
|
+
readonly args: readonly ["Number", "Number"];
|
|
267
|
+
readonly returns: "Boolean";
|
|
268
|
+
readonly lowers: {
|
|
269
|
+
readonly kern: "Number.greaterThanOrEqual($0, $1)";
|
|
270
|
+
readonly ts: "__kernNumberGreaterThanOrEqual($0, $1)";
|
|
271
|
+
readonly python: "__kern_number_greater_than_or_equal($0, $1)";
|
|
272
|
+
};
|
|
273
|
+
readonly fixtures: readonly [{
|
|
274
|
+
readonly args: readonly [3, 3];
|
|
275
|
+
readonly returns: true;
|
|
276
|
+
}, {
|
|
277
|
+
readonly args: readonly [2, 3];
|
|
278
|
+
readonly returns: false;
|
|
279
|
+
}, {
|
|
280
|
+
readonly args: readonly [3, "3"];
|
|
281
|
+
readonly throws: {
|
|
282
|
+
readonly code: "strict-type";
|
|
283
|
+
readonly message: "Number.greaterThanOrEqual expects Number, Number.";
|
|
284
|
+
};
|
|
285
|
+
}];
|
|
286
|
+
readonly review: {
|
|
287
|
+
readonly summary: "Strict numeric greater-than-or-equal comparison.";
|
|
288
|
+
readonly graph: readonly ["Number", "Boolean", "strict", "portable"];
|
|
289
|
+
};
|
|
290
|
+
}];
|
|
291
|
+
};
|