@loopback/cli 4.1.0 → 4.1.3
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/generators/copyright/index.js +6 -7
- package/generators/copyright/license.js +3 -4
- package/generators/extension/templates/src/providers/README.md +2 -2
- package/lib/base-generator.js +15 -12
- package/lib/debug.js +1 -1
- package/lib/project-generator.js +1 -1
- package/lib/utils.js +6 -6
- package/lib/version-helper.js +2 -3
- package/package.json +96 -94
|
@@ -8,7 +8,6 @@ const BaseGenerator = require('../../lib/base-generator');
|
|
|
8
8
|
const {updateFileHeaders} = require('./header');
|
|
9
9
|
const {spdxLicenseList, updateLicense} = require('./license');
|
|
10
10
|
const g = require('../../lib/globalize');
|
|
11
|
-
const _ = require('lodash');
|
|
12
11
|
const chalk = require('chalk');
|
|
13
12
|
const autocomplete = require('inquirer-autocomplete-prompt');
|
|
14
13
|
|
|
@@ -77,19 +76,19 @@ module.exports = class CopyrightGenerator extends BaseGenerator {
|
|
|
77
76
|
|
|
78
77
|
async promptOwnerAndLicense() {
|
|
79
78
|
const pkgFile = this.destinationPath('package.json');
|
|
80
|
-
|
|
81
|
-
if (pkg == null) {
|
|
79
|
+
if (!this.existsDestination('package.json')) {
|
|
82
80
|
this.exit(`${pkgFile} does not exist.`);
|
|
83
81
|
return;
|
|
84
82
|
}
|
|
85
|
-
this.packageJson
|
|
86
|
-
let author = _.get(pkg, 'author');
|
|
83
|
+
let author = this.packageJson.get('author');
|
|
87
84
|
if (typeof author === 'object') {
|
|
88
85
|
author = author.name;
|
|
89
86
|
}
|
|
90
87
|
const owner =
|
|
91
|
-
this.options.copyrightOwner ||
|
|
92
|
-
|
|
88
|
+
this.options.copyrightOwner ||
|
|
89
|
+
this.packageJson.get('copyright.owner') ||
|
|
90
|
+
author;
|
|
91
|
+
let license = this.options.license || this.packageJson.get('license');
|
|
93
92
|
const licenses = [...this.licenseList];
|
|
94
93
|
if (license != null) {
|
|
95
94
|
// find the matching license by id and move it to the front of the list
|
|
@@ -86,13 +86,12 @@ async function updateLicense(projectRoot, pkg, options) {
|
|
|
86
86
|
if (typeof licenseId === 'object') {
|
|
87
87
|
licenseId = licenseId.id;
|
|
88
88
|
}
|
|
89
|
-
pkg.license
|
|
90
|
-
pkg
|
|
91
|
-
await fs.writeJSON(path.join(projectRoot, 'package.json'), pkg);
|
|
89
|
+
pkg.set('license', licenseId);
|
|
90
|
+
pkg.set('copyright.owner', options.copyrightOwner);
|
|
92
91
|
await fs.write(
|
|
93
92
|
path.join(projectRoot, 'LICENSE'),
|
|
94
93
|
renderLicense({
|
|
95
|
-
name: pkg.name,
|
|
94
|
+
name: pkg.get('name'),
|
|
96
95
|
owner: options.copyrightOwner,
|
|
97
96
|
license: options.license,
|
|
98
97
|
years: await getYears(projectRoot),
|
|
@@ -26,7 +26,7 @@ which exports this provider with a binding key of `extension-starter.timer`. You
|
|
|
26
26
|
can learn more about components in the
|
|
27
27
|
[related resources section](#related-resources).
|
|
28
28
|
|
|
29
|
-
This provider makes
|
|
29
|
+
This provider makes available to your application a timer function which given a
|
|
30
30
|
start time _(given as an array [seconds, nanoseconds])_ can give you a total
|
|
31
31
|
time elapsed since the start in milliseconds. The timer can also start timing if
|
|
32
32
|
no start time is given. This is used by LogComponent to allow a user to time a
|
|
@@ -58,7 +58,7 @@ import {ExtensionStarterBindings} from 'HelloExtensions';
|
|
|
58
58
|
const key = ExtensionStarterBindings.LOG_ACTION;
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
LogProvider gives us a
|
|
61
|
+
LogProvider gives us a sequence action and a `startTimer` function. In order to
|
|
62
62
|
use the sequence action, you must define your own sequence as shown below.
|
|
63
63
|
|
|
64
64
|
**Example: Sequence**
|
package/lib/base-generator.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
8
|
+
const _ = require('lodash');
|
|
8
9
|
const Generator = require('yeoman-generator');
|
|
9
10
|
const chalk = require('chalk');
|
|
10
11
|
const {StatusConflicter, readTextFromStdin} = require('./utils');
|
|
@@ -15,6 +16,8 @@ const updateIndex = require('./update-index');
|
|
|
15
16
|
const {checkLoopBackProject} = require('./version-helper');
|
|
16
17
|
const g = require('./globalize');
|
|
17
18
|
|
|
19
|
+
_.extend(Generator.prototype, require('yeoman-generator/lib/actions/install'));
|
|
20
|
+
|
|
18
21
|
const supportedPackageManagers = ['npm', 'yarn'];
|
|
19
22
|
|
|
20
23
|
debug('Is stdin interactive (isTTY)?', process.stdin.isTTY);
|
|
@@ -47,10 +50,9 @@ module.exports = class BaseGenerator extends Generator {
|
|
|
47
50
|
constructor(args, opts) {
|
|
48
51
|
super(args, opts);
|
|
49
52
|
debug('Initializing generator', this.constructor.name);
|
|
50
|
-
this.conflicter = new StatusConflicter(
|
|
51
|
-
this.
|
|
52
|
-
|
|
53
|
-
);
|
|
53
|
+
this.conflicter = new StatusConflicter(this.env.adapter, {
|
|
54
|
+
force: this.options.force,
|
|
55
|
+
});
|
|
54
56
|
this._setupGenerator();
|
|
55
57
|
}
|
|
56
58
|
|
|
@@ -479,14 +481,15 @@ module.exports = class BaseGenerator extends Generator {
|
|
|
479
481
|
|
|
480
482
|
// Check all files being generated to ensure they succeeded
|
|
481
483
|
_isGenerationSuccessful() {
|
|
482
|
-
const generationStatus = !!Object.entries(
|
|
483
|
-
|
|
484
|
-
).find(([key, val]) => {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
});
|
|
488
|
-
debug(`Generation status: ${generationStatus}`);
|
|
489
|
-
return generationStatus;
|
|
484
|
+
// const generationStatus = !!Object.entries(
|
|
485
|
+
// this.conflicter.generationStatus,
|
|
486
|
+
// ).find(([key, val]) => {
|
|
487
|
+
// // If a file was modified, update the indexes and say stuff about it
|
|
488
|
+
// return val !== 'skip' && val !== 'identical';
|
|
489
|
+
// });
|
|
490
|
+
// debug(`Generation status: ${generationStatus}`);
|
|
491
|
+
// return generationStatus;
|
|
492
|
+
return true; // FixMe: Conflicter does not work
|
|
490
493
|
}
|
|
491
494
|
|
|
492
495
|
async _updateIndexFile(dir, file) {
|
package/lib/debug.js
CHANGED
package/lib/project-generator.js
CHANGED
|
@@ -96,7 +96,7 @@ module.exports = class ProjectGenerator extends BaseGenerator {
|
|
|
96
96
|
* from files that have it during project generation.
|
|
97
97
|
*/
|
|
98
98
|
_setupRenameTransformer() {
|
|
99
|
-
this.
|
|
99
|
+
this.queueTransformStream(utils.renameEJS());
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
async setOptions() {
|
package/lib/utils.js
CHANGED
|
@@ -23,7 +23,7 @@ const toVarName = require('change-case').camelCase;
|
|
|
23
23
|
const pluralize = require('pluralize');
|
|
24
24
|
const urlSlug = require('url-slug');
|
|
25
25
|
const validate = require('validate-npm-package-name');
|
|
26
|
-
const Conflicter = require('yeoman-
|
|
26
|
+
const Conflicter = require('yeoman-environment/conflicter');
|
|
27
27
|
const connectors = require('./connectors.json');
|
|
28
28
|
const tsquery = require('./ast-helper');
|
|
29
29
|
const stringifyObject = require('stringify-object');
|
|
@@ -300,8 +300,8 @@ exports.validateUrlSlug = function (name) {
|
|
|
300
300
|
* Extends conflicter so that it keeps track of conflict status
|
|
301
301
|
*/
|
|
302
302
|
exports.StatusConflicter = class StatusConflicter extends Conflicter {
|
|
303
|
-
constructor(adapter,
|
|
304
|
-
super(adapter,
|
|
303
|
+
constructor(adapter, opts) {
|
|
304
|
+
super(adapter, opts);
|
|
305
305
|
this.generationStatus = {}; // keeps track of file conflict history
|
|
306
306
|
}
|
|
307
307
|
|
|
@@ -587,7 +587,7 @@ exports.getInterceptorFileName = function (interceptorName) {
|
|
|
587
587
|
*
|
|
588
588
|
* Returns the connector property for the datasource file
|
|
589
589
|
* @param {string} datasourcesDir path for sources
|
|
590
|
-
* @param {string} dataSourceClass class name for the
|
|
590
|
+
* @param {string} dataSourceClass class name for the datasource
|
|
591
591
|
*/
|
|
592
592
|
exports.getDataSourceConnectorName = function (
|
|
593
593
|
datasourcesDir,
|
|
@@ -606,7 +606,7 @@ exports.getDataSourceConnectorName = function (
|
|
|
606
606
|
* connectorType supplied for the given connector name
|
|
607
607
|
* @param {string} connectorType single or a comma separated string array
|
|
608
608
|
* @param {string} datasourcesDir path for sources
|
|
609
|
-
* @param {string} dataSourceClass class name for the
|
|
609
|
+
* @param {string} dataSourceClass class name for the datasource
|
|
610
610
|
*/
|
|
611
611
|
exports.isConnectorOfType = function (
|
|
612
612
|
connectorType,
|
|
@@ -688,7 +688,7 @@ function readDataSourceConfigFromJSON(datasourcesDir, dataSourceClass) {
|
|
|
688
688
|
*
|
|
689
689
|
* returns the name property inside the datasource json file
|
|
690
690
|
* @param {string} datasourcesDir path for sources
|
|
691
|
-
* @param {string} dataSourceClass class name for the
|
|
691
|
+
* @param {string} dataSourceClass class name for the datasource
|
|
692
692
|
*/
|
|
693
693
|
exports.getDataSourceName = function (datasourcesDir, dataSourceClass) {
|
|
694
694
|
if (!dataSourceClass) {
|
package/lib/version-helper.js
CHANGED
|
@@ -35,7 +35,6 @@ function printVersions(log = console.log) {
|
|
|
35
35
|
*/
|
|
36
36
|
async function checkDependencies(generator) {
|
|
37
37
|
const pkg = generator.fs.readJSON(generator.destinationPath('package.json'));
|
|
38
|
-
generator.packageJson = pkg;
|
|
39
38
|
|
|
40
39
|
const isUpdate = generator.command === 'update';
|
|
41
40
|
const pkgDeps = pkg
|
|
@@ -131,7 +130,7 @@ async function checkDependencies(generator) {
|
|
|
131
130
|
return;
|
|
132
131
|
}
|
|
133
132
|
|
|
134
|
-
const originalCliVersion = generator.config.get('
|
|
133
|
+
const originalCliVersion = generator.config.get('version') || '<unknown>';
|
|
135
134
|
generator.log(
|
|
136
135
|
chalk.red(
|
|
137
136
|
g.f(
|
|
@@ -169,7 +168,7 @@ async function checkDependencies(generator) {
|
|
|
169
168
|
*/
|
|
170
169
|
function updateDependencies(generator) {
|
|
171
170
|
const pkg =
|
|
172
|
-
generator.packageJson ||
|
|
171
|
+
generator.packageJson.getAll() ||
|
|
173
172
|
generator.fs.readJSON(generator.destinationPath('package.json'));
|
|
174
173
|
const depUpdates = [];
|
|
175
174
|
for (const d in templateDeps) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/cli",
|
|
3
3
|
"description": "Yeoman generator for LoopBack 4",
|
|
4
|
-
"version": "4.1.
|
|
4
|
+
"version": "4.1.3",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"LoopBack",
|
|
7
7
|
"CLI",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
".yo-rc.json"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@lerna/project": "^5.
|
|
43
|
-
"@openapi-contrib/openapi-schema-to-json-schema": "^3.
|
|
44
|
-
"@phenomnomnominal/tsquery": "^
|
|
42
|
+
"@lerna/project": "^5.4.3",
|
|
43
|
+
"@openapi-contrib/openapi-schema-to-json-schema": "^3.2.0",
|
|
44
|
+
"@phenomnomnominal/tsquery": "^5.0.0",
|
|
45
45
|
"camelcase-keys": "^7.0.2",
|
|
46
46
|
"chalk": "^4.1.2",
|
|
47
47
|
"change-case": "^4.1.2",
|
|
@@ -56,12 +56,12 @@
|
|
|
56
56
|
"minimist": "^1.2.6",
|
|
57
57
|
"mkdirp": "^1.0.4",
|
|
58
58
|
"natural-compare": "^1.4.0",
|
|
59
|
-
"pacote": "^13.6.
|
|
59
|
+
"pacote": "^13.6.2",
|
|
60
60
|
"pluralize": "^8.0.0",
|
|
61
61
|
"regenerate": "^1.4.2",
|
|
62
62
|
"semver": "^7.3.7",
|
|
63
63
|
"slash": "^3.0.0",
|
|
64
|
-
"spdx-license-list": "^6.
|
|
64
|
+
"spdx-license-list": "^6.6.0",
|
|
65
65
|
"stringify-object": "^3.3.0",
|
|
66
66
|
"strong-globalize": "^6.0.5",
|
|
67
67
|
"swagger-parser": "^10.0.3",
|
|
@@ -70,129 +70,131 @@
|
|
|
70
70
|
"terminal-link": "^2.1.1",
|
|
71
71
|
"tildify": "^2.0.0",
|
|
72
72
|
"ts-morph": "^12.2.0",
|
|
73
|
-
"typescript": "~4.7.
|
|
73
|
+
"typescript": "~4.7.4",
|
|
74
74
|
"unicode-10.0.0": "^0.7.5",
|
|
75
75
|
"untildify": "^4.0.0",
|
|
76
76
|
"update-notifier": "^5.1.0",
|
|
77
77
|
"url-slug": "^3.0.4",
|
|
78
78
|
"validate-npm-package-name": "^4.0.0",
|
|
79
|
-
"write-file-atomic": "^4.0.
|
|
80
|
-
"yeoman-environment": "^
|
|
81
|
-
"yeoman-generator": "^
|
|
79
|
+
"write-file-atomic": "^4.0.2",
|
|
80
|
+
"yeoman-environment": "^3.10.0",
|
|
81
|
+
"yeoman-generator": "^5.7.0"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
|
-
"@loopback/build": "^9.0.
|
|
85
|
-
"@loopback/eslint-config": "^13.0.
|
|
86
|
-
"@loopback/testlab": "^5.0.
|
|
84
|
+
"@loopback/build": "^9.0.3",
|
|
85
|
+
"@loopback/eslint-config": "^13.0.3",
|
|
86
|
+
"@loopback/testlab": "^5.0.3",
|
|
87
87
|
"@types/ejs": "^3.1.1",
|
|
88
88
|
"@types/fs-extra": "^9.0.13",
|
|
89
|
-
"@types/minimatch": "^
|
|
90
|
-
"@types/node": "^14.18.
|
|
89
|
+
"@types/minimatch": "^5.1.0",
|
|
90
|
+
"@types/node": "^14.18.26",
|
|
91
|
+
"@types/yeoman-environment": "^2.10.8",
|
|
92
|
+
"@types/yeoman-generator": "^5.2.11",
|
|
91
93
|
"loopback": "^3.28.0",
|
|
92
94
|
"loopback-datasource-juggler": "^4.27.1",
|
|
93
95
|
"mem-fs": "^2.2.1",
|
|
94
|
-
"mem-fs-editor": "^9.
|
|
96
|
+
"mem-fs-editor": "^9.5.0",
|
|
95
97
|
"mock-stdin": "^1.0.0",
|
|
96
98
|
"rimraf": "^3.0.2",
|
|
97
|
-
"sinon": "^
|
|
99
|
+
"sinon": "^14.0.0",
|
|
98
100
|
"strong-globalize-cli": "7.1.0",
|
|
99
101
|
"yeoman-assert": "^3.1.1",
|
|
100
|
-
"yeoman-test": "^
|
|
102
|
+
"yeoman-test": "^6.3.0"
|
|
101
103
|
},
|
|
102
104
|
"config": {
|
|
103
105
|
"templateDependencies": {
|
|
104
106
|
"tslib": "^2.0.0",
|
|
105
107
|
"@types/mocha": "^9.1.1",
|
|
106
|
-
"@types/node": "^14.18.
|
|
108
|
+
"@types/node": "^14.18.26",
|
|
107
109
|
"cross-spawn": "^7.0.3",
|
|
108
110
|
"debug": "^4.3.4",
|
|
109
111
|
"fs-extra": "^10.1.0",
|
|
110
112
|
"mocha": "^10.0.0",
|
|
111
113
|
"nyc": "^15.1.0",
|
|
112
|
-
"prettier": "^2.
|
|
114
|
+
"prettier": "^2.7.1",
|
|
113
115
|
"rimraf": "^3.0.2",
|
|
114
116
|
"source-map-support": "^0.5.21",
|
|
115
|
-
"typescript": "~4.7.
|
|
116
|
-
"@loopback/authentication": "^9.0.
|
|
117
|
-
"@loopback/boot": "^5.0.
|
|
118
|
-
"@loopback/build": "^9.0.
|
|
119
|
-
"@loopback/cli": "^4.1.
|
|
120
|
-
"@loopback/context": "^5.0.
|
|
121
|
-
"@loopback/core": "^4.0.
|
|
122
|
-
"@loopback/metadata": "^5.0.
|
|
123
|
-
"@loopback/openapi-spec-builder": "^5.0.
|
|
124
|
-
"@loopback/openapi-v3": "^8.0.
|
|
125
|
-
"@loopback/repository-json-schema": "^6.0.
|
|
126
|
-
"@loopback/repository": "^5.0.
|
|
127
|
-
"@loopback/rest": "^12.0.
|
|
128
|
-
"@loopback/testlab": "^5.0.
|
|
129
|
-
"@loopback/docs": "^5.1.
|
|
117
|
+
"typescript": "~4.7.4",
|
|
118
|
+
"@loopback/authentication": "^9.0.3",
|
|
119
|
+
"@loopback/boot": "^5.0.3",
|
|
120
|
+
"@loopback/build": "^9.0.3",
|
|
121
|
+
"@loopback/cli": "^4.1.3",
|
|
122
|
+
"@loopback/context": "^5.0.3",
|
|
123
|
+
"@loopback/core": "^4.0.3",
|
|
124
|
+
"@loopback/metadata": "^5.0.3",
|
|
125
|
+
"@loopback/openapi-spec-builder": "^5.0.3",
|
|
126
|
+
"@loopback/openapi-v3": "^8.0.3",
|
|
127
|
+
"@loopback/repository-json-schema": "^6.0.3",
|
|
128
|
+
"@loopback/repository": "^5.0.3",
|
|
129
|
+
"@loopback/rest": "^12.0.3",
|
|
130
|
+
"@loopback/testlab": "^5.0.3",
|
|
131
|
+
"@loopback/docs": "^5.1.2",
|
|
130
132
|
"glob": "^8.0.3",
|
|
131
|
-
"@loopback/example-hello-world": "^5.0.
|
|
132
|
-
"@loopback/example-log-extension": "^5.0.
|
|
133
|
-
"@loopback/example-rpc-server": "^5.0.
|
|
134
|
-
"@loopback/example-todo": "^6.0.
|
|
135
|
-
"@loopback/example-soap-calculator": "^5.0.
|
|
136
|
-
"@loopback/service-proxy": "^5.0.
|
|
137
|
-
"@loopback/http-caching-proxy": "^4.0.
|
|
138
|
-
"@loopback/http-server": "^4.0.
|
|
139
|
-
"@loopback/example-todo-list": "^6.0.
|
|
133
|
+
"@loopback/example-hello-world": "^5.0.3",
|
|
134
|
+
"@loopback/example-log-extension": "^5.0.3",
|
|
135
|
+
"@loopback/example-rpc-server": "^5.0.3",
|
|
136
|
+
"@loopback/example-todo": "^6.0.3",
|
|
137
|
+
"@loopback/example-soap-calculator": "^5.0.3",
|
|
138
|
+
"@loopback/service-proxy": "^5.0.3",
|
|
139
|
+
"@loopback/http-caching-proxy": "^4.0.3",
|
|
140
|
+
"@loopback/http-server": "^4.0.3",
|
|
141
|
+
"@loopback/example-todo-list": "^6.0.3",
|
|
140
142
|
"@loopback/dist-util": "^0.4.0",
|
|
141
|
-
"@loopback/rest-explorer": "^5.0.
|
|
142
|
-
"@loopback/eslint-config": "^13.0.
|
|
143
|
+
"@loopback/rest-explorer": "^5.0.3",
|
|
144
|
+
"@loopback/eslint-config": "^13.0.3",
|
|
143
145
|
"express-composition": "^1.1.0",
|
|
144
|
-
"@loopback/example-express-composition": "^5.0.
|
|
145
|
-
"@loopback/example-greeter-extension": "^5.0.
|
|
146
|
-
"@loopback/booter-lb3app": "^4.0.
|
|
147
|
-
"@loopback/example-lb3-application": "^5.0.
|
|
148
|
-
"eslint": "^8.
|
|
149
|
-
"eslint-plugin-mocha": "^10.0
|
|
150
|
-
"@loopback/example-greeting-app": "^5.0.
|
|
151
|
-
"@loopback/example-context": "^5.0.
|
|
152
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
153
|
-
"@typescript-eslint/parser": "^5.
|
|
154
|
-
"eslint-plugin-eslint-plugin": "^
|
|
146
|
+
"@loopback/example-express-composition": "^5.0.3",
|
|
147
|
+
"@loopback/example-greeter-extension": "^5.0.3",
|
|
148
|
+
"@loopback/booter-lb3app": "^4.0.3",
|
|
149
|
+
"@loopback/example-lb3-application": "^5.0.3",
|
|
150
|
+
"eslint": "^8.22.0",
|
|
151
|
+
"eslint-plugin-mocha": "^10.1.0",
|
|
152
|
+
"@loopback/example-greeting-app": "^5.0.3",
|
|
153
|
+
"@loopback/example-context": "^5.0.3",
|
|
154
|
+
"@typescript-eslint/eslint-plugin": "^5.35.1",
|
|
155
|
+
"@typescript-eslint/parser": "^5.35.1",
|
|
156
|
+
"eslint-plugin-eslint-plugin": "^5.0.6",
|
|
155
157
|
"eslint-config-prettier": "^8.5.0",
|
|
156
|
-
"@loopback/repository-tests": "^0.21.
|
|
157
|
-
"@loopback/health": "^0.11.
|
|
158
|
-
"@loopback/authorization": "^0.12.
|
|
159
|
-
"@loopback/rest-crud": "^0.15.
|
|
160
|
-
"@loopback/security": "^0.8.
|
|
161
|
-
"@loopback/authentication-passport": "^5.0.
|
|
162
|
-
"@loopback/example-metrics-prometheus": "^0.10.
|
|
163
|
-
"@loopback/metrics": "^0.11.
|
|
164
|
-
"@loopback/model-api-builder": "^4.0.
|
|
165
|
-
"@loopback/logging": "^0.9.
|
|
166
|
-
"@loopback/example-access-control-migration": "^5.0.
|
|
167
|
-
"@loopback/example-file-transfer": "^4.0.
|
|
168
|
-
"@loopback/example-rest-crud": "^4.0.
|
|
169
|
-
"@loopback/apiconnect": "^0.10.
|
|
170
|
-
"@loopback/example-validation-app": "^4.0.
|
|
171
|
-
"@loopback/cron": "^0.9.
|
|
172
|
-
"@loopback/example-multi-tenancy": "^0.13.
|
|
173
|
-
"@loopback/example-passport-login": "^4.0.
|
|
174
|
-
"@loopback/authentication-jwt": "^0.12.
|
|
175
|
-
"@loopback/context-explorer": "^0.8.
|
|
176
|
-
"@loopback/express": "^5.0.
|
|
158
|
+
"@loopback/repository-tests": "^0.21.3",
|
|
159
|
+
"@loopback/health": "^0.11.3",
|
|
160
|
+
"@loopback/authorization": "^0.12.3",
|
|
161
|
+
"@loopback/rest-crud": "^0.15.2",
|
|
162
|
+
"@loopback/security": "^0.8.3",
|
|
163
|
+
"@loopback/authentication-passport": "^5.0.3",
|
|
164
|
+
"@loopback/example-metrics-prometheus": "^0.10.3",
|
|
165
|
+
"@loopback/metrics": "^0.11.3",
|
|
166
|
+
"@loopback/model-api-builder": "^4.0.3",
|
|
167
|
+
"@loopback/logging": "^0.9.3",
|
|
168
|
+
"@loopback/example-access-control-migration": "^5.0.3",
|
|
169
|
+
"@loopback/example-file-transfer": "^4.0.3",
|
|
170
|
+
"@loopback/example-rest-crud": "^4.0.3",
|
|
171
|
+
"@loopback/apiconnect": "^0.10.3",
|
|
172
|
+
"@loopback/example-validation-app": "^4.0.3",
|
|
173
|
+
"@loopback/cron": "^0.9.3",
|
|
174
|
+
"@loopback/example-multi-tenancy": "^0.13.3",
|
|
175
|
+
"@loopback/example-passport-login": "^4.0.3",
|
|
176
|
+
"@loopback/authentication-jwt": "^0.12.3",
|
|
177
|
+
"@loopback/context-explorer": "^0.8.3",
|
|
178
|
+
"@loopback/express": "^5.0.3",
|
|
177
179
|
"@types/js-yaml": "^3.12.4",
|
|
178
180
|
"js-yaml": "^3.13.1",
|
|
179
|
-
"@loopback/example-todo-jwt": "^4.0.
|
|
180
|
-
"@loopback/mock-oauth2-provider": "^0.6.
|
|
181
|
+
"@loopback/example-todo-jwt": "^4.0.3",
|
|
182
|
+
"@loopback/mock-oauth2-provider": "^0.6.3",
|
|
181
183
|
"lodash": "^4.17.21",
|
|
182
|
-
"@loopback/pooling": "^0.8.
|
|
183
|
-
"@loopback/typeorm": "^0.7.
|
|
184
|
-
"@loopback/example-graphql": "^0.7.
|
|
185
|
-
"@loopback/graphql": "^0.8.
|
|
186
|
-
"@loopback/filter": "^3.0.
|
|
187
|
-
"@loopback/rest-msgpack": "^0.8.
|
|
188
|
-
"@loopback/example-binding-resolution": "^0.7.
|
|
189
|
-
"@loopback/example-webpack": "^0.8.
|
|
190
|
-
"@loopback/example-socketio": "^0.6.
|
|
191
|
-
"@loopback/socketio": "^0.6.
|
|
192
|
-
"@loopback/monorepo": "^0.5.
|
|
193
|
-
"@loopback/tsdocs": "^4.0.
|
|
194
|
-
"@loopback/example-references-many": "^6.0.
|
|
184
|
+
"@loopback/pooling": "^0.8.3",
|
|
185
|
+
"@loopback/typeorm": "^0.7.3",
|
|
186
|
+
"@loopback/example-graphql": "^0.7.3",
|
|
187
|
+
"@loopback/graphql": "^0.8.3",
|
|
188
|
+
"@loopback/filter": "^3.0.3",
|
|
189
|
+
"@loopback/rest-msgpack": "^0.8.3",
|
|
190
|
+
"@loopback/example-binding-resolution": "^0.7.3",
|
|
191
|
+
"@loopback/example-webpack": "^0.8.3",
|
|
192
|
+
"@loopback/example-socketio": "^0.6.3",
|
|
193
|
+
"@loopback/socketio": "^0.6.3",
|
|
194
|
+
"@loopback/monorepo": "^0.5.3",
|
|
195
|
+
"@loopback/tsdocs": "^4.0.3",
|
|
196
|
+
"@loopback/example-references-many": "^6.0.3"
|
|
195
197
|
}
|
|
196
198
|
},
|
|
197
|
-
"gitHead": "
|
|
199
|
+
"gitHead": "296d9a9577fd058d1a2b2386087686cefa65a7a9"
|
|
198
200
|
}
|