├── .eslintrc.json ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md ├── dependabot.yml └── workflows │ └── main.yml ├── .gitignore ├── .gitmodules ├── .npmignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── Setup.hs ├── index.js ├── package.json ├── src-exe └── Main.hs ├── src-lib ├── Compiler │ ├── Javascript.hs │ ├── Main.hs │ ├── Types.hs │ ├── Types │ │ ├── Model │ │ │ └── Base.hs │ │ ├── Root.hs │ │ ├── Style │ │ │ └── Base.hs │ │ └── View │ │ │ ├── Base.hs │ │ │ └── Host.hs │ └── Util.hs ├── Parser │ ├── Import │ │ └── Base.hs │ ├── Main.hs │ ├── Model │ │ └── Base.hs │ ├── Style │ │ └── Base.hs │ ├── Util │ │ └── Base.hs │ └── View │ │ └── Base.hs └── Types.hs ├── strictly-compiler.cabal ├── test ├── CompilerTest.hs ├── components │ ├── example │ │ └── todo.sly │ ├── helper │ │ ├── context │ │ │ └── consumer.sly │ │ ├── each │ │ │ ├── base.sly │ │ │ ├── constraint.sly │ │ │ └── neverconstraint.sly │ │ ├── if │ │ │ ├── base.sly │ │ │ └── remove.sly │ │ ├── match │ │ │ ├── base.sly │ │ │ ├── nested.sly │ │ │ ├── remove.sly │ │ │ ├── siblings.sly │ │ │ └── update.sly │ │ └── model │ │ │ ├── base.sly │ │ │ ├── counter.sly │ │ │ ├── dependencies.sly │ │ │ └── fetch.sly │ ├── host │ │ ├── attributes.sly │ │ ├── base.sly │ │ ├── checkbox.sly │ │ ├── events.sly │ │ ├── namespace.sly │ │ ├── nested.sly │ │ ├── siblings.sly │ │ └── withtext.sly │ ├── nesting │ │ ├── absolute.sly │ │ ├── deep │ │ │ └── index.sly │ │ └── relative.sly │ ├── structural │ │ ├── list │ │ │ ├── base.sly │ │ │ ├── destructure.sly │ │ │ └── multisource.sly │ │ └── record │ │ │ ├── base.sly │ │ │ └── destructure.sly │ ├── style │ │ └── base.sly │ └── text │ │ ├── base.sly │ │ ├── dynamic.sly │ │ ├── dynamicmultiline.sly │ │ ├── multidynamic.sly │ │ ├── multiline.sly │ │ └── whitespace.sly ├── integration │ ├── helper │ │ ├── context.js │ │ ├── each.js │ │ ├── if.js │ │ ├── match.js │ │ └── model.js │ ├── host │ │ └── base.js │ ├── nesting │ │ └── index.js │ ├── structural │ │ ├── list.js │ │ └── record.js │ ├── style │ │ └── base.js │ └── text.js └── xss │ └── dynamictext.js ├── web-test-runner.config.mjs └── yarn.lock /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/.gitmodules -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /node_modules -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/README.md -------------------------------------------------------------------------------- /Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/index.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/package.json -------------------------------------------------------------------------------- /src-exe/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-exe/Main.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Javascript.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Javascript.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Main.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Types.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Types.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Types/Model/Base.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Types/Model/Base.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Types/Root.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Types/Root.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Types/Style/Base.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Types/Style/Base.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Types/View/Base.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Types/View/Base.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Types/View/Host.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Types/View/Host.hs -------------------------------------------------------------------------------- /src-lib/Compiler/Util.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Compiler/Util.hs -------------------------------------------------------------------------------- /src-lib/Parser/Import/Base.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Parser/Import/Base.hs -------------------------------------------------------------------------------- /src-lib/Parser/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Parser/Main.hs -------------------------------------------------------------------------------- /src-lib/Parser/Model/Base.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Parser/Model/Base.hs -------------------------------------------------------------------------------- /src-lib/Parser/Style/Base.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Parser/Style/Base.hs -------------------------------------------------------------------------------- /src-lib/Parser/Util/Base.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Parser/Util/Base.hs -------------------------------------------------------------------------------- /src-lib/Parser/View/Base.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Parser/View/Base.hs -------------------------------------------------------------------------------- /src-lib/Types.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/src-lib/Types.hs -------------------------------------------------------------------------------- /strictly-compiler.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/strictly-compiler.cabal -------------------------------------------------------------------------------- /test/CompilerTest.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/CompilerTest.hs -------------------------------------------------------------------------------- /test/components/example/todo.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/example/todo.sly -------------------------------------------------------------------------------- /test/components/helper/context/consumer.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/context/consumer.sly -------------------------------------------------------------------------------- /test/components/helper/each/base.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/each/base.sly -------------------------------------------------------------------------------- /test/components/helper/each/constraint.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/each/constraint.sly -------------------------------------------------------------------------------- /test/components/helper/each/neverconstraint.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/each/neverconstraint.sly -------------------------------------------------------------------------------- /test/components/helper/if/base.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/if/base.sly -------------------------------------------------------------------------------- /test/components/helper/if/remove.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/if/remove.sly -------------------------------------------------------------------------------- /test/components/helper/match/base.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/match/base.sly -------------------------------------------------------------------------------- /test/components/helper/match/nested.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/match/nested.sly -------------------------------------------------------------------------------- /test/components/helper/match/remove.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/match/remove.sly -------------------------------------------------------------------------------- /test/components/helper/match/siblings.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/match/siblings.sly -------------------------------------------------------------------------------- /test/components/helper/match/update.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/match/update.sly -------------------------------------------------------------------------------- /test/components/helper/model/base.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/model/base.sly -------------------------------------------------------------------------------- /test/components/helper/model/counter.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/model/counter.sly -------------------------------------------------------------------------------- /test/components/helper/model/dependencies.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/model/dependencies.sly -------------------------------------------------------------------------------- /test/components/helper/model/fetch.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/helper/model/fetch.sly -------------------------------------------------------------------------------- /test/components/host/attributes.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/host/attributes.sly -------------------------------------------------------------------------------- /test/components/host/base.sly: -------------------------------------------------------------------------------- 1 | view 2 | div 3 | -------------------------------------------------------------------------------- /test/components/host/checkbox.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/host/checkbox.sly -------------------------------------------------------------------------------- /test/components/host/events.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/host/events.sly -------------------------------------------------------------------------------- /test/components/host/namespace.sly: -------------------------------------------------------------------------------- 1 | view 2 | svg:g 3 | "foo" 4 | -------------------------------------------------------------------------------- /test/components/host/nested.sly: -------------------------------------------------------------------------------- 1 | view 2 | div 3 | img 4 | span 5 | -------------------------------------------------------------------------------- /test/components/host/siblings.sly: -------------------------------------------------------------------------------- 1 | view 2 | div 3 | span 4 | -------------------------------------------------------------------------------- /test/components/host/withtext.sly: -------------------------------------------------------------------------------- 1 | view 2 | div 3 | "text" 4 | -------------------------------------------------------------------------------- /test/components/nesting/absolute.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/nesting/absolute.sly -------------------------------------------------------------------------------- /test/components/nesting/deep/index.sly: -------------------------------------------------------------------------------- 1 | view 2 | div 3 | "nested component value: ${props.foo}" 4 | -------------------------------------------------------------------------------- /test/components/nesting/relative.sly: -------------------------------------------------------------------------------- 1 | view 2 | .-deep-index{ 3 | foo = props.foo 4 | } 5 | -------------------------------------------------------------------------------- /test/components/structural/list/base.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/structural/list/base.sly -------------------------------------------------------------------------------- /test/components/structural/list/destructure.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/structural/list/destructure.sly -------------------------------------------------------------------------------- /test/components/structural/list/multisource.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/structural/list/multisource.sly -------------------------------------------------------------------------------- /test/components/structural/record/base.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/structural/record/base.sly -------------------------------------------------------------------------------- /test/components/structural/record/destructure.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/structural/record/destructure.sly -------------------------------------------------------------------------------- /test/components/style/base.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/style/base.sly -------------------------------------------------------------------------------- /test/components/text/base.sly: -------------------------------------------------------------------------------- 1 | view 2 | "foo" 3 | -------------------------------------------------------------------------------- /test/components/text/dynamic.sly: -------------------------------------------------------------------------------- 1 | view 2 | div 3 | "con-${props.foo}-cat" 4 | -------------------------------------------------------------------------------- /test/components/text/dynamicmultiline.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/text/dynamicmultiline.sly -------------------------------------------------------------------------------- /test/components/text/multidynamic.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/text/multidynamic.sly -------------------------------------------------------------------------------- /test/components/text/multiline.sly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/components/text/multiline.sly -------------------------------------------------------------------------------- /test/components/text/whitespace.sly: -------------------------------------------------------------------------------- 1 | view 2 | div 3 | " foo ${props.bar} baz " 4 | -------------------------------------------------------------------------------- /test/integration/helper/context.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/helper/context.js -------------------------------------------------------------------------------- /test/integration/helper/each.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/helper/each.js -------------------------------------------------------------------------------- /test/integration/helper/if.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/helper/if.js -------------------------------------------------------------------------------- /test/integration/helper/match.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/helper/match.js -------------------------------------------------------------------------------- /test/integration/helper/model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/helper/model.js -------------------------------------------------------------------------------- /test/integration/host/base.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/host/base.js -------------------------------------------------------------------------------- /test/integration/nesting/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/nesting/index.js -------------------------------------------------------------------------------- /test/integration/structural/list.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/structural/list.js -------------------------------------------------------------------------------- /test/integration/structural/record.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/structural/record.js -------------------------------------------------------------------------------- /test/integration/style/base.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/style/base.js -------------------------------------------------------------------------------- /test/integration/text.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/integration/text.js -------------------------------------------------------------------------------- /test/xss/dynamictext.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/test/xss/dynamictext.js -------------------------------------------------------------------------------- /web-test-runner.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/web-test-runner.config.mjs -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strictly-lang/compiler/HEAD/yarn.lock --------------------------------------------------------------------------------