Skip to content

Commit e958534

Browse files
committed
Release 14.1.0
1 parent 61e0896 commit e958534

File tree

31 files changed

+166
-123
lines changed

31 files changed

+166
-123
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# @oracle/ojet-cli 14.0.0
1+
# @oracle/ojet-cli 14.1.0
22

33
## About the module
44
This module contains a command line interface for Oracle JET web and hybrid mobile application development.
@@ -64,7 +64,7 @@ Or view help on adding a plugin:
6464
ojet help add plugin
6565
```
6666

67-
For more information on the Oracle JET CLI, refer to the [Oracle JET Developers Guide](http://www.oracle.com/pls/topic/lookup?ctx=jet1400&id=homepage).
67+
For more information on the Oracle JET CLI, refer to the [Oracle JET Developers Guide](http://www.oracle.com/pls/topic/lookup?ctx=jet1410&id=homepage).
6868

6969
## [Contributing](https://github.com/oracle/ojet-cli/blob/master/CONTRIBUTING.md)
7070
Oracle JET is an open source project. Pull Requests are currently not being accepted. See [CONTRIBUTING](https://github.com/oracle/ojet-cli/blob/master/CONTRIBUTING.md) for details.

RELEASENOTES.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
## Release Notes for ojet-cli ##
22

3+
### 14.1.0
4+
35
### 14.0.0
6+
47
* node-sass updated to 7.0.1
58
* strict mode is now enabled by default in generated tsconfig.json files
69
* oraclejet-serve.js and oraclejet-build.js are no longer read or processed. Users should use other options in oraclejetconfig.json or the user hook system to set similar settings to what is found in oraclejet-serve.js and oraclejet-build.js. The same configuration objects formerly found in oraclejet-serve.js and oraclejet-build.js can be found in the 'opts' section of the context object passed into the before_build and before_serve hooks.

common/component.js

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ module.exports = {
4040
utils.log.error('Cannot create a vcomponent in a Javascript application. Please run \'ojet add typescript\' to add Typescript support to your application.');
4141
}
4242
fs.ensureDirSync(componentDestDirectory);
43-
fs.copySync(componentTemplateSrc, componentDestDirectory);
43+
fs.copySync(componentTemplateSrc, componentDestDirectory, { dereference: true });
4444
// Rename loader.ts in destination directory to index.ts for loaderless
4545
// components--the contents are the same:
4646
if (_isVComponent(generator) && !_withLoader({ generator, pack })) {
@@ -68,14 +68,14 @@ module.exports = {
6868
fs.writeFileSync(path.join(componentDestDirectory, `index.${utils.isTypescriptApplication() ? 'ts' : 'js'}`), fileContent);
6969
} else {
7070
// Only copy theming files for none-resource components
71-
fs.copySync(componentThemeTemplateSrc, componentDestDirectory);
71+
fs.copySync(componentThemeTemplateSrc, componentDestDirectory, { dereference: true });
7272
// Copy theming template for composit components
7373
if (utils.validCustomProperties()) {
7474
const componentTemplateScssSrc = _getComponentThemeTemplatePath('pcss');
75-
fs.copySync(componentTemplateScssSrc, componentDestDirectory);
75+
fs.copySync(componentTemplateScssSrc, componentDestDirectory, { dereference: true });
7676
} else {
7777
const componentTemplateCssSrc = _getComponentThemeTemplatePath('css');
78-
fs.copySync(componentTemplateCssSrc, componentDestDirectory);
78+
fs.copySync(componentTemplateCssSrc, componentDestDirectory, { dereference: true });
7979
}
8080
}
8181
// replace tokens in template files and file names
@@ -400,6 +400,40 @@ function _renameComponentTemplatePrefixFile(componentDir, file, componentName) {
400400
* @param {string} pack name of JET pack that the component belongs to
401401
*/
402402
function _updatePackInfo({ generator, pack }) {
403+
if (_isMonoPack({ generator, pack })) {
404+
/*
405+
For mono-pack's components, three attributes ought to be
406+
inherited during the build time. This can be done through
407+
complete changing of the initial templates or deleting these
408+
attributes. In this condition, the latter is used.
409+
410+
Refer to JET-55654 and JET-55655 for more info.
411+
*/
412+
if (_isVComponent(generator)) {
413+
const vComponentPath = path.join(
414+
_getComponentDestPath(generator),
415+
`${_getComponentName(generator)}.tsx`
416+
);
417+
let vComponentContent = fs.readFileSync(vComponentPath, 'utf-8');
418+
let packRegex = new RegExp('@ojmetadata pack "@pack-name@"');
419+
vComponentContent = vComponentContent.replace(packRegex, '');
420+
421+
packRegex = new RegExp('@ojmetadata version "1.0.0"');
422+
vComponentContent = vComponentContent.replace(packRegex, '');
423+
424+
fs.outputFileSync(vComponentPath, vComponentContent);
425+
} else {
426+
const componentJsonPath = path.join(
427+
_getComponentDestPath(generator),
428+
constants.COMPONENT_JSON
429+
);
430+
const componentJson = fs.readJSONSync(componentJsonPath);
431+
delete componentJson.version;
432+
delete componentJson.jetVersion;
433+
fs.writeJSONSync(componentJsonPath, componentJson, { spaces: 2 });
434+
}
435+
_addComponentToPackContents({ generator, pack });
436+
}
403437
// set pack of component
404438
if (_isVComponent(generator)) {
405439
_setVComponentPack({ generator, pack });
@@ -408,10 +442,6 @@ function _updatePackInfo({ generator, pack }) {
408442
}
409443
// add component to dependencies of pack
410444
_addComponentToPackDependencies({ generator, pack });
411-
// add component to contents if pack is mono-pack:
412-
if (_isMonoPack({ generator, pack })) {
413-
_addComponentToPackContents({ generator, pack });
414-
}
415445
}
416446

417447
/**

common/index.js

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ module.exports =
5959
return true;
6060
}
6161
try {
62-
fs.copySync(templateSrc, templateDest, { filter });
62+
fs.copySync(templateSrc, templateDest, { dereference: true, filter });
6363
return Promise.resolve();
6464
} catch (error) {
6565
return Promise.reject(error);
@@ -162,9 +162,7 @@ module.exports =
162162
if (generator.options.webpack) {
163163
return app.addwebpack(generator.options)
164164
.then(() => {
165-
if (utils.isVDOMTemplate(generator)) {
166-
_customizeVDOMTemplateForWebpack();
167-
}
165+
_customizeAppTemplateForWebpack(generator);
168166
});
169167
}
170168
return Promise.resolve();
@@ -223,9 +221,7 @@ function _customizeVDOMTemplateTsconfigForWebpack() {
223221
const oraclejetConfigJson = fs.readJSONSync(pathToOraclejetConfigJson);
224222
const pathToTsconfigJson = path.join(pathToApp, 'tsconfig.json');
225223
const tsconfigJson = fs.readJSONSync(pathToTsconfigJson);
226-
const toolingUtil = utils.loadToolingUtil();
227-
const preactPath = toolingUtil.getModulePath('./node_modules/preact', 'preact');
228-
const preactCompat = path.join(preactPath, 'compat', 'src', 'index.d.ts');
224+
const preactCompat = path.join('node_modules', 'preact', 'compat', 'src', 'index.d.ts');
229225

230226
tsconfigJson.compilerOptions.rootDir = `./${oraclejetConfigJson.paths.source.common}`;
231227
tsconfigJson.compilerOptions.outDir = `./${oraclejetConfigJson.paths.staging.web}`;
@@ -235,15 +231,15 @@ function _customizeVDOMTemplateTsconfigForWebpack() {
235231
tsconfigJson.compilerOptions.removeComments = true;
236232
tsconfigJson.compilerOptions.strict = true;
237233
tsconfigJson.compilerOptions.paths.react = [
238-
preactCompat
234+
`./${preactCompat}`
239235
];
240236
tsconfigJson.compilerOptions.paths['react-dom'] = [
241-
preactCompat
237+
`./${preactCompat}`
242238
];
243239
fs.writeJSONSync(pathToTsconfigJson, tsconfigJson, { spaces: 2 });
244240
}
245241

246-
function _customizeVDOMTemplateForWebpack() {
242+
function _customizeAppTemplateForWebpack(generator) {
247243
const pathToApp = '.';
248244
const pathToOraclejetConfigJson = path.join(pathToApp, 'oraclejetconfig.json');
249245
const oraclejetConfigJson = fs.readJSONSync(pathToOraclejetConfigJson);
@@ -254,8 +250,17 @@ function _customizeVDOMTemplateForWebpack() {
254250
'index.html'
255251
);
256252
let indexHtmlContent = fs.readFileSync(pathToIndexHtml, { encoding: 'utf-8' }).toString();
257-
indexHtmlContent = indexHtmlContent.replace(/<!-- .* -->/gm, '').replace(/^\s*\n/gm, '');
258-
indexHtmlContent = indexHtmlContent.replace(/(<meta name="description".* \/>)/, '$1\n <!-- css:redwood -->');
253+
indexHtmlContent = indexHtmlContent.replace(
254+
/<link\s*rel="stylesheet"\s*href="css\/app.css"\s*type="text\/css"\s*\/>/gm,
255+
''
256+
);
257+
indexHtmlContent = indexHtmlContent.replace(
258+
/<link\s*rel="stylesheet"\s*href="styles\/app.css"\s*type="text\/css"\s*\/>/gm,
259+
''
260+
);
261+
indexHtmlContent = indexHtmlContent.replace(/<!-- .* -->/gm, '');
262+
indexHtmlContent = indexHtmlContent.replace(/(<meta name="description".* \/>)/, '$1\n <!-- css:redwood | stable | custom theme -->');
263+
indexHtmlContent = indexHtmlContent.replaceAll(/^\s*\n/gm, '');
259264
fs.outputFileSync(pathToIndexHtml, indexHtmlContent);
260265
// Delete ./src/main.js since webpack entry point is index.ts
261266
const pathToMainJs = path.join(
@@ -271,23 +276,25 @@ function _customizeVDOMTemplateForWebpack() {
271276
// Delete ./path_mapping.json since not used by webpack build
272277
const pathToPathMappingJson = path.join(pathToApp, 'path_mapping.json');
273278
fs.removeSync(pathToPathMappingJson);
274-
// Replace ./.gitignore and replace
275-
const pathToGitIgnore = path.join(pathToApp, '.gitignore');
276-
const gitIgnoreContent =
277-
`/node_modules
278-
/${oraclejetConfigJson.paths.source.exchangeComponents}
279-
/${oraclejetConfigJson.paths.staging.web}
280-
.DS_Store`.trim();
281-
fs.outputFileSync(pathToGitIgnore, gitIgnoreContent);
282-
// Inject ./types/components/index.ts
283-
const pathToComponentTypes = path.join(pathToApp, 'types/components/index.d.ts');
284-
const componentTypesContent = `
285-
// Add custom element entries to preact.JSX.IntrinsicElements for custom elements
286-
// used in JSX that do not have the required type definitions
287-
declare namespace preact.JSX {
288-
interface IntrinsicElements {
279+
if (utils.isVDOMTemplate(generator)) {
280+
// Replace ./.gitignore and replace
281+
const pathToGitIgnore = path.join(pathToApp, '.gitignore');
282+
const gitIgnoreContent =
283+
`/node_modules
284+
/${oraclejetConfigJson.paths.source.exchangeComponents}
285+
/${oraclejetConfigJson.paths.staging.web}
286+
.DS_Store`.trim();
287+
fs.outputFileSync(pathToGitIgnore, gitIgnoreContent);
288+
// Inject ./types/components/index.ts
289+
const pathToComponentTypes = path.join(pathToApp, 'types/components/index.d.ts');
290+
const componentTypesContent = `
291+
// Add custom element entries to preact.JSX.IntrinsicElements for custom elements
292+
// used in JSX that do not have the required type definitions
293+
declare namespace preact.JSX {
294+
interface IntrinsicElements {
289295
290-
}
291-
}`;
292-
fs.outputFileSync(pathToComponentTypes, componentTypesContent);
296+
}
297+
}`;
298+
fs.outputFileSync(pathToComponentTypes, componentTypesContent);
299+
}
293300
}

common/template/common.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ function _injectTemplateFiles({ generator, namespace }) {
3838
function _copyFile(file) {
3939
fs.copySync(
4040
file,
41-
_getPathToFileDest(file)
41+
_getPathToFileDest(file),
42+
{ dereference: true }
4243
);
4344
}
4445
const filesToCopy = utils

common/template/local.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function _copyLocalTemplate(templatePath, destination) {
2929
try {
3030
if (fs.statSync(templatePath).isDirectory()) {
3131
const newTemplateFormat = fs.existsSync(path.join(templatePath, 'src'));
32-
fs.copySync(templatePath, newTemplateFormat ? path.join(destination, '..') : destination);
32+
fs.copySync(templatePath, newTemplateFormat ? path.join(destination, '..') : destination, { dereference: true });
3333
} else if (path.extname(templatePath) === '.zip') {
3434
commonTemplateHandler._handleZippedTemplateArchive(templatePath, destination);
3535
} else {

common/template/npm.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ function _copyNpmTemplate(generator, templateSpec, destination) {
115115
} else {
116116
// copy to /src
117117
filePathDest = path.join(destination, '..', filePathFromTemplateRoot);
118-
fs.copySync(filePath, filePathDest);
118+
fs.copySync(filePath, filePathDest, { dereference: true });
119119
}
120120
});
121121
}

common/template/url.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ function _processFetchedTemplateZip(fetchedTemplate, temp, destination) {
3232

3333
commonTemplateHandler._handleZippedTemplateArchive(fetchedTemplate, destination);
3434

35-
fs.copySync(temp, destination);
35+
fs.copySync(temp, destination, { dereference: true });
3636
fs.removeSync(temp);
3737
}

generators/add-pcss-theme/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ function _copyCssSettingsFile(addTheme, destPath, setTechnology) {
117117
path.join(JET_PCSS_SRC_PATH, _getJETVersion(), ALL_COMP_RW_PATH, whichTheme, srcSettings);
118118
const destSettingsFileName = _setSettingsFileByTech(setTechnology);
119119
const destSettingsPath = path.join(destPath, constants.DEFAULT_PCSS_THEME, destSettingsFileName);
120-
fs.copySync(srcPath, destSettingsPath);
120+
fs.copySync(srcPath, destSettingsPath, { dereference: true });
121121
_injectDefaultValues(whichTheme, destSettingsPath, setTechnology);
122122
}
123123

@@ -189,7 +189,7 @@ function _addPcssTheme(addTheme) {
189189

190190
try {
191191
// Copy pcss theme template to project folder under src
192-
fs.copySync(source, themeDestPath);
192+
fs.copySync(source, themeDestPath, { dereference: true });
193193
// Copy sass settings file
194194
_copyCssSettingsFile(addTheme, themeDestPath, 'sass');
195195
// Copy css vars settings file

generators/add-theme/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ function _addSassTheme(addTheme) {
6666

6767
try {
6868
// first copy over templates
69-
fs.copySync(source, themeDestPath);
69+
fs.copySync(source, themeDestPath, { dereference: true });
7070
_copySettingsFilesFromJETSrc(themeName, themeDestPath);
7171
_renameFilesAllPlatforms(themeName, themeDestPath);
7272
return Promise.resolve(addTheme);
@@ -145,7 +145,7 @@ function _copySettingsFilesFromJETSrc(themeName, dest) {
145145
const destSettingFileName = _getDestSettingFileName(DEFAULT_THEME, platform);
146146
const destPath = path.join(dest, platform, destSettingFileName);
147147

148-
fs.copySync(srcPath, destPath);
148+
fs.copySync(srcPath, destPath, { dereference: true });
149149
_injectDefaultValues(destPath);
150150
});
151151

generators/app/templates/common/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
"version": "1.0.0",
44
"description": "An Oracle JavaScript Extension Toolkit(JET) web app",
55
"dependencies": {
6-
"@oracle/oraclejet": "~14.0.0",
7-
"@oracle/oraclejet-core-pack": "~14.0.0"
6+
"@oracle/oraclejet": "~14.1.0",
7+
"@oracle/oraclejet-core-pack": "~14.1.0"
88
},
99
"devDependencies": {
1010
"extract-zip": "^1.7.0",
1111
"fs-extra": "^8.1.0",
1212
"glob": "7.2.0",
1313
"underscore": "^1.10.2",
14-
"@oracle/ojet-cli": "~14.0.0"
14+
"@oracle/ojet-cli": "~14.1.0"
1515
},
1616
"engines": {
1717
"node": ">=12.21.0"

generators/hybrid/templates/common/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"version": "1.0.0",
44
"description": "An Oracle JavaScript Extension Toolkit (JET) mobile app",
55
"dependencies": {
6-
"@oracle/oraclejet": "~14.0.0",
7-
"@oracle/oraclejet-core-pack": "~14.0.0"
6+
"@oracle/oraclejet": "~14.1.0",
7+
"@oracle/oraclejet-core-pack": "~14.1.0"
88
},
99
"devDependencies": {
1010
"fs-extra": "^8.1.0",
1111
"glob": "7.2.0",
1212
"underscore": "^1.10.2",
13-
"@oracle/ojet-cli": "~14.0.0"
13+
"@oracle/ojet-cli": "~14.1.0"
1414
},
1515
"engines": {
1616
"node": ">=12.21.0"

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@oracle/ojet-cli",
3-
"version": "14.0.0",
3+
"version": "14.1.0",
44
"description": "Oracle JET Command Line Interface",
55
"license": "UPL-1.0",
66
"homepage": "http://www.oracle.com/jet",
@@ -15,8 +15,8 @@
1515
"inquirer": "~8.2.2",
1616
"minimist": "~1.2.0",
1717
"@xmldom/xmldom": "0.8.6",
18-
"@oracle/oraclejet-tooling": "~14.0.0",
19-
"@oracle/oraclejet-templates": "~14.0.0"
18+
"@oracle/oraclejet-tooling": "~14.1.0",
19+
"@oracle/oraclejet-templates": "~14.1.0"
2020
},
2121
"engines": {
2222
"node": ">=12.21.0"

template/component/js/component.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@component-name@",
33
"version": "1.0.0",
4-
"jetVersion": "^14.0.0",
4+
"jetVersion": "^14.1.0",
55
"displayName": "A user friendly, translatable name of the component.",
66
"description": "A translatable high-level description for the component.",
77
"properties": {

template/component/ts/component.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@component-name@",
33
"version": "1.0.0",
4-
"jetVersion": "^14.0.0",
4+
"jetVersion": "^14.1.0",
55
"displayName": "A user friendly, translatable name of the component.",
66
"description": "A translatable high-level description for the component.",
77
"properties": {

template/component/tsx/loader.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export { @camelcasecomponent-name@ } from "./@component-name@";
33
declare global {
44
namespace preact.JSX {
55
interface IntrinsicElements {
6-
['@camelcasecomponent-name@']: any;
6+
'@full-component-name@': any;
77
}
88
}
99
}

template/resource-component/component.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "@component-name@",
33
"type": "resource",
44
"version": "1.0.0",
5-
"jetVersion": "^14.0.0",
5+
"jetVersion": "^14.1.0",
66
"displayName": "A user friendly, translatable name of the component.",
77
"description": "A translatable high-level description for the component.",
88
"publicModules": [

0 commit comments

Comments
 (0)