circuitscript 0.0.22 → 0.0.25

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 (180) hide show
  1. package/dist/cjs/BaseVisitor.js +487 -0
  2. package/dist/cjs/SemanticTokenVisitor.js +218 -0
  3. package/dist/cjs/SymbolValidatorVisitor.js +233 -0
  4. package/dist/cjs/antlr/CircuitScriptLexer.js +302 -0
  5. package/dist/cjs/antlr/CircuitScriptParser.js +5128 -0
  6. package/dist/cjs/antlr/CircuitScriptVisitor.js +7 -0
  7. package/dist/cjs/draw_symbols.js +819 -0
  8. package/dist/cjs/execute.js +778 -0
  9. package/{src/export.ts → dist/cjs/export.js} +34 -56
  10. package/dist/cjs/fonts.js +4 -0
  11. package/dist/cjs/geometry.js +450 -0
  12. package/dist/cjs/globals.js +60 -0
  13. package/dist/cjs/helpers.js +269 -0
  14. package/dist/cjs/index.js +31 -0
  15. package/{src/layout.ts → dist/cjs/layout.js} +421 -1002
  16. package/dist/cjs/lexer.js +111 -0
  17. package/dist/cjs/logger.js +17 -0
  18. package/dist/cjs/main.js +82 -0
  19. package/dist/cjs/objects/ClassComponent.js +145 -0
  20. package/dist/cjs/objects/ExecutionScope.js +135 -0
  21. package/dist/cjs/objects/Frame.js +22 -0
  22. package/{src/objects/Net.ts → dist/cjs/objects/Net.js} +9 -24
  23. package/dist/cjs/objects/ParamDefinition.js +42 -0
  24. package/dist/cjs/objects/PinDefinition.js +31 -0
  25. package/dist/cjs/objects/PinTypes.js +11 -0
  26. package/dist/cjs/objects/Wire.js +9 -0
  27. package/dist/cjs/objects/types.js +15 -0
  28. package/dist/cjs/parser.js +70 -0
  29. package/dist/cjs/regenerate-tests.js +23 -0
  30. package/dist/cjs/render.js +155 -0
  31. package/{src/server.ts → dist/cjs/server.js} +15 -21
  32. package/dist/cjs/sizing.js +105 -0
  33. package/{src/utils.ts → dist/cjs/utils.js} +25 -35
  34. package/dist/cjs/validate.js +81 -0
  35. package/dist/cjs/visitor.js +844 -0
  36. package/dist/esm/BaseVisitor.mjs +488 -0
  37. package/dist/esm/SemanticTokenVisitor.mjs +215 -0
  38. package/dist/esm/SymbolValidatorVisitor.mjs +222 -0
  39. package/dist/esm/antlr/CircuitScriptLexer.mjs +276 -0
  40. package/dist/esm/antlr/CircuitScriptParser.mjs +5038 -0
  41. package/{build/src/antlr/CircuitScriptVisitor.js → dist/esm/antlr/CircuitScriptVisitor.mjs} +8 -3
  42. package/{build/src/draw_symbols.js → dist/esm/draw_symbols.mjs} +78 -33
  43. package/{build/src/execute.js → dist/esm/execute.mjs} +59 -60
  44. package/{build/src/export.js → dist/esm/export.mjs} +2 -2
  45. package/{build/src/geometry.js → dist/esm/geometry.mjs} +31 -15
  46. package/dist/esm/helpers.mjs +252 -0
  47. package/dist/esm/index.mjs +15 -0
  48. package/{build/src/layout.js → dist/esm/layout.mjs} +19 -11
  49. package/{build/src/lexer.js → dist/esm/lexer.mjs} +10 -10
  50. package/{build/src/main.js → dist/esm/main.mjs} +9 -14
  51. package/{build/src/objects/ClassComponent.js → dist/esm/objects/ClassComponent.mjs} +6 -3
  52. package/{build/src/objects/ExecutionScope.js → dist/esm/objects/ExecutionScope.mjs} +1 -0
  53. package/{build/src/objects/PinDefinition.js → dist/esm/objects/PinDefinition.mjs} +1 -1
  54. package/dist/esm/objects/types.mjs +12 -0
  55. package/dist/esm/parser.mjs +64 -0
  56. package/{build/src/regenerate-tests.js → dist/esm/regenerate-tests.mjs} +1 -1
  57. package/{build/src/render.js → dist/esm/render.mjs} +7 -24
  58. package/{build/src/sizing.js → dist/esm/sizing.mjs} +22 -8
  59. package/{src/main.ts → dist/esm/validate.mjs} +31 -62
  60. package/dist/esm/visitor.mjs +838 -0
  61. package/dist/types/BaseVisitor.d.ts +69 -0
  62. package/dist/types/SemanticTokenVisitor.d.ts +36 -0
  63. package/dist/types/SymbolValidatorVisitor.d.ts +61 -0
  64. package/{build/src → dist/types}/antlr/CircuitScriptLexer.d.ts +28 -27
  65. package/dist/types/antlr/CircuitScriptParser.d.ts +719 -0
  66. package/{build/src → dist/types}/antlr/CircuitScriptVisitor.d.ts +69 -59
  67. package/{build/src → dist/types}/draw_symbols.d.ts +11 -2
  68. package/{build/src → dist/types}/execute.d.ts +6 -9
  69. package/{build/src → dist/types}/geometry.d.ts +5 -1
  70. package/dist/types/helpers.d.ts +40 -0
  71. package/dist/types/index.d.ts +15 -0
  72. package/{build/src → dist/types}/layout.d.ts +10 -10
  73. package/{build/src → dist/types}/lexer.d.ts +2 -2
  74. package/{build/src → dist/types}/objects/ClassComponent.d.ts +2 -2
  75. package/{build/src → dist/types}/objects/ExecutionScope.d.ts +4 -1
  76. package/{build/src → dist/types}/objects/PinDefinition.d.ts +1 -1
  77. package/{build/src → dist/types}/objects/types.d.ts +5 -0
  78. package/dist/types/parser.d.ts +25 -0
  79. package/{build/src → dist/types}/render.d.ts +1 -1
  80. package/{build/src → dist/types}/sizing.d.ts +3 -1
  81. package/dist/types/validate.d.ts +2 -0
  82. package/dist/types/visitor.d.ts +80 -0
  83. package/libs/lib.cst +0 -2
  84. package/package.json +38 -15
  85. package/.editorconfig +0 -15
  86. package/.eslintignore +0 -1
  87. package/.eslintrc.json +0 -27
  88. package/.gitlab-ci.yml +0 -81
  89. package/.prettierignore +0 -8
  90. package/.prettierrc +0 -16
  91. package/__tests__/expectedResults.ts +0 -657
  92. package/__tests__/helpers.ts +0 -82
  93. package/__tests__/parseScripts.ts +0 -593
  94. package/__tests__/renderData/script1.cst +0 -58
  95. package/__tests__/renderData/script1.cst.svg +0 -1
  96. package/__tests__/renderData/script2.cst +0 -16
  97. package/__tests__/renderData/script2.cst.svg +0 -1
  98. package/__tests__/renderData/script3.cst +0 -30
  99. package/__tests__/renderData/script3.cst.svg +0 -1
  100. package/__tests__/renderData/script4.cst +0 -54
  101. package/__tests__/renderData/script4.cst.svg +0 -1
  102. package/__tests__/renderData/script5.cst +0 -23
  103. package/__tests__/renderData/script5.cst.svg +0 -1
  104. package/__tests__/renderData/script6.cst +0 -28
  105. package/__tests__/renderData/script6.cst.svg +0 -1
  106. package/__tests__/renderData/script7.cst +0 -26
  107. package/__tests__/renderData/script7.cst.svg +0 -1
  108. package/__tests__/renderData/script8.cst +0 -37
  109. package/__tests__/renderData/script8.cst.svg +0 -1
  110. package/__tests__/testCLI.ts +0 -68
  111. package/__tests__/testMathOps.ts +0 -36
  112. package/__tests__/testMergeWires.ts +0 -141
  113. package/__tests__/testParse.ts +0 -263
  114. package/__tests__/testRender.ts +0 -38
  115. package/build/src/antlr/CircuitScriptLexer.js +0 -287
  116. package/build/src/antlr/CircuitScriptParser.d.ts +0 -674
  117. package/build/src/antlr/CircuitScriptParser.js +0 -4841
  118. package/build/src/helpers.d.ts +0 -1
  119. package/build/src/helpers.js +0 -73
  120. package/build/src/objects/types.js +0 -6
  121. package/build/src/parser.js +0 -69
  122. package/build/src/visitor.d.ts +0 -133
  123. package/build/src/visitor.js +0 -1154
  124. package/documentation.md +0 -238
  125. package/examples/example_arduino_uno.cst +0 -1146
  126. package/examples/example_garden_pump.cst +0 -567
  127. package/examples/lib.cst +0 -185
  128. package/jest.config.js +0 -23
  129. package/refresh.html +0 -42
  130. package/server.cjs +0 -50
  131. package/src/antlr/CircuitScript.g4 +0 -209
  132. package/src/antlr/CircuitScriptLexer.ts +0 -317
  133. package/src/antlr/CircuitScriptParser.ts +0 -4979
  134. package/src/antlr/CircuitScriptVisitor.ts +0 -420
  135. package/src/draw_symbols.ts +0 -1085
  136. package/src/execute.ts +0 -1227
  137. package/src/fonts.ts +0 -1
  138. package/src/geometry.ts +0 -638
  139. package/src/globals.ts +0 -67
  140. package/src/helpers.ts +0 -114
  141. package/src/lexer.ts +0 -151
  142. package/src/logger.ts +0 -17
  143. package/src/objects/ClassComponent.ts +0 -223
  144. package/src/objects/ExecutionScope.ts +0 -201
  145. package/src/objects/Frame.ts +0 -20
  146. package/src/objects/ParamDefinition.ts +0 -49
  147. package/src/objects/PinDefinition.ts +0 -49
  148. package/src/objects/PinTypes.ts +0 -7
  149. package/src/objects/Wire.ts +0 -19
  150. package/src/objects/types.ts +0 -66
  151. package/src/parser.ts +0 -106
  152. package/src/regenerate-tests.ts +0 -25
  153. package/src/render.ts +0 -260
  154. package/src/sizing.ts +0 -96
  155. package/src/visitor.ts +0 -1691
  156. package/tsconfig.json +0 -27
  157. package/tsconfig.release.json +0 -8
  158. /package/{build/src/fonts.js → dist/esm/fonts.mjs} +0 -0
  159. /package/{build/src/globals.js → dist/esm/globals.mjs} +0 -0
  160. /package/{build/src/logger.js → dist/esm/logger.mjs} +0 -0
  161. /package/{build/src/objects/Frame.js → dist/esm/objects/Frame.mjs} +0 -0
  162. /package/{build/src/objects/Net.js → dist/esm/objects/Net.mjs} +0 -0
  163. /package/{build/src/objects/ParamDefinition.js → dist/esm/objects/ParamDefinition.mjs} +0 -0
  164. /package/{build/src/objects/PinTypes.js → dist/esm/objects/PinTypes.mjs} +0 -0
  165. /package/{build/src/objects/Wire.js → dist/esm/objects/Wire.mjs} +0 -0
  166. /package/{build/src/server.js → dist/esm/server.mjs} +0 -0
  167. /package/{build/src/utils.js → dist/esm/utils.mjs} +0 -0
  168. /package/{build/src → dist/types}/export.d.ts +0 -0
  169. /package/{build/src → dist/types}/fonts.d.ts +0 -0
  170. /package/{build/src → dist/types}/globals.d.ts +0 -0
  171. /package/{build/src → dist/types}/logger.d.ts +0 -0
  172. /package/{build/src → dist/types}/main.d.ts +0 -0
  173. /package/{build/src → dist/types}/objects/Frame.d.ts +0 -0
  174. /package/{build/src → dist/types}/objects/Net.d.ts +0 -0
  175. /package/{build/src → dist/types}/objects/ParamDefinition.d.ts +0 -0
  176. /package/{build/src → dist/types}/objects/PinTypes.d.ts +0 -0
  177. /package/{build/src → dist/types}/objects/Wire.d.ts +0 -0
  178. /package/{build/src → dist/types}/regenerate-tests.d.ts +0 -0
  179. /package/{build/src → dist/types}/server.d.ts +0 -0
  180. /package/{build/src → dist/types}/utils.d.ts +0 -0
package/package.json CHANGED
@@ -1,16 +1,28 @@
1
1
  {
2
2
  "name": "circuitscript",
3
- "version": "0.0.22",
3
+ "version": "0.0.25",
4
4
  "description": "Interpreter for the circuitscript language",
5
5
  "homepage": "https://circuitscript.net",
6
6
  "engines": {
7
7
  "node": ">=16.0"
8
8
  },
9
- "type": "module",
10
- "main": "./build/src/main.js",
9
+ "main": "./dist/cjs/index.js",
10
+ "module": "./dist/esm/index.mjs",
11
+ "types": "./dist/types/index.d.ts",
11
12
  "bin": {
12
- "circuitscript": "./build/src/main.js"
13
+ "circuitscript": "./dist/cjs/main.js"
13
14
  },
15
+ "exports": {
16
+ ".": {
17
+ "require": "./dist/cjs/index.js",
18
+ "import": "./dist/esm/index.mjs"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "fonts",
24
+ "libs"
25
+ ],
14
26
  "devDependencies": {
15
27
  "@types/figlet": "^1.5.8",
16
28
  "@types/jest": "~29.5",
@@ -18,6 +30,7 @@
18
30
  "@types/svgdom": "^0.1.2",
19
31
  "@typescript-eslint/eslint-plugin": "~5.59",
20
32
  "@typescript-eslint/parser": "~5.59",
33
+ "antlr4ng-cli": "^2.0.0",
21
34
  "eslint": "~8.38",
22
35
  "eslint-config-prettier": "~8.8",
23
36
  "eslint-plugin-jest": "~27.2",
@@ -27,37 +40,47 @@
27
40
  "source-map-support": "^0.5.21",
28
41
  "ts-api-utils": "~0.0.44",
29
42
  "ts-jest": "~29.1",
43
+ "ts2mjs": "^3.0.0",
30
44
  "typescript": "^5.4.5"
31
45
  },
32
46
  "scripts": {
33
47
  "start": "node build/src/main.js",
34
- "clean": "rimraf coverage build tmp",
35
- "build": "tsc -p tsconfig.json",
36
- "build:watch": "tsc -w -p tsconfig.json",
37
- "build:release": "npm run clean && tsc -p tsconfig.release.json",
38
- "prebuild": "npm run lint",
48
+ "clean": "rimraf coverage build tmp dist",
49
+ "build": "npm run build:cjs || npm run build:esm",
50
+ "build:cjs": "tsc -p tsconfig.cjs.json",
51
+ "build:release:cjs": "tsc -p tsconfig.release.cjs.json",
52
+ "build:esm": "tsc -p tsconfig.esm.json || npm run rename:esm",
53
+ "build:release:esm": "tsc -p tsconfig.release.esm.json || npm run rename:esm",
54
+ "rename:esm": "npx ts2mjs ./dist/esm && rm -rf ./dist/esm/*.js && rm -rf ./dist/esm/**/*.js",
55
+ "build:watch": "tsc -w -p tsconfig.esm.json",
56
+ "build:watch:cjs": "tsc -w -p tsconfig.cjs.json",
57
+ "build:release": "npm run clean && npm run build:release:cjs || npm run build:release:esm",
58
+ "prebuild": "npm run lint || true",
39
59
  "lint": "eslint . --ext .ts --ext .mts",
40
60
  "test": "jest",
41
61
  "test-coverage": "jest --coverage",
42
62
  "prettier": "prettier --config .prettierrc --write .",
43
63
  "test:watch": "jest --watch",
44
64
  "antlr": "antlr4 -Dlanguage=TypeScript ./src/antlr/CircuitScript.g4 -no-listener -visitor",
65
+ "antlr4ng": "npx antlr4ng -Dlanguage=TypeScript -o src/antlr -visitor -no-listener -Xexact-output-dir src/antlr/CircuitScript.g4",
45
66
  "profile": "node --prof build/src/main.js examples/example_garden_pump.cst",
46
67
  "profile-flame": "node --prof-process --preprocess -j isolate*.log | flamebearer",
47
- "server": "node server.js"
68
+ "server": "node server.js",
69
+ "pack-local": "npm pack; rm circuitscript-install.tgz; mv `ls | grep circuitscript` circuitscript-install.tgz; cp circuitscript-install.tgz ../circuitscript-vscode/client; cp circuitscript-install.tgz ../circuitscript-vscode/server"
48
70
  },
49
71
  "boilerplate_author": "Jakub Synowiec <jsynowiec@users.noreply.github.com>",
50
72
  "license": "MIT",
51
73
  "dependencies": {
52
- "@dagrejs/graphlib": "^2.1.13",
53
- "@flatten-js/core": "^1.4.3",
54
- "@svgdotjs/svg.js": "^3.2.0",
55
- "antlr4": "^4.13.0",
74
+ "@dagrejs/graphlib": "2.1.13",
75
+ "@flatten-js/core": "1.5.5",
76
+ "@svgdotjs/svg.js": "3.2.0",
77
+ "antlr4ng": "^3.0.4",
56
78
  "commander": "^11.1.0",
57
79
  "express": "^4.18.2",
58
80
  "figlet": "^1.7.0",
59
81
  "lodash": "^4.17.21",
60
- "svgdom": "^0.1.14",
82
+ "svgdom": "0.1.14",
83
+ "this-file": "^2.0.3",
61
84
  "tslib": "~2.5",
62
85
  "ws": "^8.14.2"
63
86
  },
package/.editorconfig DELETED
@@ -1,15 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- charset = utf-8
5
- end_of_line = lf
6
- trim_trailing_whitespace = true
7
- insert_final_newline = true
8
-
9
- [*.md]
10
- insert_final_newline = false
11
- trim_trailing_whitespace = false
12
-
13
- [*.{js,json,ts,mts,yml,yaml}]
14
- indent_size = 2
15
- indent_style = space
package/.eslintignore DELETED
@@ -1 +0,0 @@
1
- /**/*.js
package/.eslintrc.json DELETED
@@ -1,27 +0,0 @@
1
- {
2
- "env": {
3
- "browser": false,
4
- "es6": true,
5
- "node": true
6
- },
7
- "parser": "@typescript-eslint/parser",
8
- "parserOptions": {
9
- "project": "tsconfig.json",
10
- "sourceType": "module",
11
- "ecmaVersion": 2020
12
- },
13
- "plugins": ["@typescript-eslint", "jest"],
14
- "extends": [
15
- "eslint:recommended",
16
- "plugin:@typescript-eslint/recommended",
17
- "plugin:jest/recommended",
18
- "prettier"
19
- ],
20
- "rules": {
21
- // The following rule is enabled only to supplement the inline suppression
22
- // examples, and because it is not a recommended rule, you should either
23
- // disable it, or understand what it enforces.
24
- // https://typescript-eslint.io/rules/explicit-function-return-type/
25
- "@typescript-eslint/explicit-function-return-type": "warn"
26
- }
27
- }
package/.gitlab-ci.yml DELETED
@@ -1,81 +0,0 @@
1
- image: node:18
2
-
3
- # variables:
4
- # ARTIFACT_DOWNLOAD_ATTEMPTS: 2 # Number of retries for restoring saved artifacts.
5
- # FORCE_COLOR: '1' # Whether to force colour output in compatible tooling.
6
- # GET_SOURCES_ATTEMPTS: 2 # Number of retries for git commands.
7
- # GIT_STRATEGY: fetch # How to pull submodules.
8
- # GIT_SUBMODULE_STRATEGY: recursive # How to treat nested git submodules.
9
- # RESTORE_CACHE_ATTEMPTS: 2 # Number of retries for restoring cached files.
10
-
11
- stages:
12
- - prepare
13
- - test_jest
14
- - test_build
15
- - publish
16
-
17
- .common_rules:
18
- rules:
19
- - if: $CI_COMMIT_TAG
20
- # - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
21
-
22
- # Installs all dependencies.
23
- install:
24
- stage: prepare
25
- interruptible: true
26
- retry: 1
27
- dependencies: []
28
- artifacts:
29
- name: 'deps_$CI_COMMIT_REF_SLUG'
30
- paths:
31
- - node_modules/
32
- when: on_success
33
- expire_in: 12h
34
- script:
35
- - echo $CI_COMMIT_BRANCH
36
- - echo $CI_COMMIT_TAG
37
- - echo $CI_PIPELINE_SOURCE
38
- - echo $CI_COMMIT_REF_NAME
39
- - npm install --no-progress --no-audit --no-fund --verbose
40
- rules:
41
- - !reference [.common_rules, rules]
42
-
43
- test_jest:
44
- stage: test_jest
45
- interruptible: true
46
- retry: 1
47
- dependencies:
48
- - install
49
- script:
50
- - npm run build:release || true
51
- - npm run test
52
- rules:
53
- - !reference [.common_rules, rules]
54
-
55
- test_build:
56
- stage: test_build
57
- interruptible: true
58
- retry: 1
59
- dependencies:
60
- - install
61
- script:
62
- - npm run build:release || true
63
- - ls
64
- - ls build
65
- - node build/src/main.js
66
- rules:
67
- - !reference [.common_rules, rules]
68
-
69
- # Publishes the package to npm.
70
- publish:
71
- stage: publish
72
- interruptible: false
73
- dependencies:
74
- - install
75
- script:
76
- - npm config set -- '//registry.npmjs.org/:_authToken' "${NPM_AUTH_TOKEN}"
77
- - npm run build:release || true
78
- - npm publish --verbose
79
- resource_group: 'deployment-$CI_COMMIT_REF_SLUG'
80
- rules:
81
- - !reference [.common_rules, rules]
package/.prettierignore DELETED
@@ -1,8 +0,0 @@
1
- *.md
2
- *.json
3
- .prettierrc
4
-
5
- build/*
6
- src/antlr/CircuitScriptLexer.ts
7
- src/antlr/CircuitScriptParser.ts
8
- src/antlr/CircuitScriptVisitor.ts
package/.prettierrc DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "singleQuote": true,
3
- "trailingComma": "all",
4
- "tabWidth": 4,
5
- "semi": true,
6
- "overrides": [
7
- {
8
- "files": [
9
- "*.ts"
10
- ],
11
- "options": {
12
- "parser": "typescript"
13
- }
14
- }
15
- ]
16
- }