manyfest 1.0.40 → 1.0.41

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 (30) hide show
  1. package/package.json +6 -3
  2. package/source/Manyfest-ObjectAddress-CheckAddressExists.js +7 -3
  3. package/source/Manyfest.js +41 -4
  4. package/tsconfig.json +15 -0
  5. package/types/Manyfest-Browser-Shim.d.ts +3 -0
  6. package/types/Manyfest-Browser-Shim.d.ts.map +1 -0
  7. package/types/Manyfest-CleanWrapCharacters.d.ts +3 -0
  8. package/types/Manyfest-CleanWrapCharacters.d.ts.map +1 -0
  9. package/types/Manyfest-HashTranslation.d.ts +29 -0
  10. package/types/Manyfest-HashTranslation.d.ts.map +1 -0
  11. package/types/Manyfest-LogToConsole.d.ts +9 -0
  12. package/types/Manyfest-LogToConsole.d.ts.map +1 -0
  13. package/types/Manyfest-ObjectAddress-CheckAddressExists.d.ts +28 -0
  14. package/types/Manyfest-ObjectAddress-CheckAddressExists.d.ts.map +1 -0
  15. package/types/Manyfest-ObjectAddress-DeleteValue.d.ts +30 -0
  16. package/types/Manyfest-ObjectAddress-DeleteValue.d.ts.map +1 -0
  17. package/types/Manyfest-ObjectAddress-GetValue.d.ts +30 -0
  18. package/types/Manyfest-ObjectAddress-GetValue.d.ts.map +1 -0
  19. package/types/Manyfest-ObjectAddress-Parser.d.ts +6 -0
  20. package/types/Manyfest-ObjectAddress-Parser.d.ts.map +1 -0
  21. package/types/Manyfest-ObjectAddress-SetValue.d.ts +27 -0
  22. package/types/Manyfest-ObjectAddress-SetValue.d.ts.map +1 -0
  23. package/types/Manyfest-ObjectAddressGeneration.d.ts +30 -0
  24. package/types/Manyfest-ObjectAddressGeneration.d.ts.map +1 -0
  25. package/types/Manyfest-ParseConditionals.d.ts +3 -0
  26. package/types/Manyfest-ParseConditionals.d.ts.map +1 -0
  27. package/types/Manyfest-SchemaManipulation.d.ts +15 -0
  28. package/types/Manyfest-SchemaManipulation.d.ts.map +1 -0
  29. package/types/Manyfest.d.ts +119 -0
  30. package/types/Manyfest.d.ts.map +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "manyfest",
3
- "version": "1.0.40",
3
+ "version": "1.0.41",
4
4
  "description": "JSON Object Manifest for Data Description and Parsing",
5
5
  "main": "source/Manyfest.js",
6
6
  "scripts": {
@@ -13,8 +13,10 @@
13
13
  "build": "npx quack build",
14
14
  "build-compatible": "GULP_CUSTOM_BUILD_TARGET=compatible ./node_modules/.bin/gulp build",
15
15
  "docker-dev-build": "docker build ./ -f Dockerfile_LUXURYCode -t manyfest-image:local",
16
- "docker-dev-shell": "docker exec -it manyfest-dev /bin/bash"
16
+ "docker-dev-shell": "docker exec -it manyfest-dev /bin/bash",
17
+ "types": "tsc -p ."
17
18
  },
19
+ "types": "types/Manyfest.d.ts",
18
20
  "repository": {
19
21
  "type": "git",
20
22
  "url": "git+https://github.com/stevenvelozo/manyfest.git"
@@ -47,7 +49,8 @@
47
49
  "fable-serviceproviderbase": "^3.0.15"
48
50
  },
49
51
  "devDependencies": {
50
- "quackage": "^1.0.41"
52
+ "quackage": "^1.0.41",
53
+ "typescript": "^5.8.3"
51
54
  },
52
55
  "author": "steven velozo <steven@velozo.com>",
53
56
  "license": "MIT",
@@ -28,9 +28,13 @@ let _MockFable = { DataFormat: require('./Manyfest-ObjectAddress-Parser.js') };
28
28
  */
29
29
  class ManyfestObjectAddressResolverCheckAddressExists
30
30
  {
31
- constructor()
31
+ constructor(pInfoLog, pErrorLog)
32
32
  {
33
- this.getObjectValueClass = new libGetObjectValue(libSimpleLog, libSimpleLog);
33
+ // Wire in logging
34
+ this.logInfo = (typeof(pInfoLog) == 'function') ? pInfoLog : libSimpleLog;
35
+ this.logError = (typeof(pErrorLog) == 'function') ? pErrorLog : libSimpleLog;
36
+
37
+ this.getObjectValueClass = new libGetObjectValue(this.logInfo, this.logError);
34
38
  }
35
39
 
36
40
  // Check if an address exists.
@@ -340,4 +344,4 @@ class ManyfestObjectAddressResolverCheckAddressExists
340
344
  }
341
345
  };
342
346
 
343
- module.exports = ManyfestObjectAddressResolverCheckAddressExists;
347
+ module.exports = ManyfestObjectAddressResolverCheckAddressExists;
@@ -15,6 +15,18 @@ let libSchemaManipulation = require('./Manyfest-SchemaManipulation.js');
15
15
 
16
16
  const _DefaultConfiguration = { Scope:'DEFAULT', Descriptors: {} }
17
17
 
18
+ /**
19
+ * @typedef {{
20
+ * Hash?: string,
21
+ * Name?: string,
22
+ * DataType?: string,
23
+ * Required?: boolean,
24
+ * Address?: string,
25
+ * Description?: string,
26
+ * [key: string]: any,
27
+ * }} ManifestDescriptor
28
+ */
29
+
18
30
  /**
19
31
  * Manyfest object address-based descriptions and manipulations.
20
32
  *
@@ -33,6 +45,9 @@ class Manyfest extends libFableServiceProviderBase
33
45
  super(pFable, pManifest, pServiceHash);
34
46
  }
35
47
 
48
+ /** @type {Record<string, any>} */
49
+ this.options;
50
+
36
51
  this.serviceType = 'Manifest';
37
52
 
38
53
  // Wire in logging
@@ -204,7 +219,12 @@ class Manyfest extends libFableServiceProviderBase
204
219
  });
205
220
  }
206
221
 
207
- // Add a descriptor to the manifest
222
+ /**
223
+ * Add a descriptor to the manifest
224
+ *
225
+ * @param {string} pAddress - The address of the element to add the descriptor for.
226
+ * @param {ManifestDescriptor} pDescriptor - The descriptor object to add.
227
+ */
208
228
  addDescriptor(pAddress, pDescriptor)
209
229
  {
210
230
  if (typeof(pDescriptor) === 'object')
@@ -246,17 +266,30 @@ class Manyfest extends libFableServiceProviderBase
246
266
  }
247
267
  }
248
268
 
269
+ /**
270
+ * @param {string} pHash - The hash of the address to resolve.
271
+ *
272
+ * @return {ManifestDescriptor} The descriptor for the address
273
+ */
249
274
  getDescriptorByHash(pHash)
250
275
  {
251
276
  return this.getDescriptor(this.resolveHashAddress(pHash));
252
277
  }
253
278
 
279
+ /**
280
+ * @param {string} pAddress - The address of the element to get the descriptor for.
281
+ *
282
+ * @return {ManifestDescriptor} The descriptor for the address
283
+ */
254
284
  getDescriptor(pAddress)
255
285
  {
256
286
  return this.elementDescriptors[pAddress];
257
287
  }
258
288
 
259
- // execute an action function for each descriptor
289
+ /**
290
+ * execute an action function for each descriptor
291
+ * @param {(d: ManifestDescriptor) => void} fAction - The action function to execute for each descriptor.
292
+ */
260
293
  eachDescriptor(fAction)
261
294
  {
262
295
  let tmpDescriptorAddresses = Object.keys(this.elementDescriptors);
@@ -489,7 +522,11 @@ class Manyfest extends libFableServiceProviderBase
489
522
  return tmpValidationData;
490
523
  }
491
524
 
492
- // Returns a default value, or, the default value for the data type (which is overridable with configuration)
525
+ /**
526
+ * Returns a default value, or, the default value for the data type (which is overridable with configuration)
527
+ *
528
+ * @param {ManifestDescriptor} pDescriptor - The descriptor definition.
529
+ */
493
530
  getDefaultValue(pDescriptor)
494
531
  {
495
532
  if (typeof(pDescriptor) != 'object')
@@ -560,4 +597,4 @@ class Manyfest extends libFableServiceProviderBase
560
597
  }
561
598
  };
562
599
 
563
- module.exports = Manyfest;
600
+ module.exports = Manyfest;
package/tsconfig.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "include": ["source"],
3
+ "compilerOptions":
4
+ {
5
+ "lib": ["es5", "es6", "dom"],
6
+ "module": "commonjs",
7
+ "allowJs": true,
8
+ "checkJs": true,
9
+ "declaration": true,
10
+ "emitDeclarationOnly": true,
11
+ "outDir": "types",
12
+ "declarationMap": true,
13
+ "resolveJsonModule": true
14
+ }
15
+ }
@@ -0,0 +1,3 @@
1
+ export = libManyfest;
2
+ import libManyfest = require("./Manyfest.js");
3
+ //# sourceMappingURL=Manyfest-Browser-Shim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-Browser-Shim.d.ts","sourceRoot":"","sources":["../source/Manyfest-Browser-Shim.js"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export = cleanWrapCharacters;
2
+ declare function cleanWrapCharacters(pCharacter: any, pString: any): any;
3
+ //# sourceMappingURL=Manyfest-CleanWrapCharacters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-CleanWrapCharacters.d.ts","sourceRoot":"","sources":["../source/Manyfest-CleanWrapCharacters.js"],"names":[],"mappings":";AAeA,yEAUC"}
@@ -0,0 +1,29 @@
1
+ export = ManyfestHashTranslation;
2
+ /**
3
+ * Hash Translation
4
+ *
5
+ * This is a very simple translation table for hashes, which allows the same schema to resolve
6
+ * differently based on a loaded translation table.
7
+ *
8
+ * This is to prevent the requirement for mutating schemas over and over again when we want to
9
+ * reuse the structure but look up data elements by different addresses.
10
+ *
11
+ * One side-effect of this is that a translation table can "override" the built-in hashes, since
12
+ * this is always used to resolve hashes before any of the functionCallByHash(pHash, ...) perform
13
+ * their lookups by hash.
14
+ *
15
+ * @class ManyfestHashTranslation
16
+ */
17
+ declare class ManyfestHashTranslation {
18
+ constructor(pInfoLog: any, pErrorLog: any);
19
+ logInfo: any;
20
+ logError: any;
21
+ translationTable: {};
22
+ translationCount(): number;
23
+ addTranslation(pTranslation: any): boolean;
24
+ removeTranslationHash(pTranslationHash: any): void;
25
+ removeTranslation(pTranslation: any): boolean;
26
+ clearTranslations(): void;
27
+ translate(pTranslation: any): any;
28
+ }
29
+ //# sourceMappingURL=Manyfest-HashTranslation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-HashTranslation.d.ts","sourceRoot":"","sources":["../source/Manyfest-HashTranslation.js"],"names":[],"mappings":";AAKA;;;;;;;;;;;;;;EAcE;AACF;IAEC,2CAOC;IAJA,aAA0E;IAC1E,cAA6E;IAEvE,qBAA0B;IAG9B,2BAGC;IAED,2CAwBC;IAED,mDAMC;IAKD,8CAuBC;IAED,0BAGC;IAED,kCAUC;CACJ"}
@@ -0,0 +1,9 @@
1
+ export = logToConsole;
2
+ /**
3
+ * @author <steven@velozo.com>
4
+ */
5
+ /**
6
+ * Manyfest simple logging shim (for browser and dependency-free running)
7
+ */
8
+ declare function logToConsole(pLogLine: any, pLogObject: any): void;
9
+ //# sourceMappingURL=Manyfest-LogToConsole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-LogToConsole.d.ts","sourceRoot":"","sources":["../source/Manyfest-LogToConsole.js"],"names":[],"mappings":";AAAA;;EAEE;AAEF;;EAEE;AAEF,oEAOC"}
@@ -0,0 +1,28 @@
1
+ export = ManyfestObjectAddressResolverCheckAddressExists;
2
+ /**
3
+ * Object Address Resolver
4
+ *
5
+ * IMPORTANT NOTE: This code is intentionally more verbose than necessary, to
6
+ * be extremely clear what is going on in the recursion for
7
+ * each of the three address resolution functions.
8
+ *
9
+ * Although there is some opportunity to repeat ourselves a
10
+ * bit less in this codebase (e.g. with detection of arrays
11
+ * versus objects versus direct properties), it can make
12
+ * debugging.. challenging. The minified version of the code
13
+ * optimizes out almost anything repeated in here. So please
14
+ * be kind and rewind... meaning please keep the codebase less
15
+ * terse and more verbose so humans can comprehend it.
16
+ *
17
+ *
18
+ * @class ManyfestObjectAddressResolverCheckAddressExists
19
+ */
20
+ declare class ManyfestObjectAddressResolverCheckAddressExists {
21
+ constructor(pInfoLog: any, pErrorLog: any);
22
+ logInfo: any;
23
+ logError: any;
24
+ getObjectValueClass: libGetObjectValue;
25
+ checkAddressExists(pObject: any, pAddress: any, pRootObject: any): any;
26
+ }
27
+ import libGetObjectValue = require("./Manyfest-ObjectAddress-GetValue.js");
28
+ //# sourceMappingURL=Manyfest-ObjectAddress-CheckAddressExists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-ObjectAddress-CheckAddressExists.d.ts","sourceRoot":"","sources":["../source/Manyfest-ObjectAddress-CheckAddressExists.js"],"names":[],"mappings":";AAUA;;;;;;;;;;;;;;;;;EAiBE;AACF;IAEC,2CAOC;IAJA,aAAyE;IACzE,cAA4E;IAE5E,uCAA6E;IAS9E,uEA0SC;CACD"}
@@ -0,0 +1,30 @@
1
+ export = ManyfestObjectAddressResolverDeleteValue;
2
+ /**
3
+ * Object Address Resolver - DeleteValue
4
+ *
5
+ * IMPORTANT NOTE: This code is intentionally more verbose than necessary, to
6
+ * be extremely clear what is going on in the recursion for
7
+ * each of the three address resolution functions.
8
+ *
9
+ * Although there is some opportunity to repeat ourselves a
10
+ * bit less in this codebase (e.g. with detection of arrays
11
+ * versus objects versus direct properties), it can make
12
+ * debugging.. challenging. The minified version of the code
13
+ * optimizes out almost anything repeated in here. So please
14
+ * be kind and rewind... meaning please keep the codebase less
15
+ * terse and more verbose so humans can comprehend it.
16
+ *
17
+ * TODO: Once we validate this pattern is good to go, break these out into
18
+ * three separate modules.
19
+ *
20
+ * @class ManyfestObjectAddressResolverDeleteValue
21
+ */
22
+ declare class ManyfestObjectAddressResolverDeleteValue {
23
+ constructor(pInfoLog: any, pErrorLog: any);
24
+ logInfo: any;
25
+ logError: any;
26
+ cleanWrapCharacters: (pCharacter: any, pString: any) => any;
27
+ checkRecordFilters(pAddress: any, pRecord: any): boolean;
28
+ deleteValueAtAddress(pObject: any, pAddress: any, pParentAddress: any): any;
29
+ }
30
+ //# sourceMappingURL=Manyfest-ObjectAddress-DeleteValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-ObjectAddress-DeleteValue.d.ts","sourceRoot":"","sources":["../source/Manyfest-ObjectAddress-DeleteValue.js"],"names":[],"mappings":";AAOA;;;;;;;;;;;;;;;;;;;EAmBE;AACF;IAEC,2CAOC;IAJA,aAAyE;IACzE,cAA4E;IAE5E,4DAA+C;IAIhD,yDAGC;IAGD,4EAkTC;CACD"}
@@ -0,0 +1,30 @@
1
+ export = ManyfestObjectAddressResolverGetValue;
2
+ /**
3
+ * Object Address Resolver - GetValue
4
+ *
5
+ * IMPORTANT NOTE: This code is intentionally more verbose than necessary, to
6
+ * be extremely clear what is going on in the recursion for
7
+ * each of the three address resolution functions.
8
+ *
9
+ * Although there is some opportunity to repeat ourselves a
10
+ * bit less in this codebase (e.g. with detection of arrays
11
+ * versus objects versus direct properties), it can make
12
+ * debugging.. challenging. The minified version of the code
13
+ * optimizes out almost anything repeated in here. So please
14
+ * be kind and rewind... meaning please keep the codebase less
15
+ * terse and more verbose so humans can comprehend it.
16
+ *
17
+ * TODO: Once we validate this pattern is good to go, break these out into
18
+ * three separate modules.
19
+ *
20
+ * @class ManyfestObjectAddressResolverGetValue
21
+ */
22
+ declare class ManyfestObjectAddressResolverGetValue {
23
+ constructor(pInfoLog: any, pErrorLog: any);
24
+ logInfo: any;
25
+ logError: any;
26
+ cleanWrapCharacters: (pCharacter: any, pString: any) => any;
27
+ checkRecordFilters(pAddress: any, pRecord: any): boolean;
28
+ getValueAtAddress(pObject: any, pAddress: any, pParentAddress: any, pRootObject: any): any;
29
+ }
30
+ //# sourceMappingURL=Manyfest-ObjectAddress-GetValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-ObjectAddress-GetValue.d.ts","sourceRoot":"","sources":["../source/Manyfest-ObjectAddress-GetValue.js"],"names":[],"mappings":";AASA;;;;;;;;;;;;;;;;;;;EAmBE;AACF;IAEC,2CAOC;IAJA,aAAyE;IACzE,cAA4E;IAE5E,4DAA+C;IAGhD,yDAGC;IAGD,2FAwkBC;CACD"}
@@ -0,0 +1,6 @@
1
+ export function stringCountSegments(pString: string, pSeparator: string, pEnclosureStartSymbolMap: object, pEnclosureEndSymbolMap: object): number;
2
+ export function stringGetFirstSegment(pString: string, pSeparator: string, pEnclosureStartSymbolMap: object, pEnclosureEndSymbolMap: object): string | 0;
3
+ export function stringGetSegments(pString: string, pSeparator: string, pEnclosureStartSymbolMap: object, pEnclosureEndSymbolMap: object): any[];
4
+ export function stringCountEnclosures(pString: string, pEnclosureStart: string, pEnclosureEnd: string): number;
5
+ export function stringGetEnclosureValueByIndex(pString: string, pEnclosureIndexToGet: number, pEnclosureStart: string, pEnclosureEnd: any): string;
6
+ //# sourceMappingURL=Manyfest-ObjectAddress-Parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-ObjectAddress-Parser.d.ts","sourceRoot":"","sources":["../source/Manyfest-ObjectAddress-Parser.js"],"names":[],"mappings":"AAoBsB,6CANV,MAAM,cACN,MAAM,4BACN,MAAM,0BACN,MAAM,UA+ChB;AAWsB,+CANZ,MAAM,cACN,MAAM,4BACN,MAAM,0BACN,MAAM,cA8ChB;AAWkB,2CANR,MAAM,cACN,MAAM,4BACN,MAAM,0BACN,MAAM,SAuDhB;AAYsB,+CALZ,MAAM,mBACN,MAAM,iBACN,MAAM,UA6BhB;AAc+B,wDANrB,MAAM,wBACN,MAAM,mBACN,MAAM,uBAEJ,MAAM,CAiElB"}
@@ -0,0 +1,27 @@
1
+ export = ManyfestObjectAddressSetValue;
2
+ /**
3
+ * Object Address Resolver - SetValue
4
+ *
5
+ * IMPORTANT NOTE: This code is intentionally more verbose than necessary, to
6
+ * be extremely clear what is going on in the recursion for
7
+ * each of the three address resolution functions.
8
+ *
9
+ * Although there is some opportunity to repeat ourselves a
10
+ * bit less in this codebase (e.g. with detection of arrays
11
+ * versus objects versus direct properties), it can make
12
+ * debugging.. challenging. The minified version of the code
13
+ * optimizes out almost anything repeated in here. So please
14
+ * be kind and rewind... meaning please keep the codebase less
15
+ * terse and more verbose so humans can comprehend it.
16
+ *
17
+ *
18
+ * @class ManyfestObjectAddressSetValue
19
+ */
20
+ declare class ManyfestObjectAddressSetValue {
21
+ constructor(pInfoLog: any, pErrorLog: any);
22
+ logInfo: any;
23
+ logError: any;
24
+ cleanWrapCharacters: (pCharacter: any, pString: any) => any;
25
+ setValueAtAddress(pObject: any, pAddress: any, pValue: any): any;
26
+ }
27
+ //# sourceMappingURL=Manyfest-ObjectAddress-SetValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-ObjectAddress-SetValue.d.ts","sourceRoot":"","sources":["../source/Manyfest-ObjectAddress-SetValue.js"],"names":[],"mappings":";AAMA;;;;;;;;;;;;;;;;;EAiBE;AACF;IAEC,2CAOC;IAJA,aAAyE;IACzE,cAA4E;IAE5E,4DAA+C;IAIhD,iEAgOC;CACD"}
@@ -0,0 +1,30 @@
1
+ export = ManyfestObjectAddressGeneration;
2
+ /**
3
+ * Object Address Generation
4
+ *
5
+ * Automagically generate addresses and properties based on a passed-in object,
6
+ * to be used for easy creation of schemas. Meant to simplify the lives of
7
+ * developers wanting to create schemas without typing a bunch of stuff.
8
+ *
9
+ * IMPORTANT NOTE: This code is intentionally more verbose than necessary, to
10
+ * be extremely clear what is going on in the recursion for
11
+ * each of the three address resolution functions.
12
+ *
13
+ * Although there is some opportunity to repeat ourselves a
14
+ * bit less in this codebase (e.g. with detection of arrays
15
+ * versus objects versus direct properties), it can make
16
+ * debugging.. challenging. The minified version of the code
17
+ * optimizes out almost anything repeated in here. So please
18
+ * be kind and rewind... meaning please keep the codebase less
19
+ * terse and more verbose so humans can comprehend it.
20
+ *
21
+ *
22
+ * @class ManyfestObjectAddressGeneration
23
+ */
24
+ declare class ManyfestObjectAddressGeneration {
25
+ constructor(pInfoLog: any, pErrorLog: any);
26
+ logInfo: any;
27
+ logError: any;
28
+ generateAddressses(pObject: any, pBaseAddress: any, pSchema: any): any;
29
+ }
30
+ //# sourceMappingURL=Manyfest-ObjectAddressGeneration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-ObjectAddressGeneration.d.ts","sourceRoot":"","sources":["../source/Manyfest-ObjectAddressGeneration.js"],"names":[],"mappings":";AAKA;;;;;;;;;;;;;;;;;;;;;EAqBE;AACF;IAEC,2CAKC;IAFA,aAAyE;IACzE,cAA4E;IAY7E,uEA+EC;CACD"}
@@ -0,0 +1,3 @@
1
+ export = parseConditionals;
2
+ declare function parseConditionals(pManyfest: any, pAddress: any, pRecord: any): boolean;
3
+ //# sourceMappingURL=Manyfest-ParseConditionals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-ParseConditionals.d.ts","sourceRoot":"","sources":["../source/Manyfest-ParseConditionals.js"],"names":[],"mappings":";AAiGA,yFAkDC"}
@@ -0,0 +1,15 @@
1
+ export = ManyfestSchemaManipulation;
2
+ /**
3
+ * Schema Manipulation Functions
4
+ *
5
+ * @class ManyfestSchemaManipulation
6
+ */
7
+ declare class ManyfestSchemaManipulation {
8
+ constructor(pInfoLog: any, pErrorLog: any);
9
+ logInfo: any;
10
+ logError: any;
11
+ resolveAddressMappings(pManyfestSchemaDescriptors: any, pAddressMapping: any): boolean;
12
+ safeResolveAddressMappings(pManyfestSchemaDescriptors: any, pAddressMapping: any): any;
13
+ mergeAddressMappings(pManyfestSchemaDescriptorsDestination: any, pManyfestSchemaDescriptorsSource: any): any;
14
+ }
15
+ //# sourceMappingURL=Manyfest-SchemaManipulation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest-SchemaManipulation.d.ts","sourceRoot":"","sources":["../source/Manyfest-SchemaManipulation.js"],"names":[],"mappings":";AAKA;;;;EAIE;AACF;IAEC,2CAKC;IAFA,aAA0E;IAC1E,cAA6E;IAqB9E,uFA8DC;IAED,uFAMC;IAED,6GAwBC;CACD"}
@@ -0,0 +1,119 @@
1
+ export = Manyfest;
2
+ /**
3
+ * @typedef {{
4
+ * Hash?: string,
5
+ * Name?: string,
6
+ * DataType?: string,
7
+ * Required?: boolean,
8
+ * Address?: string,
9
+ * Description?: string,
10
+ * [key: string]: any,
11
+ * }} ManifestDescriptor
12
+ */
13
+ /**
14
+ * Manyfest object address-based descriptions and manipulations.
15
+ *
16
+ * @class Manyfest
17
+ */
18
+ declare class Manyfest {
19
+ constructor(pFable: any, pManifest: any, pServiceHash: any);
20
+ /** @type {Record<string, any>} */
21
+ options: Record<string, any>;
22
+ serviceType: string;
23
+ logInfo: (pLogLine: any, pLogObject: any) => void;
24
+ logError: (pLogLine: any, pLogObject: any) => void;
25
+ objectAddressCheckAddressExists: libObjectAddressCheckAddressExists;
26
+ objectAddressGetValue: libObjectAddressGetValue;
27
+ objectAddressSetValue: libObjectAddressSetValue;
28
+ objectAddressDeleteValue: libObjectAddressDeleteValue;
29
+ scope: any;
30
+ elementAddresses: any[];
31
+ elementHashes: {};
32
+ elementDescriptors: {};
33
+ schemaManipulations: libSchemaManipulation;
34
+ objectAddressGeneration: libObjectAddressGeneration;
35
+ hashTranslations: libHashTranslation;
36
+ numberRegex: RegExp;
37
+ /*************************************************************************
38
+ * Schema Manifest Loading, Reading, Manipulation and Serialization Functions
39
+ */
40
+ reset(): void;
41
+ clone(): import("./Manyfest.js");
42
+ deserialize(pManifestString: any): void;
43
+ loadManifest(pManifest: any): void;
44
+ serialize(): string;
45
+ getManifest(): {
46
+ Scope: any;
47
+ Descriptors: any;
48
+ HashTranslations: any;
49
+ };
50
+ /**
51
+ * Add a descriptor to the manifest
52
+ *
53
+ * @param {string} pAddress - The address of the element to add the descriptor for.
54
+ * @param {ManifestDescriptor} pDescriptor - The descriptor object to add.
55
+ */
56
+ addDescriptor(pAddress: string, pDescriptor: ManifestDescriptor): boolean;
57
+ /**
58
+ * @param {string} pHash - The hash of the address to resolve.
59
+ *
60
+ * @return {ManifestDescriptor} The descriptor for the address
61
+ */
62
+ getDescriptorByHash(pHash: string): ManifestDescriptor;
63
+ /**
64
+ * @param {string} pAddress - The address of the element to get the descriptor for.
65
+ *
66
+ * @return {ManifestDescriptor} The descriptor for the address
67
+ */
68
+ getDescriptor(pAddress: string): ManifestDescriptor;
69
+ /**
70
+ * execute an action function for each descriptor
71
+ * @param {(d: ManifestDescriptor) => void} fAction - The action function to execute for each descriptor.
72
+ */
73
+ eachDescriptor(fAction: (d: ManifestDescriptor) => void): void;
74
+ /*************************************************************************
75
+ * Beginning of Object Manipulation (read & write) Functions
76
+ */
77
+ checkAddressExistsByHash(pObject: any, pHash: any): any;
78
+ checkAddressExists(pObject: any, pAddress: any): any;
79
+ resolveHashAddress(pHash: any): any;
80
+ getValueByHash(pObject: any, pHash: any): any;
81
+ getValueAtAddress(pObject: any, pAddress: any): any;
82
+ setValueByHash(pObject: any, pHash: any, pValue: any): any;
83
+ setValueAtAddress(pObject: any, pAddress: any, pValue: any): any;
84
+ deleteValueByHash(pObject: any, pHash: any, pValue: any): any;
85
+ deleteValueAtAddress(pObject: any, pAddress: any, pValue: any): any;
86
+ validate(pObject: any): {
87
+ Error: any;
88
+ Errors: any[];
89
+ MissingElements: any[];
90
+ };
91
+ /**
92
+ * Returns a default value, or, the default value for the data type (which is overridable with configuration)
93
+ *
94
+ * @param {ManifestDescriptor} pDescriptor - The descriptor definition.
95
+ */
96
+ getDefaultValue(pDescriptor: ManifestDescriptor): any;
97
+ populateDefaults(pObject: any, pOverwriteProperties: any): any;
98
+ populateObject(pObject: any, pOverwriteProperties: any, fFilter: any): any;
99
+ }
100
+ declare namespace Manyfest {
101
+ export { ManifestDescriptor };
102
+ }
103
+ import libObjectAddressCheckAddressExists = require("./Manyfest-ObjectAddress-CheckAddressExists.js");
104
+ import libObjectAddressGetValue = require("./Manyfest-ObjectAddress-GetValue.js");
105
+ import libObjectAddressSetValue = require("./Manyfest-ObjectAddress-SetValue.js");
106
+ import libObjectAddressDeleteValue = require("./Manyfest-ObjectAddress-DeleteValue.js");
107
+ import libSchemaManipulation = require("./Manyfest-SchemaManipulation.js");
108
+ import libObjectAddressGeneration = require("./Manyfest-ObjectAddressGeneration.js");
109
+ import libHashTranslation = require("./Manyfest-HashTranslation.js");
110
+ type ManifestDescriptor = {
111
+ Hash?: string;
112
+ Name?: string;
113
+ DataType?: string;
114
+ Required?: boolean;
115
+ Address?: string;
116
+ Description?: string;
117
+ [key: string]: any;
118
+ };
119
+ //# sourceMappingURL=Manyfest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manyfest.d.ts","sourceRoot":"","sources":["../source/Manyfest.js"],"names":[],"mappings":";AAiBA;;;;;;;;;;GAUG;AAEH;;;;EAIE;AACF;IAEC,4DAkEC;IAvDA,kCAAkC;IAClC,SADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAClB;IAEN,oBAA6B;IAGnC,kDAA2B;IAC3B,mDAA4B;IAG5B,oEAA0G;IAC1G,gDAAsF;IACtF,gDAAsF;IACtF,sDAA4F;IAwB5F,WAAsB;IACtB,wBAAiC;IACjC,kBAA8B;IAC9B,uBAAmC;IASnC,2CAAiF;IACjF,oDAA0F;IAE1F,qCAA2E;IAE3E,oBAA8D;IAG/D;;OAEG;IAGH,cAMC;IAED,iCAWC;IAGD,wCAIC;IAGD,mCAiEC;IAGD,oBAGC;IAED;;;;MAQC;IAED;;;;;OAKG;IACH,wBAHW,MAAM,eACN,kBAAkB,WAyC5B;IAED;;;;OAIG;IACH,2BAJW,MAAM,GAEL,kBAAkB,CAK7B;IAED;;;;OAIG;IACH,wBAJW,MAAM,GAEL,kBAAkB,CAK7B;IAED;;;OAGG;IACH,wBAFW,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,QAUzC;IAED;;OAEG;IAEH,wDAGC;IAGD,qDAGC;IAGD,oCA8BC;IAGD,8CAWC;IAGD,oDAiBC;IAGD,2DAGC;IAGD,iEAGC;IAGD,8DAGC;IAGD,oEAGC;IAGD;;;;MAiHC;IAED;;;;OAIG;IACH,6BAFW,kBAAkB,OA4B5B;IAGD,+DAQC;IAID,2EA0BC;CACD;;;;;;;;;;;0BAnkBY;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACzB,CAAK,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}