trilean 0.0.0 → 1.0.1

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 (46) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +636 -0
  3. package/dist/computed-value.cjs +71 -0
  4. package/dist/computed-value.d.cts +43 -0
  5. package/dist/computed-value.d.ts +43 -0
  6. package/dist/computed-value.js +65 -0
  7. package/dist/derived-aggregates.cjs +74 -0
  8. package/dist/derived-aggregates.d.cts +12 -0
  9. package/dist/derived-aggregates.d.ts +12 -0
  10. package/dist/derived-aggregates.js +70 -0
  11. package/dist/derived-connectives.cjs +40 -0
  12. package/dist/derived-connectives.d.cts +17 -0
  13. package/dist/derived-connectives.d.ts +17 -0
  14. package/dist/derived-connectives.js +31 -0
  15. package/dist/evaluation.cjs +39 -0
  16. package/dist/evaluation.d.cts +29 -0
  17. package/dist/evaluation.d.ts +29 -0
  18. package/dist/evaluation.js +35 -0
  19. package/dist/evaluator.cjs +482 -0
  20. package/dist/evaluator.d.cts +18 -0
  21. package/dist/evaluator.d.ts +18 -0
  22. package/dist/evaluator.js +479 -0
  23. package/dist/functions.cjs +5 -0
  24. package/dist/functions.d.cts +11 -0
  25. package/dist/functions.d.ts +11 -0
  26. package/dist/functions.js +4 -0
  27. package/dist/index.cjs +69 -0
  28. package/dist/index.d.cts +10 -0
  29. package/dist/index.d.ts +10 -0
  30. package/dist/index.js +9 -0
  31. package/dist/json-value-B1Hjjjri.d.cts +11 -0
  32. package/dist/json-value-B1Hjjjri.d.ts +11 -0
  33. package/dist/json-value.cjs +13 -0
  34. package/dist/json-value.d.cts +2 -0
  35. package/dist/json-value.d.ts +2 -0
  36. package/dist/json-value.js +12 -0
  37. package/dist/resolvers.cjs +0 -0
  38. package/dist/resolvers.d.cts +28 -0
  39. package/dist/resolvers.d.ts +28 -0
  40. package/dist/resolvers.js +0 -0
  41. package/dist/tree.cjs +289 -0
  42. package/dist/tree.d.cts +368 -0
  43. package/dist/tree.d.ts +368 -0
  44. package/dist/tree.js +257 -0
  45. package/package.json +114 -2
  46. package/schemas/trilean.schema.json +1 -0
package/package.json CHANGED
@@ -1,5 +1,117 @@
1
1
  {
2
2
  "name": "trilean",
3
- "version": "0.0.0",
4
- "private": false
3
+ "version": "1.0.1",
4
+ "description": "Consumer-agnostic, three-valued predicate/expression evaluation trees over injected resolvers -- no assumptions about consumer data, no I/O of its own.",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/ExaDev/trilean.git"
9
+ },
10
+ "homepage": "https://github.com/ExaDev/trilean#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/ExaDev/trilean/issues"
13
+ },
14
+ "exports": {
15
+ ".": {
16
+ "types": {
17
+ "import": "./dist/index.d.ts",
18
+ "require": "./dist/index.d.cts"
19
+ },
20
+ "import": "./dist/index.js",
21
+ "require": "./dist/index.cjs"
22
+ },
23
+ "./*": {
24
+ "types": {
25
+ "import": "./dist/*.d.ts",
26
+ "require": "./dist/*.d.cts"
27
+ },
28
+ "import": "./dist/*.js",
29
+ "require": "./dist/*.cjs"
30
+ },
31
+ "./schemas/*.schema.json": "./schemas/*.schema.json"
32
+ },
33
+ "main": "./dist/index.cjs",
34
+ "module": "./dist/index.js",
35
+ "types": "./dist/index.d.ts",
36
+ "files": [
37
+ "dist",
38
+ "schemas"
39
+ ],
40
+ "publishConfig": {
41
+ "access": "public",
42
+ "provenance": true,
43
+ "registry": "https://registry.npmjs.org/"
44
+ },
45
+ "sideEffects": false,
46
+ "engines": {
47
+ "node": ">=20"
48
+ },
49
+ "license": "MIT",
50
+ "packageManager": "pnpm@11.6.0",
51
+ "dependencies": {
52
+ "zod": "^4.5.4"
53
+ },
54
+ "scripts": {
55
+ "build": "turbo run _build",
56
+ "_build": "tsdown && tsx scripts/generate-json-schema.ts",
57
+ "lint": "turbo run _lint",
58
+ "_lint": "eslint . --fix --cache --max-warnings 0",
59
+ "typecheck": "turbo run _typecheck",
60
+ "_typecheck": "tsc -p tsconfig.json && tsc -p tsconfig.node.json",
61
+ "test": "turbo run _test",
62
+ "_test": "vitest run --project unit",
63
+ "test:coverage": "turbo run _test:coverage",
64
+ "_test:coverage": "vitest run --project unit --coverage",
65
+ "test:integration": "turbo run _test:integration",
66
+ "_test:integration": "vitest run --project integration",
67
+ "test:smoke": "turbo run _test:smoke",
68
+ "_test:smoke": "vitest run --project smoke",
69
+ "test:workers": "turbo run _test:workers",
70
+ "_test:workers": "vitest run --project workers",
71
+ "prepublishOnly": "pnpm run lint && pnpm run typecheck && pnpm run test && pnpm run test:integration && pnpm run build && pnpm run test:smoke && publint && attw --pack",
72
+ "prepare": "husky",
73
+ "release": "semantic-release"
74
+ },
75
+ "keywords": [
76
+ "json",
77
+ "predicate",
78
+ "expression",
79
+ "evaluator",
80
+ "three-valued-logic",
81
+ "zod",
82
+ "rules-engine",
83
+ "isomorphic"
84
+ ],
85
+ "devDependencies": {
86
+ "@arethetypeswrong/cli": "^0.18.5",
87
+ "@cloudflare/vitest-pool-workers": "^0.22.0",
88
+ "@commitlint/cli": "^21.2.2",
89
+ "@commitlint/config-conventional": "^21.2.2",
90
+ "@eslint/js": "^10.0.1",
91
+ "@exadev/eslint-config": "^2.10.2",
92
+ "@semantic-release/changelog": "^7.0.0",
93
+ "@semantic-release/commit-analyzer": "^13.0.1",
94
+ "@semantic-release/git": "^11.0.1",
95
+ "@semantic-release/github": "^12.0.9",
96
+ "@semantic-release/npm": "^13.1.5",
97
+ "@semantic-release/release-notes-generator": "^14.1.1",
98
+ "@types/node": "^26.4.0",
99
+ "@vitest/coverage-v8": "^4.1.11",
100
+ "canonicalize": "^4.0.0",
101
+ "eslint": "^10.9.1",
102
+ "eslint-config-prettier": "^10.1.8",
103
+ "eslint-plugin-prettier": "^5.5.6",
104
+ "globals": "^17.11.0",
105
+ "husky": "^9.1.7",
106
+ "lint-staged": "^17.4.1",
107
+ "prettier": "^3.9.6",
108
+ "publint": "^0.3.24",
109
+ "semantic-release": "^25.0.9",
110
+ "tsdown": "^0.22.14",
111
+ "tsx": "^4.23.13",
112
+ "turbo": "^2.10.12",
113
+ "typescript": "^6.0.3",
114
+ "typescript-eslint": "^8.68.0",
115
+ "vitest": "^4.1.11"
116
+ }
5
117
  }
@@ -0,0 +1 @@
1
+ {"$defs":{"ExpressionNode":{"oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"numberLiteral","type":"string"},"unit":{"additionalProperties":{"type":"number"},"propertyNames":{"type":"string"},"type":"object"},"value":{"type":"number"}},"required":["kind","value"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"textLiteral","type":"string"},"value":{"type":"string"}},"required":["kind","value"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"instantLiteral","type":"string"},"value":{"type":"string"}},"required":["kind","value"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"durationLiteral","type":"string"},"unit":{"enum":["ms","s","min","h","d"],"type":"string"},"value":{"type":"number"}},"required":["kind","value","unit"],"type":"object"},{"additionalProperties":false,"properties":{"key":{"$ref":"#/$defs/schema0"},"kind":{"const":"reference","type":"string"},"unit":{"additionalProperties":{"type":"number"},"propertyNames":{"type":"string"},"type":"object"}},"required":["kind","key"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"arithmetic","type":"string"},"left":{"$ref":"#/$defs/ExpressionNode"},"op":{"enum":["add","subtract","multiply","divide","power","modulo"],"type":"string"},"right":{"$ref":"#/$defs/ExpressionNode"}},"required":["kind","op","left","right"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"negate","type":"string"},"operand":{"$ref":"#/$defs/ExpressionNode"}},"required":["kind","operand"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"items":{"$ref":"#/$defs/ExpressionNode"},"type":"array"},"fn":{"type":"string"},"kind":{"const":"call","type":"string"}},"required":["kind","fn","args"],"type":"object"},{"additionalProperties":false,"properties":{"keys":{"items":{"$ref":"#/$defs/ExpressionNode"},"type":"array"},"kind":{"const":"lookup","type":"string"},"table":{"$ref":"#/$defs/schema0"}},"required":["kind","table","keys"],"type":"object"},{"additionalProperties":false,"properties":{"cases":{"items":{"additionalProperties":false,"properties":{"then":{"$ref":"#/$defs/ExpressionNode"},"when":{"$ref":"#/$defs/PredicateNode"}},"required":["when","then"],"type":"object"},"type":"array"},"fallback":{"$ref":"#/$defs/ExpressionNode"},"kind":{"const":"conditional","type":"string"}},"required":["kind","cases","fallback"],"type":"object"},{"additionalProperties":false,"properties":{"collection":{"$ref":"#/$defs/schema0"},"combiner":{"oneOf":[{"additionalProperties":false,"properties":{"item":{"$ref":"#/$defs/ExpressionNode"},"mode":{"const":"max","type":"string"}},"required":["mode","item"],"type":"object"},{"additionalProperties":false,"properties":{"item":{"$ref":"#/$defs/ExpressionNode"},"mode":{"const":"min","type":"string"}},"required":["mode","item"],"type":"object"},{"additionalProperties":false,"properties":{"combine":{"$ref":"#/$defs/ExpressionNode"},"initial":{"$ref":"#/$defs/ExpressionNode"},"mode":{"const":"reduce","type":"string"}},"required":["mode","initial","combine"],"type":"object"}]},"filter":{"$ref":"#/$defs/PredicateNode"},"kind":{"const":"fold","type":"string"}},"required":["kind","collection","combiner"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"accumulator","type":"string"}},"required":["kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"delegate","type":"string"},"payload":{"$ref":"#/$defs/schema0"},"system":{"type":"string"}},"required":["kind","system","payload"],"type":"object"}]},"PredicateNode":{"oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"not","type":"string"},"operand":{"$ref":"#/$defs/PredicateNode"}},"required":["kind","operand"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"and","type":"string"},"left":{"$ref":"#/$defs/PredicateNode"},"right":{"$ref":"#/$defs/PredicateNode"}},"required":["kind","left","right"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"or","type":"string"},"left":{"$ref":"#/$defs/PredicateNode"},"right":{"$ref":"#/$defs/PredicateNode"}},"required":["kind","left","right"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"allOf","type":"string"},"operands":{"items":{"$ref":"#/$defs/PredicateNode"},"type":"array"}},"required":["kind","operands"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"anyOf","type":"string"},"operands":{"items":{"$ref":"#/$defs/PredicateNode"},"type":"array"}},"required":["kind","operands"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"compare","type":"string"},"left":{"$ref":"#/$defs/ExpressionNode"},"op":{"enum":["gt","gte","lt","lte","eq","neq"],"type":"string"},"right":{"$ref":"#/$defs/ExpressionNode"}},"required":["kind","op","left","right"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"textCompare","type":"string"},"left":{"$ref":"#/$defs/ExpressionNode"},"op":{"enum":["equals","notEquals","matches","notMatches"],"type":"string"},"right":{"$ref":"#/$defs/ExpressionNode"}},"required":["kind","op","left","right"],"type":"object"},{"additionalProperties":false,"properties":{"candidates":{"items":{"$ref":"#/$defs/ExpressionNode"},"type":"array"},"kind":{"const":"memberOf","type":"string"},"op":{"enum":["in","notIn"],"type":"string"},"operand":{"$ref":"#/$defs/ExpressionNode"}},"required":["kind","op","operand","candidates"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"exists","type":"string"},"operand":{"$ref":"#/$defs/ExpressionNode"}},"required":["kind","operand"],"type":"object"},{"additionalProperties":false,"properties":{"collection":{"$ref":"#/$defs/schema0"},"filter":{"$ref":"#/$defs/PredicateNode"},"item":{"$ref":"#/$defs/PredicateNode"},"kind":{"const":"some","type":"string"}},"required":["kind","collection","item"],"type":"object"},{"additionalProperties":false,"properties":{"collection":{"$ref":"#/$defs/schema0"},"filter":{"$ref":"#/$defs/PredicateNode"},"item":{"$ref":"#/$defs/PredicateNode"},"kind":{"const":"every","type":"string"}},"required":["kind","collection","item"],"type":"object"}]},"schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"$ref":"#/$defs/schema0"},"type":"array"},{"additionalProperties":{"$ref":"#/$defs/schema0"},"propertyNames":{"type":"string"},"type":"object"}]}},"$id":"https://cdn.jsdelivr.net/npm/trilean@1.0.1/schemas/trilean.schema.json","$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"$ref":"#/$defs/PredicateNode"},{"$ref":"#/$defs/ExpressionNode"}]}