diff --git a/test-app/assets/title.svg b/assets/title.svg similarity index 100% rename from test-app/assets/title.svg rename to assets/title.svg diff --git a/ember-changeset/.editorconfig b/ember-changeset/.editorconfig new file mode 100644 index 00000000..c35a0024 --- /dev/null +++ b/ember-changeset/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.hbs] +insert_final_newline = false + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/ember-changeset/.ember-cli b/ember-changeset/.ember-cli new file mode 100644 index 00000000..465c4050 --- /dev/null +++ b/ember-changeset/.ember-cli @@ -0,0 +1,7 @@ +{ + /** + Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript + rather than JavaScript by default, when a TypeScript version of a given blueprint is available. + */ + "isTypeScriptProject": false +} diff --git a/ember-changeset/.eslintignore b/ember-changeset/.eslintignore new file mode 100644 index 00000000..768fab33 --- /dev/null +++ b/ember-changeset/.eslintignore @@ -0,0 +1,14 @@ +# unconventional js +/blueprints/*/files/ + +# compiled output +/declarations/ +/dist/ + +# misc +/coverage/ +!.* +.*/ + +# ember-try +/.node_modules.ember-try/ diff --git a/ember-changeset/.eslintrc.js b/ember-changeset/.eslintrc.js new file mode 100644 index 00000000..6068170e --- /dev/null +++ b/ember-changeset/.eslintrc.js @@ -0,0 +1,61 @@ +'use strict'; + +module.exports = { + root: true, + parser: '@babel/eslint-parser', + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + requireConfigFile: false, + babelOptions: { + plugins: [ + ['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }], + ], + }, + }, + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:prettier/recommended', + ], + env: { + browser: true, + }, + rules: { + 'ember/no-get': 'off', + }, + overrides: [ + // node files + { + files: [ + './.eslintrc.js', + './.prettierrc.js', + './.stylelintrc.js', + './.template-lintrc.js', + './ember-cli-build.js', + './index.js', + './testem.js', + './blueprints/*/index.js', + './config/**/*.js', + './tests/dummy/config/**/*.js', + ], + parserOptions: { + sourceType: 'script', + }, + env: { + browser: false, + node: true, + }, + extends: ['plugin:n/recommended'], + }, + { + // test files + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + rules: { + 'qunit/require-expect': ['error', 'except-simple'], + }, + }, + ], +}; diff --git a/ember-changeset/.gitignore b/ember-changeset/.gitignore new file mode 100644 index 00000000..71ad79d0 --- /dev/null +++ b/ember-changeset/.gitignore @@ -0,0 +1,25 @@ +# compiled output +/dist/ +/declarations/ + +# dependencies +/node_modules/ + +# misc +/.env* +/.pnp* +/.eslintcache +/coverage/ +/npm-debug.log* +/testem.log +/yarn-error.log + +# ember-try +/.node_modules.ember-try/ +/npm-shrinkwrap.json.ember-try +/package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try + +# broccoli-debug +/DEBUG/ diff --git a/test-app/.npmignore b/ember-changeset/.npmignore similarity index 100% rename from test-app/.npmignore rename to ember-changeset/.npmignore diff --git a/ember-changeset/.prettierignore b/ember-changeset/.prettierignore new file mode 100644 index 00000000..9385391f --- /dev/null +++ b/ember-changeset/.prettierignore @@ -0,0 +1,13 @@ +# unconventional js +/blueprints/*/files/ + +# compiled output +/dist/ + +# misc +/coverage/ +!.* +.*/ + +# ember-try +/.node_modules.ember-try/ diff --git a/ember-changeset/.prettierrc.js b/ember-changeset/.prettierrc.js new file mode 100644 index 00000000..e5f7b6d1 --- /dev/null +++ b/ember-changeset/.prettierrc.js @@ -0,0 +1,12 @@ +'use strict'; + +module.exports = { + overrides: [ + { + files: '*.{js,ts}', + options: { + singleQuote: true, + }, + }, + ], +}; diff --git a/ember-changeset/.template-lintrc.js b/ember-changeset/.template-lintrc.js new file mode 100644 index 00000000..f35f61c7 --- /dev/null +++ b/ember-changeset/.template-lintrc.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + extends: 'recommended', +}; diff --git a/ember-changeset/.watchmanconfig b/ember-changeset/.watchmanconfig new file mode 100644 index 00000000..f9c3d8f8 --- /dev/null +++ b/ember-changeset/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["dist"] +} diff --git a/test-app/addon/helpers/changeset-get.js b/ember-changeset/addon/helpers/changeset-get.js similarity index 100% rename from test-app/addon/helpers/changeset-get.js rename to ember-changeset/addon/helpers/changeset-get.js diff --git a/test-app/addon/helpers/changeset-set.js b/ember-changeset/addon/helpers/changeset-set.js similarity index 100% rename from test-app/addon/helpers/changeset-set.js rename to ember-changeset/addon/helpers/changeset-set.js diff --git a/test-app/addon/helpers/changeset.js b/ember-changeset/addon/helpers/changeset.js similarity index 100% rename from test-app/addon/helpers/changeset.js rename to ember-changeset/addon/helpers/changeset.js diff --git a/test-app/addon/index.js b/ember-changeset/addon/index.js similarity index 100% rename from test-app/addon/index.js rename to ember-changeset/addon/index.js diff --git a/test-app/addon/utils/is-object.js b/ember-changeset/addon/utils/is-object.js similarity index 100% rename from test-app/addon/utils/is-object.js rename to ember-changeset/addon/utils/is-object.js diff --git a/test-app/addon/utils/merge-deep.js b/ember-changeset/addon/utils/merge-deep.js similarity index 100% rename from test-app/addon/utils/merge-deep.js rename to ember-changeset/addon/utils/merge-deep.js diff --git a/test-app/addon/validated-changeset.js b/ember-changeset/addon/validated-changeset.js similarity index 100% rename from test-app/addon/validated-changeset.js rename to ember-changeset/addon/validated-changeset.js diff --git a/test-app/app/helpers/changeset-get.js b/ember-changeset/app/helpers/changeset-get.js similarity index 100% rename from test-app/app/helpers/changeset-get.js rename to ember-changeset/app/helpers/changeset-get.js diff --git a/test-app/app/helpers/changeset-set.js b/ember-changeset/app/helpers/changeset-set.js similarity index 100% rename from test-app/app/helpers/changeset-set.js rename to ember-changeset/app/helpers/changeset-set.js diff --git a/test-app/app/helpers/changeset.js b/ember-changeset/app/helpers/changeset.js similarity index 100% rename from test-app/app/helpers/changeset.js rename to ember-changeset/app/helpers/changeset.js diff --git a/test-app/index.d.ts b/ember-changeset/index.d.ts similarity index 100% rename from test-app/index.d.ts rename to ember-changeset/index.d.ts diff --git a/test-app/index.js b/ember-changeset/index.js similarity index 100% rename from test-app/index.js rename to ember-changeset/index.js diff --git a/ember-changeset/package.json b/ember-changeset/package.json new file mode 100644 index 00000000..f3730dbc --- /dev/null +++ b/ember-changeset/package.json @@ -0,0 +1,97 @@ +{ + "name": "ember-changeset", + "version": "4.1.2", + "description": "Changesets for Ember", + "keywords": [ + "ember-addon", + "changeset" + ], + "homepage": "https://github.com/adopted-ember-addons/ember-changeset", + "bugs": "https://github.com/adopted-ember-addons/ember-changeset/issues", + "repository": "https://github.com/adopted-ember-addons/ember-changeset", + "license": "MIT", + "author": "Lauren Tan ", + "contributors": [ + { + "name": "Scott Newcomer", + "url": "https://github.com/snewcomer" + } + ], + "types": "./index.d.ts", + "directories": { + "doc": "doc", + "test": "tests" + }, + "scripts": { + "build": "ember build --environment=production", + "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"", + "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"", + "lint:hbs": "ember-template-lint .", + "lint:hbs:fix": "ember-template-lint . --fix", + "lint:js": "eslint . --cache", + "lint:js:fix": "eslint . --fix" + }, + "dependencies": { + "@babel/core": "^7.25.2", + "@embroider/macros": "^1.0.0", + "@glimmer/tracking": "^1.1.2", + "ember-auto-import": "^2.8.1", + "ember-cli-babel": "^7.26.11", + "validated-changeset": "~1.3.4" + }, + "devDependencies": { + "@babel/eslint-parser": "^7.25.1", + "@babel/plugin-proposal-decorators": "^7.24.7", + "@ember/optional-features": "^2.1.0", + "@ember/string": "^3.0.1", + "@ember/test-helpers": "^3.3.1", + "@glimmer/component": "^1.1.2", + "@glimmer/tracking": "^1.1.2", + "broccoli-asset-rev": "^3.0.0", + "concurrently": "^8.2.2", + "ember-cli": "~5.12.0", + "ember-cli-clean-css": "^3.0.0", + "ember-cli-dependency-checker": "^3.3.2", + "ember-cli-htmlbars": "^6.3.0", + "ember-cli-inject-live-reload": "^2.1.0", + "ember-cli-sri": "^2.1.1", + "ember-cli-terser": "^4.0.2", + "ember-data": "~4.12.8", + "ember-load-initializers": "^2.1.2", + "ember-qunit": "^8.1.0", + "ember-resolver": "^12.0.1", + "ember-source": "~5.12.0", + "ember-template-lint": "^6.0.0", + "eslint": "^8.57.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-ember": "^12.2.1", + "eslint-plugin-n": "^16.6.2", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-qunit": "^8.1.2", + "loader.js": "^4.7.0", + "prettier": "^3.3.3", + "qunit": "^2.22.0", + "qunit-dom": "^3.2.1" + }, + "peerDependencies": { + "ember-data": "*", + "ember-source": ">=3.20.0" + }, + "peerDependenciesMeta": { + "ember-data": { + "optional": true + } + }, + "engines": { + "node": "18.* || 20.* || >= 22" + }, + "volta": { + "extends": "../package.json" + }, + "ember": { + "edition": "octane" + }, + "ember-addon": { + "configPath": "tests/dummy/config" + } +} diff --git a/ember-changeset/testem.js b/ember-changeset/testem.js new file mode 100644 index 00000000..ed2f3712 --- /dev/null +++ b/ember-changeset/testem.js @@ -0,0 +1,23 @@ +'use strict'; + +module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: ['Chrome'], + launch_in_dev: ['Chrome'], + browser_start_timeout: 120, + browser_args: { + Chrome: { + ci: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.CI ? '--no-sandbox' : null, + '--headless', + '--disable-dev-shm-usage', + '--disable-software-rasterizer', + '--mute-audio', + '--remote-debugging-port=0', + '--window-size=1440,900', + ].filter(Boolean), + }, + }, +}; diff --git a/test-app/types/index.d.ts b/ember-changeset/types/index.d.ts similarity index 100% rename from test-app/types/index.d.ts rename to ember-changeset/types/index.d.ts diff --git a/package.json b/package.json index 8fe61c28..5c3a8a66 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "license": "MIT", "author": "Lauren Tan ", "scripts": { + "contributors": "pnpm dlx contributor-faces -e \"(*-bot|*\\[bot\\]|*-tomster|homu|bors)\"", "lint": "pnpm --filter '*' lint", "lint:fix": "pnpm --filter '*' lint:fix", "test": "pnpm --filter '*' test", @@ -12,7 +13,8 @@ "devDependencies": { "concurrently": "^9.1.0", "prettier": "^3.3.3", - "prettier-plugin-ember-template-tag": "^2.0.2" + "prettier-plugin-ember-template-tag": "^2.0.2", + "release-plan": "^0.10.0" }, "packageManager": "pnpm@9.12.3", "volta": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5238da3..f81ec58b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,8 +17,11 @@ importers: prettier-plugin-ember-template-tag: specifier: ^2.0.2 version: 2.0.4(prettier@3.3.3) + release-plan: + specifier: ^0.10.0 + version: 0.10.0(encoding@0.1.13) - test-app: + ember-changeset: dependencies: '@babel/core': specifier: ^7.25.2 @@ -54,21 +57,138 @@ importers: '@ember/test-helpers': specifier: ^3.3.1 version: 3.3.1(@babel/core@7.26.0)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(webpack@5.96.1) + '@glimmer/component': + specifier: ^1.1.2 + version: 1.1.2(@babel/core@7.26.0) + broccoli-asset-rev: + specifier: ^3.0.0 + version: 3.0.0 + concurrently: + specifier: ^8.2.2 + version: 8.2.2 + ember-cli: + specifier: ~5.12.0 + version: 5.12.0(handlebars@4.7.8)(underscore@1.13.7) + ember-cli-clean-css: + specifier: ^3.0.0 + version: 3.0.0 + ember-cli-dependency-checker: + specifier: ^3.3.2 + version: 3.3.2(ember-cli@5.12.0(handlebars@4.7.8)(underscore@1.13.7)) + ember-cli-htmlbars: + specifier: ^6.3.0 + version: 6.3.0 + ember-cli-inject-live-reload: + specifier: ^2.1.0 + version: 2.1.0 + ember-cli-sri: + specifier: ^2.1.1 + version: 2.1.1 + ember-cli-terser: + specifier: ^4.0.2 + version: 4.0.2 + ember-data: + specifier: ~4.12.8 + version: 4.12.8(@babel/core@7.26.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(webpack@5.96.1) + ember-load-initializers: + specifier: ^2.1.2 + version: 2.1.2(@babel/core@7.26.0) + ember-qunit: + specifier: ^8.1.0 + version: 8.1.1(@ember/test-helpers@3.3.1(@babel/core@7.26.0)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(webpack@5.96.1))(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(qunit@2.22.0) + ember-resolver: + specifier: ^12.0.1 + version: 12.0.1(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1)) + ember-source: + specifier: ~5.12.0 + version: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1) + ember-template-lint: + specifier: ^6.0.0 + version: 6.0.0 + eslint: + specifier: ^8.57.1 + version: 8.57.1 + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.57.1) + eslint-plugin-ember: + specifier: ^12.2.1 + version: 12.3.1(@babel/core@7.26.0)(eslint@8.57.1) + eslint-plugin-n: + specifier: ^16.6.2 + version: 16.6.2(eslint@8.57.1) + eslint-plugin-prettier: + specifier: ^5.2.1 + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3) + eslint-plugin-qunit: + specifier: ^8.1.2 + version: 8.1.2(eslint@8.57.1) + loader.js: + specifier: ^4.7.0 + version: 4.7.0 + prettier: + specifier: ^3.3.3 + version: 3.3.3 + qunit: + specifier: ^2.22.0 + version: 2.22.0 + qunit-dom: + specifier: ^3.2.1 + version: 3.2.1 + + test-app: + devDependencies: + '@babel/core': + specifier: ^7.25.2 + version: 7.26.0 + '@babel/eslint-parser': + specifier: ^7.25.1 + version: 7.25.9(@babel/core@7.26.0)(eslint@8.57.1) + '@babel/plugin-proposal-decorators': + specifier: ^7.24.7 + version: 7.25.9(@babel/core@7.26.0) + '@ember/optional-features': + specifier: ^2.1.0 + version: 2.2.0 + '@ember/string': + specifier: ^3.1.1 + version: 3.1.1 + '@ember/test-helpers': + specifier: ^3.3.1 + version: 3.3.1(@babel/core@7.26.0)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(webpack@5.96.1) + '@embroider/macros': + specifier: ^1.0.0 + version: 1.16.9 '@embroider/test-setup': specifier: ^4.0.0 version: 4.0.0 '@glimmer/component': specifier: ^1.1.2 version: 1.1.2(@babel/core@7.26.0) + '@glimmer/tracking': + specifier: ^1.1.2 + version: 1.1.2 broccoli-asset-rev: specifier: ^3.0.0 version: 3.0.0 concurrently: specifier: ^8.2.2 version: 8.2.2 + ember-auto-import: + specifier: ^2.8.1 + version: 2.10.0(webpack@5.96.1) + ember-changeset: + specifier: workspace:* + version: link:../ember-changeset ember-cli: specifier: ~5.12.0 version: 5.12.0(handlebars@4.7.8)(underscore@1.13.7) + ember-cli-app-version: + specifier: ^7.0.0 + version: 7.0.0(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1)) + ember-cli-babel: + specifier: ^7.26.11 + version: 7.26.11 ember-cli-clean-css: specifier: ^3.0.0 version: 3.0.0 @@ -93,6 +213,9 @@ importers: ember-load-initializers: specifier: ^2.1.2 version: 2.1.2(@babel/core@7.26.0) + ember-modifier: + specifier: ^4.2.0 + version: 4.2.0(@babel/core@7.26.0)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1)) ember-qunit: specifier: ^8.1.0 version: 8.1.1(@ember/test-helpers@3.3.1(@babel/core@7.26.0)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(webpack@5.96.1))(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(qunit@2.22.0) @@ -141,9 +264,6 @@ importers: qunit-dom: specifier: ^3.2.1 version: 3.2.1 - release-plan: - specifier: ^0.10.0 - version: 0.10.0(encoding@0.1.13) stylelint: specifier: ^15.11.0 version: 15.11.0 @@ -153,6 +273,12 @@ importers: stylelint-prettier: specifier: ^4.1.0 version: 4.1.0(prettier@3.3.3)(stylelint@15.11.0) + tracked-built-ins: + specifier: ^3.3.0 + version: 3.3.0 + validated-changeset: + specifier: ~1.3.4 + version: 1.3.4 webpack: specifier: ^5.95.0 version: 5.96.1 @@ -2169,6 +2295,10 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -2540,6 +2670,9 @@ packages: resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} engines: {node: '>=4'} + decorator-transforms@2.3.0: + resolution: {integrity: sha512-jo8c1ss9yFPudHuYYcrJ9jpkDZIoi+lOGvt+Uyp9B+dz32i50icRMx9Bfa8hEt7TnX1FyKWKkjV+cUdT/ep2kA==} + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -2659,6 +2792,12 @@ packages: peerDependencies: ember-source: ^3.13.0 || ^4.0.0 || >= 5.0.0 + ember-cli-app-version@7.0.0: + resolution: {integrity: sha512-zWIkxvlRrW7w1/vp+bGkmS27QsVum7NKp8N9DgAjhFMWuKewVqGyl/jeYaujMS/I4WSKBzSG9WHwBy2rjbUWxA==} + engines: {node: '>= 18'} + peerDependencies: + ember-source: ^3.28.0 || >= 4.0.0 + ember-cli-babel-plugin-helpers@1.1.1: resolution: {integrity: sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2686,6 +2825,10 @@ packages: ember-cli-get-component-path-option@1.0.0: resolution: {integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA==} + ember-cli-htmlbars@5.7.2: + resolution: {integrity: sha512-Uj6R+3TtBV5RZoJY14oZn/sNPnc+UgmC8nb5rI4P3fR/gYoyTFIZSXiIM7zl++IpMoIrocxOrgt+mhonKphgGg==} + engines: {node: 10.* || >= 12.*} + ember-cli-htmlbars@6.3.0: resolution: {integrity: sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==} engines: {node: 12.* || 14.* || >= 16} @@ -2787,6 +2930,14 @@ packages: resolution: {integrity: sha512-CYR+U/wRxLbrfYN3dh+0Tb6mFaxJKfdyz+wNql6cqTrA0BBi9k6J3AaKXj273TqvEpyyXegQFFkZEiuZdYtgJw==} engines: {node: 6.* || 8.* || >= 10.*} + ember-modifier@4.2.0: + resolution: {integrity: sha512-BJ48eTEGxD8J7+lofwVmee7xDgNDgpr5dd6+MSu4gk+I6xb35099RMNorXY5hjjwMJEyi/IRR6Yn3M7iJMz8Zw==} + peerDependencies: + ember-source: ^3.24 || >=4.0 + peerDependenciesMeta: + ember-source: + optional: true + ember-qunit@8.1.1: resolution: {integrity: sha512-nT+6s74j3BKNn+QQY/hINC3Xw3kn0NF0cU9zlgVQmCBWoyis1J24xWrY2LFOMThPmF6lHqcrUb5JwvBD4BXEXg==} peerDependencies: @@ -2835,6 +2986,10 @@ packages: engines: {node: 12.* || 14.* || >= 16.*} hasBin: true + ember-tracked-storage-polyfill@1.0.0: + resolution: {integrity: sha512-eL7lZat68E6P/D7b9UoTB5bB5Oh/0aju0Z7PCMi3aTwhaydRaxloE7TGrTRYU+NdJuyNVZXeGyxFxn2frvd3TA==} + engines: {node: 12.* || >= 14} + ember-try-config@4.0.0: resolution: {integrity: sha512-jAv7fqYJK7QYYekPc/8Nr7KOqDpv/asqM6F8xcRnbmf9UrD35BkSffY63qUuiD9e0aR5qiMNBIQzH8f65rGDqw==} engines: {node: 10.* || 12.* || >= 14} @@ -5752,6 +5907,10 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -5966,6 +6125,9 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tracked-built-ins@3.3.0: + resolution: {integrity: sha512-ewKFrW/AQs05oLPM5isOUb/1aOwBRfHfmF408CCzTk21FLAhKrKVOP5Q5ebX+zCT4kvg81PGBGwrBiEGND1nWA==} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -9152,6 +9314,8 @@ snapshots: common-ancestor-path@1.0.1: {} + common-tags@1.8.2: {} + commondir@1.0.1: {} component-emitter@1.3.1: {} @@ -9376,6 +9540,13 @@ snapshots: dependencies: mimic-response: 1.0.1 + decorator-transforms@2.3.0(@babel/core@7.26.0): + dependencies: + '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) + babel-import-util: 3.0.0 + transitivePeerDependencies: + - '@babel/core' + deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -9530,6 +9701,14 @@ snapshots: - '@glint/template' - supports-color + ember-cli-app-version@7.0.0(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1)): + dependencies: + ember-cli-babel: 7.26.11 + ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1) + git-repo-info: 2.1.1 + transitivePeerDependencies: + - supports-color + ember-cli-babel-plugin-helpers@1.1.1: {} ember-cli-babel@7.26.11: @@ -9621,6 +9800,27 @@ snapshots: ember-cli-get-component-path-option@1.0.0: {} + ember-cli-htmlbars@5.7.2: + dependencies: + '@ember/edition-utils': 1.2.0 + babel-plugin-htmlbars-inline-precompile: 5.3.1 + broccoli-debug: 0.6.5 + broccoli-persistent-filter: 3.1.3 + broccoli-plugin: 4.0.7 + common-tags: 1.8.2 + ember-cli-babel-plugin-helpers: 1.1.1 + ember-cli-version-checker: 5.1.2 + fs-tree-diff: 2.0.1 + hash-for-dep: 1.5.1 + heimdalljs-logger: 0.1.10 + json-stable-stringify: 1.1.1 + semver: 7.6.3 + silent-error: 1.1.1 + strip-bom: 4.0.0 + walk-sync: 2.2.0 + transitivePeerDependencies: + - supports-color + ember-cli-htmlbars@6.3.0: dependencies: '@ember/edition-utils': 1.2.0 @@ -9960,6 +10160,18 @@ snapshots: - '@babel/core' - supports-color + ember-modifier@4.2.0(@babel/core@7.26.0)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1)): + dependencies: + '@embroider/addon-shim': 1.9.0 + decorator-transforms: 2.3.0(@babel/core@7.26.0) + ember-cli-normalize-entity-name: 1.0.0 + ember-cli-string-utils: 1.1.0 + optionalDependencies: + ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1) + transitivePeerDependencies: + - '@babel/core' + - supports-color + ember-qunit@8.1.1(@ember/test-helpers@3.3.1(@babel/core@7.26.0)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(webpack@5.96.1))(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(qunit@2.22.0): dependencies: '@ember/test-helpers': 3.3.1(@babel/core@7.26.0)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.96.1))(webpack@5.96.1) @@ -10100,6 +10312,13 @@ snapshots: transitivePeerDependencies: - supports-color + ember-tracked-storage-polyfill@1.0.0: + dependencies: + ember-cli-babel: 7.26.11 + ember-cli-htmlbars: 5.7.2 + transitivePeerDependencies: + - supports-color + ember-try-config@4.0.0(encoding@0.1.13): dependencies: ember-source-channel-url: 3.0.0(encoding@0.1.13) @@ -13324,6 +13543,8 @@ snapshots: dependencies: ansi-regex: 6.1.0 + strip-bom@4.0.0: {} + strip-eof@1.0.0: {} strip-final-newline@2.0.0: {} @@ -13664,6 +13885,13 @@ snapshots: tr46@0.0.3: {} + tracked-built-ins@3.3.0: + dependencies: + '@embroider/addon-shim': 1.9.0 + ember-tracked-storage-polyfill: 1.0.0 + transitivePeerDependencies: + - supports-color + tree-kill@1.2.2: {} tree-sync@1.4.0: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4ec84f98..66407b1f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,3 @@ packages: + - 'ember-changeset' - 'test-app' diff --git a/test-app/.eslintrc.js b/test-app/.eslintrc.js index 6068170e..c49fddf4 100644 --- a/test-app/.eslintrc.js +++ b/test-app/.eslintrc.js @@ -34,11 +34,11 @@ module.exports = { './.stylelintrc.js', './.template-lintrc.js', './ember-cli-build.js', - './index.js', './testem.js', './blueprints/*/index.js', './config/**/*.js', - './tests/dummy/config/**/*.js', + './lib/*/index.js', + './server/**/*.js', ], parserOptions: { sourceType: 'script', diff --git a/test-app/tests/dummy/app/adapters/application.js b/test-app/app/adapters/application.js similarity index 100% rename from test-app/tests/dummy/app/adapters/application.js rename to test-app/app/adapters/application.js diff --git a/test-app/tests/dummy/app/app.js b/test-app/app/app.js similarity index 87% rename from test-app/tests/dummy/app/app.js rename to test-app/app/app.js index 523bad60..1ba93424 100644 --- a/test-app/tests/dummy/app/app.js +++ b/test-app/app/app.js @@ -1,7 +1,7 @@ import Application from '@ember/application'; import Resolver from 'ember-resolver'; import loadInitializers from 'ember-load-initializers'; -import config from 'dummy/config/environment'; +import config from 'test-app/config/environment'; export default class App extends Application { modulePrefix = config.modulePrefix; diff --git a/test-app/tests/dummy/app/components/changeset-form.hbs b/test-app/app/components/changeset-form.hbs similarity index 100% rename from test-app/tests/dummy/app/components/changeset-form.hbs rename to test-app/app/components/changeset-form.hbs diff --git a/test-app/tests/dummy/app/components/changeset-form.js b/test-app/app/components/changeset-form.js similarity index 100% rename from test-app/tests/dummy/app/components/changeset-form.js rename to test-app/app/components/changeset-form.js diff --git a/test-app/tests/dummy/app/components/validated-form.hbs b/test-app/app/components/validated-form.hbs similarity index 100% rename from test-app/tests/dummy/app/components/validated-form.hbs rename to test-app/app/components/validated-form.hbs diff --git a/test-app/tests/dummy/app/components/validated-form.js b/test-app/app/components/validated-form.js similarity index 100% rename from test-app/tests/dummy/app/components/validated-form.js rename to test-app/app/components/validated-form.js diff --git a/test-app/tests/dummy/app/controllers/.gitkeep b/test-app/app/controllers/.gitkeep similarity index 100% rename from test-app/tests/dummy/app/controllers/.gitkeep rename to test-app/app/controllers/.gitkeep diff --git a/test-app/tests/dummy/app/helpers/.gitkeep b/test-app/app/helpers/.gitkeep similarity index 100% rename from test-app/tests/dummy/app/helpers/.gitkeep rename to test-app/app/helpers/.gitkeep diff --git a/test-app/tests/dummy/app/index.html b/test-app/app/index.html similarity index 84% rename from test-app/tests/dummy/app/index.html rename to test-app/app/index.html index 8c195bc4..90cb9a37 100644 --- a/test-app/tests/dummy/app/index.html +++ b/test-app/app/index.html @@ -2,14 +2,14 @@ - Dummy + TestApp {{content-for "head"}} - + {{content-for "head-footer"}} @@ -17,7 +17,7 @@ {{content-for "body"}} - + {{content-for "body-footer"}} diff --git a/test-app/tests/dummy/app/models/.gitkeep b/test-app/app/models/.gitkeep similarity index 100% rename from test-app/tests/dummy/app/models/.gitkeep rename to test-app/app/models/.gitkeep diff --git a/test-app/tests/dummy/app/models/dog.js b/test-app/app/models/dog.js similarity index 100% rename from test-app/tests/dummy/app/models/dog.js rename to test-app/app/models/dog.js diff --git a/test-app/tests/dummy/app/models/profile.js b/test-app/app/models/profile.js similarity index 100% rename from test-app/tests/dummy/app/models/profile.js rename to test-app/app/models/profile.js diff --git a/test-app/tests/dummy/app/models/sync-user.js b/test-app/app/models/sync-user.js similarity index 100% rename from test-app/tests/dummy/app/models/sync-user.js rename to test-app/app/models/sync-user.js diff --git a/test-app/tests/dummy/app/models/user.js b/test-app/app/models/user.js similarity index 100% rename from test-app/tests/dummy/app/models/user.js rename to test-app/app/models/user.js diff --git a/test-app/tests/dummy/app/router.js b/test-app/app/router.js similarity index 81% rename from test-app/tests/dummy/app/router.js rename to test-app/app/router.js index a5489826..8532da5f 100644 --- a/test-app/tests/dummy/app/router.js +++ b/test-app/app/router.js @@ -1,5 +1,5 @@ import EmberRouter from '@ember/routing/router'; -import config from 'dummy/config/environment'; +import config from 'test-app/config/environment'; export default class Router extends EmberRouter { location = config.locationType; diff --git a/test-app/tests/dummy/app/routes/.gitkeep b/test-app/app/routes/.gitkeep similarity index 100% rename from test-app/tests/dummy/app/routes/.gitkeep rename to test-app/app/routes/.gitkeep diff --git a/test-app/tests/dummy/app/routes/index.js b/test-app/app/routes/index.js similarity index 100% rename from test-app/tests/dummy/app/routes/index.js rename to test-app/app/routes/index.js diff --git a/test-app/tests/dummy/app/routes/validated.js b/test-app/app/routes/validated.js similarity index 100% rename from test-app/tests/dummy/app/routes/validated.js rename to test-app/app/routes/validated.js diff --git a/test-app/tests/dummy/app/serializers/application.js b/test-app/app/serializers/application.js similarity index 100% rename from test-app/tests/dummy/app/serializers/application.js rename to test-app/app/serializers/application.js diff --git a/test-app/tests/dummy/app/services/store.js b/test-app/app/services/store.js similarity index 100% rename from test-app/tests/dummy/app/services/store.js rename to test-app/app/services/store.js diff --git a/test-app/tests/dummy/app/styles/app.css b/test-app/app/styles/app.css similarity index 100% rename from test-app/tests/dummy/app/styles/app.css rename to test-app/app/styles/app.css diff --git a/test-app/tests/dummy/app/templates/application.hbs b/test-app/app/templates/application.hbs similarity index 100% rename from test-app/tests/dummy/app/templates/application.hbs rename to test-app/app/templates/application.hbs diff --git a/test-app/tests/dummy/app/templates/index.hbs b/test-app/app/templates/index.hbs similarity index 100% rename from test-app/tests/dummy/app/templates/index.hbs rename to test-app/app/templates/index.hbs diff --git a/test-app/tests/dummy/app/templates/validated.hbs b/test-app/app/templates/validated.hbs similarity index 100% rename from test-app/tests/dummy/app/templates/validated.hbs rename to test-app/app/templates/validated.hbs diff --git a/test-app/tests/dummy/config/ember-cli-update.json b/test-app/config/ember-cli-update.json similarity index 66% rename from test-app/tests/dummy/config/ember-cli-update.json rename to test-app/config/ember-cli-update.json index 47601d76..a7496e5d 100644 --- a/test-app/tests/dummy/config/ember-cli-update.json +++ b/test-app/config/ember-cli-update.json @@ -6,9 +6,9 @@ "version": "5.12.0", "blueprints": [ { - "name": "addon", - "outputRepo": "https://github.com/ember-cli/ember-addon-output", - "codemodsSource": "ember-addon-codemods-manifest@1", + "name": "app", + "outputRepo": "https://github.com/ember-cli/ember-new-output", + "codemodsSource": "ember-app-codemods-manifest@1", "isBaseBlueprint": true, "options": [ "--ci-provider=github", diff --git a/test-app/tests/dummy/config/ember-try.js b/test-app/config/ember-try.js similarity index 97% rename from test-app/tests/dummy/config/ember-try.js rename to test-app/config/ember-try.js index 9d2a53ee..2977e842 100644 --- a/test-app/tests/dummy/config/ember-try.js +++ b/test-app/config/ember-try.js @@ -27,6 +27,7 @@ module.exports = async function () { devDependencies: { '@ember/test-helpers': '^2.9.3', 'ember-cli': '~4.12.3', + 'ember-cli-app-version': '^5.0.0', 'ember-data': '~3.20.0', 'ember-qunit': '^5.1.5', 'ember-resolver': '^8.0.0', @@ -40,6 +41,7 @@ module.exports = async function () { devDependencies: { '@ember/test-helpers': '^2.9.3', 'ember-cli': '~4.12.3', + 'ember-cli-app-version': '^5.0.0', 'ember-data': '~3.24.0', 'ember-qunit': '^5.1.5', 'ember-resolver': '^8.0.0', diff --git a/test-app/tests/dummy/config/environment.js b/test-app/config/environment.js similarity index 97% rename from test-app/tests/dummy/config/environment.js rename to test-app/config/environment.js index 3b32e1fc..113d30ae 100644 --- a/test-app/tests/dummy/config/environment.js +++ b/test-app/config/environment.js @@ -2,7 +2,7 @@ module.exports = function (environment) { const ENV = { - modulePrefix: 'dummy', + modulePrefix: 'test-app', environment, rootURL: '/', locationType: 'history', diff --git a/test-app/tests/dummy/config/optional-features.json b/test-app/config/optional-features.json similarity index 58% rename from test-app/tests/dummy/config/optional-features.json rename to test-app/config/optional-features.json index b26286e2..5329dd99 100644 --- a/test-app/tests/dummy/config/optional-features.json +++ b/test-app/config/optional-features.json @@ -2,5 +2,6 @@ "application-template-wrapper": false, "default-async-observers": true, "jquery-integration": false, - "template-only-glimmer-components": true + "template-only-glimmer-components": true, + "no-implicit-route-model": true } diff --git a/test-app/config/targets.js b/test-app/config/targets.js new file mode 100644 index 00000000..1e48e059 --- /dev/null +++ b/test-app/config/targets.js @@ -0,0 +1,11 @@ +'use strict'; + +const browsers = [ + 'last 1 Chrome versions', + 'last 1 Firefox versions', + 'last 1 Safari versions', +]; + +module.exports = { + browsers, +}; diff --git a/test-app/ember-cli-build.js b/test-app/ember-cli-build.js index 366cbe50..f7e30a87 100644 --- a/test-app/ember-cli-build.js +++ b/test-app/ember-cli-build.js @@ -1,9 +1,9 @@ 'use strict'; -const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); module.exports = function (defaults) { - const app = new EmberAddon(defaults, { + const app = new EmberApp(defaults, { // Add options here }); diff --git a/test-app/package.json b/test-app/package.json index 63d38770..5f539073 100644 --- a/test-app/package.json +++ b/test-app/package.json @@ -1,30 +1,17 @@ { - "name": "ember-changeset", - "version": "4.1.2", - "description": "Changesets for Ember", - "keywords": [ - "ember-addon", - "changeset" - ], - "homepage": "https://github.com/adopted-ember-addons/ember-changeset", - "bugs": "https://github.com/adopted-ember-addons/ember-changeset/issues", - "repository": "https://github.com/adopted-ember-addons/ember-changeset", + "name": "test-app", + "version": "0.0.0", + "private": true, + "description": "Small description for test-app goes here", + "repository": "", "license": "MIT", - "author": "Lauren Tan ", - "contributors": [ - { - "name": "Scott Newcomer", - "url": "https://github.com/snewcomer" - } - ], - "types": "./index.d.ts", + "author": "", "directories": { "doc": "doc", "test": "tests" }, "scripts": { "build": "ember build --environment=production", - "contributors": "pnpm dlx contributor-faces -e \"(*-bot|*\\[bot\\]|*-tomster|homu|bors)\"", "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"", "lint:css": "stylelint \"**/*.css\"", "lint:css:fix": "concurrently \"pnpm:lint:css -- --fix\"", @@ -35,29 +22,26 @@ "lint:js:fix": "eslint . --fix", "start": "ember serve", "test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\"", - "test:ember": "ember test", - "test:ember-compatibility": "ember try:each" - }, - "dependencies": { - "@babel/core": "^7.25.2", - "@embroider/macros": "^1.0.0", - "@glimmer/tracking": "^1.1.2", - "ember-auto-import": "^2.8.1", - "ember-cli-babel": "^7.26.11", - "validated-changeset": "~1.3.4" + "test:ember": "ember test" }, "devDependencies": { + "@babel/core": "^7.25.2", "@babel/eslint-parser": "^7.25.1", "@babel/plugin-proposal-decorators": "^7.24.7", "@ember/optional-features": "^2.1.0", - "@ember/string": "^3.0.1", + "@ember/string": "^3.1.1", "@ember/test-helpers": "^3.3.1", + "@embroider/macros": "^1.0.0", "@embroider/test-setup": "^4.0.0", "@glimmer/component": "^1.1.2", "@glimmer/tracking": "^1.1.2", "broccoli-asset-rev": "^3.0.0", "concurrently": "^8.2.2", + "ember-auto-import": "^2.8.1", + "ember-changeset": "workspace:*", "ember-cli": "~5.12.0", + "ember-cli-app-version": "^7.0.0", + "ember-cli-babel": "^7.26.11", "ember-cli-clean-css": "^3.0.0", "ember-cli-dependency-checker": "^3.3.2", "ember-cli-htmlbars": "^6.3.0", @@ -66,6 +50,7 @@ "ember-cli-terser": "^4.0.2", "ember-data": "~4.12.8", "ember-load-initializers": "^2.1.2", + "ember-modifier": "^4.2.0", "ember-qunit": "^8.1.0", "ember-resolver": "^12.0.1", "ember-source": "~5.12.0", @@ -82,32 +67,21 @@ "prettier": "^3.3.3", "qunit": "^2.22.0", "qunit-dom": "^3.2.1", - "release-plan": "^0.10.0", "stylelint": "^15.11.0", "stylelint-config-standard": "^34.0.0", "stylelint-prettier": "^4.1.0", + "tracked-built-ins": "^3.3.0", + "validated-changeset": "~1.3.4", "webpack": "^5.95.0", "yup": "^0.32.11" }, - "peerDependencies": { - "ember-data": "*", - "ember-source": ">=3.20.0" - }, - "peerDependenciesMeta": { - "ember-data": { - "optional": true - } - }, "engines": { - "node": "18.* || 20.* || >= 22" + "node": ">= 18" }, "volta": { "extends": "../package.json" }, "ember": { "edition": "octane" - }, - "ember-addon": { - "configPath": "tests/dummy/config" } } diff --git a/test-app/tests/dummy/public/robots.txt b/test-app/public/robots.txt similarity index 100% rename from test-app/tests/dummy/public/robots.txt rename to test-app/public/robots.txt diff --git a/test-app/tests/dummy/config/targets.js b/test-app/tests/dummy/config/targets.js deleted file mode 100644 index 62d61d92..00000000 --- a/test-app/tests/dummy/config/targets.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -const browsers = [ - 'last 2 Chrome versions', - 'last 2 Firefox versions', - 'last 2 Safari versions', -]; - -module.exports = { - browsers, -}; diff --git a/test-app/tests/index.html b/test-app/tests/index.html index b74fc8be..e4b2e696 100644 --- a/test-app/tests/index.html +++ b/test-app/tests/index.html @@ -2,7 +2,7 @@ - Dummy Tests + TestApp Tests @@ -10,7 +10,7 @@ {{content-for "test-head"}} - + {{content-for "head-footer"}} @@ -30,7 +30,7 @@ - + {{content-for "body-footer"}} diff --git a/test-app/tests/test-helper.js b/test-app/tests/test-helper.js index 4efd6e58..81843044 100644 --- a/test-app/tests/test-helper.js +++ b/test-app/tests/test-helper.js @@ -1,5 +1,5 @@ -import Application from 'dummy/app'; -import config from 'dummy/config/environment'; +import Application from 'test-app/app'; +import config from 'test-app/config/environment'; import * as QUnit from 'qunit'; import { setApplication } from '@ember/test-helpers'; import { setup } from 'qunit-dom';