@webda/core 1.0.0 → 1.1.1

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/application.d.ts +2 -2
  3. package/lib/application.js +6 -6
  4. package/lib/application.js.map +1 -1
  5. package/lib/core.d.ts +1 -1
  6. package/lib/core.js.map +1 -1
  7. package/lib/core.spec.js +3 -3
  8. package/lib/core.spec.js.map +1 -1
  9. package/lib/index.d.ts +1 -1
  10. package/lib/index.js +6 -2
  11. package/lib/index.js.map +1 -1
  12. package/lib/models/coremodel.d.ts +55 -1
  13. package/lib/models/coremodel.js +73 -7
  14. package/lib/models/coremodel.js.map +1 -1
  15. package/lib/models/coremodel.spec.js +6 -6
  16. package/lib/models/coremodel.spec.js.map +1 -1
  17. package/lib/models/user.spec.js +2 -2
  18. package/lib/models/user.spec.js.map +1 -1
  19. package/lib/policies/aclpolicy.spec.js +1 -1
  20. package/lib/policies/aclpolicy.spec.js.map +1 -1
  21. package/lib/policies/ownerpolicy.spec.js +11 -11
  22. package/lib/policies/ownerpolicy.spec.js.map +1 -1
  23. package/lib/policies/rolepolicy.spec.js +2 -2
  24. package/lib/policies/rolepolicy.spec.js.map +1 -1
  25. package/lib/queues/memoryqueue.js +2 -2
  26. package/lib/queues/memoryqueue.js.map +1 -1
  27. package/lib/services/authentication.js +2 -2
  28. package/lib/services/authentication.js.map +1 -1
  29. package/lib/services/authentication.spec.js +6 -6
  30. package/lib/services/authentication.spec.js.map +1 -1
  31. package/lib/services/configuration.js.map +1 -1
  32. package/lib/services/fileconfiguration.spec.js +2 -2
  33. package/lib/services/fileconfiguration.spec.js.map +1 -1
  34. package/lib/services/kubernetesconfiguration.js +2 -2
  35. package/lib/services/kubernetesconfiguration.js.map +1 -1
  36. package/lib/services/kubernetesconfiguration.spec.js +9 -9
  37. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  38. package/lib/services/oauth.js +1 -1
  39. package/lib/services/oauth.js.map +1 -1
  40. package/lib/stores/file.spec.js +1 -1
  41. package/lib/stores/file.spec.js.map +1 -1
  42. package/lib/stores/store.d.ts +16 -0
  43. package/lib/stores/store.js +17 -1
  44. package/lib/stores/store.js.map +1 -1
  45. package/lib/utils/context.js +3 -3
  46. package/lib/utils/context.js.map +1 -1
  47. package/lib/utils/cookie.d.ts +13 -1
  48. package/lib/utils/cookie.js +27 -8
  49. package/lib/utils/cookie.js.map +1 -1
  50. package/lib/utils/cookie.spec.js +39 -9
  51. package/lib/utils/cookie.spec.js.map +1 -1
  52. package/lib/utils/serializers.d.ts +94 -0
  53. package/lib/utils/serializers.js +164 -0
  54. package/lib/utils/serializers.js.map +1 -0
  55. package/lib/utils/{json.spec.d.ts → serializers.spec.d.ts} +0 -0
  56. package/lib/utils/serializers.spec.js +103 -0
  57. package/lib/utils/serializers.spec.js.map +1 -0
  58. package/package.json +2 -4
  59. package/LICENSE +0 -166
  60. package/lib/utils/json.d.ts +0 -8
  61. package/lib/utils/json.js +0 -74
  62. package/lib/utils/json.js.map +0 -1
  63. package/lib/utils/json.spec.js +0 -83
  64. package/lib/utils/json.spec.js.map +0 -1
@@ -20,6 +20,7 @@ const index_1 = require("../index");
20
20
  const context_1 = require("./context");
21
21
  const mocha_1 = require("@testdeck/mocha");
22
22
  const assert = require("assert");
23
+ const cookie_1 = require("cookie");
23
24
  const SECRET = "Lp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5EN";
24
25
  let CookieTest = class CookieTest extends test_1.WebdaTest {
25
26
  before() {
@@ -176,34 +177,63 @@ let CookieTest = class CookieTest extends test_1.WebdaTest {
176
177
  }
177
178
  assert.strictEqual(exception, true);
178
179
  }
180
+ testOversize() {
181
+ return __awaiter(this, void 0, void 0, function* () {
182
+ var cookie = new index_1.SecureCookie("test", {
183
+ secret: SECRET
184
+ }, this._ctx, {
185
+ title: "TITLE",
186
+ desc: "DESCRIPTION"
187
+ }).getProxy();
188
+ cookie.test = "PLOP".repeat(3000);
189
+ assert.strictEqual(cookie.needSave(), true);
190
+ cookie.save(this._ctx);
191
+ assert.strictEqual(Object.keys(this._ctx.getResponseCookies()).length, 5);
192
+ for (let i = 1; i < 5; i++) {
193
+ const cookie = this._ctx.getResponseCookies()[`test${i > 1 ? i : ""}`];
194
+ assert.strictEqual((0, cookie_1.serialize)(cookie.name, cookie.value, cookie.options || {}).length, 4096);
195
+ }
196
+ let ctx = yield this.newContext();
197
+ let cookies = this._ctx.getResponseCookies();
198
+ ctx.getHttpContext().cookies = {};
199
+ Object.keys(cookies).forEach(k => {
200
+ ctx.getHttpContext().cookies[k] = cookies[k].value;
201
+ });
202
+ cookie = new index_1.SecureCookie("test", { secret: SECRET }, ctx);
203
+ assert.strictEqual(cookie.test, "PLOP".repeat(3000));
204
+ });
205
+ }
179
206
  };
180
207
  __decorate([
181
- mocha_1.test("No changes")
208
+ (0, mocha_1.test)("No changes")
182
209
  ], CookieTest.prototype, "testNoChanges", null);
183
210
  __decorate([
184
- mocha_1.test("Add a value")
211
+ (0, mocha_1.test)("Add a value")
185
212
  ], CookieTest.prototype, "testAddValue", null);
186
213
  __decorate([
187
- mocha_1.test("Change a value")
214
+ (0, mocha_1.test)("Change a value")
188
215
  ], CookieTest.prototype, "testChangeValue", null);
189
216
  __decorate([
190
- mocha_1.test("Delete a value")
217
+ (0, mocha_1.test)("Delete a value")
191
218
  ], CookieTest.prototype, "testDeleteValue", null);
192
219
  __decorate([
193
- mocha_1.test("Empty cookie")
220
+ (0, mocha_1.test)("Empty cookie")
194
221
  ], CookieTest.prototype, "testEmptyCookie", null);
195
222
  __decorate([
196
- mocha_1.test("Cookie parameters")
223
+ (0, mocha_1.test)("Cookie parameters")
197
224
  ], CookieTest.prototype, "testCookieParameters", null);
198
225
  __decorate([
199
- mocha_1.test("Normal enc/dec")
226
+ (0, mocha_1.test)("Normal enc/dec")
200
227
  ], CookieTest.prototype, "testEncryption", null);
201
228
  __decorate([
202
- mocha_1.test("Bad secret")
229
+ (0, mocha_1.test)("Bad secret")
203
230
  ], CookieTest.prototype, "testBadSecret", null);
204
231
  __decorate([
205
- mocha_1.test("bad secret length")
232
+ (0, mocha_1.test)("bad secret length")
206
233
  ], CookieTest.prototype, "testBadSecretLength", null);
234
+ __decorate([
235
+ (0, mocha_1.test)("Oversize cookie")
236
+ ], CookieTest.prototype, "testOversize", null);
207
237
  CookieTest = __decorate([
208
238
  mocha_1.suite
209
239
  ], CookieTest);
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.spec.js","sourceRoot":"","sources":["../../src/utils/cookie.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cookie.spec.js","sourceRoot":"","sources":["../../src/utils/cookie.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Allow save/load of yaml or json file
3
+ */
4
+ export declare const FileUtils: {
5
+ /**
6
+ * Load a YAML or JSON file based on its extension
7
+ *
8
+ * @param filename to load
9
+ * @returns
10
+ */
11
+ load: (filename: any) => any;
12
+ /**
13
+ * Save a YAML or JSON file based on its extension
14
+ *
15
+ * @param object to serialize
16
+ * @param filename to save
17
+ * @returns
18
+ */
19
+ save: (object: any, filename: any) => void;
20
+ };
21
+ /**
22
+ * Simple JSON utils
23
+ */
24
+ export declare const JSONUtils: {
25
+ /**
26
+ * Safe Stringify stringify a object included circular object
27
+ * and also remove any attributes starting with a __
28
+ *
29
+ * @param value
30
+ * @param replacer
31
+ * @param space
32
+ * @returns
33
+ */
34
+ safeStringify: (value: any, replacer?: (key: string, value: any) => any, space?: number | string) => string;
35
+ /**
36
+ * See JSON.stringify
37
+ *
38
+ * @param value
39
+ * @param replacer
40
+ * @param space
41
+ * @returns
42
+ */
43
+ stringify: (value: any, replacer?: (key: string, value: any) => any, space?: number | string) => string;
44
+ /**
45
+ * Parse a JSON data
46
+ *
47
+ * @param value to parse
48
+ * @returns object parsed
49
+ */
50
+ parse: (value: any) => any;
51
+ /**
52
+ * Duplicate an object using serializer
53
+ */
54
+ duplicate: (value: any) => any;
55
+ /**
56
+ * Helper to FileUtils.save
57
+ */
58
+ loadFile: (filename: any) => any;
59
+ /**
60
+ * Helper to FileUtils.save
61
+ */
62
+ saveFile: (object: any, filename: any) => void;
63
+ };
64
+ /**
65
+ * Expose basic YAML function
66
+ */
67
+ export declare const YAMLUtils: {
68
+ /**
69
+ * Helper to FileUtils.save
70
+ */
71
+ saveFile: (object: any, filename: any) => void;
72
+ /**
73
+ * Helper to FileUtils.load
74
+ */
75
+ loadFile: (filename: any) => any;
76
+ /**
77
+ * Duplicate an object using serializer
78
+ */
79
+ duplicate: (value: any) => any;
80
+ /**
81
+ * Parse a single document yaml
82
+ *
83
+ * @param value to parse
84
+ * @returns object parsed
85
+ */
86
+ parse: (value: any) => any;
87
+ /**
88
+ * YAML helper
89
+ * @param value to serialize
90
+ * @param options as defined by https://eemeli.org/yaml/v1/#yaml-stringify
91
+ * @returns
92
+ */
93
+ stringify: (value: any, options?: any) => string;
94
+ };
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.YAMLUtils = exports.JSONUtils = exports.FileUtils = void 0;
4
+ const fs_1 = require("fs");
5
+ const yaml = require("yaml");
6
+ /**
7
+ * Allow save/load of yaml or json file
8
+ */
9
+ exports.FileUtils = {
10
+ /**
11
+ * Load a YAML or JSON file based on its extension
12
+ *
13
+ * @param filename to load
14
+ * @returns
15
+ */
16
+ load: filename => {
17
+ if (!(0, fs_1.existsSync)(filename)) {
18
+ throw new Error("File does not exist");
19
+ }
20
+ let content = (0, fs_1.readFileSync)(filename, "utf-8");
21
+ if (filename.match(/\.ya?ml$/i)) {
22
+ let res = yaml.parseAllDocuments(content);
23
+ if (res.length === 1) {
24
+ return res.pop().toJSON();
25
+ }
26
+ return res.map(d => d.toJSON());
27
+ }
28
+ else if (filename.match(/\.json$/i)) {
29
+ return JSON.parse(content);
30
+ }
31
+ throw new Error("Unknown format");
32
+ },
33
+ /**
34
+ * Save a YAML or JSON file based on its extension
35
+ *
36
+ * @param object to serialize
37
+ * @param filename to save
38
+ * @returns
39
+ */
40
+ save: (object, filename) => {
41
+ if (filename.match(/\.ya?ml$/i)) {
42
+ return (0, fs_1.writeFileSync)(filename, yaml.stringify(object));
43
+ }
44
+ else if (filename.match(/\.json$/i)) {
45
+ return (0, fs_1.writeFileSync)(filename, JSON.stringify(object, undefined, 2));
46
+ }
47
+ throw new Error("Unknown format");
48
+ }
49
+ };
50
+ /**
51
+ * Simple JSON utils
52
+ */
53
+ exports.JSONUtils = {
54
+ /**
55
+ * Safe Stringify stringify a object included circular object
56
+ * and also remove any attributes starting with a __
57
+ *
58
+ * @param value
59
+ * @param replacer
60
+ * @param space
61
+ * @returns
62
+ */
63
+ safeStringify: (value, replacer = undefined, space = 2) => {
64
+ let stringified = [];
65
+ return JSON.stringify(value, function (key, val) {
66
+ if ((stringified.indexOf(val) >= 0 && typeof val === "object") || key.startsWith("__")) {
67
+ return undefined;
68
+ }
69
+ stringified.push(val);
70
+ if (replacer) {
71
+ return replacer.bind(this, key, val)();
72
+ }
73
+ return val;
74
+ }, space);
75
+ },
76
+ /**
77
+ * See JSON.stringify
78
+ *
79
+ * @param value
80
+ * @param replacer
81
+ * @param space
82
+ * @returns
83
+ */
84
+ stringify: (value, replacer = undefined, space = 2) => {
85
+ // Add a fallback if first did not work because of recursive
86
+ try {
87
+ return JSON.stringify(value, (key, val) => {
88
+ if (key.startsWith("__")) {
89
+ return undefined;
90
+ }
91
+ if (replacer) {
92
+ return replacer.bind(this, key, val)();
93
+ }
94
+ return val;
95
+ }, space);
96
+ }
97
+ catch (err) {
98
+ if (err.message && err.message.startsWith("Converting circular structure to JSON")) {
99
+ return exports.JSONUtils.safeStringify(value, replacer, space);
100
+ }
101
+ throw err;
102
+ }
103
+ },
104
+ /**
105
+ * Parse a JSON data
106
+ *
107
+ * @param value to parse
108
+ * @returns object parsed
109
+ */
110
+ parse: value => {
111
+ // Auto clean any noise
112
+ return JSON.parse(value);
113
+ },
114
+ /**
115
+ * Duplicate an object using serializer
116
+ */
117
+ duplicate: value => {
118
+ return JSON.parse(exports.JSONUtils.stringify(value));
119
+ },
120
+ /**
121
+ * Helper to FileUtils.save
122
+ */
123
+ loadFile: exports.FileUtils.load,
124
+ /**
125
+ * Helper to FileUtils.save
126
+ */
127
+ saveFile: exports.FileUtils.save
128
+ };
129
+ /**
130
+ * Expose basic YAML function
131
+ */
132
+ exports.YAMLUtils = {
133
+ /**
134
+ * Helper to FileUtils.save
135
+ */
136
+ saveFile: exports.FileUtils.save,
137
+ /**
138
+ * Helper to FileUtils.load
139
+ */
140
+ loadFile: exports.FileUtils.load,
141
+ /**
142
+ * Duplicate an object using serializer
143
+ */
144
+ duplicate: exports.JSONUtils.duplicate,
145
+ /**
146
+ * Parse a single document yaml
147
+ *
148
+ * @param value to parse
149
+ * @returns object parsed
150
+ */
151
+ parse: value => {
152
+ return yaml.parse(value);
153
+ },
154
+ /**
155
+ * YAML helper
156
+ * @param value to serialize
157
+ * @param options as defined by https://eemeli.org/yaml/v1/#yaml-stringify
158
+ * @returns
159
+ */
160
+ stringify: (value, options = undefined) => {
161
+ return yaml.stringify(value, options);
162
+ }
163
+ };
164
+ //# sourceMappingURL=serializers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../src/utils/serializers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const assert = require("assert");
10
+ const mocha_1 = require("@testdeck/mocha");
11
+ const serializers_1 = require("./serializers");
12
+ const path = require("path");
13
+ const fs_1 = require("fs");
14
+ const TEST_FOLDER = __dirname + "/../../test/jsonutils/";
15
+ let UtilsTest = class UtilsTest {
16
+ fileJson() {
17
+ assert.deepStrictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "test.json"), { test: "ok" });
18
+ assert.deepStrictEqual(serializers_1.YAMLUtils.loadFile(TEST_FOLDER + "test.json"), { test: "ok" });
19
+ assert.deepStrictEqual(serializers_1.FileUtils.load(TEST_FOLDER + "test.json"), { test: "ok" });
20
+ }
21
+ fileYml() {
22
+ assert.deepStrictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "test.yml"), {
23
+ test: { ok: "plop" },
24
+ tab: ["ok", "item2"]
25
+ });
26
+ }
27
+ fileYaml() {
28
+ assert.strictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "mdocs.yaml").length, 2);
29
+ }
30
+ circularJSON() {
31
+ let a = {
32
+ b: "test",
33
+ c: {},
34
+ __test: true
35
+ };
36
+ a.c.a = a;
37
+ assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a), JSON.stringify({ b: "test", c: {} }, undefined, 2));
38
+ assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a, (key, value) => {
39
+ if (key !== "b")
40
+ return value;
41
+ return undefined;
42
+ }, 3), JSON.stringify({ c: {} }, undefined, 3));
43
+ }
44
+ duplicatedJSON() {
45
+ let a = {
46
+ b: "test",
47
+ c: {
48
+ plop: "bouzouf"
49
+ },
50
+ __test: true
51
+ };
52
+ a.d = a.c;
53
+ assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a), JSON.stringify({ b: "test", c: { plop: "bouzouf" }, d: { plop: "bouzouf" } }, undefined, 2));
54
+ }
55
+ writeJSON() {
56
+ let file = path.join(TEST_FOLDER, "writeTest.json");
57
+ serializers_1.JSONUtils.saveFile({ test: "plop" }, file);
58
+ assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
59
+ file = path.join(TEST_FOLDER, "writeTest.yaml");
60
+ serializers_1.JSONUtils.saveFile({ test: "plop" }, file);
61
+ assert.strictEqual((0, fs_1.readFileSync)(file).toString(), `test: plop\n`);
62
+ // Yaml alias
63
+ file = path.join(TEST_FOLDER, "writeTest.json");
64
+ serializers_1.YAMLUtils.saveFile({ test: "plop" }, file);
65
+ assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
66
+ // True implem
67
+ file = path.join(TEST_FOLDER, "writeTest.json");
68
+ serializers_1.FileUtils.save({ test: "plop" }, file);
69
+ assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
70
+ }
71
+ yaml() {
72
+ assert.strictEqual(serializers_1.YAMLUtils.stringify({ plop: "test" }), `plop: test
73
+ `);
74
+ assert.deepEqual(serializers_1.YAMLUtils.parse(`
75
+ plop: test
76
+ `), { plop: "test" });
77
+ }
78
+ };
79
+ __decorate([
80
+ (0, mocha_1.test)("LoadJSON File")
81
+ ], UtilsTest.prototype, "fileJson", null);
82
+ __decorate([
83
+ (0, mocha_1.test)("LoadYAML File")
84
+ ], UtilsTest.prototype, "fileYml", null);
85
+ __decorate([
86
+ (0, mocha_1.test)("LoadYAML Multiple Docs File")
87
+ ], UtilsTest.prototype, "fileYaml", null);
88
+ __decorate([
89
+ (0, mocha_1.test)("CircularJSON")
90
+ ], UtilsTest.prototype, "circularJSON", null);
91
+ __decorate([
92
+ (0, mocha_1.test)("DuplicateJSON")
93
+ ], UtilsTest.prototype, "duplicatedJSON", null);
94
+ __decorate([
95
+ (0, mocha_1.test)("Write JSON/YAML")
96
+ ], UtilsTest.prototype, "writeJSON", null);
97
+ __decorate([
98
+ (0, mocha_1.test)("YAML stringify")
99
+ ], UtilsTest.prototype, "yaml", null);
100
+ UtilsTest = __decorate([
101
+ mocha_1.suite
102
+ ], UtilsTest);
103
+ //# sourceMappingURL=serializers.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializers.spec.js","sourceRoot":"","sources":["../../src/utils/serializers.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webda/core",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "Expose API with Lambda",
5
5
  "keywords": [
6
6
  "aws",
@@ -47,7 +47,6 @@
47
47
  "devDependencies": {
48
48
  "@istanbuljs/nyc-config-typescript": "^1.0.1",
49
49
  "@testdeck/mocha": "^0.1.0",
50
- "@types/express": "^4.17.8",
51
50
  "@types/json-schema": "^7.0.3",
52
51
  "@types/node": "^12.0.0",
53
52
  "fs-extra": "^8.1.0",
@@ -79,6 +78,5 @@
79
78
  "homepage": "https://webda.io",
80
79
  "publishConfig": {
81
80
  "access": "public"
82
- },
83
- "gitHead": "248a743f75a7f6402aa75c2668499f0ce9ae5da2"
81
+ }
84
82
  }