- Parent Directory
-
-
- ${dir}/
-
-
- ${file}.marko
-
- diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 00000000..e5b6d8d6 --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 00000000..6aa71c66 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.3/schema.json", + "changelog": [ + "@changesets/changelog-github", + { + "repo": "marko-js/cli" + } + ], + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.changeset/modernize-create.md b/.changeset/modernize-create.md new file mode 100644 index 00000000..e7c1c1fd --- /dev/null +++ b/.changeset/modernize-create.md @@ -0,0 +1,6 @@ +--- +"@marko/create": minor +"create-marko": minor +--- + +Rewrite in TypeScript with a modern dependency set (`@clack/prompts`, `giget`, native `fetch`). Adds agent/CI-friendly non-interactive behavior (`--yes`, plus CI/agent/no-TTY detection) and no longer aborts the scaffold when the package manager's install step exits non-zero (e.g. pnpm's ignored-build-scripts warning). The existing CLI flags are unchanged. diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index a8cbee83..00000000 --- a/.eslintignore +++ /dev/null @@ -1,7 +0,0 @@ -*.marko.js -.cache/ -.nyc_output -node_modules -snapshots -coverage -dist diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index e2794e0c..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": ["eslint:recommended", "prettier"], - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module", - "ecmaFeatures": { - "jsx": false - } - }, - "rules": { - "no-console": "off" - }, - "env": { - "browser": true, - "node": true, - "es6": true, - "mocha": true - } -} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 868a6fb5..c3959764 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,29 +2,87 @@ name: CI on: pull_request: - paths-ignore: ["*.md"] + types: [opened, synchronize] push: - branches: ["main"] - paths-ignore: ["*.md"] + branches: [main] + +concurrency: + group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}" + cancel-in-progress: true jobs: - build: + lint: runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: Install pnpm + uses: pnpm/action-setup@v6 + - name: Install node + uses: actions/setup-node@v6 + with: + node-version: lts/* + cache: pnpm + - name: Install packages + run: pnpm install --frozen-lockfile + - name: Run build + run: pnpm run @ci:build + - name: Run lint + run: pnpm run @ci:lint + test: + runs-on: ${{ matrix.os }} + name: "test: node ${{ matrix.node }} on ${{ matrix.os }}" strategy: + fail-fast: false matrix: - node: [12.x, 14.x, 15.x] + os: [ubuntu-latest, windows-latest] + node: [lts/*, lts/-1, lts/-2] steps: - name: Checkout code - uses: actions/checkout@v2 - - name: Use node@${{ matrix.node }} - uses: actions/setup-node@v2 + uses: actions/checkout@v6 + - name: Install pnpm + uses: pnpm/action-setup@v6 + with: + # standalone pnpm bundles its own Node runtime, so pnpm itself + # works even when the matrix Node is older than pnpm requires + standalone: true + - name: Install node + id: node + uses: actions/setup-node@v6 with: node-version: ${{ matrix.node }} - - name: Install dependencies - run: npm install - - name: Lint code - run: npm run lint + cache: pnpm + - name: Install packages (node@${{ steps.node.outputs.node-version }}) + run: pnpm install --frozen-lockfile - name: Run tests - run: npm run ci:test - - name: Report code coverage - run: npm run ci:report + run: pnpm run @ci:test + release: + runs-on: ubuntu-latest + needs: [lint, test] + if: "${{ github.repository_owner == 'marko-js' && github.event_name == 'push' }}" + permissions: + id-token: write + contents: write + pull-requests: write + steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: Install pnpm + uses: pnpm/action-setup@v6 + - name: Install node + id: node + uses: actions/setup-node@v6 + with: + node-version: lts/* + cache: pnpm + - name: Install packages (node@${{ steps.node.outputs.node-version }}) + run: pnpm install --frozen-lockfile + - name: Run release + uses: changesets/action@v1 + with: + version: pnpm run @ci:version + publish: pnpm run @ci:release + commit: "[ci] release" + title: "[ci] release" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 98c8bd2e..4f01a574 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,11 @@ -*.swp -*.log +.vscode +*.actual* *.DS_Store -*.marko.js -*.history/ -.cache/ -.nyc_output -node_modules -snapshots +*.log +*.swp coverage dist -actual.* -*.actual.* -*-actual.* -.vscode \ No newline at end of file +node_modules +npm-debug.log +package-lock.json +yarn.lock diff --git a/.husky/commit-msg b/.husky/commit-msg deleted file mode 100755 index 0bd658f4..00000000 --- a/.husky/commit-msg +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npx --no-install commitlint --edit "$1" diff --git a/.husky/pre-commit b/.husky/pre-commit index d37daa07..5ee7abd8 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npx --no-install lint-staged +pnpm exec lint-staged diff --git a/.lintstagedrc b/.lintstagedrc deleted file mode 100644 index 13c2327b..00000000 --- a/.lintstagedrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "*.{json,css,less,md}": [ - "prettier --write" - ], - "*.js": [ - "prettier --write", - "eslint -f visualstudio" - ] -} \ No newline at end of file diff --git a/.lintstagedrc.json b/.lintstagedrc.json new file mode 100644 index 00000000..3fc0de96 --- /dev/null +++ b/.lintstagedrc.json @@ -0,0 +1,4 @@ +{ + "*.js": ["eslint --fix", "prettier --write"], + "*{.json,.md,.yml,.yaml,rc}": ["prettier --write"] +} diff --git a/.nycrc b/.nycrc deleted file mode 100644 index 054b237c..00000000 --- a/.nycrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "all": true, - "cache": true, - "include": [ - "packages/*/src/**/*.js" - ], - "exclude": [ - "**/dist/**", - "**/node_modules/**", - "**/test/**" - ], - "reporter": [ - "lcov", - "text-summary" - ] -} \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 66370dbb..a32f9c18 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,11 +1,4 @@ -*.marko.js -.cache/ -.nyc_output -lerna.json -package.json -package-lock.json -node_modules -snapshots +pnpm-lock.yaml +CHANGELOG.md coverage dist -CHANGELOG.md diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 1f5e5d14..00000000 --- a/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "arrowParens": "avoid", - "trailingComma": "none" -} diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 00000000..58e74002 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "plugins": ["prettier-plugin-packagejson"] +} diff --git a/README.md b/README.md index 28011097..a711721a 100644 --- a/README.md +++ b/README.md @@ -3,14 +3,6 @@
-
-
-
-
-
-
-
-
@@ -23,32 +15,70 @@
+
+
+
+
- Parent Directory
-
-
- ${dir}/
-
-
- ${file}.marko
-
- - This whitespace - should be preserved. -diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace-pre/pretty-html-expected.marko b/packages/prettyprint/test/fixtures/preserve-whitespace-pre/pretty-html-expected.marko deleted file mode 100644 index 03ba6912..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace-pre/pretty-html-expected.marko +++ /dev/null @@ -1,4 +0,0 @@ -
- This whitespace - should be preserved. -diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace-pre/template.marko b/packages/prettyprint/test/fixtures/preserve-whitespace-pre/template.marko deleted file mode 100644 index e53f569e..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace-pre/template.marko +++ /dev/null @@ -1,4 +0,0 @@ -
- This whitespace - should be preserved. -\ No newline at end of file diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace-script/pretty-concise-expected.marko b/packages/prettyprint/test/fixtures/preserve-whitespace-script/pretty-concise-expected.marko deleted file mode 100644 index bed49b1f..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace-script/pretty-concise-expected.marko +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace-script/pretty-html-expected.marko b/packages/prettyprint/test/fixtures/preserve-whitespace-script/pretty-html-expected.marko deleted file mode 100644 index bed49b1f..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace-script/pretty-html-expected.marko +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace-script/template.marko b/packages/prettyprint/test/fixtures/preserve-whitespace-script/template.marko deleted file mode 100644 index d0c3999d..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace-script/template.marko +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/pretty-concise-expected.marko b/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/pretty-concise-expected.marko deleted file mode 100644 index d28298c4..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/pretty-concise-expected.marko +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/pretty-html-expected.marko b/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/pretty-html-expected.marko deleted file mode 100644 index d28298c4..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/pretty-html-expected.marko +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/template.marko b/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/template.marko deleted file mode 100644 index 94181418..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace-textarea/template.marko +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/packages/prettyprint/test/fixtures/preserve-whitespace/pretty-concise-expected.marko b/packages/prettyprint/test/fixtures/preserve-whitespace/pretty-concise-expected.marko deleted file mode 100644 index 12f779c7..00000000 --- a/packages/prettyprint/test/fixtures/preserve-whitespace/pretty-concise-expected.marko +++ /dev/null @@ -1,11 +0,0 @@ -
Test-
Test-
Test-
a.marko
b.marko
a.marko
a.marko(drwxr-xr-x) | | a/ | |
(drwxr-xr-x) | | assets/ | |
(-rw-r--r--) | _SIZE_ | index.js | |
(-rw-r--r--) | _SIZE_ | middleware.js |
foo/
bar.marko
foo/
bar.marko(drwxr-xr-x) | | assets/ | |
(drwxr-xr-x) | | bar/ | |
(drwxr-xr-x) | | foo/ | |
(-rw-r--r--) | _SIZE_ | index.js | |
(-rw-r--r--) | _SIZE_ | middleware.js |
${JSON.stringify(input)}
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/image/build-expected.html b/packages/serve/test/fixtures/image/build-expected.html
deleted file mode 100644
index eb0c3d85..00000000
--- a/packages/serve/test/fixtures/image/build-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/image/serve-expected.html b/packages/serve/test/fixtures/image/serve-expected.html
deleted file mode 100644
index 49c708a1..00000000
--- a/packages/serve/test/fixtures/image/serve-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/image/static-expected.html b/packages/serve/test/fixtures/image/static-expected.html
deleted file mode 100644
index eb0c3d85..00000000
--- a/packages/serve/test/fixtures/image/static-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/image/target/index.marko b/packages/serve/test/fixtures/image/target/index.marko
deleted file mode 100644
index 86b7a44c..00000000
--- a/packages/serve/test/fixtures/image/target/index.marko
+++ /dev/null
@@ -1,14 +0,0 @@
-style {
- h1 { color:blue; }
-}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/image/target/logo.png b/packages/serve/test/fixtures/image/target/logo.png
deleted file mode 100644
index ab7fdab4..00000000
Binary files a/packages/serve/test/fixtures/image/target/logo.png and /dev/null differ
diff --git a/packages/serve/test/fixtures/params-and-queries-deprecated/build-expected.html b/packages/serve/test/fixtures/params-and-queries-deprecated/build-expected.html
deleted file mode 100644
index 317234e6..00000000
--- a/packages/serve/test/fixtures/params-and-queries-deprecated/build-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-{"params":{"id":"123"},"query":"foo=bar","pathname":"/blog/123"}
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/params-and-queries-deprecated/serve-expected.html b/packages/serve/test/fixtures/params-and-queries-deprecated/serve-expected.html
deleted file mode 100644
index ef138f4f..00000000
--- a/packages/serve/test/fixtures/params-and-queries-deprecated/serve-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-{"params":{"id":"123"},"query":"foo=bar","pathname":"/blog/123"}
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/params-and-queries-deprecated/static-expected.html b/packages/serve/test/fixtures/params-and-queries-deprecated/static-expected.html
deleted file mode 100644
index 5db7bc15..00000000
--- a/packages/serve/test/fixtures/params-and-queries-deprecated/static-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/params-and-queries-deprecated/target/blog/:id.marko b/packages/serve/test/fixtures/params-and-queries-deprecated/target/blog/:id.marko
deleted file mode 100644
index 596080d7..00000000
--- a/packages/serve/test/fixtures/params-and-queries-deprecated/target/blog/:id.marko
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- ${JSON.stringify(input)}
-
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/params-and-queries-deprecated/test.js b/packages/serve/test/fixtures/params-and-queries-deprecated/test.js
deleted file mode 100644
index 6d8c5ccc..00000000
--- a/packages/serve/test/fixtures/params-and-queries-deprecated/test.js
+++ /dev/null
@@ -1 +0,0 @@
-export const path = "/blog/123?foo=bar";
diff --git a/packages/serve/test/fixtures/params-and-queries/build-expected.html b/packages/serve/test/fixtures/params-and-queries/build-expected.html
deleted file mode 100644
index 317234e6..00000000
--- a/packages/serve/test/fixtures/params-and-queries/build-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-{"params":{"id":"123"},"query":"foo=bar","pathname":"/blog/123"}
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/params-and-queries/serve-expected.html b/packages/serve/test/fixtures/params-and-queries/serve-expected.html
deleted file mode 100644
index e5aff1a2..00000000
--- a/packages/serve/test/fixtures/params-and-queries/serve-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-{"params":{"id":"123"},"query":"foo=bar","pathname":"/blog/123"}
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/params-and-queries/static-expected.html b/packages/serve/test/fixtures/params-and-queries/static-expected.html
deleted file mode 100644
index 5db7bc15..00000000
--- a/packages/serve/test/fixtures/params-and-queries/static-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/params-and-queries/target/blog/[id].marko b/packages/serve/test/fixtures/params-and-queries/target/blog/[id].marko
deleted file mode 100644
index 596080d7..00000000
--- a/packages/serve/test/fixtures/params-and-queries/target/blog/[id].marko
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- ${JSON.stringify(input)}
-
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/params-and-queries/test.js b/packages/serve/test/fixtures/params-and-queries/test.js
deleted file mode 100644
index 6d8c5ccc..00000000
--- a/packages/serve/test/fixtures/params-and-queries/test.js
+++ /dev/null
@@ -1 +0,0 @@
-export const path = "/blog/123?foo=bar";
diff --git a/packages/serve/test/fixtures/root-path-folder/build-expected.html b/packages/serve/test/fixtures/root-path-folder/build-expected.html
deleted file mode 100644
index bf72d376..00000000
--- a/packages/serve/test/fixtures/root-path-folder/build-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-{"params":{},"pathname":"/"}
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/root-path-folder/serve-expected.html b/packages/serve/test/fixtures/root-path-folder/serve-expected.html
deleted file mode 100644
index 6a383f9c..00000000
--- a/packages/serve/test/fixtures/root-path-folder/serve-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-{"params":{},"pathname":"/"}
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/root-path-folder/static-expected.html b/packages/serve/test/fixtures/root-path-folder/static-expected.html
deleted file mode 100644
index bf72d376..00000000
--- a/packages/serve/test/fixtures/root-path-folder/static-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-{"params":{},"pathname":"/"}
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/root-path-folder/target/index/index.marko b/packages/serve/test/fixtures/root-path-folder/target/index/index.marko
deleted file mode 100644
index 596080d7..00000000
--- a/packages/serve/test/fixtures/root-path-folder/target/index/index.marko
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- ${JSON.stringify(input)}
-
-
\ No newline at end of file
diff --git a/packages/serve/test/fixtures/simple/build-expected.html b/packages/serve/test/fixtures/simple/build-expected.html
deleted file mode 100644
index 03206223..00000000
--- a/packages/serve/test/fixtures/simple/build-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-