@azure/iot-modelsrepository 1.0.0-alpha.20241120.1 → 1.0.0-alpha.20241125.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.
- package/README.md +1 -1
- package/dist/browser/dependencyResolutionType.d.ts +9 -0
- package/dist/browser/dependencyResolutionType.d.ts.map +1 -0
- package/dist/browser/dtmiConventions.d.ts +25 -0
- package/dist/browser/dtmiConventions.d.ts.map +1 -0
- package/dist/browser/dtmiResolver.d.ts +20 -0
- package/dist/browser/dtmiResolver.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/dtmiResolver.js +3 -3
- package/dist/browser/dtmiResolver.js.map +1 -0
- package/dist/browser/exceptions.d.ts +7 -0
- package/dist/browser/exceptions.d.ts.map +1 -0
- package/dist/browser/fetcherAbstract.d.ts +11 -0
- package/dist/browser/fetcherAbstract.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/fetcherAbstract.js.map +1 -1
- package/dist/browser/fetcherFilesystem-browser.d.mts.map +1 -0
- package/dist/browser/fetcherFilesystem-browser.mjs.map +1 -0
- package/dist/browser/fetcherFilesystem.d.ts +4 -0
- package/{dist-esm/src/utils/fetcherFilesystem.browser.js → dist/browser/fetcherFilesystem.js} +1 -1
- package/dist/browser/fetcherHTTP.d.ts +16 -0
- package/dist/browser/fetcherHTTP.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/fetcherHTTP.js +2 -1
- package/dist/browser/fetcherHTTP.js.map +1 -0
- package/dist/browser/index.d.ts +41 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/index.js +3 -3
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/interfaces/getModelsOptions.d.ts +14 -0
- package/dist/browser/interfaces/getModelsOptions.d.ts.map +1 -0
- package/dist/browser/interfaces/getModelsOptions.js.map +1 -0
- package/dist/browser/interfaces/modelsRepositoryClientOptions.d.ts +25 -0
- package/dist/browser/interfaces/modelsRepositoryClientOptions.d.ts.map +1 -0
- package/dist/browser/interfaces/modelsRepositoryClientOptions.js.map +1 -0
- package/dist/browser/logger.d.ts +6 -0
- package/dist/browser/logger.d.ts.map +1 -0
- package/dist/browser/modelsRepositoryClient.d.ts +68 -0
- package/dist/browser/modelsRepositoryClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/modelsRepositoryClient.js +8 -8
- package/dist/browser/modelsRepositoryClient.js.map +1 -0
- package/dist/browser/modelsRepositoryServiceClient.d.ts +22 -0
- package/dist/browser/modelsRepositoryServiceClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/modelsRepositoryServiceClient.js +1 -1
- package/dist/browser/modelsRepositoryServiceClient.js.map +1 -0
- package/dist/browser/package.json +3 -0
- package/dist/browser/psuedoDtdl.d.ts +16 -0
- package/dist/browser/psuedoDtdl.d.ts.map +1 -0
- package/dist/browser/psuedoParser.d.ts +23 -0
- package/dist/browser/psuedoParser.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/psuedoParser.js +2 -1
- package/dist/browser/psuedoParser.js.map +1 -0
- package/dist/browser/utils/constants.d.ts +8 -0
- package/dist/browser/utils/constants.d.ts.map +1 -0
- package/dist/browser/utils/path-browser.d.mts.map +1 -0
- package/dist/browser/utils/path-browser.mjs.map +1 -0
- package/dist/browser/utils/path.d.ts +3 -0
- package/{dist-esm/src/utils/path.browser.js → dist/browser/utils/path.js} +1 -1
- package/dist/commonjs/dependencyResolutionType.d.ts +9 -0
- package/dist/commonjs/dependencyResolutionType.d.ts.map +1 -0
- package/dist/commonjs/dependencyResolutionType.js +5 -0
- package/dist/commonjs/dependencyResolutionType.js.map +1 -0
- package/dist/commonjs/dtmiConventions.d.ts +25 -0
- package/dist/commonjs/dtmiConventions.d.ts.map +1 -0
- package/dist/commonjs/dtmiConventions.js +57 -0
- package/dist/commonjs/dtmiConventions.js.map +1 -0
- package/dist/commonjs/dtmiResolver.d.ts +20 -0
- package/dist/commonjs/dtmiResolver.d.ts.map +1 -0
- package/dist/commonjs/dtmiResolver.js +55 -0
- package/dist/commonjs/dtmiResolver.js.map +1 -0
- package/dist/commonjs/exceptions.d.ts +7 -0
- package/dist/commonjs/exceptions.d.ts.map +1 -0
- package/dist/commonjs/exceptions.js +16 -0
- package/dist/commonjs/exceptions.js.map +1 -0
- package/dist/commonjs/fetcherAbstract.d.ts +11 -0
- package/dist/commonjs/fetcherAbstract.d.ts.map +1 -0
- package/dist/commonjs/fetcherAbstract.js +5 -0
- package/dist/commonjs/fetcherAbstract.js.map +1 -0
- package/dist/commonjs/fetcherFilesystem.d.ts +14 -0
- package/dist/commonjs/fetcherFilesystem.d.ts.map +1 -0
- package/dist/commonjs/fetcherFilesystem.js +56 -0
- package/dist/commonjs/fetcherFilesystem.js.map +1 -0
- package/dist/commonjs/fetcherHTTP.d.ts +16 -0
- package/dist/commonjs/fetcherHTTP.d.ts.map +1 -0
- package/dist/commonjs/fetcherHTTP.js +56 -0
- package/dist/commonjs/fetcherHTTP.js.map +1 -0
- package/dist/commonjs/index.d.ts +41 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +47 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/interfaces/getModelsOptions.d.ts +14 -0
- package/dist/commonjs/interfaces/getModelsOptions.d.ts.map +1 -0
- package/dist/commonjs/interfaces/getModelsOptions.js +5 -0
- package/dist/commonjs/interfaces/getModelsOptions.js.map +1 -0
- package/dist/commonjs/interfaces/modelsRepositoryClientOptions.d.ts +25 -0
- package/dist/commonjs/interfaces/modelsRepositoryClientOptions.d.ts.map +1 -0
- package/dist/commonjs/interfaces/modelsRepositoryClientOptions.js +5 -0
- package/dist/commonjs/interfaces/modelsRepositoryClientOptions.js.map +1 -0
- package/dist/commonjs/logger.d.ts +6 -0
- package/dist/commonjs/logger.d.ts.map +1 -0
- package/dist/commonjs/logger.js +12 -0
- package/dist/commonjs/logger.js.map +1 -0
- package/dist/commonjs/modelsRepositoryClient.d.ts +68 -0
- package/dist/commonjs/modelsRepositoryClient.d.ts.map +1 -0
- package/dist/commonjs/modelsRepositoryClient.js +179 -0
- package/dist/commonjs/modelsRepositoryClient.js.map +1 -0
- package/dist/commonjs/modelsRepositoryServiceClient.d.ts +22 -0
- package/dist/commonjs/modelsRepositoryServiceClient.d.ts.map +1 -0
- package/dist/commonjs/modelsRepositoryServiceClient.js +30 -0
- package/dist/commonjs/modelsRepositoryServiceClient.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/psuedoDtdl.d.ts +16 -0
- package/dist/commonjs/psuedoDtdl.d.ts.map +1 -0
- package/dist/commonjs/psuedoDtdl.js +5 -0
- package/dist/commonjs/psuedoDtdl.js.map +1 -0
- package/dist/commonjs/psuedoParser.d.ts +23 -0
- package/dist/commonjs/psuedoParser.d.ts.map +1 -0
- package/dist/commonjs/psuedoParser.js +102 -0
- package/dist/commonjs/psuedoParser.js.map +1 -0
- package/dist/commonjs/tsdoc-metadata.json +11 -0
- package/dist/commonjs/utils/constants.d.ts +8 -0
- package/dist/commonjs/utils/constants.d.ts.map +1 -0
- package/dist/commonjs/utils/constants.js +15 -0
- package/dist/commonjs/utils/constants.js.map +1 -0
- package/dist/commonjs/utils/path.d.ts +4 -0
- package/dist/commonjs/utils/path.d.ts.map +1 -0
- package/dist/commonjs/utils/path.js +12 -0
- package/dist/commonjs/utils/path.js.map +1 -0
- package/dist/esm/dependencyResolutionType.d.ts +9 -0
- package/dist/esm/dependencyResolutionType.d.ts.map +1 -0
- package/dist/esm/dependencyResolutionType.js +4 -0
- package/dist/esm/dependencyResolutionType.js.map +1 -0
- package/dist/esm/dtmiConventions.d.ts +25 -0
- package/dist/esm/dtmiConventions.d.ts.map +1 -0
- package/dist/esm/dtmiConventions.js +52 -0
- package/dist/esm/dtmiConventions.js.map +1 -0
- package/dist/esm/dtmiResolver.d.ts +20 -0
- package/dist/esm/dtmiResolver.d.ts.map +1 -0
- package/dist/esm/dtmiResolver.js +51 -0
- package/dist/esm/dtmiResolver.js.map +1 -0
- package/dist/esm/exceptions.d.ts +7 -0
- package/dist/esm/exceptions.d.ts.map +1 -0
- package/dist/esm/exceptions.js +12 -0
- package/dist/esm/exceptions.js.map +1 -0
- package/dist/esm/fetcherAbstract.d.ts +11 -0
- package/dist/esm/fetcherAbstract.d.ts.map +1 -0
- package/dist/esm/fetcherAbstract.js +4 -0
- package/dist/esm/fetcherAbstract.js.map +1 -0
- package/dist/esm/fetcherFilesystem.d.ts +14 -0
- package/dist/esm/fetcherFilesystem.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/fetcherFilesystem.js +3 -3
- package/dist/esm/fetcherFilesystem.js.map +1 -0
- package/dist/esm/fetcherHTTP.d.ts +16 -0
- package/dist/esm/fetcherHTTP.d.ts.map +1 -0
- package/dist/esm/fetcherHTTP.js +52 -0
- package/dist/esm/fetcherHTTP.js.map +1 -0
- package/dist/esm/index.d.ts +41 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +40 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces/getModelsOptions.d.ts +14 -0
- package/dist/esm/interfaces/getModelsOptions.d.ts.map +1 -0
- package/dist/esm/interfaces/getModelsOptions.js +4 -0
- package/dist/esm/interfaces/getModelsOptions.js.map +1 -0
- package/dist/esm/interfaces/modelsRepositoryClientOptions.d.ts +25 -0
- package/dist/esm/interfaces/modelsRepositoryClientOptions.d.ts.map +1 -0
- package/dist/esm/interfaces/modelsRepositoryClientOptions.js +4 -0
- package/dist/esm/interfaces/modelsRepositoryClientOptions.js.map +1 -0
- package/dist/esm/logger.d.ts +6 -0
- package/dist/esm/logger.d.ts.map +1 -0
- package/dist/esm/logger.js +9 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/modelsRepositoryClient.d.ts +68 -0
- package/dist/esm/modelsRepositoryClient.d.ts.map +1 -0
- package/dist/esm/modelsRepositoryClient.js +175 -0
- package/dist/esm/modelsRepositoryClient.js.map +1 -0
- package/dist/esm/modelsRepositoryServiceClient.d.ts +22 -0
- package/dist/esm/modelsRepositoryServiceClient.d.ts.map +1 -0
- package/dist/esm/modelsRepositoryServiceClient.js +26 -0
- package/dist/esm/modelsRepositoryServiceClient.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/psuedoDtdl.d.ts +16 -0
- package/dist/esm/psuedoDtdl.d.ts.map +1 -0
- package/dist/esm/psuedoDtdl.js +4 -0
- package/dist/esm/psuedoDtdl.js.map +1 -0
- package/dist/esm/psuedoParser.d.ts +23 -0
- package/dist/esm/psuedoParser.d.ts.map +1 -0
- package/dist/esm/psuedoParser.js +98 -0
- package/dist/esm/psuedoParser.js.map +1 -0
- package/dist/esm/utils/constants.d.ts +8 -0
- package/dist/esm/utils/constants.d.ts.map +1 -0
- package/dist/esm/utils/constants.js +12 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/path.d.ts +4 -0
- package/dist/esm/utils/path.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/path.js +1 -1
- package/{dist-esm/src → dist/esm}/utils/path.js.map +1 -1
- package/dist/react-native/dependencyResolutionType.d.ts +9 -0
- package/dist/react-native/dependencyResolutionType.d.ts.map +1 -0
- package/dist/react-native/dependencyResolutionType.js +4 -0
- package/dist/react-native/dependencyResolutionType.js.map +1 -0
- package/dist/react-native/dtmiConventions.d.ts +25 -0
- package/dist/react-native/dtmiConventions.d.ts.map +1 -0
- package/dist/react-native/dtmiConventions.js +52 -0
- package/dist/react-native/dtmiConventions.js.map +1 -0
- package/dist/react-native/dtmiResolver.d.ts +20 -0
- package/dist/react-native/dtmiResolver.d.ts.map +1 -0
- package/dist/react-native/dtmiResolver.js +51 -0
- package/dist/react-native/dtmiResolver.js.map +1 -0
- package/dist/react-native/exceptions.d.ts +7 -0
- package/dist/react-native/exceptions.d.ts.map +1 -0
- package/dist/react-native/exceptions.js +12 -0
- package/dist/react-native/exceptions.js.map +1 -0
- package/dist/react-native/fetcherAbstract.d.ts +11 -0
- package/dist/react-native/fetcherAbstract.d.ts.map +1 -0
- package/dist/react-native/fetcherAbstract.js +4 -0
- package/dist/react-native/fetcherAbstract.js.map +1 -0
- package/dist/react-native/fetcherFilesystem.d.ts +14 -0
- package/dist/react-native/fetcherFilesystem.d.ts.map +1 -0
- package/dist/react-native/fetcherFilesystem.js +51 -0
- package/dist/react-native/fetcherFilesystem.js.map +1 -0
- package/dist/react-native/fetcherHTTP.d.ts +16 -0
- package/dist/react-native/fetcherHTTP.d.ts.map +1 -0
- package/dist/react-native/fetcherHTTP.js +52 -0
- package/dist/react-native/fetcherHTTP.js.map +1 -0
- package/dist/react-native/index.d.ts +41 -0
- package/dist/react-native/index.d.ts.map +1 -0
- package/dist/react-native/index.js +40 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/react-native/interfaces/getModelsOptions.d.ts +14 -0
- package/dist/react-native/interfaces/getModelsOptions.d.ts.map +1 -0
- package/dist/react-native/interfaces/getModelsOptions.js +4 -0
- package/dist/react-native/interfaces/getModelsOptions.js.map +1 -0
- package/dist/react-native/interfaces/modelsRepositoryClientOptions.d.ts +25 -0
- package/dist/react-native/interfaces/modelsRepositoryClientOptions.d.ts.map +1 -0
- package/dist/react-native/interfaces/modelsRepositoryClientOptions.js +4 -0
- package/dist/react-native/interfaces/modelsRepositoryClientOptions.js.map +1 -0
- package/dist/react-native/logger.d.ts +6 -0
- package/dist/react-native/logger.d.ts.map +1 -0
- package/dist/react-native/logger.js +9 -0
- package/dist/react-native/logger.js.map +1 -0
- package/dist/react-native/modelsRepositoryClient.d.ts +68 -0
- package/dist/react-native/modelsRepositoryClient.d.ts.map +1 -0
- package/dist/react-native/modelsRepositoryClient.js +175 -0
- package/dist/react-native/modelsRepositoryClient.js.map +1 -0
- package/dist/react-native/modelsRepositoryServiceClient.d.ts +22 -0
- package/dist/react-native/modelsRepositoryServiceClient.d.ts.map +1 -0
- package/dist/react-native/modelsRepositoryServiceClient.js +26 -0
- package/dist/react-native/modelsRepositoryServiceClient.js.map +1 -0
- package/dist/react-native/package.json +3 -0
- package/dist/react-native/psuedoDtdl.d.ts +16 -0
- package/dist/react-native/psuedoDtdl.d.ts.map +1 -0
- package/dist/react-native/psuedoDtdl.js +4 -0
- package/dist/react-native/psuedoDtdl.js.map +1 -0
- package/dist/react-native/psuedoParser.d.ts +23 -0
- package/dist/react-native/psuedoParser.d.ts.map +1 -0
- package/dist/react-native/psuedoParser.js +98 -0
- package/dist/react-native/psuedoParser.js.map +1 -0
- package/dist/react-native/utils/constants.d.ts +8 -0
- package/dist/react-native/utils/constants.d.ts.map +1 -0
- package/dist/react-native/utils/constants.js +12 -0
- package/dist/react-native/utils/constants.js.map +1 -0
- package/dist/react-native/utils/path.d.ts +4 -0
- package/dist/react-native/utils/path.d.ts.map +1 -0
- package/dist/react-native/utils/path.js +8 -0
- package/dist/react-native/utils/path.js.map +1 -0
- package/package.json +66 -51
- package/dist/index.js +0 -553
- package/dist/index.js.map +0 -1
- package/dist-esm/src/dtmiResolver.js.map +0 -1
- package/dist-esm/src/fetcherFilesystem.js.map +0 -1
- package/dist-esm/src/fetcherHTTP.js.map +0 -1
- package/dist-esm/src/index.js.map +0 -1
- package/dist-esm/src/interfaces/getModelsOptions.js.map +0 -1
- package/dist-esm/src/interfaces/modelsRepositoryClientOptions.js.map +0 -1
- package/dist-esm/src/modelsRepositoryClient.js.map +0 -1
- package/dist-esm/src/modelsRepositoryServiceClient.js.map +0 -1
- package/dist-esm/src/psuedoParser.js.map +0 -1
- package/dist-esm/src/utils/fetcherFilesystem.browser.js.map +0 -1
- package/dist-esm/src/utils/path.browser.js.map +0 -1
- /package/{dist-esm/src → dist/browser}/dependencyResolutionType.js +0 -0
- /package/{dist-esm/src → dist/browser}/dependencyResolutionType.js.map +0 -0
- /package/{dist-esm/src → dist/browser}/dtmiConventions.js +0 -0
- /package/{dist-esm/src → dist/browser}/dtmiConventions.js.map +0 -0
- /package/{dist-esm/src → dist/browser}/exceptions.js +0 -0
- /package/{dist-esm/src → dist/browser}/exceptions.js.map +0 -0
- /package/{dist-esm/src → dist/browser}/fetcherAbstract.js +0 -0
- /package/{dist-esm/src → dist/browser}/interfaces/getModelsOptions.js +0 -0
- /package/{dist-esm/src → dist/browser}/interfaces/modelsRepositoryClientOptions.js +0 -0
- /package/{dist-esm/src → dist/browser}/logger.js +0 -0
- /package/{dist-esm/src → dist/browser}/logger.js.map +0 -0
- /package/{dist-esm/src → dist/browser}/psuedoDtdl.js +0 -0
- /package/{dist-esm/src → dist/browser}/psuedoDtdl.js.map +0 -0
- /package/{dist-esm/src → dist/browser}/utils/constants.js +0 -0
- /package/{dist-esm/src → dist/browser}/utils/constants.js.map +0 -0
- /package/{types → dist}/iot-modelsrepository.d.ts +0 -0
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ npm install @azure/iot-modelsrepository
|
|
|
37
37
|
// When no URI is provided for instantiation, the Azure IoT Models Repository global endpoint
|
|
38
38
|
// https://devicemodels.azure.com/ is used and the model dependency resolution
|
|
39
39
|
// configuration is set to TryFromExpanded.
|
|
40
|
-
|
|
40
|
+
import { ModelsRepositoryClient } from "@azure/iot-modelsrepository";
|
|
41
41
|
|
|
42
42
|
const client = new ModelsRepositoryClient();
|
|
43
43
|
console.log(`Initialized client point to global endpoint: ${client.repositoryLocation}`);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* either dependency resolution is disabled, and only the client will get only the model linked to the dtmi,
|
|
3
|
+
* it is enabled, and the client will resolve all dependency models linked to the dtmi within the endpoint,
|
|
4
|
+
* or it is set to tryFromExpanded, where the client will attempt to get the expanded JSON format from the endpoint,
|
|
5
|
+
* and in the event of failure will fallback on the standard enabled dependency resolution.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export type dependencyResolutionType = "disabled" | "enabled" | "tryFromExpanded";
|
|
9
|
+
//# sourceMappingURL=dependencyResolutionType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencyResolutionType.d.ts","sourceRoot":"","sources":["../../src/dependencyResolutionType.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* isValidDtmi validates if a given dtmi matches the convention.
|
|
3
|
+
* This is based on the DTMI spec:
|
|
4
|
+
* https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/dtdlv2.md#digital-twin-model-identifier
|
|
5
|
+
*
|
|
6
|
+
* @param dtmi - digital twins model identifier string
|
|
7
|
+
*/
|
|
8
|
+
export declare function isValidDtmi(dtmi: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Given the dtmi and repository uri, will get a fully qualified model uri.
|
|
11
|
+
*
|
|
12
|
+
* @param dtmi - digital twins model identifier string
|
|
13
|
+
* @param repositoryUri - base URI for repository
|
|
14
|
+
* @param expanded - is the Model URI .json or .expanded.json
|
|
15
|
+
*/
|
|
16
|
+
export declare function getModelUri(dtmi: string, repositoryUri: string, expanded?: boolean): string;
|
|
17
|
+
/**
|
|
18
|
+
* convertDtmiToPath converts a given dtmi string to a path.
|
|
19
|
+
*
|
|
20
|
+
* @param dtmi - digital twins model identifier string
|
|
21
|
+
* @param expanded - is the Model URI .json or .expanded.json
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export declare function convertDtmiToPath(dtmi: string, expanded: boolean): string;
|
|
25
|
+
//# sourceMappingURL=dtmiConventions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtmiConventions.d.ts","sourceRoot":"","sources":["../../src/dtmiConventions.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,QAAQ,GAAE,OAAe,GACxB,MAAM,CAMR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAczE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { OperationOptions } from "@azure/core-client";
|
|
2
|
+
import type { DTDL } from "./psuedoDtdl.js";
|
|
3
|
+
import type { Fetcher } from "./fetcherAbstract.js";
|
|
4
|
+
/**
|
|
5
|
+
* DtmiResolver handles reformatting the DTMIs to paths and passing options
|
|
6
|
+
* down to the configured fetcher. It is almost like a middle man between the
|
|
7
|
+
* user-facing API and the PsuedoParser (which identifies if there are sub-dependencies
|
|
8
|
+
* to resolve), and the configured fetcher, which will go out to the endpoint,
|
|
9
|
+
* either in the filesystem or through a URI, and actually get the model we want.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare class DtmiResolver {
|
|
14
|
+
private _fetcher;
|
|
15
|
+
constructor(fetcher: Fetcher);
|
|
16
|
+
resolve(dtmis: string[], expandedModel: boolean, options?: OperationOptions): Promise<{
|
|
17
|
+
[dtmi: string]: DTDL;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=dtmiResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtmiResolver.d.ts","sourceRoot":"","sources":["../../src/dtmiResolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAU;gBACd,OAAO,EAAE,OAAO;IAItB,OAAO,CACX,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,OAAO,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAiCrC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import { convertDtmiToPath } from "./dtmiConventions";
|
|
4
|
-
import { ModelError } from "./exceptions";
|
|
5
|
-
import { logger } from "./logger";
|
|
3
|
+
import { convertDtmiToPath } from "./dtmiConventions.js";
|
|
4
|
+
import { ModelError } from "./exceptions.js";
|
|
5
|
+
import { logger } from "./logger.js";
|
|
6
6
|
/**
|
|
7
7
|
* DtmiResolver handles reformatting the DTMIs to paths and passing options
|
|
8
8
|
* down to the configured fetcher. It is almost like a middle man between the
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtmiResolver.js","sourceRoot":"","sources":["../../src/dtmiResolver.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IAEvB,YAAY,OAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAe,EACf,aAAsB,EACtB,OAA0B;QAE1B,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,6BAA6B,QAAQ,EAAE,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1D,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAc,IAAe,CAAC,GAAG,CAAC,CAAC,KAAW,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC/E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7B,MAAM,IAAI,UAAU,CAClB,6CAA6C,IAAI,eAAe,QAAQ,EAAE,CAC3E,CAAC;oBACJ,CAAC;oBACD,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;wBACzB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;oBACjC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,UAAU,CAAC,0DAA0D,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAY,CAAC;gBAC3B,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC1B,MAAM,IAAI,UAAU,CAAC,4BAA4B,IAAI,cAAc,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrF,CAAC;gBAED,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions } from \"@azure/core-client\";\nimport type { DTDL } from \"./psuedoDtdl.js\";\nimport { convertDtmiToPath } from \"./dtmiConventions.js\";\nimport { ModelError } from \"./exceptions.js\";\nimport type { Fetcher } from \"./fetcherAbstract.js\";\nimport { logger } from \"./logger.js\";\n\n/**\n * DtmiResolver handles reformatting the DTMIs to paths and passing options\n * down to the configured fetcher. It is almost like a middle man between the\n * user-facing API and the PsuedoParser (which identifies if there are sub-dependencies\n * to resolve), and the configured fetcher, which will go out to the endpoint,\n * either in the filesystem or through a URI, and actually get the model we want.\n *\n * @internal\n */\nexport class DtmiResolver {\n private _fetcher: Fetcher;\n constructor(fetcher: Fetcher) {\n this._fetcher = fetcher;\n }\n\n async resolve(\n dtmis: string[],\n expandedModel: boolean,\n options?: OperationOptions,\n ): Promise<{ [dtmi: string]: DTDL }> {\n const modelMap: { [dtmi: string]: DTDL } = {};\n const dtdlPromises = dtmis.map(async (dtmi) => {\n const dtdlPath = convertDtmiToPath(dtmi, expandedModel);\n logger.info(`Model ${dtmi} located in repository at ${dtdlPath}`);\n const dtdl = await this._fetcher.fetch(dtdlPath, options);\n if (expandedModel) {\n if (Array.isArray(dtdl)) {\n const modelIds: string[] = (dtdl as DTDL[]).map((model: DTDL) => model[\"@id\"]);\n if (!modelIds.includes(dtmi)) {\n throw new ModelError(\n `DTMI mismatch on expanded DTDL - Request: ${dtmi}, Response: ${modelIds}`,\n );\n }\n for (const model of dtdl) {\n modelMap[model[\"@id\"]] = model;\n }\n } else {\n throw new ModelError(\"Expanded format should always return an array of models.\");\n }\n } else {\n const model = dtdl as DTDL;\n if (model[\"@id\"] !== dtmi) {\n throw new ModelError(`DTMI mismatch - Request: ${dtmi}, Response ${model[\"@id\"]}`);\n }\n\n modelMap[`${dtmi}`] = model;\n }\n });\n\n await Promise.all(dtdlPromises);\n return modelMap;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAK5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OperationOptions } from "@azure/core-client";
|
|
2
|
+
import type { DTDL } from "./psuedoDtdl.js";
|
|
3
|
+
/**
|
|
4
|
+
* Base Interface for Fetchers, which fetch models from endpoints.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export interface Fetcher {
|
|
9
|
+
fetch(path: string, options?: OperationOptions): Promise<DTDL | DTDL[]>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=fetcherAbstract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcherAbstract.d.ts","sourceRoot":"","sources":["../../src/fetcherAbstract.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;CACzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcherAbstract.js","sourceRoot":"","sources":["../../src/fetcherAbstract.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions } from \"@azure/core-client\";\nimport type { DTDL } from \"./psuedoDtdl\";\n\n/**\n * Base Interface for Fetchers, which fetch models from endpoints.\n *\n * @internal\n */\nexport interface Fetcher {\n fetch(path: string, options?: OperationOptions): Promise<DTDL | DTDL[]>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"fetcherAbstract.js","sourceRoot":"","sources":["../../src/fetcherAbstract.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions } from \"@azure/core-client\";\nimport type { DTDL } from \"./psuedoDtdl.js\";\n\n/**\n * Base Interface for Fetchers, which fetch models from endpoints.\n *\n * @internal\n */\nexport interface Fetcher {\n fetch(path: string, options?: OperationOptions): Promise<DTDL | DTDL[]>;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcherFilesystem-browser.d.mts","sourceRoot":"","sources":["../../src/fetcherFilesystem-browser.mts"],"names":[],"mappings":"AAGA,qBAAa,iBAAiB;;CAI7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcherFilesystem-browser.mjs","sourceRoot":"","sources":["../../src/fetcherFilesystem-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,OAAO,iBAAiB;IAC5B;QACE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class FilesystemFetcher {\n constructor() {\n throw new Error(\"FilesystemFetcher is not supported in browser\");\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { OperationOptions, ServiceClient } from "@azure/core-client";
|
|
2
|
+
import type { Fetcher } from "./fetcherAbstract.js";
|
|
3
|
+
import type { DTDL } from "./psuedoDtdl.js";
|
|
4
|
+
/**
|
|
5
|
+
* The HTTP Fetcher implements the Fetcher interface to
|
|
6
|
+
* retrieve models through HTTP calls.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare class HttpFetcher implements Fetcher {
|
|
11
|
+
private _client;
|
|
12
|
+
private _baseURL;
|
|
13
|
+
constructor(baseURL: string, client: ServiceClient);
|
|
14
|
+
fetch(path: string, options?: OperationOptions): Promise<DTDL | DTDL[]>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=fetcherHTTP.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcherHTTP.d.ts","sourceRoot":"","sources":["../../src/fetcherHTTP.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAS1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAS;gBAGb,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAK5C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;CAiC9E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import { createHttpHeaders, createPipelineRequest, RestError } from "@azure/core-rest-pipeline";
|
|
4
|
-
import { logger } from "./logger";
|
|
4
|
+
import { logger } from "./logger.js";
|
|
5
5
|
/**
|
|
6
6
|
* The HTTP Fetcher implements the Fetcher interface to
|
|
7
7
|
* retrieve models through HTTP calls.
|
|
@@ -9,6 +9,7 @@ import { logger } from "./logger";
|
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
11
|
export class HttpFetcher {
|
|
12
|
+
// eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters
|
|
12
13
|
constructor(baseURL, client) {
|
|
13
14
|
this._client = client;
|
|
14
15
|
this._baseURL = baseURL;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcherHTTP.js","sourceRoot":"","sources":["../../src/fetcherHTTP.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AASlC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IAItB,wEAAwE;IACxE,YAAY,OAAe,EAAE,MAAqB;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAA0B;;QAClD,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,uBAAuB,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC;QACzC,MAAM,aAAa,GAAgB,KAAK,CAAC;QACzC,MAAM,aAAa,GAAgB,iBAAiB,CAAC,MAAA,OAAO,CAAC,cAAc,0CAAE,aAAa,CAAC,CAAC;QAC5F,MAAM,cAAc,GAAG;YACrB,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,MAAA,OAAO,CAAC,cAAc,0CAAE,OAAO;YACxC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,uBAAuB,EAAE,IAAI;SAC9B,CAAC;QACF,MAAM,OAAO,GAAoB,qBAAqB,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,GAAG,GAAqB,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtE,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAkB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3D,OAAO,UAAU,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CAAC,+CAA+C,EAAE;gBACnE,IAAI,EAAE,kBAAkB;gBACxB,UAAU,EAAE,GAAG,CAAC,MAAM;gBACtB,QAAQ,EAAE,GAAG;gBACb,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions, ServiceClient } from \"@azure/core-client\";\nimport type {\n HttpHeaders,\n HttpMethods,\n PipelineRequest,\n PipelineResponse,\n} from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders, createPipelineRequest, RestError } from \"@azure/core-rest-pipeline\";\nimport { logger } from \"./logger.js\";\nimport type { Fetcher } from \"./fetcherAbstract.js\";\nimport type { DTDL } from \"./psuedoDtdl.js\";\n\n/**\n * The HTTP Fetcher implements the Fetcher interface to\n * retrieve models through HTTP calls.\n *\n * @internal\n */\nexport class HttpFetcher implements Fetcher {\n private _client: ServiceClient;\n private _baseURL: string;\n\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n constructor(baseURL: string, client: ServiceClient) {\n this._client = client;\n this._baseURL = baseURL;\n }\n\n async fetch(path: string, options?: OperationOptions): Promise<DTDL | DTDL[]> {\n logger.info(`Fetching ${path} from remote endpoint`);\n if (!options) {\n options = {};\n }\n const myURL = this._baseURL + \"/\" + path;\n const requestMethod: HttpMethods = \"GET\";\n const requestHeader: HttpHeaders = createHttpHeaders(options.requestOptions?.customHeaders);\n const requestOptions = {\n url: myURL,\n method: requestMethod,\n headers: requestHeader,\n timeout: options.requestOptions?.timeout,\n abortSignal: options.abortSignal,\n tracingOptions: options.tracingOptions,\n allowInsecureConnection: true,\n };\n const request: PipelineRequest = createPipelineRequest(requestOptions);\n const res: PipelineResponse = await this._client.sendRequest(request);\n\n if (res.status >= 200 && res.status < 400) {\n const dtdlAsString = res.bodyAsText || \"\";\n const parsedDtdl: DTDL | DTDL[] = JSON.parse(dtdlAsString);\n return parsedDtdl;\n } else {\n throw new RestError(\"Error on HTTP Request in remote model fetcher\", {\n code: \"ResourceNotFound\",\n statusCode: res.status,\n response: res,\n request: request,\n });\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is the ModelsRepositoryClient Library for JavaScript.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This ModelsRepositoryClient is built around getting DTDL Models from a user-specified
|
|
6
|
+
* location. The two main variables are the repositoryLocation, which is a path or URI to either a remote
|
|
7
|
+
* or local repository where the models are located, and the dtmis, which can be one or more dtmis that
|
|
8
|
+
* will be mapped to specific models contained in the repository location that the user wishes to get.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* Inline code:
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import lib
|
|
14
|
+
* import {ModelsRepositoryClient} from "../../../src";
|
|
15
|
+
*
|
|
16
|
+
* const repositoryEndpoint = "devicemodels.azure.com";
|
|
17
|
+
* const dtmi = process.argv[2] || "dtmi:azure:DeviceManagement:DeviceInformation;1";
|
|
18
|
+
*
|
|
19
|
+
* console.log(repositoryEndpoint, dtmi);
|
|
20
|
+
*
|
|
21
|
+
* async function main() {
|
|
22
|
+
* const client = new ModelsRepositoryClient({repositoryLocation: repositoryEndpoint});
|
|
23
|
+
* const result = await client.getModels(dtmi, {dependencyResolution: 'tryFromExpanded'});
|
|
24
|
+
* console.log(result);
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* main().catch((err) => {
|
|
28
|
+
* console.error("The sample encountered an error:", err);
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @packageDocumentation
|
|
34
|
+
*/
|
|
35
|
+
export { ModelsRepositoryClient } from "./modelsRepositoryClient.js";
|
|
36
|
+
export { GetModelsOptions } from "./interfaces/getModelsOptions.js";
|
|
37
|
+
export { ModelsRepositoryClientOptions } from "./interfaces/modelsRepositoryClientOptions.js";
|
|
38
|
+
export { dependencyResolutionType } from "./dependencyResolutionType.js";
|
|
39
|
+
export { ModelError } from "./exceptions.js";
|
|
40
|
+
export { getModelUri, isValidDtmi } from "./dtmiConventions.js";
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
*
|
|
35
35
|
* @packageDocumentation
|
|
36
36
|
*/
|
|
37
|
-
export { ModelsRepositoryClient } from "./modelsRepositoryClient";
|
|
38
|
-
export { ModelError } from "./exceptions";
|
|
39
|
-
export { getModelUri, isValidDtmi } from "./dtmiConventions";
|
|
37
|
+
export { ModelsRepositoryClient } from "./modelsRepositoryClient.js";
|
|
38
|
+
export { ModelError } from "./exceptions.js";
|
|
39
|
+
export { getModelUri, isValidDtmi } from "./dtmiConventions.js";
|
|
40
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAIrE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * This is the ModelsRepositoryClient Library for JavaScript.\n *\n * @remarks\n * This ModelsRepositoryClient is built around getting DTDL Models from a user-specified\n * location. The two main variables are the repositoryLocation, which is a path or URI to either a remote\n * or local repository where the models are located, and the dtmis, which can be one or more dtmis that\n * will be mapped to specific models contained in the repository location that the user wishes to get.\n *\n * @example\n * Inline code:\n * ```typescript\n * import lib\n * import {ModelsRepositoryClient} from \"../../../src\";\n *\n * const repositoryEndpoint = \"devicemodels.azure.com\";\n * const dtmi = process.argv[2] || \"dtmi:azure:DeviceManagement:DeviceInformation;1\";\n *\n * console.log(repositoryEndpoint, dtmi);\n *\n * async function main() {\n * const client = new ModelsRepositoryClient({repositoryLocation: repositoryEndpoint});\n * const result = await client.getModels(dtmi, {dependencyResolution: 'tryFromExpanded'});\n * console.log(result);\n * }\n *\n * main().catch((err) => {\n * console.error(\"The sample encountered an error:\", err);\n * });\n *\n * ```\n *\n * @packageDocumentation\n */\n\nexport { ModelsRepositoryClient } from \"./modelsRepositoryClient.js\";\nexport { GetModelsOptions } from \"./interfaces/getModelsOptions.js\";\nexport { ModelsRepositoryClientOptions } from \"./interfaces/modelsRepositoryClientOptions.js\";\nexport { dependencyResolutionType } from \"./dependencyResolutionType.js\";\nexport { ModelError } from \"./exceptions.js\";\nexport { getModelUri, isValidDtmi } from \"./dtmiConventions.js\";\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { OperationOptions } from "@azure/core-client";
|
|
2
|
+
import type { dependencyResolutionType } from "../dependencyResolutionType.js";
|
|
3
|
+
/**
|
|
4
|
+
* Options for getting models.
|
|
5
|
+
*/
|
|
6
|
+
export interface GetModelsOptions extends OperationOptions {
|
|
7
|
+
/**
|
|
8
|
+
* This is the format of dependency resolution (no dependency resolution, standard dependency
|
|
9
|
+
* resolution, resolution using the expanded json format) that will be used when retrieving
|
|
10
|
+
* models. This overwrites the default dependencyResolution settings of the client.
|
|
11
|
+
*/
|
|
12
|
+
dependencyResolution?: dependencyResolutionType;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=getModelsOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getModelsOptions.d.ts","sourceRoot":"","sources":["../../../src/interfaces/getModelsOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getModelsOptions.js","sourceRoot":"","sources":["../../../src/interfaces/getModelsOptions.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions } from \"@azure/core-client\";\nimport type { dependencyResolutionType } from \"../dependencyResolutionType.js\";\n\n/**\n * Options for getting models.\n */\nexport interface GetModelsOptions extends OperationOptions {\n /**\n * This is the format of dependency resolution (no dependency resolution, standard dependency\n * resolution, resolution using the expanded json format) that will be used when retrieving\n * models. This overwrites the default dependencyResolution settings of the client.\n */\n dependencyResolution?: dependencyResolutionType;\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CommonClientOptions } from "@azure/core-client";
|
|
2
|
+
import type { dependencyResolutionType } from "../dependencyResolutionType.js";
|
|
3
|
+
/**
|
|
4
|
+
* Options for creating a Pipeline to use with ModelsRepositoryClient.
|
|
5
|
+
* It serves to configure the client itself, for instance by specifying
|
|
6
|
+
* the repository location to use on any getModels call.
|
|
7
|
+
*/
|
|
8
|
+
export interface ModelsRepositoryClientOptions extends CommonClientOptions {
|
|
9
|
+
/**
|
|
10
|
+
* This is the base location (URI or path) that requests will be made against for this client.
|
|
11
|
+
*/
|
|
12
|
+
repositoryLocation?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Though currently not relevant, can be used in future iterations to specify the API Version
|
|
15
|
+
* of the service.
|
|
16
|
+
*/
|
|
17
|
+
apiVersion?: string;
|
|
18
|
+
/**
|
|
19
|
+
* This is the format of dependency resolution (no dependency resolution, standard dependency
|
|
20
|
+
* resolution, resolution using the expanded json format) that will be used when retrieving
|
|
21
|
+
* models.
|
|
22
|
+
*/
|
|
23
|
+
dependencyResolution?: dependencyResolutionType;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=modelsRepositoryClientOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelsRepositoryClientOptions.d.ts","sourceRoot":"","sources":["../../../src/interfaces/modelsRepositoryClientOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;GAIG;AACH,MAAM,WAAW,6BAA8B,SAAQ,mBAAmB;IACxE;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelsRepositoryClientOptions.js","sourceRoot":"","sources":["../../../src/interfaces/modelsRepositoryClientOptions.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { CommonClientOptions } from \"@azure/core-client\";\nimport type { dependencyResolutionType } from \"../dependencyResolutionType.js\";\n\n/**\n * Options for creating a Pipeline to use with ModelsRepositoryClient.\n * It serves to configure the client itself, for instance by specifying\n * the repository location to use on any getModels call.\n */\nexport interface ModelsRepositoryClientOptions extends CommonClientOptions {\n /**\n * This is the base location (URI or path) that requests will be made against for this client.\n */\n repositoryLocation?: string;\n /**\n * Though currently not relevant, can be used in future iterations to specify the API Version\n * of the service.\n */\n apiVersion?: string;\n\n /**\n * This is the format of dependency resolution (no dependency resolution, standard dependency\n * resolution, resolution using the expanded json format) that will be used when retrieving\n * models.\n */\n dependencyResolution?: dependencyResolutionType;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,MAAM,qCAA6C,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { dependencyResolutionType } from "./dependencyResolutionType.js";
|
|
2
|
+
import type { ModelsRepositoryClientOptions } from "./interfaces/modelsRepositoryClientOptions.js";
|
|
3
|
+
import type { GetModelsOptions } from "./interfaces/getModelsOptions.js";
|
|
4
|
+
/**
|
|
5
|
+
* Initializes a new instance of the IoT Models Repository Client.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ModelsRepositoryClient {
|
|
8
|
+
private _repositoryLocation;
|
|
9
|
+
private _dependencyResolution;
|
|
10
|
+
private _apiVersion;
|
|
11
|
+
private _fetcher;
|
|
12
|
+
private _resolver;
|
|
13
|
+
private _pseudoParser;
|
|
14
|
+
/**
|
|
15
|
+
* The ModelsRepositoryClient constructor
|
|
16
|
+
* @param options - The models repository client options that govern the behavior of the client.
|
|
17
|
+
*/
|
|
18
|
+
constructor(options?: ModelsRepositoryClientOptions);
|
|
19
|
+
/**
|
|
20
|
+
* improves the readability of the constructor.
|
|
21
|
+
* based on a boolean returns the proper dependency resolution setting string.
|
|
22
|
+
*/
|
|
23
|
+
private _checkDefaultDependencyResolution;
|
|
24
|
+
/**
|
|
25
|
+
* Though currently not relevant, can specify API Version for communicating with
|
|
26
|
+
* the service.
|
|
27
|
+
*/
|
|
28
|
+
get apiVersion(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Configured repository location for this instance. Will be used as the endpoint to get the models from.
|
|
31
|
+
*/
|
|
32
|
+
get repositoryLocation(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Configured type of dependency resolution for this instance. Dictates how the client deals with model dependencies.
|
|
35
|
+
*/
|
|
36
|
+
get dependencyResolution(): dependencyResolutionType;
|
|
37
|
+
/**
|
|
38
|
+
* Because of the local / remote optionality of this client, the service client
|
|
39
|
+
* must be dynamically generated based on the repository location. If the provided
|
|
40
|
+
* repository location is a remote location, then this private method will be used
|
|
41
|
+
* to create the IoT Models Repository Service Client.
|
|
42
|
+
*/
|
|
43
|
+
private _createClient;
|
|
44
|
+
/**
|
|
45
|
+
* The fetcher is an abstraction necessary since this client can communicate with remote or local
|
|
46
|
+
* Model Repositories based on the provided location. It will analyze the provided location based
|
|
47
|
+
* on that create either an HTTP Fetcher, which uses the IoT Models Repository Service Client,
|
|
48
|
+
* or a Filesystem Fetcher.
|
|
49
|
+
*/
|
|
50
|
+
private _createFetcher;
|
|
51
|
+
/**
|
|
52
|
+
* Retrieve one or more models based upon on or more provided dtmis.
|
|
53
|
+
* @param dtmis - one dtmi represented as a string
|
|
54
|
+
* @param options - options to govern behavior of model getter.
|
|
55
|
+
*/
|
|
56
|
+
getModels(dtmis: string, options?: GetModelsOptions): Promise<{
|
|
57
|
+
[dtmi: string]: unknown;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Retrieve one or more models based upon on or more provided dtmis.
|
|
61
|
+
* @param dtmis - dtmi strings in an array.
|
|
62
|
+
* @param options - options to govern behavior of model getter.
|
|
63
|
+
*/
|
|
64
|
+
getModels(dtmis: string[], options?: GetModelsOptions): Promise<{
|
|
65
|
+
[dtmi: string]: unknown;
|
|
66
|
+
}>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=modelsRepositoryClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelsRepositoryClient.d.ts","sourceRoot":"","sources":["../../src/modelsRepositoryClient.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAG9E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAInG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGzE;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,aAAa,CAAe;IAEpC;;;OAGG;gBACS,OAAO,GAAE,6BAAkC;IAevD;;;OAGG;IACH,OAAO,CAAC,iCAAiC;IAQzC;;;OAGG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;OAEG;IACH,IAAI,oBAAoB,IAAI,wBAAwB,CAEnD;IAED;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA0BrB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAkCtB;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAChG;;;;OAIG;IACG,SAAS,CACb,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAiDxC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import { __rest } from "tslib";
|
|
4
|
-
import { DEFAULT_API_VERSION, DEFAULT_REPOSITORY_LOCATION, DEFAULT_USER_AGENT, DEPENDENCY_MODE_DISABLED, DEPENDENCY_MODE_ENABLED, DEPENDENCY_MODE_TRY_FROM_EXPANDED, } from "./utils/constants";
|
|
4
|
+
import { DEFAULT_API_VERSION, DEFAULT_REPOSITORY_LOCATION, DEFAULT_USER_AGENT, DEPENDENCY_MODE_DISABLED, DEPENDENCY_MODE_ENABLED, DEPENDENCY_MODE_TRY_FROM_EXPANDED, } from "./utils/constants.js";
|
|
5
5
|
import { createClientPipeline } from "@azure/core-client";
|
|
6
|
-
import { isLocalPath, normalize } from "./utils/path";
|
|
7
|
-
import { FilesystemFetcher } from "./fetcherFilesystem";
|
|
8
|
-
import { DtmiResolver } from "./dtmiResolver";
|
|
9
|
-
import { PseudoParser } from "./psuedoParser";
|
|
10
|
-
import { logger } from "./logger";
|
|
11
|
-
import { IoTModelsRepositoryServiceClient } from "./modelsRepositoryServiceClient";
|
|
12
|
-
import { HttpFetcher } from "./fetcherHTTP";
|
|
6
|
+
import { isLocalPath, normalize } from "./utils/path.js";
|
|
7
|
+
import { FilesystemFetcher } from "./fetcherFilesystem.js";
|
|
8
|
+
import { DtmiResolver } from "./dtmiResolver.js";
|
|
9
|
+
import { PseudoParser } from "./psuedoParser.js";
|
|
10
|
+
import { logger } from "./logger.js";
|
|
11
|
+
import { IoTModelsRepositoryServiceClient } from "./modelsRepositoryServiceClient.js";
|
|
12
|
+
import { HttpFetcher } from "./fetcherHTTP.js";
|
|
13
13
|
/**
|
|
14
14
|
* Initializes a new instance of the IoT Models Repository Client.
|
|
15
15
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelsRepositoryClient.js","sourceRoot":"","sources":["../../src/modelsRepositoryClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n DEFAULT_API_VERSION,\n DEFAULT_REPOSITORY_LOCATION,\n DEFAULT_USER_AGENT,\n DEPENDENCY_MODE_DISABLED,\n DEPENDENCY_MODE_ENABLED,\n DEPENDENCY_MODE_TRY_FROM_EXPANDED,\n} from \"./utils/constants.js\";\nimport type { InternalClientPipelineOptions } from \"@azure/core-client\";\nimport { createClientPipeline } from \"@azure/core-client\";\nimport type { Fetcher } from \"./fetcherAbstract.js\";\nimport { isLocalPath, normalize } from \"./utils/path.js\";\nimport { FilesystemFetcher } from \"./fetcherFilesystem.js\";\nimport type { dependencyResolutionType } from \"./dependencyResolutionType.js\";\nimport { DtmiResolver } from \"./dtmiResolver.js\";\nimport { PseudoParser } from \"./psuedoParser.js\";\nimport type { ModelsRepositoryClientOptions } from \"./interfaces/modelsRepositoryClientOptions.js\";\nimport { logger } from \"./logger.js\";\nimport { IoTModelsRepositoryServiceClient } from \"./modelsRepositoryServiceClient.js\";\nimport { HttpFetcher } from \"./fetcherHTTP.js\";\nimport type { GetModelsOptions } from \"./interfaces/getModelsOptions.js\";\nimport type { DTDL } from \"./psuedoDtdl.js\";\n\n/**\n * Initializes a new instance of the IoT Models Repository Client.\n */\nexport class ModelsRepositoryClient {\n private _repositoryLocation: string;\n private _dependencyResolution: dependencyResolutionType;\n private _apiVersion: string;\n private _fetcher: Fetcher;\n private _resolver: DtmiResolver;\n private _pseudoParser: PseudoParser;\n\n /**\n * The ModelsRepositoryClient constructor\n * @param options - The models repository client options that govern the behavior of the client.\n */\n constructor(options: ModelsRepositoryClientOptions = {}) {\n this._repositoryLocation = options.repositoryLocation || DEFAULT_REPOSITORY_LOCATION;\n logger.info(`Client configured for repository location ${this._repositoryLocation}`);\n this._dependencyResolution =\n options.dependencyResolution ||\n this._checkDefaultDependencyResolution(!!options.repositoryLocation);\n logger.info(`Client configured for dependency mode: ${this._dependencyResolution}`);\n this._fetcher = this._createFetcher(this._repositoryLocation, options);\n this._resolver = new DtmiResolver(this._fetcher);\n this._pseudoParser = new PseudoParser(this._resolver);\n\n // Store api version here (for now). Currently doesn't do anything\n this._apiVersion = options.apiVersion || DEFAULT_API_VERSION;\n }\n\n /**\n * improves the readability of the constructor.\n * based on a boolean returns the proper dependency resolution setting string.\n */\n private _checkDefaultDependencyResolution(customRepository: boolean): dependencyResolutionType {\n if (customRepository) {\n return \"enabled\";\n } else {\n return \"tryFromExpanded\";\n }\n }\n\n /**\n * Though currently not relevant, can specify API Version for communicating with\n * the service.\n */\n get apiVersion(): string {\n return this._apiVersion;\n }\n\n /**\n * Configured repository location for this instance. Will be used as the endpoint to get the models from.\n */\n get repositoryLocation(): string {\n return this._repositoryLocation;\n }\n\n /**\n * Configured type of dependency resolution for this instance. Dictates how the client deals with model dependencies.\n */\n get dependencyResolution(): dependencyResolutionType {\n return this._dependencyResolution;\n }\n\n /**\n * Because of the local / remote optionality of this client, the service client\n * must be dynamically generated based on the repository location. If the provided\n * repository location is a remote location, then this private method will be used\n * to create the IoT Models Repository Service Client.\n */\n private _createClient(options: ModelsRepositoryClientOptions): IoTModelsRepositoryServiceClient {\n const { ...pipelineOptions } = options;\n\n if (!pipelineOptions.userAgentOptions) {\n pipelineOptions.userAgentOptions = {};\n }\n if (pipelineOptions.userAgentOptions.userAgentPrefix) {\n pipelineOptions.userAgentOptions.userAgentPrefix = `${pipelineOptions.userAgentOptions.userAgentPrefix} ${DEFAULT_USER_AGENT}`;\n } else {\n pipelineOptions.userAgentOptions.userAgentPrefix = DEFAULT_USER_AGENT;\n }\n\n const internalPipelineOptions: InternalClientPipelineOptions = {\n ...pipelineOptions,\n ...{\n loggingOptions: {\n logger: logger.info,\n },\n },\n };\n\n const pipeline = createClientPipeline(internalPipelineOptions);\n const client = new IoTModelsRepositoryServiceClient(this._repositoryLocation, { pipeline });\n return client;\n }\n\n /**\n * The fetcher is an abstraction necessary since this client can communicate with remote or local\n * Model Repositories based on the provided location. It will analyze the provided location based\n * on that create either an HTTP Fetcher, which uses the IoT Models Repository Service Client,\n * or a Filesystem Fetcher.\n */\n private _createFetcher(location: string, options: ModelsRepositoryClientOptions): Fetcher {\n let locationURL;\n let fetcher;\n if (isLocalPath(location)) {\n // POSIX Filesystem Path or Windows Filesystem Path\n logger.info(`Repository location identified as filesystem path - using FilesystemFetcher`);\n fetcher = new FilesystemFetcher(normalize(location));\n } else {\n locationURL = new URL(location);\n const prot = locationURL.protocol;\n if (prot.includes(\"http\") || prot.includes(\"https\")) {\n logger.info(`Repository location identified as HTTP/HTTPS endpoint - using HttpFetcher`);\n const client = this._createClient(options);\n fetcher = new HttpFetcher(location, client);\n } else if (prot.includes(\"file\")) {\n // filesystem URI\n logger.info(\"Repository Location identified as filesystem URI - using FilesystemFetcher\");\n fetcher = new FilesystemFetcher(location);\n } else if (prot === \"\" && location.search(/\\.[a-zA-Z]{2,63}$/)) {\n // Web URL with protocol unspecified - default to HTTPS\n logger.info(\n \"Repository Location identified as remote endpoint without protocol specified - using HttpFetcher\",\n );\n const fLocation = \"https://\" + location;\n const client = this._createClient(options);\n fetcher = new HttpFetcher(fLocation, client);\n } else {\n throw new EvalError(`Unable to identify location: ${location}`);\n }\n }\n\n return fetcher;\n }\n\n /**\n * Retrieve one or more models based upon on or more provided dtmis.\n * @param dtmis - one dtmi represented as a string\n * @param options - options to govern behavior of model getter.\n */\n async getModels(dtmis: string, options?: GetModelsOptions): Promise<{ [dtmi: string]: unknown }>;\n /**\n * Retrieve one or more models based upon on or more provided dtmis.\n * @param dtmis - dtmi strings in an array.\n * @param options - options to govern behavior of model getter.\n */\n async getModels(\n dtmis: string[],\n options?: GetModelsOptions,\n ): Promise<{ [dtmi: string]: unknown }>;\n async getModels(\n dtmis: string | string[],\n options?: GetModelsOptions,\n ): Promise<{ [dtmi: string]: unknown }> {\n let modelMap: { [dtmi: string]: unknown };\n if (!Array.isArray(dtmis)) {\n dtmis = [dtmis];\n }\n\n const dependencyResolution = options?.dependencyResolution || this._dependencyResolution;\n\n if (dependencyResolution === DEPENDENCY_MODE_DISABLED) {\n logger.info(\"Getting models w/ dependency resolution mode: disabled\");\n logger.info(`Retreiving model(s): ${dtmis}...`);\n modelMap = await this._resolver.resolve(dtmis, false, options);\n } else if (dependencyResolution === DEPENDENCY_MODE_ENABLED) {\n logger.info(`Getting models w/ dependency resolution mode: enabled`);\n logger.info(`Retreiving model(s): ${dtmis}...`);\n const baseModelMap = await this._resolver.resolve(dtmis, false, options);\n const baseModelList = Object.keys(baseModelMap).map((key) => baseModelMap[key]);\n logger.info(`Retreiving model dependencies for ${dtmis}...`);\n modelMap = await this._pseudoParser.expand(baseModelList, false);\n } else if (dependencyResolution === DEPENDENCY_MODE_TRY_FROM_EXPANDED) {\n logger.info(`Getting models w/ dependency resolution mode: tryFromExpanded`);\n try {\n logger.info(`Retreiving expanded model(s): ${dtmis}...`);\n modelMap = await this._resolver.resolve(dtmis, true, options);\n } catch (e: any) {\n if (e.name === \"RestError\" && e.code === \"ResouceNotFound\") {\n logger.info(\"Could not retrieve model(s) from expanded model DTDL - \");\n const baseModelMap: { [dtmi: string]: unknown } = await this._resolver.resolve(\n dtmis,\n false,\n options,\n );\n const baseModelList = Object.keys(baseModelMap).map((key) => baseModelMap[key]);\n logger.info(`Retreiving model dependencies for ${dtmis}...`);\n modelMap = await this._pseudoParser.expand(baseModelList as DTDL[], true);\n } else {\n throw e;\n }\n }\n } else {\n throw EvalError(`Invalid dependency resolution mode: ${dependencyResolution}`);\n }\n\n return modelMap;\n }\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ServiceClientOptions } from "@azure/core-client";
|
|
2
|
+
import { ServiceClient } from "@azure/core-client";
|
|
3
|
+
interface IoTModelsRepositoryServiceClientOptions extends ServiceClientOptions {
|
|
4
|
+
version?: string;
|
|
5
|
+
endpoint?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare class IoTModelsRepositoryServiceClient extends ServiceClient {
|
|
11
|
+
url: string;
|
|
12
|
+
version: string;
|
|
13
|
+
/**
|
|
14
|
+
* Initializes a new instance of the IoTModelsRepositoryServiceClient class.
|
|
15
|
+
*
|
|
16
|
+
* @param url - The URL of the service account or table that is the target of the desired operation.
|
|
17
|
+
* @param options - The parameter options
|
|
18
|
+
*/
|
|
19
|
+
constructor(url: string, options?: IoTModelsRepositoryServiceClientOptions);
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=modelsRepositoryServiceClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelsRepositoryServiceClient.d.ts","sourceRoot":"","sources":["../../src/modelsRepositoryServiceClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,UAAU,uCAAwC,SAAQ,oBAAoB;IAE5E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,aAAa;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,uCAA4C;CAgB/E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import { ServiceClient } from "@azure/core-client";
|
|
4
|
-
import { DEFAULT_API_VERSION } from "./utils/constants";
|
|
4
|
+
import { DEFAULT_API_VERSION } from "./utils/constants.js";
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelsRepositoryServiceClient.js","sourceRoot":"","sources":["../../src/modelsRepositoryServiceClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAS3D;;GAEG;AACH,MAAM,OAAO,gCAAiC,SAAQ,aAAa;IAIjE;;;;;OAKG;IACH,YAAY,GAAW,EAAE,UAAmD,EAAE;QAC5E,MAAM,QAAQ,GAA4C;YACxD,OAAO,EAAE,GAAG,GAAG,EAAE;YACjB,kBAAkB,EAAE,iCAAiC;SACtD,CAAC;QAEF,MAAM,mBAAmB,mCACpB,QAAQ,GACR,OAAO,CACX,CAAC;QAEF,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,mBAAmB,CAAC;IACxD,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ServiceClientOptions } from \"@azure/core-client\";\nimport { ServiceClient } from \"@azure/core-client\";\nimport { DEFAULT_API_VERSION } from \"./utils/constants.js\";\n\ninterface IoTModelsRepositoryServiceClientOptions extends ServiceClientOptions {\n // API Version to be used during HTTP Calls.\n version?: string;\n // Endpoint that will be base of URLs for HTTP calls.\n endpoint?: string;\n}\n\n/**\n * @internal\n */\nexport class IoTModelsRepositoryServiceClient extends ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the IoTModelsRepositoryServiceClient class.\n *\n * @param url - The URL of the service account or table that is the target of the desired operation.\n * @param options - The parameter options\n */\n constructor(url: string, options: IoTModelsRepositoryServiceClientOptions = {}) {\n const defaults: IoTModelsRepositoryServiceClientOptions = {\n baseUri: `${url}`,\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n };\n\n super(optionsWithDefaults);\n\n this.url = url;\n this.version = options.version || DEFAULT_API_VERSION;\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
interface Contents {
|
|
2
|
+
"@type": string;
|
|
3
|
+
name: string;
|
|
4
|
+
schema: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export interface DTDL {
|
|
10
|
+
"@context": any[];
|
|
11
|
+
"@id": string;
|
|
12
|
+
extends: string | Array<any>;
|
|
13
|
+
contents: Contents[];
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=psuedoDtdl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psuedoDtdl.d.ts","sourceRoot":"","sources":["../../src/psuedoDtdl.ts"],"names":[],"mappings":"AAGA,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DTDL } from "./psuedoDtdl.js";
|
|
2
|
+
import type { DtmiResolver } from "./dtmiResolver.js";
|
|
3
|
+
/**
|
|
4
|
+
* The PsuedoParser is an interesting implementation. Essentially, this
|
|
5
|
+
* codebase works in tandem with a Digital Twins Parser, which simultaneously
|
|
6
|
+
* defines the DTDL structure and validates models match the correct DTDL format.
|
|
7
|
+
* In lieu of using that Parser as a dependency (for a complex network of reasons),
|
|
8
|
+
* we implement this class, which kind of parses. Because it uses the resovler too,
|
|
9
|
+
* we can, during psuedo-parsing, identify any times we should resolve a dependency,
|
|
10
|
+
* and then resolve the dependencies until the dependency tree is fully resolved.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare class PseudoParser {
|
|
15
|
+
private _resolver;
|
|
16
|
+
constructor(resolver: DtmiResolver);
|
|
17
|
+
expand(models: DTDL[], tryFromExpanded: boolean): Promise<{
|
|
18
|
+
[dtmi: string]: DTDL;
|
|
19
|
+
}>;
|
|
20
|
+
private _expand;
|
|
21
|
+
private _getModelDependencies;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=psuedoParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psuedoParser.d.ts","sourceRoot":"","sources":["../../src/psuedoParser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAe;gBAGpB,QAAQ,EAAE,YAAY;IAI5B,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;YAc3E,OAAO;IAoCrB,OAAO,CAAC,qBAAqB;CAmC9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import { logger } from "./logger";
|
|
3
|
+
import { logger } from "./logger.js";
|
|
4
4
|
import { RestError } from "@azure/core-rest-pipeline";
|
|
5
5
|
/**
|
|
6
6
|
* The PsuedoParser is an interesting implementation. Essentially, this
|
|
@@ -14,6 +14,7 @@ import { RestError } from "@azure/core-rest-pipeline";
|
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
16
|
export class PseudoParser {
|
|
17
|
+
// eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters
|
|
17
18
|
constructor(resolver) {
|
|
18
19
|
this._resolver = resolver;
|
|
19
20
|
}
|