@ember/app-blueprint 0.0.0 → 0.1.0
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.
- package/.editorconfig +19 -0
- package/.github/workflows/ci.yml +35 -0
- package/.github/workflows/plan-release.yml +94 -0
- package/.github/workflows/publish.yml +43 -0
- package/.prettierrc.cjs +13 -0
- package/.release-plan.json +22 -0
- package/CHANGELOG.md +17 -0
- package/RELEASE.md +27 -0
- package/eslint.config.mjs +30 -0
- package/files/.editorconfig +19 -0
- package/files/.ember-cli +7 -0
- package/files/.github/workflows/ci.yml +53 -0
- package/files/.prettierignore +13 -0
- package/files/.prettierrc.js +39 -0
- package/files/.stylelintignore +5 -0
- package/files/.stylelintrc.js +5 -0
- package/files/.template-lintrc.js +5 -0
- package/files/.watchmanconfig +3 -0
- package/files/README.md +58 -0
- package/files/_js_babel.config.cjs +42 -0
- package/files/_js_eslint.config.mjs +115 -0
- package/files/_ts_babel.config.cjs +50 -0
- package/files/_ts_eslint.config.mjs +135 -0
- package/files/app/app.ts +18 -0
- package/files/app/components/.gitkeep +0 -0
- package/files/app/config/environment.ts +17 -0
- package/files/app/controllers/.gitkeep +0 -0
- package/files/app/deprecation-workflow.ts +24 -0
- package/files/app/helpers/.gitkeep +0 -0
- package/files/app/models/.gitkeep +0 -0
- package/files/app/router.ts +11 -0
- package/files/app/routes/.gitkeep +0 -0
- package/files/app/styles/app.css +1 -0
- package/files/app/templates/_js_application.hbs +10 -0
- package/files/app/templates/_ts_application.gts +15 -0
- package/files/config/ember-cli-update.json +16 -0
- package/files/config/environment.js +48 -0
- package/files/config/optional-features.json +7 -0
- package/files/config/targets.js +11 -0
- package/files/ember-cli-build.js +22 -0
- package/files/gitignore +26 -0
- package/files/index.html +29 -0
- package/files/package.json +112 -0
- package/files/public/robots.txt +3 -0
- package/files/testem.js +25 -0
- package/files/tests/helpers/index.ts +43 -0
- package/files/tests/index.html +43 -0
- package/files/tests/integration/.gitkeep +0 -0
- package/files/tests/test-helper.ts +15 -0
- package/files/tests/unit/.gitkeep +0 -0
- package/files/tsconfig.json +31 -0
- package/files/vite.config.mjs +15 -0
- package/index.js +158 -0
- package/lib/directory-for-package-name.js +31 -0
- package/lib/prepend-emoji.js +12 -0
- package/package.json +33 -6
- package/tests/default.test.mjs +145 -0
- package/tests/fixture/app/components/custom-component.hbs +3 -0
- package/tests/fixture/app/initializers/test-init.js +6 -0
- package/tests/fixture/app/instance-initializers/test-instance-init.js +6 -0
- package/tests/fixture/app/router.js +12 -0
- package/tests/fixture/app/routes/styles.js +6 -0
- package/tests/fixture/app/styles/app.css +5 -0
- package/tests/fixture/app/templates/application.hbs +3 -0
- package/tests/fixture/app/templates/custom-component.hbs +1 -0
- package/tests/fixture/app/templates/index.hbs +1 -0
- package/tests/fixture/app/templates/styles.hbs +5 -0
- package/tests/fixture/testem-proxy.js +35 -0
- package/tests/fixture/tests/acceptance/app-init-test.js +13 -0
- package/tests/fixture/tests/acceptance/custom-component-test.js +14 -0
- package/tests/fixture/tests/acceptance/styles-test.js +18 -0
- package/tests/fixture/tests/acceptance/welcome-page-test.js +14 -0
- package/tests/fixture-ts/app/initializers/test-init.ts +10 -0
- package/tests/fixture-ts/app/instance-initializers/test-instance-init.ts +10 -0
- package/tests/fixture-ts/app/router.ts +12 -0
- package/tests/fixture-ts/app/routes/styles.ts +8 -0
- package/tests/fixture-ts/app/styles/app.css +5 -0
- package/tests/fixture-ts/app/templates/components/custom.gts +5 -0
- package/tests/fixture-ts/app/templates/custom-component.gts +5 -0
- package/tests/fixture-ts/app/templates/index.gts +5 -0
- package/tests/fixture-ts/app/templates/styles.gts +7 -0
- package/tests/fixture-ts/testem-proxy.js +36 -0
- package/tests/fixture-ts/tests/acceptance/app-init-test.ts +22 -0
- package/tests/fixture-ts/tests/acceptance/custom-component-test.ts +14 -0
- package/tests/fixture-ts/tests/acceptance/styles-test.ts +18 -0
- package/tests/fixture-ts/tests/acceptance/welcome-page-test.ts +14 -0
- package/tests/helpers.mjs +57 -0
- package/tests/typescript.test.mjs +24 -0
- package/vitest.config.ts +10 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const {
|
|
2
|
+
babelCompatSupport,
|
|
3
|
+
templateCompatSupport,
|
|
4
|
+
} = require('@embroider/compat/babel');
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
plugins: [
|
|
8
|
+
[
|
|
9
|
+
'@babel/plugin-transform-typescript',
|
|
10
|
+
{
|
|
11
|
+
allExtensions: true,
|
|
12
|
+
onlyRemoveTypeImports: true,
|
|
13
|
+
allowDeclareFields: true,
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
[
|
|
17
|
+
'babel-plugin-ember-template-compilation',
|
|
18
|
+
{
|
|
19
|
+
compilerPath: 'ember-source/dist/ember-template-compiler.js',
|
|
20
|
+
enableLegacyModules: [
|
|
21
|
+
'ember-cli-htmlbars',
|
|
22
|
+
'ember-cli-htmlbars-inline-precompile',
|
|
23
|
+
'htmlbars-inline-precompile',
|
|
24
|
+
],
|
|
25
|
+
transforms: [...templateCompatSupport()],
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
[
|
|
29
|
+
'module:decorator-transforms',
|
|
30
|
+
{
|
|
31
|
+
runtime: {
|
|
32
|
+
import: require.resolve('decorator-transforms/runtime-esm'),
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
[
|
|
37
|
+
'@babel/plugin-transform-runtime',
|
|
38
|
+
{
|
|
39
|
+
absoluteRuntime: __dirname,
|
|
40
|
+
useESModules: true,
|
|
41
|
+
regenerator: false,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
...babelCompatSupport(),
|
|
45
|
+
],
|
|
46
|
+
|
|
47
|
+
generatorOpts: {
|
|
48
|
+
compact: false,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debugging:
|
|
3
|
+
* https://eslint.org/docs/latest/use/configure/debug
|
|
4
|
+
* ----------------------------------------------------
|
|
5
|
+
*
|
|
6
|
+
* Print a file's calculated configuration
|
|
7
|
+
*
|
|
8
|
+
* npx eslint --print-config path/to/file.js
|
|
9
|
+
*
|
|
10
|
+
* Inspecting the config
|
|
11
|
+
*
|
|
12
|
+
* npx eslint --inspect-config
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
import globals from 'globals';
|
|
16
|
+
import js from '@eslint/js';
|
|
17
|
+
|
|
18
|
+
import ts from 'typescript-eslint';
|
|
19
|
+
|
|
20
|
+
import ember from 'eslint-plugin-ember/recommended';
|
|
21
|
+
|
|
22
|
+
import eslintConfigPrettier from 'eslint-config-prettier';
|
|
23
|
+
import qunit from 'eslint-plugin-qunit';
|
|
24
|
+
import n from 'eslint-plugin-n';
|
|
25
|
+
|
|
26
|
+
import babelParser from '@babel/eslint-parser';
|
|
27
|
+
|
|
28
|
+
const parserOptions = {
|
|
29
|
+
esm: {
|
|
30
|
+
js: {
|
|
31
|
+
ecmaFeatures: { modules: true },
|
|
32
|
+
ecmaVersion: 'latest',
|
|
33
|
+
},
|
|
34
|
+
ts: {
|
|
35
|
+
projectService: true,
|
|
36
|
+
tsconfigRootDir: import.meta.dirname,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default ts.config(
|
|
42
|
+
js.configs.recommended,
|
|
43
|
+
ember.configs.base,
|
|
44
|
+
ember.configs.gjs,
|
|
45
|
+
ember.configs.gts,
|
|
46
|
+
eslintConfigPrettier,
|
|
47
|
+
/**
|
|
48
|
+
* Ignores must be in their own object
|
|
49
|
+
* https://eslint.org/docs/latest/use/configure/ignore
|
|
50
|
+
*/
|
|
51
|
+
{
|
|
52
|
+
ignores: ['dist/', 'node_modules/', 'coverage/', '!**/.*'],
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options
|
|
56
|
+
*/
|
|
57
|
+
{
|
|
58
|
+
linterOptions: {
|
|
59
|
+
reportUnusedDisableDirectives: 'error',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
files: ['**/*.js'],
|
|
64
|
+
languageOptions: {
|
|
65
|
+
parser: babelParser,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
files: ['**/*.{js,gjs}'],
|
|
70
|
+
languageOptions: {
|
|
71
|
+
parserOptions: parserOptions.esm.js,
|
|
72
|
+
globals: {
|
|
73
|
+
...globals.browser,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
files: ['**/*.{ts,gts}'],
|
|
79
|
+
languageOptions: {
|
|
80
|
+
parser: ember.parser,
|
|
81
|
+
parserOptions: parserOptions.esm.ts,
|
|
82
|
+
},
|
|
83
|
+
extends: [...ts.configs.recommendedTypeChecked, ember.configs.gts],
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
files: ['tests/**/*-test.{js,gjs,ts,gts}'],
|
|
87
|
+
plugins: {
|
|
88
|
+
qunit,
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
/**
|
|
92
|
+
* CJS node files
|
|
93
|
+
*/
|
|
94
|
+
{
|
|
95
|
+
files: [
|
|
96
|
+
'**/*.cjs',
|
|
97
|
+
'config/**/*.js',
|
|
98
|
+
'testem.js',
|
|
99
|
+
'testem*.js',
|
|
100
|
+
'.prettierrc.js',
|
|
101
|
+
'.stylelintrc.js',
|
|
102
|
+
'.template-lintrc.js',
|
|
103
|
+
'ember-cli-build.js',
|
|
104
|
+
],
|
|
105
|
+
plugins: {
|
|
106
|
+
n,
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
languageOptions: {
|
|
110
|
+
sourceType: 'script',
|
|
111
|
+
ecmaVersion: 'latest',
|
|
112
|
+
globals: {
|
|
113
|
+
...globals.node,
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
/**
|
|
118
|
+
* ESM node files
|
|
119
|
+
*/
|
|
120
|
+
{
|
|
121
|
+
files: ['**/*.mjs'],
|
|
122
|
+
plugins: {
|
|
123
|
+
n,
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
languageOptions: {
|
|
127
|
+
sourceType: 'module',
|
|
128
|
+
ecmaVersion: 'latest',
|
|
129
|
+
parserOptions: parserOptions.esm.js,
|
|
130
|
+
globals: {
|
|
131
|
+
...globals.node,
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
);
|
package/files/app/app.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Application from '@ember/application';
|
|
2
|
+
import compatModules from '@embroider/virtual/compat-modules';
|
|
3
|
+
import Resolver from 'ember-resolver';
|
|
4
|
+
import loadInitializers from 'ember-load-initializers';
|
|
5
|
+
import config from '<%= modulePrefix %>/config/environment';
|
|
6
|
+
import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';
|
|
7
|
+
|
|
8
|
+
if (macroCondition(isDevelopingApp())) {
|
|
9
|
+
importSync('./deprecation-workflow');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default class App extends Application {
|
|
13
|
+
modulePrefix = config.modulePrefix;
|
|
14
|
+
podModulePrefix = config.podModulePrefix;
|
|
15
|
+
Resolver = Resolver.withModules(compatModules);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
loadInitializers(App, config.modulePrefix, compatModules);
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import loadConfigFromMeta from '@embroider/config-meta-loader';
|
|
2
|
+
import { assert } from '@ember/debug';
|
|
3
|
+
|
|
4
|
+
const config = loadConfigFromMeta('<%= name %>') as unknown;
|
|
5
|
+
|
|
6
|
+
assert("config is not an object", typeof config === "object" && config !== null);
|
|
7
|
+
assert("modulePrefix was not detected on your config", "modulePrefix" in config && typeof config.modulePrefix === 'string')
|
|
8
|
+
assert("locationType was not detected on your config", "locationType" in config && typeof config.locationType === 'string')
|
|
9
|
+
assert("rootURL was not detected on your config", "rootURL" in config && typeof config.rootURL === 'string')
|
|
10
|
+
assert("APP was not detected on your config", "APP" in config && typeof config.APP === 'object')
|
|
11
|
+
|
|
12
|
+
export default config as {
|
|
13
|
+
modulePrefix: string,
|
|
14
|
+
locationType: string,
|
|
15
|
+
rootURL: string,
|
|
16
|
+
APP: Record<string, unknown>
|
|
17
|
+
} & Record<string, unknown>;
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Docs: https://github.com/ember-cli/ember-cli-deprecation-workflow
|
|
5
|
+
*/
|
|
6
|
+
setupDeprecationWorkflow({
|
|
7
|
+
/**
|
|
8
|
+
false by default, but if a developer / team wants to be more aggressive about being proactive with
|
|
9
|
+
handling their deprecations, this should be set to "true"
|
|
10
|
+
*/
|
|
11
|
+
throwOnUnhandled: false,
|
|
12
|
+
workflow: [
|
|
13
|
+
/* ... handlers ... */
|
|
14
|
+
/* to generate this list, run your app for a while (or run the test suite),
|
|
15
|
+
* and then run in the browser console:
|
|
16
|
+
*
|
|
17
|
+
* deprecationWorkflow.flushDeprecations()
|
|
18
|
+
*
|
|
19
|
+
* And copy the handlers here
|
|
20
|
+
*/
|
|
21
|
+
/* example: */
|
|
22
|
+
/* { handler: 'silence', matchId: 'template-action' }, */
|
|
23
|
+
],
|
|
24
|
+
});
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import EmberRouter from '@ember/routing/router';
|
|
2
|
+
import config from '<%= modulePrefix %>/config/environment';
|
|
3
|
+
|
|
4
|
+
export default class Router extends EmberRouter {
|
|
5
|
+
location = config.locationType;
|
|
6
|
+
rootURL = config.rootURL;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
Router.map(function () {<% if (typescript) { %>
|
|
10
|
+
// Add route declarations here
|
|
11
|
+
<% } %>});
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* Ember supports plain CSS out of the box. More info: https://cli.emberjs.com/release/advanced-use/stylesheets/ */
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{{page-title "<%= namespace %>"}}
|
|
2
|
+
<% if (welcome) { %>
|
|
3
|
+
{{outlet}}
|
|
4
|
+
|
|
5
|
+
{{! The following component displays Ember's default welcome message. }}
|
|
6
|
+
<WelcomePage />
|
|
7
|
+
{{! Feel free to remove this! }}<% } else { %>
|
|
8
|
+
<h2 id="title">Welcome to Ember</h2>
|
|
9
|
+
|
|
10
|
+
{{outlet}}<% } %>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { pageTitle } from 'ember-page-title';
|
|
2
|
+
<% if (welcome) {%>import { WelcomePage } from 'ember-welcome-page';<% } %>
|
|
3
|
+
|
|
4
|
+
<template>
|
|
5
|
+
{{pageTitle "<%= namespace %>"}}
|
|
6
|
+
<% if (welcome) { %>
|
|
7
|
+
{{outlet}}
|
|
8
|
+
|
|
9
|
+
{{! The following component displays Ember's default welcome message. }}
|
|
10
|
+
<WelcomePage />
|
|
11
|
+
{{! Feel free to remove this! }}<% } else { %>
|
|
12
|
+
<h2 id="title">Welcome to Ember</h2>
|
|
13
|
+
|
|
14
|
+
{{outlet}}<% } %>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0.0",
|
|
3
|
+
"packages": [
|
|
4
|
+
{
|
|
5
|
+
"name": "@ember/app-blueprint",
|
|
6
|
+
"version": "<%= blueprintVersion %>",
|
|
7
|
+
"blueprints": [
|
|
8
|
+
{
|
|
9
|
+
"name": "@ember/app-blueprint",
|
|
10
|
+
"isBaseBlueprint": true,
|
|
11
|
+
"options": [<%= blueprintOptions %>]
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
module.exports = function (environment) {
|
|
4
|
+
const ENV = {
|
|
5
|
+
modulePrefix: '<%= modulePrefix %>',
|
|
6
|
+
environment,
|
|
7
|
+
rootURL: '/',
|
|
8
|
+
locationType: 'history',
|
|
9
|
+
EmberENV: {
|
|
10
|
+
EXTEND_PROTOTYPES: false,
|
|
11
|
+
FEATURES: {
|
|
12
|
+
// Here you can enable experimental features on an ember canary build
|
|
13
|
+
// e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
APP: {
|
|
18
|
+
// Here you can pass flags/options to your application instance
|
|
19
|
+
// when it is created
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
if (environment === 'development') {
|
|
24
|
+
// ENV.APP.LOG_RESOLVER = true;
|
|
25
|
+
// ENV.APP.LOG_ACTIVE_GENERATION = true;
|
|
26
|
+
// ENV.APP.LOG_TRANSITIONS = true;
|
|
27
|
+
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
|
|
28
|
+
// ENV.APP.LOG_VIEW_LOOKUPS = true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (environment === 'test') {
|
|
32
|
+
// Testem prefers this...
|
|
33
|
+
ENV.locationType = 'none';
|
|
34
|
+
|
|
35
|
+
// keep test console output quieter
|
|
36
|
+
ENV.APP.LOG_ACTIVE_GENERATION = false;
|
|
37
|
+
ENV.APP.LOG_VIEW_LOOKUPS = false;
|
|
38
|
+
|
|
39
|
+
ENV.APP.rootElement = '#ember-testing';
|
|
40
|
+
ENV.APP.autoboot = false;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (environment === 'production') {
|
|
44
|
+
// here you can enable a production-specific feature
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return ENV;
|
|
48
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
|
|
4
|
+
const { compatBuild } = require('@embroider/compat');
|
|
5
|
+
|
|
6
|
+
module.exports = async function (defaults) {
|
|
7
|
+
const { buildOnce } = await import('@embroider/vite');
|
|
8
|
+
let app = new EmberApp(defaults, {
|
|
9
|
+
<% if (emberData) {%>emberData: {
|
|
10
|
+
deprecations: {
|
|
11
|
+
// New projects can safely leave this deprecation disabled.
|
|
12
|
+
// If upgrading, to opt-into the deprecated behavior, set this to true and then follow:
|
|
13
|
+
// https://deprecations.emberjs.com/id/ember-data-deprecate-store-extends-ember-object
|
|
14
|
+
// before upgrading to Ember Data 6.0
|
|
15
|
+
DEPRECATE_STORE_EXTENDS_EMBER_OBJECT: false,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
<% } %>// Add options here
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
return compatBuild(app, buildOnce);
|
|
22
|
+
};
|
package/files/gitignore
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# compiled output
|
|
2
|
+
/dist/
|
|
3
|
+
/declarations/
|
|
4
|
+
/tmp/
|
|
5
|
+
|
|
6
|
+
# dependencies
|
|
7
|
+
/node_modules/
|
|
8
|
+
|
|
9
|
+
# misc
|
|
10
|
+
/.env*
|
|
11
|
+
/.pnp*
|
|
12
|
+
/.eslintcache
|
|
13
|
+
/coverage/
|
|
14
|
+
/npm-debug.log*
|
|
15
|
+
/testem.log
|
|
16
|
+
/yarn-error.log
|
|
17
|
+
|
|
18
|
+
# ember-try
|
|
19
|
+
/.node_modules.ember-try/
|
|
20
|
+
/npm-shrinkwrap.json.ember-try
|
|
21
|
+
/package.json.ember-try
|
|
22
|
+
/package-lock.json.ember-try
|
|
23
|
+
/yarn.lock.ember-try
|
|
24
|
+
|
|
25
|
+
# broccoli-debug
|
|
26
|
+
/DEBUG/
|
package/files/index.html
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html<% if(lang) { %> lang="<%= lang %>"<% } %>>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title><%= namespace %></title>
|
|
6
|
+
<meta name="description" content="">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
+
|
|
9
|
+
{{content-for "head"}}
|
|
10
|
+
|
|
11
|
+
<link integrity="" rel="stylesheet" href="/@embroider/virtual/vendor.css">
|
|
12
|
+
<link integrity="" rel="stylesheet" href="/@embroider/virtual/app.css">
|
|
13
|
+
|
|
14
|
+
{{content-for "head-footer"}}
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
{{content-for "body"}}
|
|
18
|
+
|
|
19
|
+
<script src="/@embroider/virtual/vendor.js"></script>
|
|
20
|
+
<script type="module">
|
|
21
|
+
import Application from './app/app';
|
|
22
|
+
import environment from './app/config/environment';
|
|
23
|
+
|
|
24
|
+
Application.create(environment.APP);
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
{{content-for "body-footer"}}
|
|
28
|
+
</body>
|
|
29
|
+
</html>
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<%= name %>",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "Small description for <%= name %> goes here",
|
|
6
|
+
"repository": "",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"author": "",
|
|
9
|
+
"directories": {
|
|
10
|
+
"doc": "doc",
|
|
11
|
+
"test": "tests"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "vite build",
|
|
15
|
+
"format": "prettier . --cache --write",
|
|
16
|
+
"lint": "concurrently \"<%= packageManager %>:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
|
|
17
|
+
"lint:css": "stylelint \"**/*.css\"",
|
|
18
|
+
"lint:css:fix": "concurrently \"<%= packageManager %>:lint:css -- --fix\"",
|
|
19
|
+
"lint:fix": "concurrently \"<%= packageManager %>:lint:*:fix\" --names \"fix:\" --prefixColors auto && <%= invokeScriptPrefix %> format",
|
|
20
|
+
"lint:format": "prettier . --cache --check",
|
|
21
|
+
"lint:hbs": "ember-template-lint .",
|
|
22
|
+
"lint:hbs:fix": "ember-template-lint . --fix",
|
|
23
|
+
"lint:js": "eslint . --cache",
|
|
24
|
+
"lint:js:fix": "eslint . --fix<% if (typescript) { %>",
|
|
25
|
+
"lint:types": "glint<% } %>",
|
|
26
|
+
"start": "vite",
|
|
27
|
+
"test": "concurrently \"<%= packageManager %>:lint\" \"<%= packageManager %>:test:*\" --names \"lint,test:\" --prefixColors auto",
|
|
28
|
+
"test:ember": "vite build --mode test && ember test --path dist"
|
|
29
|
+
},
|
|
30
|
+
"exports": {
|
|
31
|
+
"./tests/*": "./tests/*",
|
|
32
|
+
"./*": "./app/*"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@babel/core": "^7.26.10",
|
|
36
|
+
"@babel/runtime": "^7.0.0",
|
|
37
|
+
"@babel/plugin-transform-runtime": "^7.26.10<% if (typescript) { %>",
|
|
38
|
+
"@babel/plugin-transform-typescript":"^7.27.0<% } %>",
|
|
39
|
+
"@babel/eslint-parser": "^7.26.10<% if (typescript && emberData) { %>",
|
|
40
|
+
"@ember-data/adapter": "~5.3.12",
|
|
41
|
+
"@ember-data/graph": "~5.3.12",
|
|
42
|
+
"@ember-data/json-api": "~5.3.12",
|
|
43
|
+
"@ember-data/legacy-compat": "~5.3.12",
|
|
44
|
+
"@ember-data/model": "~5.3.12",
|
|
45
|
+
"@ember-data/request": "~5.3.12",
|
|
46
|
+
"@ember-data/request-utils": "~5.3.12",
|
|
47
|
+
"@ember-data/serializer": "~5.3.12",
|
|
48
|
+
"@ember-data/store": "~5.3.12",
|
|
49
|
+
"@ember-data/tracking": "~5.3.12<% } %><% if (typescript) { %>",
|
|
50
|
+
"@ember/app-tsconfig": "^1.0.3<% } %>",
|
|
51
|
+
"@ember/optional-features": "^2.2.0",
|
|
52
|
+
"@ember/string": "^4.0.0",
|
|
53
|
+
"@ember/test-helpers": "^5.1.0",
|
|
54
|
+
"@embroider/macros": "^1.16.12",
|
|
55
|
+
"@embroider/core": "^4.0.0-alpha.0",
|
|
56
|
+
"@embroider/vite": "^1.0.0-alpha.0",
|
|
57
|
+
"@embroider/compat": "^4.0.0-alpha.0",
|
|
58
|
+
"@embroider/router": "^3.0.1",
|
|
59
|
+
"@embroider/config-meta-loader": "^1.0.0-alpha.0",
|
|
60
|
+
"@eslint/js": "^9.23.0",
|
|
61
|
+
"@glimmer/component": "^2.0.0",
|
|
62
|
+
"@glimmer/tracking": "^1.1.2<% if (typescript) { %>",
|
|
63
|
+
"@glint/core": "^1.5.2",
|
|
64
|
+
"@glint/environment-ember-loose": "^1.5.2",
|
|
65
|
+
"@glint/environment-ember-template-imports": "^1.5.2",
|
|
66
|
+
"@glint/template": "^1.5.2<% } %>",
|
|
67
|
+
"@rollup/plugin-babel": "^6.0.4<% if (typescript) { %>",
|
|
68
|
+
"@types/qunit": "^2.19.12",
|
|
69
|
+
"@types/rsvp": "^4.0.9<% if (emberData) {%>",
|
|
70
|
+
"@warp-drive/core-types": "~0.0.2<% }} %>",
|
|
71
|
+
"babel-plugin-ember-template-compilation": "^2.4.1",
|
|
72
|
+
"concurrently": "^9.1.2",
|
|
73
|
+
"decorator-transforms": "^2.3.0",
|
|
74
|
+
"ember-auto-import": "^2.10.0",
|
|
75
|
+
"ember-cli": "~6.3.0",
|
|
76
|
+
"ember-cli-babel": "^8.2.0",
|
|
77
|
+
"ember-cli-deprecation-workflow": "^3.3.0",
|
|
78
|
+
"ember-cli-htmlbars": "^6.3.0<% if (emberData) { %>",
|
|
79
|
+
"ember-data": "~5.4.1<% } %>",
|
|
80
|
+
"ember-load-initializers": "^3.0.1",
|
|
81
|
+
"ember-modifier": "^4.2.0",
|
|
82
|
+
"ember-page-title": "^9.0.1",
|
|
83
|
+
"ember-qunit": "^9.0.1",
|
|
84
|
+
"ember-resolver": "^13.1.0",
|
|
85
|
+
"ember-source": "~6.3.0",
|
|
86
|
+
"ember-template-imports": "^4.3.0",
|
|
87
|
+
"ember-template-lint": "^6.1.0<% if (welcome) { %>",
|
|
88
|
+
"ember-welcome-page": "^7.0.2<% } %>",
|
|
89
|
+
"eslint": "^9.23.0",
|
|
90
|
+
"eslint-config-prettier": "^9.1.0",
|
|
91
|
+
"eslint-plugin-ember": "^12.5.0",
|
|
92
|
+
"eslint-plugin-n": "^17.16.2",
|
|
93
|
+
"eslint-plugin-qunit": "^8.1.2",
|
|
94
|
+
"globals": "^15.15.0",
|
|
95
|
+
"prettier": "^3.5.3",
|
|
96
|
+
"prettier-plugin-ember-template-tag": "^2.0.4",
|
|
97
|
+
"qunit": "^2.24.1",
|
|
98
|
+
"qunit-dom": "^3.4.0",
|
|
99
|
+
"stylelint": "^16.16.0",
|
|
100
|
+
"stylelint-config-standard": "^36.0.1",
|
|
101
|
+
"tracked-built-ins": "^3.4.0<% if (typescript) { %>",
|
|
102
|
+
"typescript": "^5.8.2",
|
|
103
|
+
"typescript-eslint": "^8.27.0<% } %>",
|
|
104
|
+
"vite": "^6.0.0"
|
|
105
|
+
},
|
|
106
|
+
"engines": {
|
|
107
|
+
"node": ">= 18"
|
|
108
|
+
},
|
|
109
|
+
"ember": {
|
|
110
|
+
"edition": "octane"
|
|
111
|
+
}
|
|
112
|
+
}
|
package/files/testem.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
if (typeof module !== 'undefined') {
|
|
4
|
+
module.exports = {
|
|
5
|
+
test_page: 'tests/index.html?hidepassed',
|
|
6
|
+
disable_watching: true,
|
|
7
|
+
launch_in_ci: ['Chrome'],
|
|
8
|
+
launch_in_dev: ['Chrome'],
|
|
9
|
+
browser_start_timeout: 120,
|
|
10
|
+
browser_args: {
|
|
11
|
+
Chrome: {
|
|
12
|
+
ci: [
|
|
13
|
+
// --no-sandbox is needed when running Chrome inside a container
|
|
14
|
+
process.env.CI ? '--no-sandbox' : null,
|
|
15
|
+
'--headless',
|
|
16
|
+
'--disable-dev-shm-usage',
|
|
17
|
+
'--disable-software-rasterizer',
|
|
18
|
+
'--mute-audio',
|
|
19
|
+
'--remote-debugging-port=0',
|
|
20
|
+
'--window-size=1440,900',
|
|
21
|
+
].filter(Boolean),
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {
|
|
2
|
+
setupApplicationTest as upstreamSetupApplicationTest,
|
|
3
|
+
setupRenderingTest as upstreamSetupRenderingTest,
|
|
4
|
+
setupTest as upstreamSetupTest,
|
|
5
|
+
type SetupTestOptions,
|
|
6
|
+
} from 'ember-qunit';
|
|
7
|
+
|
|
8
|
+
// This file exists to provide wrappers around ember-qunit's
|
|
9
|
+
// test setup functions. This way, you can easily extend the setup that is
|
|
10
|
+
// needed per test type.
|
|
11
|
+
|
|
12
|
+
function setupApplicationTest(hooks: NestedHooks, options?: SetupTestOptions) {
|
|
13
|
+
upstreamSetupApplicationTest(hooks, options);
|
|
14
|
+
|
|
15
|
+
// Additional setup for application tests can be done here.
|
|
16
|
+
//
|
|
17
|
+
// For example, if you need an authenticated session for each
|
|
18
|
+
// application test, you could do:
|
|
19
|
+
//
|
|
20
|
+
// hooks.beforeEach(async function () {
|
|
21
|
+
// await authenticateSession(); // ember-simple-auth
|
|
22
|
+
// });
|
|
23
|
+
//
|
|
24
|
+
// This is also a good place to call test setup functions coming
|
|
25
|
+
// from other addons:
|
|
26
|
+
//
|
|
27
|
+
// setupIntl(hooks, 'en-us'); // ember-intl
|
|
28
|
+
// setupMirage(hooks); // ember-cli-mirage
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function setupRenderingTest(hooks: NestedHooks, options?: SetupTestOptions) {
|
|
32
|
+
upstreamSetupRenderingTest(hooks, options);
|
|
33
|
+
|
|
34
|
+
// Additional setup for rendering tests can be done here.
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function setupTest(hooks: NestedHooks, options?: SetupTestOptions) {
|
|
38
|
+
upstreamSetupTest(hooks, options);
|
|
39
|
+
|
|
40
|
+
// Additional setup for unit tests can be done here.
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { setupApplicationTest, setupRenderingTest, setupTest };
|