@@ -20785,6 +20785,27 @@ for (const [prop, Obj] of Object.entries(LAZILY_LOADED)) {
2078520785module.exports = HDSModel;
2078620786
2078720787
20788+ /***/ }),
20789+
20790+ /***/ "./src/HDSService.js":
20791+ /*!***************************!*\
20792+ !*** ./src/HDSService.js ***!
20793+ \***************************/
20794+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
20795+
20796+ const settings = __webpack_require__(/*! ./settings */ "./src/settings.js");
20797+ const pryv = __webpack_require__(/*! ./patchedPryv */ "./src/patchedPryv.js");
20798+
20799+ // makes Pryv service aware of default serviceUrl
20800+ class HDSService extends pryv.Service {
20801+ constructor (serviceInfoUrl, serviceCustomizations) {
20802+ serviceInfoUrl = serviceInfoUrl || settings.getServiceInfoURL();
20803+ super(serviceInfoUrl, serviceCustomizations);
20804+ }
20805+ }
20806+
20807+ module.exports = HDSService;
20808+
2078820809/***/ }),
2078920810
2079020811/***/ "./src/appTemplates/AppClientAccount.js":
@@ -22067,19 +22088,48 @@ module.exports = {
2206722088 \**********************/
2206822089/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2206922090
22070- const { localizeText, setPreferredLocales } = __webpack_require__(/*! ./localizeText */ "./src/localizeText.js");
22091+ const { localizeText } = __webpack_require__(/*! ./localizeText */ "./src/localizeText.js");
22092+ const settings = __webpack_require__(/*! ./settings */ "./src/settings.js");
22093+ const pryv = __webpack_require__(/*! ./patchedPryv */ "./src/patchedPryv.js");
22094+ const HDSModel = __webpack_require__(/*! ./HDSModel/HDSModel */ "./src/HDSModel/HDSModel.js");
22095+ const appTemplates = __webpack_require__(/*! ./appTemplates/appTemplates */ "./src/appTemplates/appTemplates.js");
22096+ const logger = __webpack_require__(/*! ./logger */ "./src/logger.js");
22097+ const HDService = __webpack_require__(/*! ./HDSService */ "./src/HDSService.js");
22098+ const { HDSLibError } = __webpack_require__(/*! ./errors */ "./src/errors.js");
22099+
22100+ let model = null;
2207122101
2207222102module.exports = {
22073- settings: __webpack_require__(/*! ./settings */ "./src/settings.js"),
22074- HDSModel: __webpack_require__(/*! ./HDSModel/HDSModel */ "./src/HDSModel/HDSModel.js"),
22075- appTemplates: __webpack_require__(/*! ./appTemplates/appTemplates */ "./src/appTemplates/appTemplates.js"),
22076- pryv: __webpack_require__(/*! ./patchedPryv */ "./src/patchedPryv.js"),
22103+ pryv,
22104+ settings,
22105+ HDService,
22106+ HDSModel,
22107+ get model () {
22108+ if (model == null) throw new HDSLibError('Call await HDSLib.initHDSModel() once');
22109+ return model;
22110+ },
22111+ initHDSModel,
22112+ appTemplates,
2207722113 localizeText,
22078- setPreferredLocales,
22079- l: localizeText,
22080- logger: __webpack_require__(/*! ./logger */ "./src/logger.js")
22114+ l: localizeText, // shortcut to HDSLib.localizeText
22115+ logger
2208122116};
2208222117
22118+ /**
22119+ * Initialized model singleton
22120+ * @returns {HDSModel}
22121+ */
22122+ async function initHDSModel (forceNew = false) {
22123+ if (!model || forceNew) {
22124+ const service = new HDService();
22125+ const serviceInfo = await service.info();
22126+ model = new HDSModel(serviceInfo.assets['hds-model']);
22127+ await model.load();
22128+ }
22129+ return model;
22130+ }
22131+
22132+
2208322133
2208422134/***/ }),
2208522135
@@ -22240,6 +22290,7 @@ if (!pryv.Connection.prototype.apiOne) {
2224022290 return result[0];
2224122291 };
2224222292}
22293+
2224322294module.exports = pryv;
2224422295
2224522296
@@ -22254,9 +22305,28 @@ module.exports = pryv;
2225422305const { setPreferredLocales } = __webpack_require__(/*! ./localizeText */ "./src/localizeText.js");
2225522306
2225622307module.exports = {
22257- setPreferredLocales
22308+ setPreferredLocales,
22309+ setServiceInfoURL,
22310+ getServiceInfoURL
2225822311};
2225922312
22313+ // todo change when in production
22314+ let serviceInfoUrl = 'https://demo.datasafe.dev/reg/service/info';
22315+ /**
22316+ * Set default service info URL
22317+ * @param {string} url
22318+ */
22319+ function setServiceInfoURL (url) {
22320+ serviceInfoUrl = url;
22321+ }
22322+
22323+ /**
22324+ * Get default service info URL
22325+ * @returns {string}
22326+ */
22327+ function getServiceInfoURL () {
22328+ return serviceInfoUrl;
22329+ }
2226022330
2226122331/***/ }),
2226222332
@@ -23039,8 +23109,7 @@ describe('[LISX] Lib settings', () => {
2303923109
2304023110/* eslint-env mocha */
2304123111const { assert } = __webpack_require__(/*! ./test-utils/deps-node */ "./tests/test-utils/deps-browser.js");
23042- const { setPreferredLocales, localizeText } = __webpack_require__(/*! ../src */ "./src/index.js");
23043- const { resetPreferredLocales, getPreferredLocales, getSupportedLocales } = __webpack_require__(/*! ../src/localizeText */ "./src/localizeText.js");
23112+ const { resetPreferredLocales, getPreferredLocales, getSupportedLocales, localizeText, setPreferredLocales } = __webpack_require__(/*! ../src/localizeText */ "./src/localizeText.js");
2304423113
2304523114describe('[LOCX] Lib settings', () => {
2304623115 beforeEach(() => {
@@ -23161,12 +23230,14 @@ module.exports = {
2316123230
2316223231__webpack_require__(/*! ./debug */ "./tests/test-utils/debug.js");
2316323232const pryv = __webpack_require__(/*! ../../src/patchedPryv */ "./src/patchedPryv.js");
23233+ const HDSService = __webpack_require__(/*! ../../src/HDSService */ "./src/HDSService.js");
2316423234const superagent = pryv.utils.superagent;
2316523235
2316623236const ShortUniqueId = __webpack_require__(/*! short-unique-id */ "./node_modules/short-unique-id/dist/short-unique-id.js");
2316723237const passwordGenerator = new ShortUniqueId({ dictionary: 'alphanum', length: 12 });
2316823238
2316923239const config = __webpack_require__(/*! ./config */ "./tests/test-utils/config.js");
23240+ const { setServiceInfoURL } = __webpack_require__(/*! ../../src/settings */ "./src/settings.js");
2317023241
2317123242module.exports = {
2317223243 init,
@@ -23180,7 +23251,7 @@ module.exports = {
2318023251};
2318123252
2318223253/**
23183- * @type {pryv.Service }
23254+ * @type {HDSService }
2318423255 */
2318523256let serviceSingleton;
2318623257
@@ -23190,24 +23261,25 @@ let serviceSingleton;
2319023261let infosSingleton;
2319123262
2319223263/**
23193- * Get current Pryv service
23194- * @returns {pryv.Service }
23264+ * Get current HDSService
23265+ * @returns {HDSService }
2319523266 */
2319623267function service () {
2319723268 if (serviceSingleton == null) throw new Error('Init pryvService first');
2319823269 return serviceSingleton;
2319923270}
2320023271
2320123272/**
23202- * Initialize Pryv service from config and creates a singleton
23273+ * Initialize HDSservice from config and creates a singleton
2320323274 * accessible via service()
23204- * @returns {pryv.Service }
23275+ * @returns {HDSService }
2320523276 */
2320623277async function init () {
2320723278 if (infosSingleton) return infosSingleton;
2320823279 if (!config.appId) throw new Error('Cannot find appId in config');
2320923280 if (!config.serviceInfoURL) throw new Error('Cannot find serviceInfoURL in config');
23210- serviceSingleton = new pryv.Service(config.serviceInfoURL);
23281+ setServiceInfoURL(config.serviceInfoURL);
23282+ serviceSingleton = new HDSService(config.serviceInfoURL);
2321123283 infosSingleton = await serviceSingleton.info();
2321223284 return infosSingleton;
2321323285}
@@ -23434,6 +23506,10 @@ var __webpack_exports__ = {};
2343423506/*!********************************!*\
2343523507 !*** ./tests/browser-tests.js ***!
2343623508 \********************************/
23509+ /**
23510+ * Hook for webpack to build browser test-suite
23511+ * Add new tests here
23512+ */
2343723513__webpack_require__(/*! ./apptemplates.test */ "./tests/apptemplates.test.js");
2343823514__webpack_require__(/*! ./hdsModel.test */ "./tests/hdsModel.test.js");
2343923515__webpack_require__(/*! ./libSettings.test */ "./tests/libSettings.test.js");
0 commit comments