diff --git a/.ember-cli b/.ember-cli
index 465c405..acc2a0e 100644
--- a/.ember-cli
+++ b/.ember-cli
@@ -3,5 +3,17 @@
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
+ "isTypeScriptProject": false,
+
+ /**
+ Setting `componentAuthoringFormat` to "strict" will force the blueprint generators to generate GJS
+ or GTS files for the component and the component rendering test. "loose" is the default.
+ */
+ "componentAuthoringFormat": "strict",
+
+ /**
+ Setting `routeAuthoringFormat` to "strict" will force the blueprint generators to generate GJS
+ or GTS templates for routes. "loose" is the default
+ */
+ "routeAuthoringFormat": "strict"
}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6f597bf..37f38bb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -18,11 +18,12 @@ jobs:
timeout-minutes: 10
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v3
- uses: pnpm/action-setup@v4
- - uses: actions/setup-node@v4
+ - name: Install Node
+ uses: actions/setup-node@v3
with:
- node-version: 18.x
+ node-version: 22
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
@@ -35,11 +36,12 @@ jobs:
timeout-minutes: 10
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v3
- uses: pnpm/action-setup@v4
- - uses: actions/setup-node@v4
+ - name: Install Node
+ uses: actions/setup-node@v3
with:
- node-version: 18.x
+ node-version: 22
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
diff --git a/.gitignore b/.gitignore
index 71ad79d..812161f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+/tmp/
+
# compiled output
/dist/
/declarations/
@@ -14,12 +16,5 @@
/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/.prettierignore b/.prettierignore
index 9385391..cc648b2 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,6 +1,9 @@
# unconventional js
/blueprints/*/files/
+# vendored bootstrap CSS
+/public/vendor/bootstrap.css
+
# compiled output
/dist/
@@ -8,6 +11,6 @@
/coverage/
!.*
.*/
-
-# ember-try
-/.node_modules.ember-try/
+/pnpm-lock.yaml
+ember-cli-update.json
+*.html
diff --git a/.prettierrc.js b/.prettierrc.js
index 3a658b9..071d4eb 100644
--- a/.prettierrc.js
+++ b/.prettierrc.js
@@ -4,9 +4,10 @@ module.exports = {
plugins: ['prettier-plugin-ember-template-tag'],
overrides: [
{
- files: '*.{js,ts,gjs,gts}',
+ files: '*.{js,gjs,ts,gts,mjs,mts,cjs,cts}',
options: {
singleQuote: true,
+ templateSingleQuote: true,
},
},
// ...
diff --git a/.stylelintignore b/.stylelintignore
index b79927d..34e3100 100644
--- a/.stylelintignore
+++ b/.stylelintignore
@@ -1,11 +1,8 @@
# unconventional files
/blueprints/*/files/
+# vendored bootstrap CSS
+/public/vendor/bootstrap.css
+
# compiled output
/dist/
-
-# addons
-/.node_modules.ember-try/
-
-# vendor
-public/vendor/*
diff --git a/.stylelintrc.js b/.stylelintrc.js
index 2fe27d2..66f4d36 100644
--- a/.stylelintrc.js
+++ b/.stylelintrc.js
@@ -1,7 +1,7 @@
'use strict';
module.exports = {
- extends: ['stylelint-config-standard', 'stylelint-prettier/recommended'],
+ extends: ['stylelint-config-standard'],
rules: {
'custom-property-pattern': null,
'block-no-empty': null,
diff --git a/app/app.js b/app/app.js
index cc8c9ac..578ff69 100644
--- a/app/app.js
+++ b/app/app.js
@@ -1,13 +1,20 @@
import Application from '@ember/application';
import Resolver from 'ember-resolver';
import loadInitializers from 'ember-load-initializers';
-import config from 'netrunnerdb/config/environment';
+import config from './config/environment';
import './font-awesome'; // Add this import statement for Font Awesome setup
+import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';
+
+import compatModules from '@embroider/virtual/compat-modules';
+
+if (macroCondition(isDevelopingApp())) {
+ importSync('./deprecation-workflow');
+}
export default class App extends Application {
modulePrefix = config.modulePrefix;
podModulePrefix = config.podModulePrefix;
- Resolver = Resolver;
+ Resolver = Resolver.withModules(compatModules);
}
-loadInitializers(App, config.modulePrefix);
+loadInitializers(App, config.modulePrefix, compatModules);
diff --git a/app/components/banlist/banned.gjs b/app/components/banlist/banned.gjs
index 688e63e..23e948f 100644
--- a/app/components/banlist/banned.gjs
+++ b/app/components/banlist/banned.gjs
@@ -1,10 +1,11 @@
import Component from '@glimmer/component';
+import { cached } from '@glimmer/tracking';
import CardLinkTo from '../card/link-to';
const capitalize = 'text-transform: capitalize';
export default class Banned extends Component {
- get bannedCards() {
+ @cached get bannedCards() {
return this.args.restriction.verdicts.banned
.map((cardId) => {
return this.args.cards.get(cardId);
diff --git a/app/components/decklist-box.gjs b/app/components/decklist-box.gjs
index 8452850..2bd8964 100644
--- a/app/components/decklist-box.gjs
+++ b/app/components/decklist-box.gjs
@@ -3,7 +3,7 @@ import { tracked } from '@glimmer/tracking';
import { LinkTo } from '@ember/routing';
import { service } from '@ember/service';
import FaIcon from '@fortawesome/ember-fontawesome/components/fa-icon';
-import { faCardsBlank } from '@fortawesome/free-solid-svg-icons';
+import { faLayerGroup } from '@fortawesome/free-solid-svg-icons';
import {
GetIdentityTitle,
@@ -71,7 +71,7 @@ export default class DecklistBoxComponent extends Component {
}})
-
+
{{@decklist.numCards}}
cards (min
{{@decklist.identityCard.minimumDeckSize}})
diff --git a/app/components/navbar.gjs b/app/components/navbar.gjs
index ee11ad7..e5e4208 100644
--- a/app/components/navbar.gjs
+++ b/app/components/navbar.gjs
@@ -4,10 +4,7 @@ import { action } from '@ember/object';
import { LinkTo } from '@ember/routing';
import { on } from '@ember/modifier';
import FaIcon from '@fortawesome/ember-fontawesome/components/fa-icon';
-import {
- faBars,
- faFantasyFlightGames,
-} from '@fortawesome/free-solid-svg-icons';
+import { faBars } from '@fortawesome/free-solid-svg-icons';
import Collapse from 'ember-bootstrap/components/bs-collapse';
import formatMessage from 'ember-intl/helpers/format-message';
@@ -29,8 +26,6 @@ class Navbar extends Component {