@ndustrial/contxt-sdk 4.3.6 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/.gitattributes +1 -0
  2. package/CHANGELOG.md +8 -0
  3. package/CODEOWNERS +1 -0
  4. package/docs/Facilities.md +0 -144
  5. package/docs/FacilityGroupings.md +0 -160
  6. package/docs/Nionic.md +63 -0
  7. package/docs/README.md +3 -29
  8. package/docs/Typedefs.md +0 -101
  9. package/esm/config/audiences.js +13 -13
  10. package/esm/config/audiences.js.map +1 -1
  11. package/esm/index.js +4 -6
  12. package/esm/index.js.map +1 -1
  13. package/esm/nionic/index.js +126 -0
  14. package/esm/nionic/index.js.map +1 -0
  15. package/lib/config/audiences.js +13 -13
  16. package/lib/config/audiences.js.map +1 -1
  17. package/lib/index.js +10 -15
  18. package/lib/index.js.map +1 -1
  19. package/lib/nionic/index.js +130 -0
  20. package/lib/nionic/index.js.map +1 -0
  21. package/meta.yaml +11 -0
  22. package/package.json +9 -10
  23. package/src/bus/index.spec.js +3 -2
  24. package/src/bus/webSocketConnection.spec.js +31 -31
  25. package/src/config/audiences.js +13 -13
  26. package/src/config/index.spec.js +6 -6
  27. package/src/coordinator/applications.spec.js +8 -8
  28. package/src/coordinator/consent.spec.js +1 -1
  29. package/src/coordinator/edgeNodes.spec.js +3 -3
  30. package/src/coordinator/organizations.spec.js +4 -4
  31. package/src/coordinator/permissions.spec.js +4 -4
  32. package/src/coordinator/roles.spec.js +3 -3
  33. package/src/coordinator/users.spec.js +14 -15
  34. package/src/events/index.spec.js +16 -16
  35. package/src/files/index.spec.js +7 -7
  36. package/src/index.js +4 -6
  37. package/src/index.spec.js +8 -22
  38. package/src/iot/feeds.spec.js +4 -4
  39. package/src/iot/fieldCategories.spec.js +4 -4
  40. package/src/iot/fieldGroupings.spec.js +5 -5
  41. package/src/iot/outputs.spec.js +6 -6
  42. package/src/nionic/index.js +151 -0
  43. package/src/request.spec.js +3 -3
  44. package/src/sessionTypes/auth0WebAuth.spec.js +2 -2
  45. package/src/sessionTypes/index.spec.js +3 -3
  46. package/src/sessionTypes/machineAuth.spec.js +3 -3
  47. package/src/sessionTypes/passwordGrantAuth.spec.js +1 -1
  48. package/src/utils/iot/formatOutputFieldDataFromServer.spec.js +6 -6
  49. package/src/utils/iot/parseOutputFieldNextPageUrlMetadata.spec.js +2 -2
  50. package/src/utils/pagination/formatPaginatedDataFromServer.spec.js +2 -2
  51. package/src/utils/url/stringifyParams.spec.js +2 -3
  52. package/support/fixtures/factories/IOSDevice.js +3 -3
  53. package/support/fixtures/factories/applicationGrouping.js +4 -4
  54. package/support/fixtures/factories/applicationModule.js +2 -2
  55. package/support/fixtures/factories/asset.js +1 -1
  56. package/support/fixtures/factories/assetAttribute.js +2 -2
  57. package/support/fixtures/factories/assetAttributeValue.js +2 -2
  58. package/support/fixtures/factories/assetMetric.js +1 -1
  59. package/support/fixtures/factories/assetMetricValue.js +3 -3
  60. package/support/fixtures/factories/assetMetricValueCompact.js +2 -2
  61. package/support/fixtures/factories/assetType.js +1 -1
  62. package/support/fixtures/factories/authResults.js +3 -3
  63. package/support/fixtures/factories/channel.js +1 -1
  64. package/support/fixtures/factories/contxtApplication.js +5 -5
  65. package/support/fixtures/factories/contxtOrganization.js +2 -2
  66. package/support/fixtures/factories/contxtOrganizationFeaturedApplication.js +3 -3
  67. package/support/fixtures/factories/contxtProject.js +2 -2
  68. package/support/fixtures/factories/contxtProjectEnvironment.js +2 -2
  69. package/support/fixtures/factories/contxtRole.js +3 -3
  70. package/support/fixtures/factories/contxtRoleApplication.js +1 -1
  71. package/support/fixtures/factories/contxtRoleProjectEnvironment.js +1 -1
  72. package/support/fixtures/factories/contxtUser.js +2 -2
  73. package/support/fixtures/factories/contxtUserApplication.js +1 -1
  74. package/support/fixtures/factories/contxtUserFavoriteApplication.js +2 -2
  75. package/support/fixtures/factories/contxtUserPermissions.js +5 -5
  76. package/support/fixtures/factories/contxtUserProjectEnvironment.js +1 -1
  77. package/support/fixtures/factories/contxtUserRole.js +2 -2
  78. package/support/fixtures/factories/costCenter.js +2 -2
  79. package/support/fixtures/factories/costCenterFacility.js +3 -3
  80. package/support/fixtures/factories/edgeNode.js +1 -1
  81. package/support/fixtures/factories/event.js +5 -5
  82. package/support/fixtures/factories/eventType.js +4 -4
  83. package/support/fixtures/factories/eventUser.js +5 -5
  84. package/support/fixtures/factories/facility.js +4 -4
  85. package/support/fixtures/factories/facilityGrouping.js +3 -3
  86. package/support/fixtures/factories/facilityGroupingFacility.js +3 -3
  87. package/support/fixtures/factories/facilityInfo.js +2 -2
  88. package/support/fixtures/factories/facilityTag.js +1 -1
  89. package/support/fixtures/factories/feedStatus.js +1 -1
  90. package/support/fixtures/factories/feedType.js +1 -1
  91. package/support/fixtures/factories/feeds.js +5 -5
  92. package/support/fixtures/factories/fieldCategory.js +3 -3
  93. package/support/fixtures/factories/fieldGrouping.js +4 -4
  94. package/support/fixtures/factories/fieldGroupingField.js +3 -3
  95. package/support/fixtures/factories/fieldGroupingStatus.js +1 -1
  96. package/support/fixtures/factories/file.js +1 -1
  97. package/support/fixtures/factories/fileUploadInfo.js +1 -1
  98. package/support/fixtures/factories/organization.js +1 -1
  99. package/support/fixtures/factories/outputField.js +10 -10
  100. package/support/fixtures/factories/outputFieldData.js +1 -1
  101. package/support/fixtures/factories/owner.js +2 -2
  102. package/support/fixtures/factories/paginationMetadata.js +2 -2
  103. package/support/fixtures/factories/triggeredEvent.js +4 -4
  104. package/support/fixtures/factories/userEventSubscription.js +1 -1
  105. package/support/fixtures/factories/userMobileNumber.js +1 -1
  106. package/support/fixtures/factories/userPermissionsMap.js +2 -2
  107. package/.huskyrc.js +0 -11
  108. package/.nycrc +0 -12
  109. package/esm/assets/assetAttributes.js +0 -574
  110. package/esm/assets/assetAttributes.js.map +0 -1
  111. package/esm/assets/assetMetrics.js +0 -690
  112. package/esm/assets/assetMetrics.js.map +0 -1
  113. package/esm/assets/assetTypes.js +0 -273
  114. package/esm/assets/assetTypes.js.map +0 -1
  115. package/esm/assets/index.js +0 -283
  116. package/esm/assets/index.js.map +0 -1
  117. package/esm/facilities/costCenters.js +0 -306
  118. package/esm/facilities/costCenters.js.map +0 -1
  119. package/esm/facilities/groupings.js +0 -323
  120. package/esm/facilities/groupings.js.map +0 -1
  121. package/esm/facilities/index.js +0 -343
  122. package/esm/facilities/index.js.map +0 -1
  123. package/esm/health/index.js +0 -229
  124. package/esm/health/index.js.map +0 -1
  125. package/esm/utils/facilities/formatFacilityWithInfoFromServer.js +0 -65
  126. package/esm/utils/facilities/formatFacilityWithInfoFromServer.js.map +0 -1
  127. package/esm/utils/facilities/index.js +0 -4
  128. package/esm/utils/facilities/index.js.map +0 -1
  129. package/lib/assets/assetAttributes.js +0 -588
  130. package/lib/assets/assetAttributes.js.map +0 -1
  131. package/lib/assets/assetMetrics.js +0 -705
  132. package/lib/assets/assetMetrics.js.map +0 -1
  133. package/lib/assets/assetTypes.js +0 -287
  134. package/lib/assets/assetTypes.js.map +0 -1
  135. package/lib/assets/index.js +0 -302
  136. package/lib/assets/index.js.map +0 -1
  137. package/lib/facilities/costCenters.js +0 -316
  138. package/lib/facilities/costCenters.js.map +0 -1
  139. package/lib/facilities/groupings.js +0 -333
  140. package/lib/facilities/groupings.js.map +0 -1
  141. package/lib/facilities/index.js +0 -360
  142. package/lib/facilities/index.js.map +0 -1
  143. package/lib/health/index.js +0 -232
  144. package/lib/health/index.js.map +0 -1
  145. package/lib/utils/facilities/formatFacilityWithInfoFromServer.js +0 -71
  146. package/lib/utils/facilities/formatFacilityWithInfoFromServer.js.map +0 -1
  147. package/lib/utils/facilities/index.js +0 -15
  148. package/lib/utils/facilities/index.js.map +0 -1
  149. package/src/assets/assetAttributes.js +0 -619
  150. package/src/assets/assetAttributes.spec.js +0 -1143
  151. package/src/assets/assetMetrics.js +0 -736
  152. package/src/assets/assetMetrics.spec.js +0 -1180
  153. package/src/assets/assetTypes.js +0 -260
  154. package/src/assets/assetTypes.spec.js +0 -556
  155. package/src/assets/index.js +0 -271
  156. package/src/assets/index.spec.js +0 -515
  157. package/src/facilities/costCenters.js +0 -295
  158. package/src/facilities/costCenters.spec.js +0 -529
  159. package/src/facilities/groupings.js +0 -320
  160. package/src/facilities/groupings.spec.js +0 -567
  161. package/src/facilities/index.js +0 -343
  162. package/src/facilities/index.spec.js +0 -551
  163. package/src/health/index.js +0 -200
  164. package/src/health/index.spec.js +0 -501
  165. package/src/utils/facilities/formatFacilityWithInfoFromServer.js +0 -62
  166. package/src/utils/facilities/formatFacilityWithInfoFromServer.spec.js +0 -73
  167. package/src/utils/facilities/index.js +0 -3
@@ -17,8 +17,8 @@ export default {
17
17
  host: 'https://contxtauth.com'
18
18
  },
19
19
  staging: {
20
- clientId: 'XzgumXUg5U57015haylz4zaJsiQqZy4l',
21
- host: 'https://contxt-auth-staging.api.ndustrial.io'
20
+ clientId: '7TceUsM1eC4nKmdoC717383DWyfc9QoY',
21
+ host: 'https://contxt-auth-service.staging.ndustrial.io'
22
22
  }
23
23
  },
24
24
  coordinator: {
@@ -28,7 +28,7 @@ export default {
28
28
  },
29
29
  staging: {
30
30
  clientId: 'qGzdTXcmB57zlTp86rYsivG9qEss1lbF',
31
- host: 'https://contxt-api.staging.ndustrial.io'
31
+ host: 'https://contxt.api.staging.ndustrial.io'
32
32
  }
33
33
  },
34
34
  events: {
@@ -61,16 +61,6 @@ export default {
61
61
  host: 'https://files.api.staging.ndustrial.io'
62
62
  }
63
63
  },
64
- health: {
65
- staging: {
66
- clientId: '1zQ2YXbHXotrf2dDKgySqEjlJBz465qq',
67
- host: 'https://health-staging.api.ndustrial.io'
68
- },
69
- production: {
70
- clientId: '6uaQIV1KnnWhXiTm09iGDvy2aQaz2xVI',
71
- host: 'https://health.api.ndustrial.io'
72
- }
73
- },
74
64
  iot: {
75
65
  staging: {
76
66
  clientId: 'm35AEcxD8hf65sq04ZU7yFxqpqVkKzES',
@@ -80,6 +70,16 @@ export default {
80
70
  clientId: 'iznTb30Sfp2Jpaf398I5DN6MyPuDCftA',
81
71
  host: 'https://feeds.api.ndustrial.io'
82
72
  }
73
+ },
74
+ nionic: {
75
+ staging: {
76
+ clientId: 'vhGxildn8hRRWZj49y18BGtbjTkFHcTG',
77
+ host: 'https://<tenant>.api.staging.ndustrial.io'
78
+ },
79
+ production: {
80
+ clientId: 'vtiZlMRo4apDvThTRiH7kLifQXWUdi9j',
81
+ host: 'https://<tenant>.api.ndustrial.io'
82
+ }
83
83
  }
84
84
  };
85
85
  //# sourceMappingURL=audiences.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["config/audiences.js"],"names":["bus","production","clientId","host","webSocket","staging","contxtAuth","coordinator","events","facilities","files","health","iot"],"mappings":"AAAA,eAAe;AACbA,OAAK;AACHC,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM,0BAFI;AAGVC,iBAAW;AAHD,KADT;AAMHC,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM,kCAFC;AAGPC,iBAAW;AAHJ;AANN,GADQ;AAabE,cAAY;AACVL,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADF;AAKVE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALC,GAbC;AAuBbI,eAAa;AACXN,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADD;AAKXE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALE,GAvBA;AAiCbK,UAAQ;AACNH,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADH;AAKNF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALN,GAjCK;AA2CbM,cAAY;AACVR,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADF;AAKVE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALC,GA3CC;AAqDbO,SAAO;AACLT,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADP;AAKLE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALJ,GArDM;AA+DbQ,UAAQ;AACNN,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADH;AAKNF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALN,GA/DK;AAyEbS,OAAK;AACHP,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADN;AAKHF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALT;AAzEQ,CAAf","file":"audiences.js","sourcesContent":["export default {\n bus: {\n production: {\n clientId: 'bmoJ2jhfyIP5s4IZx5Ss6xQ9lmkoDixO',\n host: 'https://bus.ndustrial.io',\n webSocket: 'wss://bus.ndustrial.io'\n },\n staging: {\n clientId: '1HD1NG1VTBtkqRt2HRRj3E3hdmqmwzoz',\n host: 'https://bus-staging.ndustrial.io',\n webSocket: 'wss://bus-staging.ndustrial.io'\n }\n },\n contxtAuth: {\n production: {\n clientId: '75wT048QcpE7ujwBJPPjr263eTHl4gEX',\n host: 'https://contxtauth.com'\n },\n staging: {\n clientId: 'XzgumXUg5U57015haylz4zaJsiQqZy4l',\n host: 'https://contxt-auth-staging.api.ndustrial.io'\n }\n },\n coordinator: {\n production: {\n clientId: '8qY2xJob1JAxhmVhIDLCNnGriTM9bct8',\n host: 'https://contxt.api.ndustrial.io'\n },\n staging: {\n clientId: 'qGzdTXcmB57zlTp86rYsivG9qEss1lbF',\n host: 'https://contxt-api.staging.ndustrial.io'\n }\n },\n events: {\n staging: {\n clientId: 'dn4MaocJFdKtsBy9sFFaTeuJWL1nt5xu',\n host: 'https://events.api.staging.ndustrial.io'\n },\n production: {\n clientId: '7jzwfE20O2XZ4aq3cO1wmk63G9GzNc8j',\n host: 'https://events.api.ndustrial.io'\n }\n },\n facilities: {\n production: {\n clientId: 'SgbCopArnGMa9PsRlCVUCVRwxocntlg0',\n host: 'https://facilities.api.ndustrial.io'\n },\n staging: {\n clientId: 'xG775XHIOZVUn84seNeHXi0Qe55YuR5w',\n host: 'https://facilities-staging.api.ndustrial.io'\n }\n },\n files: {\n production: {\n clientId: 'VZJ2MRd71dM9oX2hB1EVAEjUe6loL7pl',\n host: 'https://files.api.ndustrial.io'\n },\n staging: {\n clientId: 'SLE310LY4nDT5p06sUGPVOLlGXk5osbQ',\n host: 'https://files.api.staging.ndustrial.io'\n }\n },\n health: {\n staging: {\n clientId: '1zQ2YXbHXotrf2dDKgySqEjlJBz465qq',\n host: 'https://health-staging.api.ndustrial.io'\n },\n production: {\n clientId: '6uaQIV1KnnWhXiTm09iGDvy2aQaz2xVI',\n host: 'https://health.api.ndustrial.io'\n }\n },\n iot: {\n staging: {\n clientId: 'm35AEcxD8hf65sq04ZU7yFxqpqVkKzES',\n host: 'https://feeds-staging.api.ndustrial.io'\n },\n production: {\n clientId: 'iznTb30Sfp2Jpaf398I5DN6MyPuDCftA',\n host: 'https://feeds.api.ndustrial.io'\n }\n }\n};\n"]}
1
+ {"version":3,"sources":["config/audiences.js"],"names":["bus","production","clientId","host","webSocket","staging","contxtAuth","coordinator","events","facilities","files","iot","nionic"],"mappings":"AAAA,eAAe;AACbA,OAAK;AACHC,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM,0BAFI;AAGVC,iBAAW;AAHD,KADT;AAMHC,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM,kCAFC;AAGPC,iBAAW;AAHJ;AANN,GADQ;AAabE,cAAY;AACVL,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADF;AAKVE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALC,GAbC;AAuBbI,eAAa;AACXN,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADD;AAKXE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALE,GAvBA;AAiCbK,UAAQ;AACNH,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADH;AAKNF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALN,GAjCK;AA2CbM,cAAY;AACVR,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADF;AAKVE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALC,GA3CC;AAqDbO,SAAO;AACLT,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADP;AAKLE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALJ,GArDM;AA+DbQ,OAAK;AACHN,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADN;AAKHF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALT,GA/DQ;AAyEbS,UAAQ;AACNP,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADH;AAKNF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALN;AAzEK,CAAf","file":"audiences.js","sourcesContent":["export default {\n bus: {\n production: {\n clientId: 'bmoJ2jhfyIP5s4IZx5Ss6xQ9lmkoDixO',\n host: 'https://bus.ndustrial.io',\n webSocket: 'wss://bus.ndustrial.io'\n },\n staging: {\n clientId: '1HD1NG1VTBtkqRt2HRRj3E3hdmqmwzoz',\n host: 'https://bus-staging.ndustrial.io',\n webSocket: 'wss://bus-staging.ndustrial.io'\n }\n },\n contxtAuth: {\n production: {\n clientId: '75wT048QcpE7ujwBJPPjr263eTHl4gEX',\n host: 'https://contxtauth.com'\n },\n staging: {\n clientId: '7TceUsM1eC4nKmdoC717383DWyfc9QoY',\n host: 'https://contxt-auth-service.staging.ndustrial.io'\n }\n },\n coordinator: {\n production: {\n clientId: '8qY2xJob1JAxhmVhIDLCNnGriTM9bct8',\n host: 'https://contxt.api.ndustrial.io'\n },\n staging: {\n clientId: 'qGzdTXcmB57zlTp86rYsivG9qEss1lbF',\n host: 'https://contxt.api.staging.ndustrial.io'\n }\n },\n events: {\n staging: {\n clientId: 'dn4MaocJFdKtsBy9sFFaTeuJWL1nt5xu',\n host: 'https://events.api.staging.ndustrial.io'\n },\n production: {\n clientId: '7jzwfE20O2XZ4aq3cO1wmk63G9GzNc8j',\n host: 'https://events.api.ndustrial.io'\n }\n },\n facilities: {\n production: {\n clientId: 'SgbCopArnGMa9PsRlCVUCVRwxocntlg0',\n host: 'https://facilities.api.ndustrial.io'\n },\n staging: {\n clientId: 'xG775XHIOZVUn84seNeHXi0Qe55YuR5w',\n host: 'https://facilities-staging.api.ndustrial.io'\n }\n },\n files: {\n production: {\n clientId: 'VZJ2MRd71dM9oX2hB1EVAEjUe6loL7pl',\n host: 'https://files.api.ndustrial.io'\n },\n staging: {\n clientId: 'SLE310LY4nDT5p06sUGPVOLlGXk5osbQ',\n host: 'https://files.api.staging.ndustrial.io'\n }\n },\n iot: {\n staging: {\n clientId: 'm35AEcxD8hf65sq04ZU7yFxqpqVkKzES',\n host: 'https://feeds-staging.api.ndustrial.io'\n },\n production: {\n clientId: 'iznTb30Sfp2Jpaf398I5DN6MyPuDCftA',\n host: 'https://feeds.api.ndustrial.io'\n }\n },\n nionic: {\n staging: {\n clientId: 'vhGxildn8hRRWZj49y18BGtbjTkFHcTG',\n host: 'https://<tenant>.api.staging.ndustrial.io'\n },\n production: {\n clientId: 'vtiZlMRo4apDvThTRiH7kLifQXWUdi9j',\n host: 'https://<tenant>.api.ndustrial.io'\n }\n }\n};\n"]}
package/esm/index.js CHANGED
@@ -4,17 +4,16 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
4
4
 
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
 
7
- import Assets from './assets';
8
7
  import Bus from './bus';
9
8
  import Config from './config';
10
9
  import Coordinator from './coordinator';
11
10
  import Events from './events';
12
- import Facilities from './facilities';
13
11
  import Files from './files';
14
- import Health from './health';
15
12
  import Iot from './iot';
13
+ import Nionic from './nionic';
16
14
  import Request from './request';
17
15
  import * as sessionTypes from './sessionTypes';
16
+ import { toSnakeCase, toCamelCase } from './utils/objects';
18
17
 
19
18
  /**
20
19
  * An adapter that allows the SDK to authenticate with different services and manage various tokens.
@@ -93,15 +92,13 @@ var ContxtSdk = function () {
93
92
 
94
93
  this.config = new Config(config, externalModules);
95
94
 
96
- this.assets = new Assets(this, this._createRequest('facilities'));
97
95
  this.auth = this._createAuthSession(sessionType);
98
96
  this.bus = new Bus(this, this._createRequest('bus'));
99
97
  this.coordinator = new Coordinator(this, this._createRequest('coordinator'));
100
98
  this.events = new Events(this, this._createRequest('events'));
101
- this.facilities = new Facilities(this, this._createRequest('facilities'));
102
99
  this.files = new Files(this, this._createRequest('files'));
103
- this.health = new Health(this, this._createRequest('health'));
104
100
  this.iot = new Iot(this, this._createRequest('iot'));
101
+ this.nionic = new Nionic(this, this._createRequest('nionic'));
105
102
 
106
103
  this._decorate(externalModules);
107
104
  }
@@ -233,4 +230,5 @@ var ContxtSdk = function () {
233
230
  }();
234
231
 
235
232
  export default ContxtSdk;
233
+ export { toSnakeCase, toCamelCase };
236
234
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"names":["Assets","Bus","Config","Coordinator","Events","Facilities","Files","Health","Iot","Request","sessionTypes","ContxtSdk","config","externalModules","sessionType","_dynamicModuleNames","_replacedModules","assets","_createRequest","auth","_createAuthSession","bus","coordinator","events","facilities","files","health","iot","_decorate","moduleName","clientId","host","module","indexOf","Error","addDynamicAudience","clearCurrentApiToken","removeDynamicAudience","filter","name","TYPES","AUTH0_WEB_AUTH","Auth0WebAuth","PASSWORD_GRANT_AUTH","PasswordGrantAuth","MACHINE_AUTH","MachineAuth","audienceName","modules","Object","keys","forEach"],"mappings":"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","file":"index.js","sourcesContent":["import Assets from './assets';\nimport Bus from './bus';\nimport Config from './config';\nimport Coordinator from './coordinator';\nimport Events from './events';\nimport Facilities from './facilities';\nimport Files from './files';\nimport Health from './health';\nimport Iot from './iot';\nimport Request from './request';\nimport * as sessionTypes from './sessionTypes';\n\n/**\n * An adapter that allows the SDK to authenticate with different services and manage various tokens.\n * Can authenticate with a service like Auth0 and then with Contxt or can communicate directly\n * with Contxt. The adapter must implement required methods, but most methods are optional. Some of\n * the optional methods are documented below.\n *\n * @typedef {Object} SessionType\n * @property {function} [getCurrentAccessToken] Provides a current access token from Auth0 that is\n * used for profile information and can be used to get API token for Contxt itself\n * @property {function} getCurrentApiToken Provides a current API token that is used across\n * different Contxt services\n * @property {function} [getProfile] Provides profile information about the current user\n * @property {function} [handleAuthentication] Is called by front-end code in the Auth0 reference\n * implementation to handle getting the access token from Auth0\n * @property {function} [isAuthenticated] Tells caller if the current user is authenticated.\n * Different session types may determine if a user is authenticated in different ways.\n * @property {function} [logIn] Is used by front-end code in the Auth0 reference implementation to\n * start the sign in process\n * @property {function} [logOut] Is used by the front-end code in the Auth0 reference implementation\n * to sign the user out\n */\n\n/**\n * ContxtSdk constructor\n *\n * @example\n * import ContxtSdk from '@ndustrial/contxt-sdk';\n * import ExternalModule1 from './ExternalModule1';\n * import history from '../services/history';\n *\n * const contxtSdk = new ContxtSdk({\n * config: {\n * auth: {\n * clientId: 'Auth0 client id of the application being built',\n * customModuleConfigs: {\n * facilities: {\n * env: 'production'\n * }\n * },\n * env: 'staging',\n * onAuthenticate: (auth0WebAuthSessionInfo) => handleSuccessfulAuth(auth0WebAuthSessionInfo),\n * onRedirect: (pathname) => history.push(pathname)\n * }\n * },\n * externalModules: {\n * externalModule1: {\n * clientId: 'Auth0 client id of the external module',\n * host: 'https://www.example.com/externalModule1',\n * module: ExternalModule1\n * }\n * },\n * sessionType: 'auth0WebAuth'\n * });\n */\nclass ContxtSdk {\n /**\n * @param {UserConfig} config The user provided configuration options\n * @param {Object.<string, ExternalModule>} [externalModules] User provided external modules that\n * should be treated as first class citizens\n * @param {string} sessionType The type of auth session you wish to use (e.g. auth0WebAuth\n * or machine)\n */\n constructor({ config = {}, externalModules = {}, sessionType }) {\n this._dynamicModuleNames = [];\n this._replacedModules = {};\n\n this.config = new Config(config, externalModules);\n\n this.assets = new Assets(this, this._createRequest('facilities'));\n this.auth = this._createAuthSession(sessionType);\n this.bus = new Bus(this, this._createRequest('bus'));\n this.coordinator = new Coordinator(\n this,\n this._createRequest('coordinator')\n );\n this.events = new Events(this, this._createRequest('events'));\n this.facilities = new Facilities(this, this._createRequest('facilities'));\n this.files = new Files(this, this._createRequest('files'));\n this.health = new Health(this, this._createRequest('health'));\n this.iot = new Iot(this, this._createRequest('iot'));\n\n this._decorate(externalModules);\n }\n\n /**\n * Mounts a dynamic module into the SDK. Is used to add a module after initial\n * instatiation that will use the SDK's authentication and request methods to\n * access an ndustrial.io API\n *\n * @param {string} moduleName The name (or key) that will serve as the mount\n * point for the module in the SDK (i.e. customModule -> sdk.customModule)\n * @param {ExternalModule} externalModule\n */\n mountDynamicModule(moduleName, { clientId, host, module }) {\n if (this._dynamicModuleNames.indexOf(moduleName) > -1) {\n throw new Error(\n `An dynamic module of the name \\`${moduleName}\\` already exists. This problem can be rectified by using a different name for the new module.`\n );\n }\n\n this.config.addDynamicAudience(moduleName, { clientId, host });\n\n this._dynamicModuleNames = [...this._dynamicModuleNames, moduleName];\n\n if (this[moduleName]) {\n this._replacedModules[moduleName] = this[moduleName];\n }\n\n this[moduleName] = new module(this, this._createRequest(moduleName));\n }\n\n /**\n * Unmounts a dynamic module from the SDK\n *\n * @param {string} moduleName The name of the dynamic module to unmount\n */\n unmountDynamicModule(moduleName) {\n if (this._dynamicModuleNames.indexOf(moduleName) === -1) {\n throw new Error('There is no external module to unmount.');\n }\n\n this.auth.clearCurrentApiToken(moduleName);\n this.config.removeDynamicAudience(moduleName);\n\n this[moduleName] = this._replacedModules[moduleName];\n\n delete this._replacedModules[moduleName];\n this._dynamicModuleNames = this._dynamicModuleNames.filter(\n (name) => name !== moduleName\n );\n }\n\n /**\n * Returns a new instance of the session type requested\n *\n * @param {string} sessionType\n *\n * @returns {SessionType} sessionType\n * @throws {Error}\n *\n * @private\n */\n _createAuthSession(sessionType) {\n switch (sessionType) {\n case sessionTypes.TYPES.AUTH0_WEB_AUTH:\n return new sessionTypes.Auth0WebAuth(this);\n\n case sessionTypes.TYPES.PASSWORD_GRANT_AUTH:\n return new sessionTypes.PasswordGrantAuth(this);\n\n case sessionTypes.TYPES.MACHINE_AUTH:\n return new sessionTypes.MachineAuth(this);\n\n default:\n throw new Error('Invalid sessionType provided');\n }\n }\n\n /**\n * Returns an instance of the Request module that is tied to the requested audience\n *\n * @param {string} audienceName The audience name of the service you are trying to reach\n * (e.g. facilities or feeds)\n *\n * @returns {Object} Request module\n *\n * @private\n */\n _createRequest(audienceName) {\n return new Request(this, audienceName);\n }\n\n /**\n * Decorates custom modules onto the SDK instance so they behave as first-class citizens.\n *\n * @param {Object} modules\n * @param {function} modules.module\n *\n * @private\n */\n _decorate(modules) {\n Object.keys(modules).forEach((moduleName) => {\n this[moduleName] = new modules[moduleName].module(\n this,\n this._createRequest(moduleName)\n );\n });\n }\n}\n\nexport default ContxtSdk;\n"]}
1
+ {"version":3,"sources":["index.js"],"names":["Bus","Config","Coordinator","Events","Files","Iot","Nionic","Request","sessionTypes","toSnakeCase","toCamelCase","ContxtSdk","config","externalModules","sessionType","_dynamicModuleNames","_replacedModules","auth","_createAuthSession","bus","_createRequest","coordinator","events","files","iot","nionic","_decorate","moduleName","clientId","host","module","indexOf","Error","addDynamicAudience","clearCurrentApiToken","removeDynamicAudience","filter","name","TYPES","AUTH0_WEB_AUTH","Auth0WebAuth","PASSWORD_GRANT_AUTH","PasswordGrantAuth","MACHINE_AUTH","MachineAuth","audienceName","modules","Object","keys","forEach"],"mappings":";;;;;;AAAA,OAAOA,GAAP,MAAgB,OAAhB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,KAAP,MAAkB,SAAlB;AACA,OAAOC,GAAP,MAAgB,OAAhB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAO,KAAKC,YAAZ,MAA8B,gBAA9B;AACA,SAASC,WAAT,EAAsBC,WAAtB,QAAyC,iBAAzC;;AAEA;;;;;;;;;;;;;;;;;;;;;;AAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCMC,S;AACJ;;;;;;;AAOA,2BAAgE;AAAA,2BAAlDC,MAAkD;AAAA,QAAlDA,MAAkD,+BAAzC,EAAyC;AAAA,oCAArCC,eAAqC;AAAA,QAArCA,eAAqC,wCAAnB,EAAmB;AAAA,QAAfC,WAAe,QAAfA,WAAe;;AAAA;;AAC9D,SAAKC,mBAAL,GAA2B,EAA3B;AACA,SAAKC,gBAAL,GAAwB,EAAxB;;AAEA,SAAKJ,MAAL,GAAc,IAAIX,MAAJ,CAAWW,MAAX,EAAmBC,eAAnB,CAAd;;AAEA,SAAKI,IAAL,GAAY,KAAKC,kBAAL,CAAwBJ,WAAxB,CAAZ;AACA,SAAKK,GAAL,GAAW,IAAInB,GAAJ,CAAQ,IAAR,EAAc,KAAKoB,cAAL,CAAoB,KAApB,CAAd,CAAX;AACA,SAAKC,WAAL,GAAmB,IAAInB,WAAJ,CACjB,IADiB,EAEjB,KAAKkB,cAAL,CAAoB,aAApB,CAFiB,CAAnB;AAIA,SAAKE,MAAL,GAAc,IAAInB,MAAJ,CAAW,IAAX,EAAiB,KAAKiB,cAAL,CAAoB,QAApB,CAAjB,CAAd;AACA,SAAKG,KAAL,GAAa,IAAInB,KAAJ,CAAU,IAAV,EAAgB,KAAKgB,cAAL,CAAoB,OAApB,CAAhB,CAAb;AACA,SAAKI,GAAL,GAAW,IAAInB,GAAJ,CAAQ,IAAR,EAAc,KAAKe,cAAL,CAAoB,KAApB,CAAd,CAAX;AACA,SAAKK,MAAL,GAAc,IAAInB,MAAJ,CAAW,IAAX,EAAiB,KAAKc,cAAL,CAAoB,QAApB,CAAjB,CAAd;;AAEA,SAAKM,SAAL,CAAeb,eAAf;AACD;;AAED;;;;;;;;;;;;;uCASmBc,U,SAAwC;AAAA,UAA1BC,QAA0B,SAA1BA,QAA0B;AAAA,UAAhBC,IAAgB,SAAhBA,IAAgB;AAAA,UAAVC,MAAU,SAAVA,MAAU;;AACzD,UAAI,KAAKf,mBAAL,CAAyBgB,OAAzB,CAAiCJ,UAAjC,IAA+C,CAAC,CAApD,EAAuD;AACrD,cAAM,IAAIK,KAAJ,qCAC+BL,UAD/B,mGAAN;AAGD;;AAED,WAAKf,MAAL,CAAYqB,kBAAZ,CAA+BN,UAA/B,EAA2C,EAAEC,kBAAF,EAAYC,UAAZ,EAA3C;;AAEA,WAAKd,mBAAL,gCAA+B,KAAKA,mBAApC,IAAyDY,UAAzD;;AAEA,UAAI,KAAKA,UAAL,CAAJ,EAAsB;AACpB,aAAKX,gBAAL,CAAsBW,UAAtB,IAAoC,KAAKA,UAAL,CAApC;AACD;;AAED,WAAKA,UAAL,IAAmB,IAAIG,MAAJ,CAAW,IAAX,EAAiB,KAAKV,cAAL,CAAoBO,UAApB,CAAjB,CAAnB;AACD;;AAED;;;;;;;;yCAKqBA,U,EAAY;AAC/B,UAAI,KAAKZ,mBAAL,CAAyBgB,OAAzB,CAAiCJ,UAAjC,MAAiD,CAAC,CAAtD,EAAyD;AACvD,cAAM,IAAIK,KAAJ,CAAU,yCAAV,CAAN;AACD;;AAED,WAAKf,IAAL,CAAUiB,oBAAV,CAA+BP,UAA/B;AACA,WAAKf,MAAL,CAAYuB,qBAAZ,CAAkCR,UAAlC;;AAEA,WAAKA,UAAL,IAAmB,KAAKX,gBAAL,CAAsBW,UAAtB,CAAnB;;AAEA,aAAO,KAAKX,gBAAL,CAAsBW,UAAtB,CAAP;AACA,WAAKZ,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBqB,MAAzB,CACzB,UAACC,IAAD;AAAA,eAAUA,SAASV,UAAnB;AAAA,OADyB,CAA3B;AAGD;;AAED;;;;;;;;;;;;;uCAUmBb,W,EAAa;AAC9B,cAAQA,WAAR;AACE,aAAKN,aAAa8B,KAAb,CAAmBC,cAAxB;AACE,iBAAO,IAAI/B,aAAagC,YAAjB,CAA8B,IAA9B,CAAP;;AAEF,aAAKhC,aAAa8B,KAAb,CAAmBG,mBAAxB;AACE,iBAAO,IAAIjC,aAAakC,iBAAjB,CAAmC,IAAnC,CAAP;;AAEF,aAAKlC,aAAa8B,KAAb,CAAmBK,YAAxB;AACE,iBAAO,IAAInC,aAAaoC,WAAjB,CAA6B,IAA7B,CAAP;;AAEF;AACE,gBAAM,IAAIZ,KAAJ,CAAU,8BAAV,CAAN;AAXJ;AAaD;;AAED;;;;;;;;;;;;;mCAUea,Y,EAAc;AAC3B,aAAO,IAAItC,OAAJ,CAAY,IAAZ,EAAkBsC,YAAlB,CAAP;AACD;;AAED;;;;;;;;;;;8BAQUC,O,EAAS;AAAA;;AACjBC,aAAOC,IAAP,CAAYF,OAAZ,EAAqBG,OAArB,CAA6B,UAACtB,UAAD,EAAgB;AAC3C,cAAKA,UAAL,IAAmB,IAAImB,QAAQnB,UAAR,EAAoBG,MAAxB,CACjB,KADiB,EAEjB,MAAKV,cAAL,CAAoBO,UAApB,CAFiB,CAAnB;AAID,OALD;AAMD;;;;;;AAGH,eAAehB,SAAf;AACA,SAASF,WAAT,EAAsBC,WAAtB","file":"index.js","sourcesContent":["import Bus from './bus';\nimport Config from './config';\nimport Coordinator from './coordinator';\nimport Events from './events';\nimport Files from './files';\nimport Iot from './iot';\nimport Nionic from './nionic';\nimport Request from './request';\nimport * as sessionTypes from './sessionTypes';\nimport { toSnakeCase, toCamelCase } from './utils/objects';\n\n/**\n * An adapter that allows the SDK to authenticate with different services and manage various tokens.\n * Can authenticate with a service like Auth0 and then with Contxt or can communicate directly\n * with Contxt. The adapter must implement required methods, but most methods are optional. Some of\n * the optional methods are documented below.\n *\n * @typedef {Object} SessionType\n * @property {function} [getCurrentAccessToken] Provides a current access token from Auth0 that is\n * used for profile information and can be used to get API token for Contxt itself\n * @property {function} getCurrentApiToken Provides a current API token that is used across\n * different Contxt services\n * @property {function} [getProfile] Provides profile information about the current user\n * @property {function} [handleAuthentication] Is called by front-end code in the Auth0 reference\n * implementation to handle getting the access token from Auth0\n * @property {function} [isAuthenticated] Tells caller if the current user is authenticated.\n * Different session types may determine if a user is authenticated in different ways.\n * @property {function} [logIn] Is used by front-end code in the Auth0 reference implementation to\n * start the sign in process\n * @property {function} [logOut] Is used by the front-end code in the Auth0 reference implementation\n * to sign the user out\n */\n\n/**\n * ContxtSdk constructor\n *\n * @example\n * import ContxtSdk from '@ndustrial/contxt-sdk';\n * import ExternalModule1 from './ExternalModule1';\n * import history from '../services/history';\n *\n * const contxtSdk = new ContxtSdk({\n * config: {\n * auth: {\n * clientId: 'Auth0 client id of the application being built',\n * customModuleConfigs: {\n * facilities: {\n * env: 'production'\n * }\n * },\n * env: 'staging',\n * onAuthenticate: (auth0WebAuthSessionInfo) => handleSuccessfulAuth(auth0WebAuthSessionInfo),\n * onRedirect: (pathname) => history.push(pathname)\n * }\n * },\n * externalModules: {\n * externalModule1: {\n * clientId: 'Auth0 client id of the external module',\n * host: 'https://www.example.com/externalModule1',\n * module: ExternalModule1\n * }\n * },\n * sessionType: 'auth0WebAuth'\n * });\n */\nclass ContxtSdk {\n /**\n * @param {UserConfig} config The user provided configuration options\n * @param {Object.<string, ExternalModule>} [externalModules] User provided external modules that\n * should be treated as first class citizens\n * @param {string} sessionType The type of auth session you wish to use (e.g. auth0WebAuth\n * or machine)\n */\n constructor({ config = {}, externalModules = {}, sessionType }) {\n this._dynamicModuleNames = [];\n this._replacedModules = {};\n\n this.config = new Config(config, externalModules);\n\n this.auth = this._createAuthSession(sessionType);\n this.bus = new Bus(this, this._createRequest('bus'));\n this.coordinator = new Coordinator(\n this,\n this._createRequest('coordinator')\n );\n this.events = new Events(this, this._createRequest('events'));\n this.files = new Files(this, this._createRequest('files'));\n this.iot = new Iot(this, this._createRequest('iot'));\n this.nionic = new Nionic(this, this._createRequest('nionic'));\n\n this._decorate(externalModules);\n }\n\n /**\n * Mounts a dynamic module into the SDK. Is used to add a module after initial\n * instatiation that will use the SDK's authentication and request methods to\n * access an ndustrial.io API\n *\n * @param {string} moduleName The name (or key) that will serve as the mount\n * point for the module in the SDK (i.e. customModule -> sdk.customModule)\n * @param {ExternalModule} externalModule\n */\n mountDynamicModule(moduleName, { clientId, host, module }) {\n if (this._dynamicModuleNames.indexOf(moduleName) > -1) {\n throw new Error(\n `An dynamic module of the name \\`${moduleName}\\` already exists. This problem can be rectified by using a different name for the new module.`\n );\n }\n\n this.config.addDynamicAudience(moduleName, { clientId, host });\n\n this._dynamicModuleNames = [...this._dynamicModuleNames, moduleName];\n\n if (this[moduleName]) {\n this._replacedModules[moduleName] = this[moduleName];\n }\n\n this[moduleName] = new module(this, this._createRequest(moduleName));\n }\n\n /**\n * Unmounts a dynamic module from the SDK\n *\n * @param {string} moduleName The name of the dynamic module to unmount\n */\n unmountDynamicModule(moduleName) {\n if (this._dynamicModuleNames.indexOf(moduleName) === -1) {\n throw new Error('There is no external module to unmount.');\n }\n\n this.auth.clearCurrentApiToken(moduleName);\n this.config.removeDynamicAudience(moduleName);\n\n this[moduleName] = this._replacedModules[moduleName];\n\n delete this._replacedModules[moduleName];\n this._dynamicModuleNames = this._dynamicModuleNames.filter(\n (name) => name !== moduleName\n );\n }\n\n /**\n * Returns a new instance of the session type requested\n *\n * @param {string} sessionType\n *\n * @returns {SessionType} sessionType\n * @throws {Error}\n *\n * @private\n */\n _createAuthSession(sessionType) {\n switch (sessionType) {\n case sessionTypes.TYPES.AUTH0_WEB_AUTH:\n return new sessionTypes.Auth0WebAuth(this);\n\n case sessionTypes.TYPES.PASSWORD_GRANT_AUTH:\n return new sessionTypes.PasswordGrantAuth(this);\n\n case sessionTypes.TYPES.MACHINE_AUTH:\n return new sessionTypes.MachineAuth(this);\n\n default:\n throw new Error('Invalid sessionType provided');\n }\n }\n\n /**\n * Returns an instance of the Request module that is tied to the requested audience\n *\n * @param {string} audienceName The audience name of the service you are trying to reach\n * (e.g. facilities or feeds)\n *\n * @returns {Object} Request module\n *\n * @private\n */\n _createRequest(audienceName) {\n return new Request(this, audienceName);\n }\n\n /**\n * Decorates custom modules onto the SDK instance so they behave as first-class citizens.\n *\n * @param {Object} modules\n * @param {function} modules.module\n *\n * @private\n */\n _decorate(modules) {\n Object.keys(modules).forEach((moduleName) => {\n this[moduleName] = new modules[moduleName].module(\n this,\n this._createRequest(moduleName)\n );\n });\n }\n}\n\nexport default ContxtSdk;\nexport { toSnakeCase, toCamelCase };\n"]}
@@ -0,0 +1,126 @@
1
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
2
+
3
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
+
5
+ /**
6
+ * Module that provides access to Nionic platform.
7
+ *
8
+ * @typicalname contxtSdk.nionic
9
+ */
10
+ var Nionic = function () {
11
+ /**
12
+ * @param {Object} sdk An instance of the SDK so the module can communicate with other modules.
13
+ * @param {Object} request An instance of the request module tied to this module's audience.
14
+ */
15
+ function Nionic(sdk, request) {
16
+ _classCallCheck(this, Nionic);
17
+
18
+ this._baseUrl = '' + sdk.config.audiences.nionic.host;
19
+ this._request = request;
20
+ this._sdk = sdk;
21
+
22
+ // Backwards compatibility for legacy uuid's
23
+ this._orgIdToTenantId = {
24
+ '18d8b68e-3e59-418e-9f23-47b7cd6bdd6b': 'genan',
25
+ '02efa741-a96f-4124-a463-ae13a704b8fc': 'lineage',
26
+ '5209751f-ea46-4b3e-a5dd-b8d03311b791': 'ndustrial',
27
+ '2fe29680-fc3d-4888-9e9b-44be1e59c22c': 'sfnt',
28
+ 'b2c6705d-1727-467f-a450-207f110c9966': 'trenton'
29
+ };
30
+ this._tenants = new Set(Object.values(this._orgIdToTenantId));
31
+ }
32
+
33
+ _createClass(Nionic, [{
34
+ key: '_getTenantId',
35
+ value: function _getTenantId(orgOrTenantId) {
36
+ if (!orgOrTenantId) throw Error('Tenant is required');
37
+ if (!(orgOrTenantId in this._orgIdToTenantId) && !this._tenants.has(orgOrTenantId)) {
38
+ throw Error('Tenant is either unrecognized or not yet supported: ' + orgOrTenantId);
39
+ }
40
+ return this._orgIdToTenantId[orgOrTenantId] || orgOrTenantId;
41
+ }
42
+ }, {
43
+ key: '_query',
44
+ value: function _query(orgOrTenantId, options) {
45
+ var tenantId = this._getTenantId(orgOrTenantId);
46
+ var url = this._baseUrl.replace('<tenant>', tenantId) + '/graphql';
47
+ return this._request.post(url, options).then(function (resp) {
48
+ if (resp.data && resp.data.errors) {
49
+ return Promise.reject(Error(resp.data.errors));
50
+ }
51
+ return Promise.resolve(resp.data);
52
+ });
53
+ }
54
+ }, {
55
+ key: 'executeQuery',
56
+ value: function executeQuery(orgOrTenantId, query) {
57
+ var variables = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
58
+
59
+ return this._query(orgOrTenantId, { query: query, variables: variables });
60
+ }
61
+ }, {
62
+ key: 'getAllFacilities',
63
+ value: function getAllFacilities(orgOrTenantId) {
64
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Nionic.queryDefaults;
65
+ var additionalFields = options.additionalFields;
66
+
67
+ return this._query(orgOrTenantId, {
68
+ query: '\n query {\n facilities {\n nodes {\n id\n name\n slug\n address\n city\n state\n zip\n timezone: timezoneName\n createdAt\n updatedAt\n ' + additionalFields.join('\n') + '\n }\n }\n }\n '
69
+ }).then(function (data) {
70
+ return data.facilities.nodes;
71
+ });
72
+ }
73
+ }, {
74
+ key: 'getFacility',
75
+ value: function getFacility(orgOrTenantId, facilityId) {
76
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Nionic.queryDefaults;
77
+ var additionalFields = options.additionalFields;
78
+
79
+ return this._query(orgOrTenantId, {
80
+ query: '\n query($facilityId: Int!) {\n facility(id: $facilityId) {\n id\n name\n slug\n address\n city\n state\n zip\n timezone: timezoneName\n createdAt\n updatedAt\n ' + additionalFields.join('\n') + '\n }\n }\n ',
81
+ variables: { facilityId: parseInt(facilityId) }
82
+ }).then(function (resp) {
83
+ return resp.facility;
84
+ });
85
+ }
86
+ }, {
87
+ key: 'getFacilityMetricLabels',
88
+ value: function getFacilityMetricLabels(orgOrTenantId, _ref) {
89
+ var facilityId = _ref.facilityId;
90
+
91
+ return this._query(orgOrTenantId, {
92
+ query: '\n query($facilityId: Int!) {\n facility(id: $facilityId) {\n metricLabels {\n sourceId\n label\n }\n }\n }\n ',
93
+ variables: { facilityId: parseInt(facilityId) }
94
+ }).then(function (resp) {
95
+ return resp.facility.metricLabels;
96
+ });
97
+ }
98
+ }, {
99
+ key: 'getFacilityMetrics',
100
+ value: function getFacilityMetrics(orgOrTenantId, _ref2) {
101
+ var facilityId = _ref2.facilityId,
102
+ metricLabel = _ref2.metricLabel,
103
+ _ref2$mutableOnly = _ref2.mutableOnly,
104
+ mutableOnly = _ref2$mutableOnly === undefined ? false : _ref2$mutableOnly;
105
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Nionic.queryDefaults;
106
+ var additionalFields = options.additionalFields;
107
+
108
+ return this._query(orgOrTenantId, {
109
+ query: '\n query($facilityId: Int!, $metricLabel: String!, $mutableOnly: Boolean) {\n facility(id: $facilityId) {\n metricData(label: $metricLabel, mutableOnly: $mutableOnly) {\n nodes {\n time\n sourceId\n label\n data\n ' + additionalFields.join('\n') + '\n }\n }\n }\n }\n ',
110
+ variables: { facilityId: parseInt(facilityId), metricLabel: metricLabel, mutableOnly: mutableOnly }
111
+ }).then(function (resp) {
112
+ return resp.facility.metricData.nodes;
113
+ });
114
+ }
115
+ }]);
116
+
117
+ return Nionic;
118
+ }();
119
+
120
+ Nionic.queryDefaults = {
121
+ additionalFields: []
122
+ };
123
+
124
+
125
+ export default Nionic;
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["nionic/index.js"],"names":["Nionic","sdk","request","_baseUrl","config","audiences","nionic","host","_request","_sdk","_orgIdToTenantId","_tenants","Set","Object","values","orgOrTenantId","Error","has","options","tenantId","_getTenantId","url","replace","post","then","resp","data","errors","Promise","reject","resolve","query","variables","_query","queryDefaults","additionalFields","join","facilities","nodes","facilityId","parseInt","facility","metricLabels","metricLabel","mutableOnly","metricData"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Module that provides access to Nionic platform.\n *\n * @typicalname contxtSdk.nionic\n */\nclass Nionic {\n /**\n * @param {Object} sdk An instance of the SDK so the module can communicate with other modules.\n * @param {Object} request An instance of the request module tied to this module's audience.\n */\n constructor(sdk, request) {\n this._baseUrl = `${sdk.config.audiences.nionic.host}`;\n this._request = request;\n this._sdk = sdk;\n\n // Backwards compatibility for legacy uuid's\n this._orgIdToTenantId = {\n '18d8b68e-3e59-418e-9f23-47b7cd6bdd6b': 'genan',\n '02efa741-a96f-4124-a463-ae13a704b8fc': 'lineage',\n '5209751f-ea46-4b3e-a5dd-b8d03311b791': 'ndustrial',\n '2fe29680-fc3d-4888-9e9b-44be1e59c22c': 'sfnt',\n 'b2c6705d-1727-467f-a450-207f110c9966': 'trenton'\n };\n this._tenants = new Set(Object.values(this._orgIdToTenantId));\n }\n\n static queryDefaults = {\n additionalFields: []\n };\n\n _getTenantId(orgOrTenantId) {\n if (!orgOrTenantId) throw Error('Tenant is required');\n if (\n !(orgOrTenantId in this._orgIdToTenantId) &&\n !this._tenants.has(orgOrTenantId)\n ) {\n throw Error(\n `Tenant is either unrecognized or not yet supported: ${orgOrTenantId}`\n );\n }\n return this._orgIdToTenantId[orgOrTenantId] || orgOrTenantId;\n }\n\n _query(orgOrTenantId, options) {\n const tenantId = this._getTenantId(orgOrTenantId);\n const url = `${this._baseUrl.replace('<tenant>', tenantId)}/graphql`;\n return this._request.post(url, options).then((resp) => {\n if (resp.data && resp.data.errors) {\n return Promise.reject(Error(resp.data.errors));\n }\n return Promise.resolve(resp.data);\n });\n }\n\n executeQuery(orgOrTenantId, query, variables = {}) {\n return this._query(orgOrTenantId, { query, variables });\n }\n\n getAllFacilities(orgOrTenantId, options = Nionic.queryDefaults) {\n const { additionalFields } = options;\n return this._query(orgOrTenantId, {\n query: `\n query {\n facilities {\n nodes {\n id\n name\n slug\n address\n city\n state\n zip\n timezone: timezoneName\n createdAt\n updatedAt\n ${additionalFields.join('\\n')}\n }\n }\n }\n `\n }).then((data) => data.facilities.nodes);\n }\n\n getFacility(orgOrTenantId, facilityId, options = Nionic.queryDefaults) {\n const { additionalFields } = options;\n return this._query(orgOrTenantId, {\n query: `\n query($facilityId: Int!) {\n facility(id: $facilityId) {\n id\n name\n slug\n address\n city\n state\n zip\n timezone: timezoneName\n createdAt\n updatedAt\n ${additionalFields.join('\\n')}\n }\n }\n `,\n variables: { facilityId: parseInt(facilityId) }\n }).then((resp) => resp.facility);\n }\n\n getFacilityMetricLabels(orgOrTenantId, { facilityId }) {\n return this._query(orgOrTenantId, {\n query: `\n query($facilityId: Int!) {\n facility(id: $facilityId) {\n metricLabels {\n sourceId\n label\n }\n }\n }\n `,\n variables: { facilityId: parseInt(facilityId) }\n }).then((resp) => resp.facility.metricLabels);\n }\n\n getFacilityMetrics(\n orgOrTenantId,\n { facilityId, metricLabel, mutableOnly = false },\n options = Nionic.queryDefaults\n ) {\n const { additionalFields } = options;\n return this._query(orgOrTenantId, {\n query: `\n query($facilityId: Int!, $metricLabel: String!, $mutableOnly: Boolean) {\n facility(id: $facilityId) {\n metricData(label: $metricLabel, mutableOnly: $mutableOnly) {\n nodes {\n time\n sourceId\n label\n data\n ${additionalFields.join('\\n')}\n }\n }\n }\n }\n `,\n variables: { facilityId: parseInt(facilityId), metricLabel, mutableOnly }\n }).then((resp) => resp.facility.metricData.nodes);\n }\n}\n\nexport default Nionic;\n"]}
@@ -22,8 +22,8 @@ exports.default = {
22
22
  host: 'https://contxtauth.com'
23
23
  },
24
24
  staging: {
25
- clientId: 'XzgumXUg5U57015haylz4zaJsiQqZy4l',
26
- host: 'https://contxt-auth-staging.api.ndustrial.io'
25
+ clientId: '7TceUsM1eC4nKmdoC717383DWyfc9QoY',
26
+ host: 'https://contxt-auth-service.staging.ndustrial.io'
27
27
  }
28
28
  },
29
29
  coordinator: {
@@ -33,7 +33,7 @@ exports.default = {
33
33
  },
34
34
  staging: {
35
35
  clientId: 'qGzdTXcmB57zlTp86rYsivG9qEss1lbF',
36
- host: 'https://contxt-api.staging.ndustrial.io'
36
+ host: 'https://contxt.api.staging.ndustrial.io'
37
37
  }
38
38
  },
39
39
  events: {
@@ -66,16 +66,6 @@ exports.default = {
66
66
  host: 'https://files.api.staging.ndustrial.io'
67
67
  }
68
68
  },
69
- health: {
70
- staging: {
71
- clientId: '1zQ2YXbHXotrf2dDKgySqEjlJBz465qq',
72
- host: 'https://health-staging.api.ndustrial.io'
73
- },
74
- production: {
75
- clientId: '6uaQIV1KnnWhXiTm09iGDvy2aQaz2xVI',
76
- host: 'https://health.api.ndustrial.io'
77
- }
78
- },
79
69
  iot: {
80
70
  staging: {
81
71
  clientId: 'm35AEcxD8hf65sq04ZU7yFxqpqVkKzES',
@@ -85,6 +75,16 @@ exports.default = {
85
75
  clientId: 'iznTb30Sfp2Jpaf398I5DN6MyPuDCftA',
86
76
  host: 'https://feeds.api.ndustrial.io'
87
77
  }
78
+ },
79
+ nionic: {
80
+ staging: {
81
+ clientId: 'vhGxildn8hRRWZj49y18BGtbjTkFHcTG',
82
+ host: 'https://<tenant>.api.staging.ndustrial.io'
83
+ },
84
+ production: {
85
+ clientId: 'vtiZlMRo4apDvThTRiH7kLifQXWUdi9j',
86
+ host: 'https://<tenant>.api.ndustrial.io'
87
+ }
88
88
  }
89
89
  };
90
90
  //# sourceMappingURL=audiences.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["config/audiences.js"],"names":["bus","production","clientId","host","webSocket","staging","contxtAuth","coordinator","events","facilities","files","health","iot"],"mappings":";;;;;kBAAe;AACbA,OAAK;AACHC,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM,0BAFI;AAGVC,iBAAW;AAHD,KADT;AAMHC,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM,kCAFC;AAGPC,iBAAW;AAHJ;AANN,GADQ;AAabE,cAAY;AACVL,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADF;AAKVE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALC,GAbC;AAuBbI,eAAa;AACXN,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADD;AAKXE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALE,GAvBA;AAiCbK,UAAQ;AACNH,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADH;AAKNF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALN,GAjCK;AA2CbM,cAAY;AACVR,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADF;AAKVE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALC,GA3CC;AAqDbO,SAAO;AACLT,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADP;AAKLE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALJ,GArDM;AA+DbQ,UAAQ;AACNN,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADH;AAKNF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALN,GA/DK;AAyEbS,OAAK;AACHP,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADN;AAKHF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALT;AAzEQ,C","file":"audiences.js","sourcesContent":["export default {\n bus: {\n production: {\n clientId: 'bmoJ2jhfyIP5s4IZx5Ss6xQ9lmkoDixO',\n host: 'https://bus.ndustrial.io',\n webSocket: 'wss://bus.ndustrial.io'\n },\n staging: {\n clientId: '1HD1NG1VTBtkqRt2HRRj3E3hdmqmwzoz',\n host: 'https://bus-staging.ndustrial.io',\n webSocket: 'wss://bus-staging.ndustrial.io'\n }\n },\n contxtAuth: {\n production: {\n clientId: '75wT048QcpE7ujwBJPPjr263eTHl4gEX',\n host: 'https://contxtauth.com'\n },\n staging: {\n clientId: 'XzgumXUg5U57015haylz4zaJsiQqZy4l',\n host: 'https://contxt-auth-staging.api.ndustrial.io'\n }\n },\n coordinator: {\n production: {\n clientId: '8qY2xJob1JAxhmVhIDLCNnGriTM9bct8',\n host: 'https://contxt.api.ndustrial.io'\n },\n staging: {\n clientId: 'qGzdTXcmB57zlTp86rYsivG9qEss1lbF',\n host: 'https://contxt-api.staging.ndustrial.io'\n }\n },\n events: {\n staging: {\n clientId: 'dn4MaocJFdKtsBy9sFFaTeuJWL1nt5xu',\n host: 'https://events.api.staging.ndustrial.io'\n },\n production: {\n clientId: '7jzwfE20O2XZ4aq3cO1wmk63G9GzNc8j',\n host: 'https://events.api.ndustrial.io'\n }\n },\n facilities: {\n production: {\n clientId: 'SgbCopArnGMa9PsRlCVUCVRwxocntlg0',\n host: 'https://facilities.api.ndustrial.io'\n },\n staging: {\n clientId: 'xG775XHIOZVUn84seNeHXi0Qe55YuR5w',\n host: 'https://facilities-staging.api.ndustrial.io'\n }\n },\n files: {\n production: {\n clientId: 'VZJ2MRd71dM9oX2hB1EVAEjUe6loL7pl',\n host: 'https://files.api.ndustrial.io'\n },\n staging: {\n clientId: 'SLE310LY4nDT5p06sUGPVOLlGXk5osbQ',\n host: 'https://files.api.staging.ndustrial.io'\n }\n },\n health: {\n staging: {\n clientId: '1zQ2YXbHXotrf2dDKgySqEjlJBz465qq',\n host: 'https://health-staging.api.ndustrial.io'\n },\n production: {\n clientId: '6uaQIV1KnnWhXiTm09iGDvy2aQaz2xVI',\n host: 'https://health.api.ndustrial.io'\n }\n },\n iot: {\n staging: {\n clientId: 'm35AEcxD8hf65sq04ZU7yFxqpqVkKzES',\n host: 'https://feeds-staging.api.ndustrial.io'\n },\n production: {\n clientId: 'iznTb30Sfp2Jpaf398I5DN6MyPuDCftA',\n host: 'https://feeds.api.ndustrial.io'\n }\n }\n};\n"]}
1
+ {"version":3,"sources":["config/audiences.js"],"names":["bus","production","clientId","host","webSocket","staging","contxtAuth","coordinator","events","facilities","files","iot","nionic"],"mappings":";;;;;kBAAe;AACbA,OAAK;AACHC,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM,0BAFI;AAGVC,iBAAW;AAHD,KADT;AAMHC,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM,kCAFC;AAGPC,iBAAW;AAHJ;AANN,GADQ;AAabE,cAAY;AACVL,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADF;AAKVE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALC,GAbC;AAuBbI,eAAa;AACXN,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADD;AAKXE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALE,GAvBA;AAiCbK,UAAQ;AACNH,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADH;AAKNF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALN,GAjCK;AA2CbM,cAAY;AACVR,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADF;AAKVE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALC,GA3CC;AAqDbO,SAAO;AACLT,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI,KADP;AAKLE,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC;AALJ,GArDM;AA+DbQ,OAAK;AACHN,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADN;AAKHF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALT,GA/DQ;AAyEbS,UAAQ;AACNP,aAAS;AACPH,gBAAU,kCADH;AAEPC,YAAM;AAFC,KADH;AAKNF,gBAAY;AACVC,gBAAU,kCADA;AAEVC,YAAM;AAFI;AALN;AAzEK,C","file":"audiences.js","sourcesContent":["export default {\n bus: {\n production: {\n clientId: 'bmoJ2jhfyIP5s4IZx5Ss6xQ9lmkoDixO',\n host: 'https://bus.ndustrial.io',\n webSocket: 'wss://bus.ndustrial.io'\n },\n staging: {\n clientId: '1HD1NG1VTBtkqRt2HRRj3E3hdmqmwzoz',\n host: 'https://bus-staging.ndustrial.io',\n webSocket: 'wss://bus-staging.ndustrial.io'\n }\n },\n contxtAuth: {\n production: {\n clientId: '75wT048QcpE7ujwBJPPjr263eTHl4gEX',\n host: 'https://contxtauth.com'\n },\n staging: {\n clientId: '7TceUsM1eC4nKmdoC717383DWyfc9QoY',\n host: 'https://contxt-auth-service.staging.ndustrial.io'\n }\n },\n coordinator: {\n production: {\n clientId: '8qY2xJob1JAxhmVhIDLCNnGriTM9bct8',\n host: 'https://contxt.api.ndustrial.io'\n },\n staging: {\n clientId: 'qGzdTXcmB57zlTp86rYsivG9qEss1lbF',\n host: 'https://contxt.api.staging.ndustrial.io'\n }\n },\n events: {\n staging: {\n clientId: 'dn4MaocJFdKtsBy9sFFaTeuJWL1nt5xu',\n host: 'https://events.api.staging.ndustrial.io'\n },\n production: {\n clientId: '7jzwfE20O2XZ4aq3cO1wmk63G9GzNc8j',\n host: 'https://events.api.ndustrial.io'\n }\n },\n facilities: {\n production: {\n clientId: 'SgbCopArnGMa9PsRlCVUCVRwxocntlg0',\n host: 'https://facilities.api.ndustrial.io'\n },\n staging: {\n clientId: 'xG775XHIOZVUn84seNeHXi0Qe55YuR5w',\n host: 'https://facilities-staging.api.ndustrial.io'\n }\n },\n files: {\n production: {\n clientId: 'VZJ2MRd71dM9oX2hB1EVAEjUe6loL7pl',\n host: 'https://files.api.ndustrial.io'\n },\n staging: {\n clientId: 'SLE310LY4nDT5p06sUGPVOLlGXk5osbQ',\n host: 'https://files.api.staging.ndustrial.io'\n }\n },\n iot: {\n staging: {\n clientId: 'm35AEcxD8hf65sq04ZU7yFxqpqVkKzES',\n host: 'https://feeds-staging.api.ndustrial.io'\n },\n production: {\n clientId: 'iznTb30Sfp2Jpaf398I5DN6MyPuDCftA',\n host: 'https://feeds.api.ndustrial.io'\n }\n },\n nionic: {\n staging: {\n clientId: 'vhGxildn8hRRWZj49y18BGtbjTkFHcTG',\n host: 'https://<tenant>.api.staging.ndustrial.io'\n },\n production: {\n clientId: 'vtiZlMRo4apDvThTRiH7kLifQXWUdi9j',\n host: 'https://<tenant>.api.ndustrial.io'\n }\n }\n};\n"]}
package/lib/index.js CHANGED
@@ -3,13 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.toCamelCase = exports.toSnakeCase = undefined;
6
7
 
7
8
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
9
 
9
- var _assets = require('./assets');
10
-
11
- var _assets2 = _interopRequireDefault(_assets);
12
-
13
10
  var _bus = require('./bus');
14
11
 
15
12
  var _bus2 = _interopRequireDefault(_bus);
@@ -26,22 +23,18 @@ var _events = require('./events');
26
23
 
27
24
  var _events2 = _interopRequireDefault(_events);
28
25
 
29
- var _facilities = require('./facilities');
30
-
31
- var _facilities2 = _interopRequireDefault(_facilities);
32
-
33
26
  var _files = require('./files');
34
27
 
35
28
  var _files2 = _interopRequireDefault(_files);
36
29
 
37
- var _health = require('./health');
38
-
39
- var _health2 = _interopRequireDefault(_health);
40
-
41
30
  var _iot = require('./iot');
42
31
 
43
32
  var _iot2 = _interopRequireDefault(_iot);
44
33
 
34
+ var _nionic = require('./nionic');
35
+
36
+ var _nionic2 = _interopRequireDefault(_nionic);
37
+
45
38
  var _request = require('./request');
46
39
 
47
40
  var _request2 = _interopRequireDefault(_request);
@@ -50,6 +43,8 @@ var _sessionTypes = require('./sessionTypes');
50
43
 
51
44
  var sessionTypes = _interopRequireWildcard(_sessionTypes);
52
45
 
46
+ var _objects = require('./utils/objects');
47
+
53
48
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
54
49
 
55
50
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -134,15 +129,13 @@ var ContxtSdk = function () {
134
129
 
135
130
  this.config = new _config2.default(config, externalModules);
136
131
 
137
- this.assets = new _assets2.default(this, this._createRequest('facilities'));
138
132
  this.auth = this._createAuthSession(sessionType);
139
133
  this.bus = new _bus2.default(this, this._createRequest('bus'));
140
134
  this.coordinator = new _coordinator2.default(this, this._createRequest('coordinator'));
141
135
  this.events = new _events2.default(this, this._createRequest('events'));
142
- this.facilities = new _facilities2.default(this, this._createRequest('facilities'));
143
136
  this.files = new _files2.default(this, this._createRequest('files'));
144
- this.health = new _health2.default(this, this._createRequest('health'));
145
137
  this.iot = new _iot2.default(this, this._createRequest('iot'));
138
+ this.nionic = new _nionic2.default(this, this._createRequest('nionic'));
146
139
 
147
140
  this._decorate(externalModules);
148
141
  }
@@ -274,4 +267,6 @@ var ContxtSdk = function () {
274
267
  }();
275
268
 
276
269
  exports.default = ContxtSdk;
270
+ exports.toSnakeCase = _objects.toSnakeCase;
271
+ exports.toCamelCase = _objects.toCamelCase;
277
272
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"names":["sessionTypes","ContxtSdk","config","externalModules","sessionType","_dynamicModuleNames","_replacedModules","Config","assets","Assets","_createRequest","auth","_createAuthSession","bus","Bus","coordinator","Coordinator","events","Events","facilities","Facilities","files","Files","health","Health","iot","Iot","_decorate","moduleName","clientId","host","module","indexOf","Error","addDynamicAudience","clearCurrentApiToken","removeDynamicAudience","filter","name","TYPES","AUTH0_WEB_AUTH","Auth0WebAuth","PASSWORD_GRANT_AUTH","PasswordGrantAuth","MACHINE_AUTH","MachineAuth","audienceName","Request","modules","Object","keys","forEach"],"mappings":"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","file":"index.js","sourcesContent":["import Assets from './assets';\nimport Bus from './bus';\nimport Config from './config';\nimport Coordinator from './coordinator';\nimport Events from './events';\nimport Facilities from './facilities';\nimport Files from './files';\nimport Health from './health';\nimport Iot from './iot';\nimport Request from './request';\nimport * as sessionTypes from './sessionTypes';\n\n/**\n * An adapter that allows the SDK to authenticate with different services and manage various tokens.\n * Can authenticate with a service like Auth0 and then with Contxt or can communicate directly\n * with Contxt. The adapter must implement required methods, but most methods are optional. Some of\n * the optional methods are documented below.\n *\n * @typedef {Object} SessionType\n * @property {function} [getCurrentAccessToken] Provides a current access token from Auth0 that is\n * used for profile information and can be used to get API token for Contxt itself\n * @property {function} getCurrentApiToken Provides a current API token that is used across\n * different Contxt services\n * @property {function} [getProfile] Provides profile information about the current user\n * @property {function} [handleAuthentication] Is called by front-end code in the Auth0 reference\n * implementation to handle getting the access token from Auth0\n * @property {function} [isAuthenticated] Tells caller if the current user is authenticated.\n * Different session types may determine if a user is authenticated in different ways.\n * @property {function} [logIn] Is used by front-end code in the Auth0 reference implementation to\n * start the sign in process\n * @property {function} [logOut] Is used by the front-end code in the Auth0 reference implementation\n * to sign the user out\n */\n\n/**\n * ContxtSdk constructor\n *\n * @example\n * import ContxtSdk from '@ndustrial/contxt-sdk';\n * import ExternalModule1 from './ExternalModule1';\n * import history from '../services/history';\n *\n * const contxtSdk = new ContxtSdk({\n * config: {\n * auth: {\n * clientId: 'Auth0 client id of the application being built',\n * customModuleConfigs: {\n * facilities: {\n * env: 'production'\n * }\n * },\n * env: 'staging',\n * onAuthenticate: (auth0WebAuthSessionInfo) => handleSuccessfulAuth(auth0WebAuthSessionInfo),\n * onRedirect: (pathname) => history.push(pathname)\n * }\n * },\n * externalModules: {\n * externalModule1: {\n * clientId: 'Auth0 client id of the external module',\n * host: 'https://www.example.com/externalModule1',\n * module: ExternalModule1\n * }\n * },\n * sessionType: 'auth0WebAuth'\n * });\n */\nclass ContxtSdk {\n /**\n * @param {UserConfig} config The user provided configuration options\n * @param {Object.<string, ExternalModule>} [externalModules] User provided external modules that\n * should be treated as first class citizens\n * @param {string} sessionType The type of auth session you wish to use (e.g. auth0WebAuth\n * or machine)\n */\n constructor({ config = {}, externalModules = {}, sessionType }) {\n this._dynamicModuleNames = [];\n this._replacedModules = {};\n\n this.config = new Config(config, externalModules);\n\n this.assets = new Assets(this, this._createRequest('facilities'));\n this.auth = this._createAuthSession(sessionType);\n this.bus = new Bus(this, this._createRequest('bus'));\n this.coordinator = new Coordinator(\n this,\n this._createRequest('coordinator')\n );\n this.events = new Events(this, this._createRequest('events'));\n this.facilities = new Facilities(this, this._createRequest('facilities'));\n this.files = new Files(this, this._createRequest('files'));\n this.health = new Health(this, this._createRequest('health'));\n this.iot = new Iot(this, this._createRequest('iot'));\n\n this._decorate(externalModules);\n }\n\n /**\n * Mounts a dynamic module into the SDK. Is used to add a module after initial\n * instatiation that will use the SDK's authentication and request methods to\n * access an ndustrial.io API\n *\n * @param {string} moduleName The name (or key) that will serve as the mount\n * point for the module in the SDK (i.e. customModule -> sdk.customModule)\n * @param {ExternalModule} externalModule\n */\n mountDynamicModule(moduleName, { clientId, host, module }) {\n if (this._dynamicModuleNames.indexOf(moduleName) > -1) {\n throw new Error(\n `An dynamic module of the name \\`${moduleName}\\` already exists. This problem can be rectified by using a different name for the new module.`\n );\n }\n\n this.config.addDynamicAudience(moduleName, { clientId, host });\n\n this._dynamicModuleNames = [...this._dynamicModuleNames, moduleName];\n\n if (this[moduleName]) {\n this._replacedModules[moduleName] = this[moduleName];\n }\n\n this[moduleName] = new module(this, this._createRequest(moduleName));\n }\n\n /**\n * Unmounts a dynamic module from the SDK\n *\n * @param {string} moduleName The name of the dynamic module to unmount\n */\n unmountDynamicModule(moduleName) {\n if (this._dynamicModuleNames.indexOf(moduleName) === -1) {\n throw new Error('There is no external module to unmount.');\n }\n\n this.auth.clearCurrentApiToken(moduleName);\n this.config.removeDynamicAudience(moduleName);\n\n this[moduleName] = this._replacedModules[moduleName];\n\n delete this._replacedModules[moduleName];\n this._dynamicModuleNames = this._dynamicModuleNames.filter(\n (name) => name !== moduleName\n );\n }\n\n /**\n * Returns a new instance of the session type requested\n *\n * @param {string} sessionType\n *\n * @returns {SessionType} sessionType\n * @throws {Error}\n *\n * @private\n */\n _createAuthSession(sessionType) {\n switch (sessionType) {\n case sessionTypes.TYPES.AUTH0_WEB_AUTH:\n return new sessionTypes.Auth0WebAuth(this);\n\n case sessionTypes.TYPES.PASSWORD_GRANT_AUTH:\n return new sessionTypes.PasswordGrantAuth(this);\n\n case sessionTypes.TYPES.MACHINE_AUTH:\n return new sessionTypes.MachineAuth(this);\n\n default:\n throw new Error('Invalid sessionType provided');\n }\n }\n\n /**\n * Returns an instance of the Request module that is tied to the requested audience\n *\n * @param {string} audienceName The audience name of the service you are trying to reach\n * (e.g. facilities or feeds)\n *\n * @returns {Object} Request module\n *\n * @private\n */\n _createRequest(audienceName) {\n return new Request(this, audienceName);\n }\n\n /**\n * Decorates custom modules onto the SDK instance so they behave as first-class citizens.\n *\n * @param {Object} modules\n * @param {function} modules.module\n *\n * @private\n */\n _decorate(modules) {\n Object.keys(modules).forEach((moduleName) => {\n this[moduleName] = new modules[moduleName].module(\n this,\n this._createRequest(moduleName)\n );\n });\n }\n}\n\nexport default ContxtSdk;\n"]}
1
+ {"version":3,"sources":["index.js"],"names":["sessionTypes","ContxtSdk","config","externalModules","sessionType","_dynamicModuleNames","_replacedModules","Config","auth","_createAuthSession","bus","Bus","_createRequest","coordinator","Coordinator","events","Events","files","Files","iot","Iot","nionic","Nionic","_decorate","moduleName","clientId","host","module","indexOf","Error","addDynamicAudience","clearCurrentApiToken","removeDynamicAudience","filter","name","TYPES","AUTH0_WEB_AUTH","Auth0WebAuth","PASSWORD_GRANT_AUTH","PasswordGrantAuth","MACHINE_AUTH","MachineAuth","audienceName","Request","modules","Object","keys","forEach","toSnakeCase","toCamelCase"],"mappings":";;;;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;IAAYA,Y;;AACZ;;;;;;;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;AAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCMC,S;AACJ;;;;;;;AAOA,2BAAgE;AAAA,2BAAlDC,MAAkD;AAAA,QAAlDA,MAAkD,+BAAzC,EAAyC;AAAA,oCAArCC,eAAqC;AAAA,QAArCA,eAAqC,wCAAnB,EAAmB;AAAA,QAAfC,WAAe,QAAfA,WAAe;;AAAA;;AAC9D,SAAKC,mBAAL,GAA2B,EAA3B;AACA,SAAKC,gBAAL,GAAwB,EAAxB;;AAEA,SAAKJ,MAAL,GAAc,IAAIK,gBAAJ,CAAWL,MAAX,EAAmBC,eAAnB,CAAd;;AAEA,SAAKK,IAAL,GAAY,KAAKC,kBAAL,CAAwBL,WAAxB,CAAZ;AACA,SAAKM,GAAL,GAAW,IAAIC,aAAJ,CAAQ,IAAR,EAAc,KAAKC,cAAL,CAAoB,KAApB,CAAd,CAAX;AACA,SAAKC,WAAL,GAAmB,IAAIC,qBAAJ,CACjB,IADiB,EAEjB,KAAKF,cAAL,CAAoB,aAApB,CAFiB,CAAnB;AAIA,SAAKG,MAAL,GAAc,IAAIC,gBAAJ,CAAW,IAAX,EAAiB,KAAKJ,cAAL,CAAoB,QAApB,CAAjB,CAAd;AACA,SAAKK,KAAL,GAAa,IAAIC,eAAJ,CAAU,IAAV,EAAgB,KAAKN,cAAL,CAAoB,OAApB,CAAhB,CAAb;AACA,SAAKO,GAAL,GAAW,IAAIC,aAAJ,CAAQ,IAAR,EAAc,KAAKR,cAAL,CAAoB,KAApB,CAAd,CAAX;AACA,SAAKS,MAAL,GAAc,IAAIC,gBAAJ,CAAW,IAAX,EAAiB,KAAKV,cAAL,CAAoB,QAApB,CAAjB,CAAd;;AAEA,SAAKW,SAAL,CAAepB,eAAf;AACD;;AAED;;;;;;;;;;;;;uCASmBqB,U,SAAwC;AAAA,UAA1BC,QAA0B,SAA1BA,QAA0B;AAAA,UAAhBC,IAAgB,SAAhBA,IAAgB;AAAA,UAAVC,MAAU,SAAVA,MAAU;;AACzD,UAAI,KAAKtB,mBAAL,CAAyBuB,OAAzB,CAAiCJ,UAAjC,IAA+C,CAAC,CAApD,EAAuD;AACrD,cAAM,IAAIK,KAAJ,qCAC+BL,UAD/B,mGAAN;AAGD;;AAED,WAAKtB,MAAL,CAAY4B,kBAAZ,CAA+BN,UAA/B,EAA2C,EAAEC,kBAAF,EAAYC,UAAZ,EAA3C;;AAEA,WAAKrB,mBAAL,gCAA+B,KAAKA,mBAApC,IAAyDmB,UAAzD;;AAEA,UAAI,KAAKA,UAAL,CAAJ,EAAsB;AACpB,aAAKlB,gBAAL,CAAsBkB,UAAtB,IAAoC,KAAKA,UAAL,CAApC;AACD;;AAED,WAAKA,UAAL,IAAmB,IAAIG,MAAJ,CAAW,IAAX,EAAiB,KAAKf,cAAL,CAAoBY,UAApB,CAAjB,CAAnB;AACD;;AAED;;;;;;;;yCAKqBA,U,EAAY;AAC/B,UAAI,KAAKnB,mBAAL,CAAyBuB,OAAzB,CAAiCJ,UAAjC,MAAiD,CAAC,CAAtD,EAAyD;AACvD,cAAM,IAAIK,KAAJ,CAAU,yCAAV,CAAN;AACD;;AAED,WAAKrB,IAAL,CAAUuB,oBAAV,CAA+BP,UAA/B;AACA,WAAKtB,MAAL,CAAY8B,qBAAZ,CAAkCR,UAAlC;;AAEA,WAAKA,UAAL,IAAmB,KAAKlB,gBAAL,CAAsBkB,UAAtB,CAAnB;;AAEA,aAAO,KAAKlB,gBAAL,CAAsBkB,UAAtB,CAAP;AACA,WAAKnB,mBAAL,GAA2B,KAAKA,mBAAL,CAAyB4B,MAAzB,CACzB,UAACC,IAAD;AAAA,eAAUA,SAASV,UAAnB;AAAA,OADyB,CAA3B;AAGD;;AAED;;;;;;;;;;;;;uCAUmBpB,W,EAAa;AAC9B,cAAQA,WAAR;AACE,aAAKJ,aAAamC,KAAb,CAAmBC,cAAxB;AACE,iBAAO,IAAIpC,aAAaqC,YAAjB,CAA8B,IAA9B,CAAP;;AAEF,aAAKrC,aAAamC,KAAb,CAAmBG,mBAAxB;AACE,iBAAO,IAAItC,aAAauC,iBAAjB,CAAmC,IAAnC,CAAP;;AAEF,aAAKvC,aAAamC,KAAb,CAAmBK,YAAxB;AACE,iBAAO,IAAIxC,aAAayC,WAAjB,CAA6B,IAA7B,CAAP;;AAEF;AACE,gBAAM,IAAIZ,KAAJ,CAAU,8BAAV,CAAN;AAXJ;AAaD;;AAED;;;;;;;;;;;;;mCAUea,Y,EAAc;AAC3B,aAAO,IAAIC,iBAAJ,CAAY,IAAZ,EAAkBD,YAAlB,CAAP;AACD;;AAED;;;;;;;;;;;8BAQUE,O,EAAS;AAAA;;AACjBC,aAAOC,IAAP,CAAYF,OAAZ,EAAqBG,OAArB,CAA6B,UAACvB,UAAD,EAAgB;AAC3C,cAAKA,UAAL,IAAmB,IAAIoB,QAAQpB,UAAR,EAAoBG,MAAxB,CACjB,KADiB,EAEjB,MAAKf,cAAL,CAAoBY,UAApB,CAFiB,CAAnB;AAID,OALD;AAMD;;;;;;kBAGYvB,S;QACN+C,W,GAAAA,oB;QAAaC,W,GAAAA,oB","file":"index.js","sourcesContent":["import Bus from './bus';\nimport Config from './config';\nimport Coordinator from './coordinator';\nimport Events from './events';\nimport Files from './files';\nimport Iot from './iot';\nimport Nionic from './nionic';\nimport Request from './request';\nimport * as sessionTypes from './sessionTypes';\nimport { toSnakeCase, toCamelCase } from './utils/objects';\n\n/**\n * An adapter that allows the SDK to authenticate with different services and manage various tokens.\n * Can authenticate with a service like Auth0 and then with Contxt or can communicate directly\n * with Contxt. The adapter must implement required methods, but most methods are optional. Some of\n * the optional methods are documented below.\n *\n * @typedef {Object} SessionType\n * @property {function} [getCurrentAccessToken] Provides a current access token from Auth0 that is\n * used for profile information and can be used to get API token for Contxt itself\n * @property {function} getCurrentApiToken Provides a current API token that is used across\n * different Contxt services\n * @property {function} [getProfile] Provides profile information about the current user\n * @property {function} [handleAuthentication] Is called by front-end code in the Auth0 reference\n * implementation to handle getting the access token from Auth0\n * @property {function} [isAuthenticated] Tells caller if the current user is authenticated.\n * Different session types may determine if a user is authenticated in different ways.\n * @property {function} [logIn] Is used by front-end code in the Auth0 reference implementation to\n * start the sign in process\n * @property {function} [logOut] Is used by the front-end code in the Auth0 reference implementation\n * to sign the user out\n */\n\n/**\n * ContxtSdk constructor\n *\n * @example\n * import ContxtSdk from '@ndustrial/contxt-sdk';\n * import ExternalModule1 from './ExternalModule1';\n * import history from '../services/history';\n *\n * const contxtSdk = new ContxtSdk({\n * config: {\n * auth: {\n * clientId: 'Auth0 client id of the application being built',\n * customModuleConfigs: {\n * facilities: {\n * env: 'production'\n * }\n * },\n * env: 'staging',\n * onAuthenticate: (auth0WebAuthSessionInfo) => handleSuccessfulAuth(auth0WebAuthSessionInfo),\n * onRedirect: (pathname) => history.push(pathname)\n * }\n * },\n * externalModules: {\n * externalModule1: {\n * clientId: 'Auth0 client id of the external module',\n * host: 'https://www.example.com/externalModule1',\n * module: ExternalModule1\n * }\n * },\n * sessionType: 'auth0WebAuth'\n * });\n */\nclass ContxtSdk {\n /**\n * @param {UserConfig} config The user provided configuration options\n * @param {Object.<string, ExternalModule>} [externalModules] User provided external modules that\n * should be treated as first class citizens\n * @param {string} sessionType The type of auth session you wish to use (e.g. auth0WebAuth\n * or machine)\n */\n constructor({ config = {}, externalModules = {}, sessionType }) {\n this._dynamicModuleNames = [];\n this._replacedModules = {};\n\n this.config = new Config(config, externalModules);\n\n this.auth = this._createAuthSession(sessionType);\n this.bus = new Bus(this, this._createRequest('bus'));\n this.coordinator = new Coordinator(\n this,\n this._createRequest('coordinator')\n );\n this.events = new Events(this, this._createRequest('events'));\n this.files = new Files(this, this._createRequest('files'));\n this.iot = new Iot(this, this._createRequest('iot'));\n this.nionic = new Nionic(this, this._createRequest('nionic'));\n\n this._decorate(externalModules);\n }\n\n /**\n * Mounts a dynamic module into the SDK. Is used to add a module after initial\n * instatiation that will use the SDK's authentication and request methods to\n * access an ndustrial.io API\n *\n * @param {string} moduleName The name (or key) that will serve as the mount\n * point for the module in the SDK (i.e. customModule -> sdk.customModule)\n * @param {ExternalModule} externalModule\n */\n mountDynamicModule(moduleName, { clientId, host, module }) {\n if (this._dynamicModuleNames.indexOf(moduleName) > -1) {\n throw new Error(\n `An dynamic module of the name \\`${moduleName}\\` already exists. This problem can be rectified by using a different name for the new module.`\n );\n }\n\n this.config.addDynamicAudience(moduleName, { clientId, host });\n\n this._dynamicModuleNames = [...this._dynamicModuleNames, moduleName];\n\n if (this[moduleName]) {\n this._replacedModules[moduleName] = this[moduleName];\n }\n\n this[moduleName] = new module(this, this._createRequest(moduleName));\n }\n\n /**\n * Unmounts a dynamic module from the SDK\n *\n * @param {string} moduleName The name of the dynamic module to unmount\n */\n unmountDynamicModule(moduleName) {\n if (this._dynamicModuleNames.indexOf(moduleName) === -1) {\n throw new Error('There is no external module to unmount.');\n }\n\n this.auth.clearCurrentApiToken(moduleName);\n this.config.removeDynamicAudience(moduleName);\n\n this[moduleName] = this._replacedModules[moduleName];\n\n delete this._replacedModules[moduleName];\n this._dynamicModuleNames = this._dynamicModuleNames.filter(\n (name) => name !== moduleName\n );\n }\n\n /**\n * Returns a new instance of the session type requested\n *\n * @param {string} sessionType\n *\n * @returns {SessionType} sessionType\n * @throws {Error}\n *\n * @private\n */\n _createAuthSession(sessionType) {\n switch (sessionType) {\n case sessionTypes.TYPES.AUTH0_WEB_AUTH:\n return new sessionTypes.Auth0WebAuth(this);\n\n case sessionTypes.TYPES.PASSWORD_GRANT_AUTH:\n return new sessionTypes.PasswordGrantAuth(this);\n\n case sessionTypes.TYPES.MACHINE_AUTH:\n return new sessionTypes.MachineAuth(this);\n\n default:\n throw new Error('Invalid sessionType provided');\n }\n }\n\n /**\n * Returns an instance of the Request module that is tied to the requested audience\n *\n * @param {string} audienceName The audience name of the service you are trying to reach\n * (e.g. facilities or feeds)\n *\n * @returns {Object} Request module\n *\n * @private\n */\n _createRequest(audienceName) {\n return new Request(this, audienceName);\n }\n\n /**\n * Decorates custom modules onto the SDK instance so they behave as first-class citizens.\n *\n * @param {Object} modules\n * @param {function} modules.module\n *\n * @private\n */\n _decorate(modules) {\n Object.keys(modules).forEach((moduleName) => {\n this[moduleName] = new modules[moduleName].module(\n this,\n this._createRequest(moduleName)\n );\n });\n }\n}\n\nexport default ContxtSdk;\nexport { toSnakeCase, toCamelCase };\n"]}