hadron-document 7.9.0 → 7.10.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.
Files changed (109) hide show
  1. package/README.md +5 -5
  2. package/dist/document.d.ts +53 -0
  3. package/dist/document.d.ts.map +1 -0
  4. package/dist/document.js +248 -0
  5. package/dist/document.js.map +1 -0
  6. package/dist/editor/date.d.ts +13 -0
  7. package/dist/editor/date.d.ts.map +1 -0
  8. package/dist/editor/date.js +65 -0
  9. package/dist/editor/date.js.map +1 -0
  10. package/dist/editor/decimal128.d.ts +9 -0
  11. package/dist/editor/decimal128.d.ts.map +1 -0
  12. package/dist/editor/decimal128.js +32 -0
  13. package/dist/editor/decimal128.js.map +1 -0
  14. package/dist/editor/double.d.ts +10 -0
  15. package/dist/editor/double.d.ts.map +1 -0
  16. package/dist/editor/double.js +44 -0
  17. package/dist/editor/double.js.map +1 -0
  18. package/dist/editor/index.d.ts +38 -0
  19. package/dist/editor/index.d.ts.map +1 -0
  20. package/dist/editor/index.js +51 -0
  21. package/dist/editor/index.js.map +1 -0
  22. package/dist/editor/int32.d.ts +7 -0
  23. package/dist/editor/int32.d.ts.map +1 -0
  24. package/dist/editor/int32.js +17 -0
  25. package/dist/editor/int32.js.map +1 -0
  26. package/dist/editor/int64.d.ts +9 -0
  27. package/dist/editor/int64.d.ts.map +1 -0
  28. package/dist/editor/int64.js +32 -0
  29. package/dist/editor/int64.js.map +1 -0
  30. package/dist/editor/null.d.ts +8 -0
  31. package/dist/editor/null.d.ts.map +1 -0
  32. package/dist/editor/null.js +20 -0
  33. package/dist/editor/null.js.map +1 -0
  34. package/dist/editor/objectid.d.ts +10 -0
  35. package/dist/editor/objectid.d.ts.map +1 -0
  36. package/dist/editor/objectid.js +38 -0
  37. package/dist/editor/objectid.js.map +1 -0
  38. package/dist/editor/standard.d.ts +16 -0
  39. package/dist/editor/standard.d.ts.map +1 -0
  40. package/dist/editor/standard.js +49 -0
  41. package/dist/editor/standard.js.map +1 -0
  42. package/dist/editor/string.d.ts +7 -0
  43. package/dist/editor/string.d.ts.map +1 -0
  44. package/dist/editor/string.js +15 -0
  45. package/dist/editor/string.js.map +1 -0
  46. package/dist/editor/undefined.d.ts +8 -0
  47. package/dist/editor/undefined.d.ts.map +1 -0
  48. package/dist/editor/undefined.js +20 -0
  49. package/dist/editor/undefined.js.map +1 -0
  50. package/dist/element-events.d.ts +11 -0
  51. package/dist/element-events.d.ts.map +1 -0
  52. package/dist/element-events.js +12 -0
  53. package/dist/element-events.js.map +1 -0
  54. package/dist/element.d.ts +112 -0
  55. package/dist/element.d.ts.map +1 -0
  56. package/dist/element.js +652 -0
  57. package/dist/element.js.map +1 -0
  58. package/dist/index.d.ts +6 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +35 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/object-generator.d.ts +9 -0
  63. package/dist/object-generator.d.ts.map +1 -0
  64. package/dist/object-generator.js +82 -0
  65. package/dist/object-generator.js.map +1 -0
  66. package/dist/utils.d.ts +11 -0
  67. package/dist/utils.d.ts.map +1 -0
  68. package/dist/utils.js +37 -0
  69. package/dist/utils.js.map +1 -0
  70. package/package.json +45 -27
  71. package/.babelrc.js +0 -14
  72. package/.depcheckrc +0 -6
  73. package/.eslintignore +0 -1
  74. package/index.d.ts +0 -192
  75. package/index.js +0 -1
  76. package/lib/document.js +0 -624
  77. package/lib/editor/date.js +0 -151
  78. package/lib/editor/decimal128.js +0 -88
  79. package/lib/editor/double.js +0 -113
  80. package/lib/editor/index.js +0 -50
  81. package/lib/editor/int32.js +0 -68
  82. package/lib/editor/int64.js +0 -88
  83. package/lib/editor/null.js +0 -81
  84. package/lib/editor/objectid.js +0 -98
  85. package/lib/editor/standard.js +0 -108
  86. package/lib/editor/string.js +0 -48
  87. package/lib/editor/undefined.js +0 -81
  88. package/lib/element-events.js +0 -15
  89. package/lib/element.js +0 -1307
  90. package/lib/index.js +0 -7
  91. package/lib/object-generator.js +0 -180
  92. package/lib/utils.js +0 -10
  93. package/src/document.js +0 -432
  94. package/src/editor/date.js +0 -95
  95. package/src/editor/decimal128.js +0 -46
  96. package/src/editor/double.js +0 -70
  97. package/src/editor/index.js +0 -40
  98. package/src/editor/int32.js +0 -29
  99. package/src/editor/int64.js +0 -46
  100. package/src/editor/null.js +0 -42
  101. package/src/editor/objectid.js +0 -54
  102. package/src/editor/standard.js +0 -78
  103. package/src/editor/string.js +0 -20
  104. package/src/editor/undefined.js +0 -42
  105. package/src/element-events.js +0 -14
  106. package/src/element.js +0 -1002
  107. package/src/index.js +0 -5
  108. package/src/object-generator.js +0 -96
  109. package/src/utils.js +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,OAAO,EAAE,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAe,QAAQ,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,OAAO,EACP,aAAa,EACb,aAAa,EACb,MAAM,GACP,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ElementEditor = exports.ElementEvents = exports.Element = exports.DocumentEvents = exports.Document = void 0;
26
+ const document_1 = __importStar(require("./document"));
27
+ exports.Document = document_1.default;
28
+ Object.defineProperty(exports, "DocumentEvents", { enumerable: true, get: function () { return document_1.Events; } });
29
+ const element_1 = __importStar(require("./element"));
30
+ exports.Element = element_1.default;
31
+ Object.defineProperty(exports, "ElementEvents", { enumerable: true, get: function () { return element_1.Events; } });
32
+ const editor_1 = __importDefault(require("./editor"));
33
+ exports.ElementEditor = editor_1.default;
34
+ exports.default = document_1.default;
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAgE;AAM9D,mBANK,kBAAQ,CAML;AACR,+FAP2B,iBAAc,OAO3B;AANhB,qDAA6D;AAO3D,kBAPK,iBAAO,CAOL;AACP,8FAR0B,gBAAa,OAQ1B;AAPf,sDAAiD;AAQ/C,wBARK,gBAAa,CAQL;AANf,kBAAe,kBAAQ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Element } from './element';
2
+ export declare class ObjectGenerator {
3
+ static generate(elements: Iterable<Element>): Record<string, unknown>;
4
+ static generateOriginal(elements: Iterable<Element>): Record<string, unknown>;
5
+ static generateArray(elements: Iterable<Element>): unknown[];
6
+ static generateOriginalArray(elements: Iterable<Element>): unknown[];
7
+ }
8
+ export default ObjectGenerator;
9
+ //# sourceMappingURL=object-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-generator.d.ts","sourceRoot":"","sources":["../src/object-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBzC,qBAAa,eAAe;IAQ1B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuBrE,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAqB1B,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE;IAyB5D,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE;CAerE;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectGenerator = void 0;
4
+ const DECRYPTED_KEYS = Symbol.for('@@mdb.decryptedKeys');
5
+ function maybeDecorateWithDecryptedKeys(object, element) {
6
+ if (element.isValueDecrypted()) {
7
+ if (!object[DECRYPTED_KEYS]) {
8
+ Object.defineProperty(object, DECRYPTED_KEYS, {
9
+ value: [],
10
+ writable: true,
11
+ configurable: true,
12
+ enumerable: false,
13
+ });
14
+ }
15
+ object[DECRYPTED_KEYS].push(String(element.currentKey));
16
+ }
17
+ }
18
+ class ObjectGenerator {
19
+ static generate(elements) {
20
+ if (elements) {
21
+ const object = {};
22
+ for (const element of elements) {
23
+ if (!element.isRemoved() && element.currentKey !== '') {
24
+ object[element.currentKey] = element.generateObject();
25
+ maybeDecorateWithDecryptedKeys(object, element);
26
+ }
27
+ }
28
+ return object;
29
+ }
30
+ return elements;
31
+ }
32
+ static generateOriginal(elements) {
33
+ if (elements) {
34
+ const object = {};
35
+ for (const element of elements) {
36
+ if (!element.isAdded()) {
37
+ object[element.key] = element.generateOriginalObject();
38
+ maybeDecorateWithDecryptedKeys(object, element);
39
+ }
40
+ }
41
+ return object;
42
+ }
43
+ return elements;
44
+ }
45
+ static generateArray(elements) {
46
+ if (elements) {
47
+ const array = [];
48
+ for (const element of elements) {
49
+ if (!element.isRemoved()) {
50
+ if (element.elements) {
51
+ array.push(element.generateObject());
52
+ }
53
+ else {
54
+ array.push(element.currentValue);
55
+ }
56
+ maybeDecorateWithDecryptedKeys(array, element);
57
+ }
58
+ }
59
+ return array;
60
+ }
61
+ return elements;
62
+ }
63
+ static generateOriginalArray(elements) {
64
+ if (elements) {
65
+ const array = [];
66
+ for (const element of elements) {
67
+ if (element.originalExpandableValue) {
68
+ array.push(element.generateOriginalObject());
69
+ }
70
+ else if (!element.isAdded()) {
71
+ array.push(element.value);
72
+ }
73
+ maybeDecorateWithDecryptedKeys(array, element);
74
+ }
75
+ return array;
76
+ }
77
+ return elements;
78
+ }
79
+ }
80
+ exports.ObjectGenerator = ObjectGenerator;
81
+ exports.default = ObjectGenerator;
82
+ //# sourceMappingURL=object-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-generator.js","sourceRoot":"","sources":["../src/object-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { EJSON } from 'bson';
2
+ import type { TypeCastMap, TypeCastTypes } from 'hadron-type-checker';
3
+ export declare function fieldStringLen(value: unknown): number;
4
+ export declare type BSONObject = TypeCastMap['Object'];
5
+ export declare type BSONArray = TypeCastMap['Array'];
6
+ export declare type BSONValue = TypeCastMap[TypeCastTypes];
7
+ export interface HadronEJSONOptions {
8
+ indent?: number | string;
9
+ }
10
+ export declare function objectToIdiomaticEJSON(value: Readonly<EJSON.SerializableTypes>, options?: HadronEJSONOptions): string;
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGrD;AAED,oBAAY,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/C,oBAAY,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7C,oBAAY,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAiBD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,EACxC,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAYR"}
package/dist/utils.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.objectToIdiomaticEJSON = exports.fieldStringLen = void 0;
4
+ const bson_1 = require("bson");
5
+ function fieldStringLen(value) {
6
+ const length = String(value).length;
7
+ return length === 0 ? 1 : length;
8
+ }
9
+ exports.fieldStringLen = fieldStringLen;
10
+ function objectToIdiomaticEJSON(value, options = {}) {
11
+ const serialized = bson_1.EJSON.serialize(value, {
12
+ relaxed: false,
13
+ });
14
+ makeEJSONIdiomatic(serialized);
15
+ return JSON.stringify(serialized, null, 'indent' in options ? options.indent : 2);
16
+ }
17
+ exports.objectToIdiomaticEJSON = objectToIdiomaticEJSON;
18
+ function makeEJSONIdiomatic(value) {
19
+ if (!value || typeof value !== 'object')
20
+ return;
21
+ for (const key of Object.keys(value)) {
22
+ const entry = value[key];
23
+ if (typeof entry !== 'object' || entry === null) {
24
+ continue;
25
+ }
26
+ if (entry.$numberInt) {
27
+ value[key] = +entry.$numberInt;
28
+ continue;
29
+ }
30
+ if (entry.$numberDouble) {
31
+ value[key] = +entry.$numberDouble;
32
+ continue;
33
+ }
34
+ makeEJSONIdiomatic(entry);
35
+ }
36
+ }
37
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,+BAA6B;AAG7B,SAAgB,cAAc,CAAC,KAAc;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACnC,CAAC;AAHD,wCAGC;AAyBD,SAAgB,sBAAsB,CACpC,KAAwC,EACxC,UAA8B,EAAE;IAEhC,MAAM,UAAU,GAAG,YAAK,CAAC,SAAS,CAAC,KAAK,EAAE;QACxC,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE/B,OAAO,IAAI,CAAC,SAAS,CACnB,UAAU,EACV,IAAI,EACJ,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACzC,CAAC;AACJ,CAAC;AAfD,wDAeC;AAED,SAAS,kBAAkB,CAAC,KAA8B;IACxD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IAEhD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACpC,MAAM,KAAK,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;YAC/C,SAAS;SACV;QACD,IAAI,KAAK,CAAC,UAAU,EAAE;YACnB,KAAa,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YACxC,SAAS;SACV;QACD,IAAI,KAAK,CAAC,aAAa,EAAE;YACtB,KAAa,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;YAC3C,SAAS;SACV;QACD,kBAAkB,CAAC,KAAK,CAAC,CAAC;KAC3B;AACH,CAAC"}
package/package.json CHANGED
@@ -7,55 +7,73 @@
7
7
  "email": "compass@mongodb.com"
8
8
  },
9
9
  "homepage": "https://github.com/mongodb-js/compass",
10
- "version": "7.9.0",
10
+ "version": "7.10.0",
11
11
  "repository": {
12
12
  "type": "git",
13
13
  "url": "https://github.com/mongodb-js/compass.git"
14
14
  },
15
+ "engines": {
16
+ "node": ">=14.17.5"
17
+ },
15
18
  "license": "SSPL",
16
19
  "keywords": [
17
20
  "mongodb-js"
18
21
  ],
19
- "main": "index.js",
20
- "types": "./index.d.ts",
22
+ "main": "dist/index.js",
23
+ "compass:main": "src/index.ts",
21
24
  "exports": {
22
- "webpack": "./src/index.js",
23
- "require": "./index.js"
25
+ "require": "./dist/index.js",
26
+ "import": "./dist/.esm-wrapper.mjs"
27
+ },
28
+ "compass:exports": {
29
+ ".": "./src/index.ts"
24
30
  },
31
+ "types": "./dist/index.d.ts",
32
+ "files": [
33
+ "dist",
34
+ "package.json",
35
+ "README.md"
36
+ ],
25
37
  "scripts": {
26
- "test-check-ci": "npm test",
27
- "test": "mocha",
28
- "check": "npm run lint && npm run depcheck",
29
- "compile": "babel ./src --out-dir ./lib",
30
- "pretest": "npm run compile",
31
- "lint": "eslint \"./{src,lib,test,bin}/**/*.{js,jsx,ts,tsx}\" \"./*.js\" --no-error-on-unmatched-pattern",
32
- "depcheck": "depcheck",
33
- "test-ci": "npm run test",
38
+ "bootstrap": "npm run compile",
34
39
  "prepublishOnly": "npm run compile",
35
- "bootstrap": "npm run compile"
40
+ "clean": "rimraf dist",
41
+ "precompile": "npm run clean",
42
+ "compile": "tsc -p tsconfig.json",
43
+ "depcheck": "depcheck",
44
+ "eslint": "eslint",
45
+ "prettier": "prettier",
46
+ "lint": "npm run eslint . && npm run prettier -- --check .",
47
+ "check": "npm run lint && npm run depcheck",
48
+ "check-ci": "npm run check",
49
+ "test": "mocha",
50
+ "test-cov": "nyc -x \"**/*.spec.*\" --reporter=lcov --reporter=text --reporter=html npm run test",
51
+ "test-watch": "npm run test -- --watch",
52
+ "test-ci": "npm run test-cov",
53
+ "reformat": "npm run prettier -- --write ."
36
54
  },
37
55
  "dependencies": {
56
+ "bson": "^4.4.1",
38
57
  "debug": "4.3.0",
39
58
  "eventemitter3": "^4.0.0",
40
- "hadron-type-checker": "^6.8.0",
59
+ "hadron-type-checker": "^6.9.0",
41
60
  "lodash.foreach": "^4.5.0",
42
61
  "lodash.isarray": "^4.0.0",
43
62
  "lodash.isequal": "^4.5.0",
44
63
  "lodash.isplainobject": "^4.0.6",
45
64
  "lodash.isstring": "^4.0.1",
46
- "lodash.keys": "^4.2.0",
47
- "uuid": "^7.0.3"
65
+ "lodash.keys": "^4.2.0"
48
66
  },
49
67
  "devDependencies": {
50
- "@babel/cli": "^7.14.3",
51
- "@babel/core": "^7.14.3",
52
- "@babel/plugin-proposal-decorators": "^7.14.2",
53
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
54
- "@babel/preset-env": "^7.14.2",
55
- "@babel/preset-react": "^7.13.13",
56
- "@babel/register": "^7.13.16",
57
- "babel-loader": "^8.2.2",
58
- "bson": "^4.4.1",
68
+ "@mongodb-js/eslint-config-compass": "^0.8.0",
69
+ "@mongodb-js/mocha-config-compass": "^0.10.0",
70
+ "@mongodb-js/prettier-config-compass": "^0.5.0",
71
+ "@mongodb-js/tsconfig-compass": "^0.6.0",
72
+ "@types/lodash.isarray": "^4.0.6",
73
+ "@types/lodash.isequal": "^4.5.5",
74
+ "@types/lodash.isplainobject": "^4.0.6",
75
+ "@types/lodash.isstring": "^4.0.6",
76
+ "@types/lodash.keys": "^4.2.6",
59
77
  "chai": "^4.2.0",
60
78
  "depcheck": "^1.4.1",
61
79
  "eslint": "^7.25.0",
@@ -63,5 +81,5 @@
63
81
  "mocha": "^7.0.1",
64
82
  "moment": "^2.27.0"
65
83
  },
66
- "gitHead": "a1283df32eb52881cc00eb73f8d435f772cdbfde"
84
+ "gitHead": "2c4149184e87b8340851590663287b914d7ee63e"
67
85
  }
package/.babelrc.js DELETED
@@ -1,14 +0,0 @@
1
- module.exports = (api) => {
2
- api.cache.using(() => process.env.NODE_ENV);
3
-
4
- return {
5
- presets: [
6
- require.resolve('@babel/preset-env'),
7
- require.resolve('@babel/preset-react')
8
- ],
9
- plugins: [
10
- require.resolve('@babel/plugin-syntax-dynamic-import'),
11
- [require.resolve('@babel/plugin-proposal-decorators'), { legacy: true }]
12
- ].filter(Boolean)
13
- };
14
- }
package/.depcheckrc DELETED
@@ -1,6 +0,0 @@
1
- ignores: [
2
- "debug",
3
- "lodash.foreach",
4
- "@babel/register",
5
- "babel-loader"
6
- ]
package/.eslintignore DELETED
@@ -1 +0,0 @@
1
- lib/**/*.*
package/index.d.ts DELETED
@@ -1,192 +0,0 @@
1
- import type { TypeCastTypes, TypeCastMap } from 'hadron-type-checker';
2
-
3
- declare class EventEmitter {
4
- on(name: string, fn: Function): void;
5
- off(name: string, fn: Function): void;
6
- emit(name: string, ...args: unknown[]): void;
7
- }
8
-
9
- declare class LinkedList<T> {
10
- size: number;
11
- at(index: number): T | undefined;
12
- get(key: string): T | undefined;
13
- insertAfter(
14
- el: T,
15
- key: string,
16
- value: unknown,
17
- added?: boolean,
18
- parent?: T
19
- ): T;
20
- updateKeys(el: T, add: 1 | -1): void;
21
- handleEmptyKeys(el: T): void;
22
- insertBefore(
23
- el: T,
24
- key: string,
25
- value: unknown,
26
- added?: boolean,
27
- parent?: T
28
- ): T;
29
- insertBeginning(key: string, value: unknown, added?: boolean, parent?: T): T;
30
- insertEnd(key: string, value: unknown, added?: boolean, parent?: T): T;
31
- flush(): void;
32
- [Symbol.iterator](): IterableIterator<T>;
33
- remove(el: T): this;
34
- }
35
-
36
- declare const HadronElementEvents: {
37
- Added: 'Element::Added';
38
- Edited: 'Element::Edited';
39
- Removed: 'Element::Removed';
40
- Reverted: 'Element::Reverted';
41
- Converted: 'Element::Converted';
42
- Invalid: 'Element::Invalid';
43
- Valid: 'Element::Valid';
44
- };
45
-
46
- declare class HadronElement extends EventEmitter {
47
- constructor(
48
- key: string,
49
- value: unknown,
50
- added: boolean,
51
- parent: HadronDocument | HadronElement | null,
52
- previousElement: HadronElement | null,
53
- nextElement: HadronElement | null
54
- );
55
- uuid: string;
56
- key: string;
57
- currentKey: string;
58
- parent: HadronDocument | HadronElement | null;
59
- previousElement: HadronElement | null;
60
- nextElement: HadronElement | null;
61
- added: boolean;
62
- removed: boolean;
63
- type: TypeCastTypes;
64
- currentType: TypeCastTypes;
65
- currentTypeValid: boolean;
66
- invalidTypeMessage?: string;
67
- elements?: LinkedList<HadronElement>;
68
- originalExpandableValue?: TypeCastMap[typeof this.type];
69
- value?: TypeCastMap[typeof this.type];
70
- currentValue: TypeCastMap[typeof this.type];
71
- level: number;
72
- bulkEdit(value: string): void;
73
- cancel(): void;
74
- edit(value: unknown): void;
75
- changeType(newType: TypeCastTypes): void;
76
- get(key: string): HadronElement | undefined;
77
- at(i: number): HadronElement | undefined;
78
- next(): HadronElement;
79
- rename(key: string): void;
80
- generateObject(): unknown;
81
- generateOriginalObject(): unknown;
82
- insertAfter(element: HadronElement, key: string, value: unknown): HadronElement;
83
- insertEnd(key: string, value: unknown): HadronElement;
84
- insertPlaceholder(): HadronElement;
85
- insertSiblingPlaceholder(): HadronElement;
86
- isAdded(): boolean;
87
- isBlank(): boolean;
88
- isCurrentTypeValid(): boolean;
89
- setValid(): void;
90
- setInvalid(value: unknown, newType: string, message: string): void;
91
- isDuplicateKey(key: string): boolean;
92
- isEdited(): boolean;
93
- isLast(): boolean;
94
- isRenamed(): boolean;
95
- isRevertable(): boolean;
96
- isRemovable(): boolean;
97
- isNotActionable(): boolean;
98
- isValueEditable(): boolean;
99
- isParentEditable(): boolean;
100
- isKeyEditable(): boolean;
101
- isModified(): boolean;
102
- isRemoved(): boolean;
103
- isRoot(): false;
104
- remove(): void;
105
- revert(): void;
106
- static Events: typeof HadronElementEvents;
107
- }
108
-
109
- declare const HadronDocumentEvents: {
110
- Cancel: 'Document::Cancel';
111
- };
112
-
113
- declare class HadronDocument extends EventEmitter {
114
- constructor(doc: unknown, cloned: boolean);
115
- uuid: string;
116
- type: 'Document';
117
- currentType: 'Document';
118
- elements: LinkedList<HadronElement>;
119
- cancel(): void;
120
- apply(doc: unknown): void;
121
- generateObject(): unknown;
122
- generateOriginalObject(): unknown;
123
- generateUpdateUnlessChangedInBackgroundQuery(
124
- alwaysIncludeKeys: null | unknown
125
- ): { query: unknown; updateDoc: unknown };
126
- get(key: string): HadronElement;
127
- getChild(path: string[]): HadronElement;
128
- getId(): unknown | null;
129
- getOriginalKeysAndValuesForFieldsThatWereUpdated(
130
- alwaysIncludeKeys: null | unknown
131
- ): unknown;
132
- getOriginalKeysAndValuesForSpecifiedKeys(keys: unknown): unknown;
133
- getSetUpdateForDocumentChanges(): unknown;
134
- getStringId(): string;
135
- getUnsetUpdateForDocumentChanges(): unknown;
136
- insertPlaceholder(): HadronElement;
137
- insertEnd(key: string, value: unknown): HadronElement;
138
- insertBeginning(key: string, value: unknown): HadronElement;
139
- insertAfter(
140
- element: HadronElement,
141
- key: string,
142
- value: unknown
143
- ): HadronElement;
144
- isAdded(): false;
145
- isModified(): boolean;
146
- isRemoved(): false;
147
- isRoot(): true;
148
- next(): void;
149
- static Events: typeof HadronDocumentEvents;
150
- }
151
-
152
- export declare class Editor {
153
- constructor(element: HadronElement);
154
- element: HadronElement;
155
- edit(value: unknown): void;
156
- paste(value: string): void;
157
- size(): number;
158
- value(): unknown;
159
- start(): void;
160
- complete(): void;
161
- }
162
-
163
- declare const ElementEditor: {
164
- (element: HadronElement): {
165
- Standard: Editor;
166
- String: Editor;
167
- Decimal128: Editor;
168
- Date: Editor;
169
- Double: Editor;
170
- Int32: Editor;
171
- Int64: Editor;
172
- Null: Editor;
173
- Undefined: Editor;
174
- ObjectId: Editor;
175
- };
176
- DateEditor: typeof Editor;
177
- StandardEditor: typeof Editor;
178
- StringEditor: typeof Editor;
179
- Decimal128Editor: typeof Editor;
180
- DoubleEditor: typeof Editor;
181
- Int32Editor: typeof Editor;
182
- Int64Editor: typeof Editor;
183
- NullEditor: typeof Editor;
184
- UndefinedEditor: typeof Editor;
185
- ObjectIdEditor: typeof Editor;
186
- };
187
-
188
- export default HadronDocument;
189
- export { HadronDocumentEvents as DocumentEvents };
190
- export { HadronElement as Element };
191
- export { HadronElementEvents as ElementEvents };
192
- export { ElementEditor };
package/index.js DELETED
@@ -1 +0,0 @@
1
- module.exports = require('./lib');