@ovok/native 1.10.4 → 1.10.6
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/lib/commonjs/modules/auth/default-translation.js +0 -9
- package/lib/commonjs/modules/auth/default-translation.js.map +1 -1
- package/lib/commonjs/modules/auth/hooks/use-delete-account.js +1 -1
- package/lib/commonjs/modules/auth/hooks/use-delete-account.js.map +1 -1
- package/lib/commonjs/modules/auth/hooks/use-session.js +2 -0
- package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -1
- package/lib/commonjs/modules/auth/session/logout-session.js +6 -1
- package/lib/commonjs/modules/auth/session/logout-session.js.map +1 -1
- package/lib/commonjs/modules/auth/session/session-store-refresh.js +7 -2
- package/lib/commonjs/modules/auth/session/session-store-refresh.js.map +1 -1
- package/lib/commonjs/modules/auth/session/session-store-types.js.map +1 -1
- package/lib/commonjs/modules/auth/session/session-store.js +56 -28
- package/lib/commonjs/modules/auth/session/session-store.js.map +1 -1
- package/lib/commonjs/modules/helpers/form-items/form-field.js +12 -3
- package/lib/commonjs/modules/helpers/form-items/form-field.js.map +1 -1
- package/lib/commonjs/modules/questionnaire-response-form/README.md +26 -3
- package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js +3 -2
- package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js.map +1 -1
- package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js +15 -2
- package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
- package/lib/commonjs/modules/questionnaire-response-form/default-translation.js +70 -0
- package/lib/commonjs/modules/questionnaire-response-form/default-translation.js.map +1 -0
- package/lib/commonjs/modules/questionnaire-response-form/index.js +1 -0
- package/lib/commonjs/modules/questionnaire-response-form/index.js.map +1 -1
- package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js +2 -1
- package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js.map +1 -1
- package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js +78 -0
- package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map +1 -1
- package/lib/module/modules/auth/default-translation.js +0 -9
- package/lib/module/modules/auth/default-translation.js.map +1 -1
- package/lib/module/modules/auth/hooks/use-delete-account.js +1 -1
- package/lib/module/modules/auth/hooks/use-delete-account.js.map +1 -1
- package/lib/module/modules/auth/hooks/use-session.js +2 -0
- package/lib/module/modules/auth/hooks/use-session.js.map +1 -1
- package/lib/module/modules/auth/session/logout-session.js +6 -1
- package/lib/module/modules/auth/session/logout-session.js.map +1 -1
- package/lib/module/modules/auth/session/session-store-refresh.js +7 -2
- package/lib/module/modules/auth/session/session-store-refresh.js.map +1 -1
- package/lib/module/modules/auth/session/session-store-types.js.map +1 -1
- package/lib/module/modules/auth/session/session-store.js +57 -29
- package/lib/module/modules/auth/session/session-store.js.map +1 -1
- package/lib/module/modules/helpers/form-items/form-field.js +12 -3
- package/lib/module/modules/helpers/form-items/form-field.js.map +1 -1
- package/lib/module/modules/questionnaire-response-form/README.md +26 -3
- package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js +3 -2
- package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js.map +1 -1
- package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js +15 -2
- package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
- package/lib/module/modules/questionnaire-response-form/default-translation.js +65 -0
- package/lib/module/modules/questionnaire-response-form/default-translation.js.map +1 -0
- package/lib/module/modules/questionnaire-response-form/index.js +1 -0
- package/lib/module/modules/questionnaire-response-form/index.js.map +1 -1
- package/lib/module/modules/questionnaire-response-form/utils/create-answer-from-value.js +2 -1
- package/lib/module/modules/questionnaire-response-form/utils/create-answer-from-value.js.map +1 -1
- package/lib/module/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js +78 -0
- package/lib/module/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts +0 -9
- package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/session/logout-session.d.ts +4 -2
- package/lib/typescript/commonjs/src/modules/auth/session/logout-session.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/session/session-store-refresh.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/session/session-store-types.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/auth/session/session-store-types.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/helpers/form-items/form-field.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/default-translation.d.ts +36 -0
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/default-translation.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/default-translation.d.ts +0 -9
- package/lib/typescript/module/src/modules/auth/default-translation.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts +2 -0
- package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/session/logout-session.d.ts +4 -2
- package/lib/typescript/module/src/modules/auth/session/logout-session.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/session/session-store-refresh.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/session/session-store-types.d.ts +2 -0
- package/lib/typescript/module/src/modules/auth/session/session-store-types.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/session/session-store.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/helpers/form-items/form-field.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/questionnaire-response-form/default-translation.d.ts +36 -0
- package/lib/typescript/module/src/modules/questionnaire-response-form/default-translation.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/questionnaire-response-form/index.d.ts +1 -0
- package/lib/typescript/module/src/modules/questionnaire-response-form/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts +3 -0
- package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts.map +1 -1
- package/package.json +18 -3
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.questionnaireDefaultTranslation = void 0;
|
|
7
|
+
var _i18next = _interopRequireDefault(require("i18next"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
const questionnaireDefaultTranslation = exports.questionnaireDefaultTranslation = {
|
|
10
|
+
common: {
|
|
11
|
+
next: "Next",
|
|
12
|
+
no: "No",
|
|
13
|
+
previous: "Previous",
|
|
14
|
+
submit: "Submit",
|
|
15
|
+
"try-again": "Try again",
|
|
16
|
+
yes: "Yes"
|
|
17
|
+
},
|
|
18
|
+
"questionnaire-form": {
|
|
19
|
+
constraints: {
|
|
20
|
+
maximum: "Maximum {{value}}",
|
|
21
|
+
minimum: "Minimum {{value}}",
|
|
22
|
+
step: "Step {{value}}"
|
|
23
|
+
},
|
|
24
|
+
error: {
|
|
25
|
+
"atomic-save-required": "This form cannot be saved safely until atomic transaction support is enabled for this project.",
|
|
26
|
+
"extraction-failed": "We could not save all answers. Please try again.",
|
|
27
|
+
"invalid-answer": "Please check your answer.",
|
|
28
|
+
"profile-not-found": "The active profile could not be found.",
|
|
29
|
+
"required-fields": "Complete all required questions before submitting.",
|
|
30
|
+
"submit-failed": "We could not submit your answers. Please try again."
|
|
31
|
+
},
|
|
32
|
+
header: {
|
|
33
|
+
subtitle: "Question {{currentItemNumber}} of {{totalItems}}"
|
|
34
|
+
},
|
|
35
|
+
item: {
|
|
36
|
+
unsupported: "This question type ({{type}}) is not supported. You can continue without answering it."
|
|
37
|
+
},
|
|
38
|
+
picker: {
|
|
39
|
+
increase: "Increase value",
|
|
40
|
+
decrease: "Decrease value"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const isTranslationObject = value => value !== null && typeof value === "object" && !Array.isArray(value);
|
|
45
|
+
const mergeTranslations = (defaults, existing) => {
|
|
46
|
+
const merged = {
|
|
47
|
+
...defaults,
|
|
48
|
+
...existing
|
|
49
|
+
};
|
|
50
|
+
for (const [key, defaultValue] of Object.entries(defaults)) {
|
|
51
|
+
const existingValue = existing[key];
|
|
52
|
+
if (isTranslationObject(defaultValue) && isTranslationObject(existingValue)) {
|
|
53
|
+
merged[key] = mergeTranslations(defaultValue, existingValue);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return merged;
|
|
57
|
+
};
|
|
58
|
+
if (typeof _i18next.default.addResourceBundle === "function") {
|
|
59
|
+
_i18next.default.addResourceBundle("en", "translation", questionnaireDefaultTranslation, true, false);
|
|
60
|
+
} else {
|
|
61
|
+
const resources = _i18next.default.options.resources ?? {};
|
|
62
|
+
const englishResources = Object.assign({}, resources.en);
|
|
63
|
+
const existingTranslation = Object.assign({}, englishResources.translation);
|
|
64
|
+
_i18next.default.options.resources = Object.assign({}, resources, {
|
|
65
|
+
en: Object.assign({}, englishResources, {
|
|
66
|
+
translation: mergeTranslations(questionnaireDefaultTranslation, existingTranslation)
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=default-translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_i18next","_interopRequireDefault","require","e","__esModule","default","questionnaireDefaultTranslation","exports","common","next","no","previous","submit","yes","constraints","maximum","minimum","step","error","header","subtitle","item","unsupported","picker","increase","decrease","isTranslationObject","value","Array","isArray","mergeTranslations","defaults","existing","merged","key","defaultValue","Object","entries","existingValue","i18n","addResourceBundle","resources","options","englishResources","assign","en","existingTranslation","translation"],"sourceRoot":"../../../../src","sources":["modules/questionnaire-response-form/default-translation.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpB,MAAMG,+BAA+B,GAAAC,OAAA,CAAAD,+BAAA,GAAG;EAC7CE,MAAM,EAAE;IACNC,IAAI,EAAE,MAAM;IACZC,EAAE,EAAE,IAAI;IACRC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,WAAW;IACxBC,GAAG,EAAE;EACP,CAAC;EACD,oBAAoB,EAAE;IACpBC,WAAW,EAAE;MACXC,OAAO,EAAE,mBAAmB;MAC5BC,OAAO,EAAE,mBAAmB;MAC5BC,IAAI,EAAE;IACR,CAAC;IACDC,KAAK,EAAE;MACL,sBAAsB,EACpB,gGAAgG;MAClG,mBAAmB,EAAE,kDAAkD;MACvE,gBAAgB,EAAE,2BAA2B;MAC7C,mBAAmB,EAAE,wCAAwC;MAC7D,iBAAiB,EAAE,oDAAoD;MACvE,eAAe,EAAE;IACnB,CAAC;IACDC,MAAM,EAAE;MACNC,QAAQ,EAAE;IACZ,CAAC;IACDC,IAAI,EAAE;MACJC,WAAW,EACT;IACJ,CAAC;IACDC,MAAM,EAAE;MACNC,QAAQ,EAAE,gBAAgB;MAC1BC,QAAQ,EAAE;IACZ;EACF;AACF,CAAC;AAED,MAAMC,mBAAmB,GACvBC,KAAc,IAEdA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC;AAEtE,MAAMG,iBAAiB,GAAGA,CACxBC,QAAiC,EACjCC,QAAiC,KACL;EAC5B,MAAMC,MAAM,GAAG;IAAE,GAAGF,QAAQ;IAAE,GAAGC;EAAS,CAAC;EAE3C,KAAK,MAAM,CAACE,GAAG,EAAEC,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,QAAQ,CAAC,EAAE;IAC1D,MAAMO,aAAa,GAAGN,QAAQ,CAACE,GAAG,CAAC;IAEnC,IACER,mBAAmB,CAACS,YAAY,CAAC,IACjCT,mBAAmB,CAACY,aAAa,CAAC,EAClC;MACAL,MAAM,CAACC,GAAG,CAAC,GAAGJ,iBAAiB,CAACK,YAAY,EAAEG,aAAa,CAAC;IAC9D;EACF;EAEA,OAAOL,MAAM;AACf,CAAC;AAED,IAAI,OAAOM,gBAAI,CAACC,iBAAiB,KAAK,UAAU,EAAE;EAChDD,gBAAI,CAACC,iBAAiB,CACpB,IAAI,EACJ,aAAa,EACblC,+BAA+B,EAC/B,IAAI,EACJ,KACF,CAAC;AACH,CAAC,MAAM;EACL,MAAMmC,SAAS,GAAGF,gBAAI,CAACG,OAAO,CAACD,SAAS,IAAI,CAAC,CAAC;EAE9C,MAAME,gBAAgB,GAAGP,MAAM,CAACQ,MAAM,CAAC,CAAC,CAAC,EAAEH,SAAS,CAACI,EAAE,CAGtD;EAED,MAAMC,mBAAmB,GAAGV,MAAM,CAACQ,MAAM,CACvC,CAAC,CAAC,EACFD,gBAAgB,CAACI,WACnB,CAA4B;EAE5BR,gBAAI,CAACG,OAAO,CAACD,SAAS,GAAGL,MAAM,CAACQ,MAAM,CAAC,CAAC,CAAC,EAAEH,SAAS,EAAE;IACpDI,EAAE,EAAET,MAAM,CAACQ,MAAM,CAAC,CAAC,CAAC,EAAED,gBAAgB,EAAE;MACtCI,WAAW,EAAEjB,iBAAiB,CAC5BxB,+BAA+B,EAC/BwC,mBACF;IACF,CAAC;EACH,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -87,6 +87,7 @@ Object.defineProperty(exports, "useQuestionnaireNavigationState", {
|
|
|
87
87
|
return _useQuestionnaireNavigationState.useQuestionnaireNavigationState;
|
|
88
88
|
}
|
|
89
89
|
});
|
|
90
|
+
require("./default-translation.js");
|
|
90
91
|
var _questionnaireForm = require("./components/questionnaire-form.js");
|
|
91
92
|
var _questionnaireFormProvider = require("./components/questionnaire-form-provider.js");
|
|
92
93
|
var _questionnaireNavigationProvider = require("./components/questionnaire-navigation-provider.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["require","_questionnaireForm","_questionnaireFormProvider","_questionnaireNavigationProvider","_useQuestionnaireForm","_useQuestionnaireNavigation","_useQuestionnaireNavigationState","_useNavigationHandlers","_useInitialSelectedValues","_questionnaireFormContext","_questionnaireNavigationContext","_questionnairePickerOptions","_questionnaireItemConstraints","_questionnaireSubmitUtils"],"sourceRoot":"../../../../src","sources":["modules/questionnaire-response-form/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAAA,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,gCAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,gCAAA,GAAAN,OAAA;AACA,IAAAO,sBAAA,GAAAP,OAAA;AACA,IAAAQ,yBAAA,GAAAR,OAAA;AAEA,IAAAS,yBAAA,GAAAT,OAAA;AACA,IAAAU,+BAAA,GAAAV,OAAA;AAkBA,IAAAW,2BAAA,GAAAX,OAAA;AAMA,IAAAY,6BAAA,GAAAZ,OAAA;AAOA,IAAAa,yBAAA,GAAAb,OAAA","ignoreList":[]}
|
|
@@ -9,7 +9,8 @@ const createNumericAnswer = (value, type) => {
|
|
|
9
9
|
if (typeof value !== "string" && typeof value !== "number") {
|
|
10
10
|
return undefined;
|
|
11
11
|
}
|
|
12
|
-
const
|
|
12
|
+
const normalizedValue = typeof value === "string" && type === "decimal" ? value.trim().replace(",", ".") : value;
|
|
13
|
+
const number = typeof normalizedValue === "number" ? normalizedValue : Number(normalizedValue.trim());
|
|
13
14
|
if (!Number.isFinite(number) || type === "integer" && !Number.isInteger(number)) {
|
|
14
15
|
return undefined;
|
|
15
16
|
}
|
package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_isValidQuestionnaireAnswer","require","createNumericAnswer","value","type","undefined","
|
|
1
|
+
{"version":3,"names":["_isValidQuestionnaireAnswer","require","createNumericAnswer","value","type","undefined","normalizedValue","trim","replace","number","Number","isFinite","isInteger","createChoiceAnswer","item","valueCoding","valueReference","option","answerOption","find","candidate","code","reference","valueInteger","valueDate","valueTime","valueString","createAnswerFromValue","key","getAnswerValueKey","validateAnswerForItem","createTypedAnswer","exports","isQuestionnaireItemAnswered"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/utils/create-answer-from-value.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js
CHANGED
|
@@ -5,7 +5,85 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.QuestionnaireSubmitUtils = void 0;
|
|
7
7
|
var _formUtils = require("./form-utils.js");
|
|
8
|
+
const OBSERVATION_EXTRACT_EXTENSION = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationExtract";
|
|
9
|
+
const EXTRACTED_OBSERVATION_IDENTIFIER_SYSTEM = "https://sdk.ovok.com/questionnaire-response-observation";
|
|
10
|
+
const hasObservationExtractExtension = (items = []) => items.some(item => item.extension?.some(extension => extension.url === OBSERVATION_EXTRACT_EXTENSION && extension.valueBoolean === true) || hasObservationExtractExtension(item.item));
|
|
8
11
|
class QuestionnaireSubmitUtils {
|
|
12
|
+
static questionnaireHasObservationExtraction(questionnaire) {
|
|
13
|
+
return questionnaire.extension?.some(extension => extension.url === OBSERVATION_EXTRACT_EXTENSION && extension.valueBoolean === true) === true || hasObservationExtractExtension(questionnaire.item);
|
|
14
|
+
}
|
|
15
|
+
static async persistQuestionnaireResponse(client, response, extractObservations) {
|
|
16
|
+
const identifier = response.identifier;
|
|
17
|
+
if (!identifier?.system || !identifier.value) {
|
|
18
|
+
throw new Error("questionnaire-form.error.submit-failed");
|
|
19
|
+
}
|
|
20
|
+
if (extractObservations && !client.getProject()?.features?.includes("transaction-bundles")) {
|
|
21
|
+
throw new Error("questionnaire-form.error.atomic-save-required");
|
|
22
|
+
}
|
|
23
|
+
const persistedResponse = await client.createResourceIfNoneExist(extractObservations ? {
|
|
24
|
+
...response,
|
|
25
|
+
status: "in-progress"
|
|
26
|
+
} : response, `identifier=${identifier.system}|${identifier.value}`);
|
|
27
|
+
if (!extractObservations || persistedResponse.status === "completed") {
|
|
28
|
+
return persistedResponse;
|
|
29
|
+
}
|
|
30
|
+
if (!persistedResponse.id || !persistedResponse.meta?.versionId) {
|
|
31
|
+
throw new Error("questionnaire-form.error.submit-failed");
|
|
32
|
+
}
|
|
33
|
+
const extraction = await client.extractQuestionnaireObservations(persistedResponse.id);
|
|
34
|
+
const extractedBundle = extraction.parameter?.find(parameter => parameter.name === "response")?.resource;
|
|
35
|
+
if (!extractedBundle || extractedBundle.resourceType !== "Bundle" || extractedBundle.type !== "transaction") {
|
|
36
|
+
throw new Error("questionnaire-form.error.extraction-failed");
|
|
37
|
+
}
|
|
38
|
+
const extractedEntries = extractedBundle.entry ?? [];
|
|
39
|
+
const transactionEntries = extractedEntries.map((entry, index) => {
|
|
40
|
+
const observation = entry.resource;
|
|
41
|
+
if (observation?.resourceType !== "Observation" || entry.request?.method !== "POST") {
|
|
42
|
+
throw new Error("questionnaire-form.error.extraction-failed");
|
|
43
|
+
}
|
|
44
|
+
const observationIdentifier = `${persistedResponse.id}-${index}`;
|
|
45
|
+
const identifierQuery = new URLSearchParams({
|
|
46
|
+
identifier: `${EXTRACTED_OBSERVATION_IDENTIFIER_SYSTEM}|${observationIdentifier}`
|
|
47
|
+
}).toString();
|
|
48
|
+
return {
|
|
49
|
+
...entry,
|
|
50
|
+
resource: {
|
|
51
|
+
...observation,
|
|
52
|
+
identifier: [...(observation.identifier ?? []).filter(existingIdentifier => existingIdentifier.system !== EXTRACTED_OBSERVATION_IDENTIFIER_SYSTEM || existingIdentifier.value !== observationIdentifier), {
|
|
53
|
+
system: EXTRACTED_OBSERVATION_IDENTIFIER_SYSTEM,
|
|
54
|
+
value: observationIdentifier
|
|
55
|
+
}]
|
|
56
|
+
},
|
|
57
|
+
request: {
|
|
58
|
+
...entry.request,
|
|
59
|
+
ifNoneExist: identifierQuery
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
const completedResponse = {
|
|
64
|
+
...persistedResponse,
|
|
65
|
+
status: "completed"
|
|
66
|
+
};
|
|
67
|
+
const transaction = await client.executeBatch({
|
|
68
|
+
resourceType: "Bundle",
|
|
69
|
+
type: "transaction",
|
|
70
|
+
entry: [...transactionEntries, {
|
|
71
|
+
resource: completedResponse,
|
|
72
|
+
request: {
|
|
73
|
+
method: "PUT",
|
|
74
|
+
url: `QuestionnaireResponse/${persistedResponse.id}`,
|
|
75
|
+
ifMatch: `W/"${persistedResponse.meta.versionId}"`
|
|
76
|
+
}
|
|
77
|
+
}]
|
|
78
|
+
});
|
|
79
|
+
if (transaction.type !== "transaction-response" || transaction.entry?.length !== transactionEntries.length + 1 || transaction.entry.some(entry => !entry.response?.status.startsWith("2"))) {
|
|
80
|
+
throw new Error("questionnaire-form.error.extraction-failed");
|
|
81
|
+
}
|
|
82
|
+
const reloadOptions = {
|
|
83
|
+
cache: "reload"
|
|
84
|
+
};
|
|
85
|
+
return client.readResource("QuestionnaireResponse", persistedResponse.id, reloadOptions);
|
|
86
|
+
}
|
|
9
87
|
static createQuestionnaireResponse(responses, pages, questionnaire, renderItem, resolver, unitOptionsResolver) {
|
|
10
88
|
const responseItems = _formUtils.FormUtils.createQuestionnaireResponseItems(responses, pages);
|
|
11
89
|
const response = {
|
package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_formUtils","require","
|
|
1
|
+
{"version":3,"names":["_formUtils","require","OBSERVATION_EXTRACT_EXTENSION","EXTRACTED_OBSERVATION_IDENTIFIER_SYSTEM","hasObservationExtractExtension","items","some","item","extension","url","valueBoolean","QuestionnaireSubmitUtils","questionnaireHasObservationExtraction","questionnaire","persistQuestionnaireResponse","client","response","extractObservations","identifier","system","value","Error","getProject","features","includes","persistedResponse","createResourceIfNoneExist","status","id","meta","versionId","extraction","extractQuestionnaireObservations","extractedBundle","parameter","find","name","resource","resourceType","type","extractedEntries","entry","transactionEntries","map","index","observation","request","method","observationIdentifier","identifierQuery","URLSearchParams","toString","filter","existingIdentifier","ifNoneExist","completedResponse","transaction","executeBatch","ifMatch","length","startsWith","reloadOptions","cache","readResource","createQuestionnaireResponse","responses","pages","renderItem","resolver","unitOptionsResolver","responseItems","FormUtils","createQuestionnaireResponseItems","hasUnansweredRequiredItems","authored","Date","toISOString","exports"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/utils/questionnaire-submit-utils.ts"],"mappings":";;;;;;AAcA,IAAAA,UAAA,GAAAC,OAAA;AAMA,MAAMC,6BAA6B,GACjC,qFAAqF;AAEvF,MAAMC,uCAAuC,GAC3C,yDAAyD;AAE3D,MAAMC,8BAA8B,GAAGA,CACrCC,KAA0B,GAAG,EAAE,KAE/BA,KAAK,CAACC,IAAI,CACPC,IAAI,IACHA,IAAI,CAACC,SAAS,EAAEF,IAAI,CACjBE,SAAS,IACRA,SAAS,CAACC,GAAG,KAAKP,6BAA6B,IAC/CM,SAAS,CAACE,YAAY,KAAK,IAC/B,CAAC,IAAIN,8BAA8B,CAACG,IAAI,CAACA,IAAI,CACjD,CAAC;AAEI,MAAMI,wBAAwB,CAAC;EACpC,OAAOC,qCAAqCA,CAC1CC,aAA4B,EACnB;IACT,OACEA,aAAa,CAACL,SAAS,EAAEF,IAAI,CAC1BE,SAAS,IACRA,SAAS,CAACC,GAAG,KAAKP,6BAA6B,IAC/CM,SAAS,CAACE,YAAY,KAAK,IAC/B,CAAC,KAAK,IAAI,IAAIN,8BAA8B,CAACS,aAAa,CAACN,IAAI,CAAC;EAEpE;EAEA,aAAaO,4BAA4BA,CACvCC,MAAkB,EAClBC,QAA+B,EAC/BC,mBAA4B,EACI;IAChC,MAAMC,UAAU,GAAGF,QAAQ,CAACE,UAAU;IAEtC,IAAI,CAACA,UAAU,EAAEC,MAAM,IAAI,CAACD,UAAU,CAACE,KAAK,EAAE;MAC5C,MAAM,IAAIC,KAAK,CAAC,wCAAwC,CAAC;IAC3D;IAEA,IACEJ,mBAAmB,IACnB,CAACF,MAAM,CAACO,UAAU,CAAC,CAAC,EAAEC,QAAQ,EAAEC,QAAQ,CAAC,qBAAqB,CAAC,EAC/D;MACA,MAAM,IAAIH,KAAK,CAAC,+CAA+C,CAAC;IAClE;IAEA,MAAMI,iBAAiB,GAAG,MAAMV,MAAM,CAACW,yBAAyB,CAC9DT,mBAAmB,GAAG;MAAE,GAAGD,QAAQ;MAAEW,MAAM,EAAE;IAAc,CAAC,GAAGX,QAAQ,EACvE,cAAcE,UAAU,CAACC,MAAM,IAAID,UAAU,CAACE,KAAK,EACrD,CAAC;IAED,IAAI,CAACH,mBAAmB,IAAIQ,iBAAiB,CAACE,MAAM,KAAK,WAAW,EAAE;MACpE,OAAOF,iBAAiB;IAC1B;IAEA,IAAI,CAACA,iBAAiB,CAACG,EAAE,IAAI,CAACH,iBAAiB,CAACI,IAAI,EAAEC,SAAS,EAAE;MAC/D,MAAM,IAAIT,KAAK,CAAC,wCAAwC,CAAC;IAC3D;IAEA,MAAMU,UAAU,GAAG,MAAMhB,MAAM,CAACiB,gCAAgC,CAC9DP,iBAAiB,CAACG,EACpB,CAAC;IAED,MAAMK,eAAe,GAAGF,UAAU,CAACG,SAAS,EAAEC,IAAI,CAC/CD,SAAS,IAAKA,SAAS,CAACE,IAAI,KAAK,UACpC,CAAC,EAAEC,QAA8B;IAEjC,IACE,CAACJ,eAAe,IAChBA,eAAe,CAACK,YAAY,KAAK,QAAQ,IACzCL,eAAe,CAACM,IAAI,KAAK,aAAa,EACtC;MACA,MAAM,IAAIlB,KAAK,CAAC,4CAA4C,CAAC;IAC/D;IAEA,MAAMmB,gBAAgB,GAAGP,eAAe,CAACQ,KAAK,IAAI,EAAE;IAEpD,MAAMC,kBAAkB,GAAGF,gBAAgB,CAACG,GAAG,CAAC,CAACF,KAAK,EAAEG,KAAK,KAAK;MAChE,MAAMC,WAAW,GAAGJ,KAAK,CAACJ,QAAmC;MAE7D,IACEQ,WAAW,EAAEP,YAAY,KAAK,aAAa,IAC3CG,KAAK,CAACK,OAAO,EAAEC,MAAM,KAAK,MAAM,EAChC;QACA,MAAM,IAAI1B,KAAK,CAAC,4CAA4C,CAAC;MAC/D;MAEA,MAAM2B,qBAAqB,GAAG,GAAGvB,iBAAiB,CAACG,EAAE,IAAIgB,KAAK,EAAE;MAEhE,MAAMK,eAAe,GAAG,IAAIC,eAAe,CAAC;QAC1ChC,UAAU,EAAE,GAAGf,uCAAuC,IAAI6C,qBAAqB;MACjF,CAAC,CAAC,CAACG,QAAQ,CAAC,CAAC;MAEb,OAAO;QACL,GAAGV,KAAK;QACRJ,QAAQ,EAAE;UACR,GAAGQ,WAAW;UACd3B,UAAU,EAAE,CACV,GAAG,CAAC2B,WAAW,CAAC3B,UAAU,IAAI,EAAE,EAAEkC,MAAM,CACrCC,kBAAkB,IACjBA,kBAAkB,CAAClC,MAAM,KACvBhB,uCAAuC,IACzCkD,kBAAkB,CAACjC,KAAK,KAAK4B,qBACjC,CAAC,EACD;YACE7B,MAAM,EAAEhB,uCAAuC;YAC/CiB,KAAK,EAAE4B;UACT,CAAC;QAEL,CAAC;QACDF,OAAO,EAAE;UACP,GAAGL,KAAK,CAACK,OAAO;UAChBQ,WAAW,EAAEL;QACf;MACF,CAAC;IACH,CAAC,CAAC;IAEF,MAAMM,iBAAiB,GAAG;MACxB,GAAG9B,iBAAiB;MACpBE,MAAM,EAAE;IACV,CAA0B;IAE1B,MAAM6B,WAAW,GAAG,MAAMzC,MAAM,CAAC0C,YAAY,CAAC;MAC5CnB,YAAY,EAAE,QAAQ;MACtBC,IAAI,EAAE,aAAa;MACnBE,KAAK,EAAE,CACL,GAAGC,kBAAkB,EACrB;QACEL,QAAQ,EAAEkB,iBAAiB;QAC3BT,OAAO,EAAE;UACPC,MAAM,EAAE,KAAK;UACbtC,GAAG,EAAE,yBAAyBgB,iBAAiB,CAACG,EAAE,EAAE;UACpD8B,OAAO,EAAE,MAAMjC,iBAAiB,CAACI,IAAI,CAACC,SAAS;QACjD;MACF,CAAC;IAEL,CAAC,CAAC;IAEF,IACE0B,WAAW,CAACjB,IAAI,KAAK,sBAAsB,IAC3CiB,WAAW,CAACf,KAAK,EAAEkB,MAAM,KAAKjB,kBAAkB,CAACiB,MAAM,GAAG,CAAC,IAC3DH,WAAW,CAACf,KAAK,CAACnC,IAAI,CAAEmC,KAAK,IAAK,CAACA,KAAK,CAACzB,QAAQ,EAAEW,MAAM,CAACiC,UAAU,CAAC,GAAG,CAAC,CAAC,EAC1E;MACA,MAAM,IAAIvC,KAAK,CAAC,4CAA4C,CAAC;IAC/D;IAEA,MAAMwC,aAAa,GAAG;MAAEC,KAAK,EAAE;IAAS,CAEvC;IAED,OAAO/C,MAAM,CAACgD,YAAY,CACxB,uBAAuB,EACvBtC,iBAAiB,CAACG,EAAE,EACpBiC,aACF,CAAC;EACH;EAEA,OAAOG,2BAA2BA,CAChCC,SAAyB,EACzBC,KAAkC,EAClCrD,aAA4B,EAC5BsD,UAAsC,EACtCC,QAA0C,EAC1CC,mBAAsD,EAC/B;IACvB,MAAMC,aAAa,GAAGC,oBAAS,CAACC,gCAAgC,CAC9DP,SAAS,EACTC,KACF,CAAC;IAED,MAAMlD,QAA+B,GAAG;MACtCsB,YAAY,EAAE,uBAAuB;MACrCzB,aAAa,EAAE,iBAAiBA,aAAa,CAACe,EAAE,EAAE;MAClDD,MAAM,EAAE4C,oBAAS,CAACE,0BAA0B,CAC1CP,KAAK,EACLD,SAAS,EACTE,UAAU,EACVC,QAAQ,EACRC,mBACF,CAAC,GACG,aAAa,GACb,WAAW;MACf9D,IAAI,EAAE+D,aAAa;MACnBI,QAAQ,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;IACnC,CAAC;IAED,OAAO5D,QAAQ;EACjB;AACF;AAAC6D,OAAA,CAAAlE,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -11,15 +11,6 @@ export const defaultTranslation = {
|
|
|
11
11
|
cancel: "Cancel",
|
|
12
12
|
delete: "Delete"
|
|
13
13
|
},
|
|
14
|
-
"questionnaire-form": {
|
|
15
|
-
item: {
|
|
16
|
-
unsupported: "This question type ({{type}}) is not supported. You can continue without answering it."
|
|
17
|
-
},
|
|
18
|
-
picker: {
|
|
19
|
-
increase: "Increase value",
|
|
20
|
-
decrease: "Decrease value"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
14
|
profile: {
|
|
24
15
|
form: {
|
|
25
16
|
error: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18n","defaultTranslation","auth","common","cancel","delete","
|
|
1
|
+
{"version":3,"names":["i18n","defaultTranslation","auth","common","cancel","delete","profile","form","error","network","generic","phone","country","invalid","searchCountry","save","register","button","errors","name","subtitle","surname","title","accountType","email","patient","practitioner","success","settings","logout","apple","footer","google","mfa","code","verify","password","unavailable","addResourceBundle","resources","options","englishResources","Object","assign","en","existingTranslation","translation"],"sourceRoot":"../../../../src","sources":["modules/auth/default-translation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useClient","notifySessionChanged","signOutGoogleIfNeeded","useAuthAction","useDeleteAccount","days","wipe","client","requestDeleteUser","clearActiveLogin"],"sourceRoot":"../../../../../src","sources":["modules/auth/hooks/use-delete-account.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,YAAY;AAEtC,SAASC,oBAAoB,QAAQ,sBAAmB;AACxD,SAASC,qBAAqB,QAAQ,6BAA0B;AAEhE,SAASC,aAAa,QAAQ,sBAAmB;AAOjD,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,IAAI,GAAG;AAA2B,CAAC,GAAG,CAAC,CAAC,KAAK;EACzF,MAAMC,MAAM,GAAGP,SAAS,CAAC,CAAC;EAE1B,OAAOG,aAAa,CAAC,YAAY;IAC/B,MAAMI,MAAM,CAACC,iBAAiB,CAAC;MAAEH,IAAI;MAAEC;IAAK,CAAC,CAAC;IAC9C,MAAMC,MAAM,CAACE,gBAAgB,CAAC,CAAC;IAC/
|
|
1
|
+
{"version":3,"names":["useClient","notifySessionChanged","signOutGoogleIfNeeded","useAuthAction","useDeleteAccount","days","wipe","client","requestDeleteUser","clearActiveLogin"],"sourceRoot":"../../../../../src","sources":["modules/auth/hooks/use-delete-account.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,YAAY;AAEtC,SAASC,oBAAoB,QAAQ,sBAAmB;AACxD,SAASC,qBAAqB,QAAQ,6BAA0B;AAEhE,SAASC,aAAa,QAAQ,sBAAmB;AAOjD,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,IAAI,GAAG;AAA2B,CAAC,GAAG,CAAC,CAAC,KAAK;EACzF,MAAMC,MAAM,GAAGP,SAAS,CAAC,CAAC;EAE1B,OAAOG,aAAa,CAAC,YAAY;IAC/B,MAAMI,MAAM,CAACC,iBAAiB,CAAC;MAAEH,IAAI;MAAEC;IAAK,CAAC,CAAC;IAC9C,MAAMC,MAAM,CAACE,gBAAgB,CAAC,CAAC;IAC/BR,oBAAoB,CAAC,CAAC;IACtB,MAAMC,qBAAqB,CAAC,CAAC;EAC/B,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
|
|
@@ -29,11 +29,13 @@ const useSession = ({
|
|
|
29
29
|
}, [refresh, refreshOnForeground]);
|
|
30
30
|
return {
|
|
31
31
|
status: snapshot.status,
|
|
32
|
+
reason: snapshot.reason,
|
|
32
33
|
isAuthenticated: snapshot.status === "authenticated" || snapshot.status === "offline",
|
|
33
34
|
accounts: snapshot.accounts,
|
|
34
35
|
profile: snapshot.profile,
|
|
35
36
|
sessions: snapshot.sessions,
|
|
36
37
|
loading: snapshot.status === "loading",
|
|
38
|
+
switching: snapshot.switching === true,
|
|
37
39
|
error: snapshot.error,
|
|
38
40
|
refresh,
|
|
39
41
|
refreshSessions: store.refreshSessions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useClient","React","AppState","subscribeSessionChanges","getSessionStore","useSession","sessions","fetchSessions","refreshOnForeground","client","store","useMemo","snapshot","useSyncExternalStore","subscribe","refresh","useCallback","useEffect","subscription","addEventListener","nextState","undefined","unsubscribe","remove","status","isAuthenticated","accounts","profile","loading","error","refreshSessions","switchAccount","removeAccount","logout","revokeSessions"],"sourceRoot":"../../../../../src","sources":["modules/auth/hooks/use-session.ts"],"mappings":";;AAAA,SAASA,SAAS,QAA+B,YAAY;AAC7D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,uBAAuB,QAAQ,sBAAmB;AAC3D,SAASC,eAAe,QAAQ,6BAA0B;
|
|
1
|
+
{"version":3,"names":["useClient","React","AppState","subscribeSessionChanges","getSessionStore","useSession","sessions","fetchSessions","refreshOnForeground","client","store","useMemo","snapshot","useSyncExternalStore","subscribe","refresh","useCallback","useEffect","subscription","addEventListener","nextState","undefined","unsubscribe","remove","status","reason","isAuthenticated","accounts","profile","loading","switching","error","refreshSessions","switchAccount","removeAccount","logout","revokeSessions"],"sourceRoot":"../../../../../src","sources":["modules/auth/hooks/use-session.ts"],"mappings":";;AAAA,SAASA,SAAS,QAA+B,YAAY;AAC7D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,uBAAuB,QAAQ,sBAAmB;AAC3D,SAASC,eAAe,QAAQ,6BAA0B;AAgC1D;AACA,MAAMC,UAAU,GAAGA,CAAC;EAClBC,QAAQ,EAAEC,aAAa,GAAG,IAAI;EAC9BC,mBAAmB,GAAG;AACL,CAAC,GAAG,CAAC,CAAC,KAAuB;EAC9C,MAAMC,MAAM,GAAGT,SAAS,CAAC,CAAC;EAC1B,MAAMU,KAAK,GAAGT,KAAK,CAACU,OAAO,CAAC,MAAMP,eAAe,CAACK,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEpE,MAAMG,QAAQ,GAAGX,KAAK,CAACY,oBAAoB,CACzCH,KAAK,CAACI,SAAS,EACf,MAAMJ,KAAK,CAACE,QAAQ,EACpB,MAAMF,KAAK,CAACE,QACd,CAAC;EAED,MAAMG,OAAO,GAAGd,KAAK,CAACe,WAAW,CAC/B,MAAMN,KAAK,CAACK,OAAO,CAACR,aAAa,CAAC,EAClC,CAACA,aAAa,EAAEG,KAAK,CACvB,CAAC;EAEDT,KAAK,CAACgB,SAAS,CAAC,MAAM;IACpB,KAAKF,OAAO,CAAC,CAAC;IAEd,MAAMG,YAAY,GAAGV,mBAAmB,GACpCN,QAAQ,CAACiB,gBAAgB,CAAC,QAAQ,EAAGC,SAAS,IAAK;MACjD,IAAIA,SAAS,KAAK,QAAQ,EAAE;QAC1B,KAAKL,OAAO,CAAC,CAAC;MAChB;IACF,CAAC,CAAC,GACFM,SAAS;IAEb,MAAMC,WAAW,GAAGnB,uBAAuB,CAAC,MAAM,KAAKY,OAAO,CAAC,CAAC,CAAC;IAEjE,OAAO,MAAM;MACXG,YAAY,EAAEK,MAAM,CAAC,CAAC;MACtBD,WAAW,CAAC,CAAC;IACf,CAAC;EACH,CAAC,EAAE,CAACP,OAAO,EAAEP,mBAAmB,CAAC,CAAC;EAElC,OAAO;IACLgB,MAAM,EAAEZ,QAAQ,CAACY,MAAM;IACvBC,MAAM,EAAEb,QAAQ,CAACa,MAAM;IACvBC,eAAe,EACbd,QAAQ,CAACY,MAAM,KAAK,eAAe,IAAIZ,QAAQ,CAACY,MAAM,KAAK,SAAS;IACtEG,QAAQ,EAAEf,QAAQ,CAACe,QAAQ;IAC3BC,OAAO,EAAEhB,QAAQ,CAACgB,OAAkB;IACpCtB,QAAQ,EAAEM,QAAQ,CAACN,QAAQ;IAC3BuB,OAAO,EAAEjB,QAAQ,CAACY,MAAM,KAAK,SAAS;IACtCM,SAAS,EAAElB,QAAQ,CAACkB,SAAS,KAAK,IAAI;IACtCC,KAAK,EAAEnB,QAAQ,CAACmB,KAAK;IACrBhB,OAAO;IACPiB,eAAe,EAAEtB,KAAK,CAACsB,eAAe;IACtCC,aAAa,EAAEvB,KAAK,CAACuB,aAAa;IAClCC,aAAa,EAAExB,KAAK,CAACwB,aAAa;IAClCC,MAAM,EAAEzB,KAAK,CAACyB,MAAM;IACpBC,cAAc,EAAE1B,KAAK,CAAC0B;EACxB,CAAC;AACH,CAAC;AAED,SAA8C/B,UAAU","ignoreList":[]}
|
|
@@ -3,14 +3,17 @@
|
|
|
3
3
|
import { signOutGoogleIfNeeded } from "../utils/sign-out-google.js";
|
|
4
4
|
import { notifySessionChanged } from "./events.js";
|
|
5
5
|
const logoutRequests = new WeakMap();
|
|
6
|
+
const logoutInProgress = new WeakSet();
|
|
7
|
+
const isLogoutInProgress = client => logoutInProgress.has(client);
|
|
6
8
|
|
|
7
9
|
/** Uses one native/provider logout path for hooks and the built-in logout control. */
|
|
8
|
-
|
|
10
|
+
const logoutSession = client => {
|
|
9
11
|
const key = client;
|
|
10
12
|
const pending = logoutRequests.get(key);
|
|
11
13
|
if (pending) {
|
|
12
14
|
return pending;
|
|
13
15
|
}
|
|
16
|
+
logoutInProgress.add(key);
|
|
14
17
|
const request = (async () => {
|
|
15
18
|
try {
|
|
16
19
|
await client.logout();
|
|
@@ -20,8 +23,10 @@ export const logoutSession = client => {
|
|
|
20
23
|
})().finally(() => {
|
|
21
24
|
notifySessionChanged();
|
|
22
25
|
logoutRequests.delete(key);
|
|
26
|
+
logoutInProgress.delete(key);
|
|
23
27
|
});
|
|
24
28
|
logoutRequests.set(key, request);
|
|
25
29
|
return request;
|
|
26
30
|
};
|
|
31
|
+
export { isLogoutInProgress, logoutSession };
|
|
27
32
|
//# sourceMappingURL=logout-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["signOutGoogleIfNeeded","notifySessionChanged","logoutRequests","WeakMap","
|
|
1
|
+
{"version":3,"names":["signOutGoogleIfNeeded","notifySessionChanged","logoutRequests","WeakMap","logoutInProgress","WeakSet","isLogoutInProgress","client","has","logoutSession","key","pending","get","add","request","logout","finally","delete","set"],"sourceRoot":"../../../../../src","sources":["modules/auth/session/logout-session.ts"],"mappings":";;AAAA,SAASA,qBAAqB,QAAQ,6BAA0B;AAEhE,SAASC,oBAAoB,QAAQ,aAAU;AAM/C,MAAMC,cAAc,GAAG,IAAIC,OAAO,CAAwB,CAAC;AAC3D,MAAMC,gBAAgB,GAAG,IAAIC,OAAO,CAAS,CAAC;AAE9C,MAAMC,kBAAkB,GAAIC,MAAc,IACxCH,gBAAgB,CAACI,GAAG,CAACD,MAAM,CAAC;;AAE9B;AACA,MAAME,aAAa,GAAIF,MAA2B,IAAoB;EACpE,MAAMG,GAAG,GAAGH,MAAgB;EAC5B,MAAMI,OAAO,GAAGT,cAAc,CAACU,GAAG,CAACF,GAAG,CAAC;EAEvC,IAAIC,OAAO,EAAE;IACX,OAAOA,OAAO;EAChB;EAEAP,gBAAgB,CAACS,GAAG,CAACH,GAAG,CAAC;EAEzB,MAAMI,OAAO,GAAG,CAAC,YAAY;IAC3B,IAAI;MACF,MAAMP,MAAM,CAACQ,MAAM,CAAC,CAAC;IACvB,CAAC,SAAS;MACR,MAAMf,qBAAqB,CAAC,CAAC;IAC/B;EACF,CAAC,EAAE,CAAC,CAACgB,OAAO,CAAC,MAAM;IACjBf,oBAAoB,CAAC,CAAC;IACtBC,cAAc,CAACe,MAAM,CAACP,GAAG,CAAC;IAC1BN,gBAAgB,CAACa,MAAM,CAACP,GAAG,CAAC;EAC9B,CAAC,CAAC;EAEFR,cAAc,CAACgB,GAAG,CAACR,GAAG,EAAEI,OAAO,CAAC;EAEhC,OAAOA,OAAO;AAChB,CAAC;AAED,SAASR,kBAAkB,EAAEG,aAAa","ignoreList":[]}
|
|
@@ -10,6 +10,8 @@ const createSessionRefreshActions = (client, requestState, getStore, notify) =>
|
|
|
10
10
|
requestState.nextRevision();
|
|
11
11
|
store.snapshot = {
|
|
12
12
|
status: "signed-out",
|
|
13
|
+
reason: store.snapshot.reason,
|
|
14
|
+
switching: store.snapshot.switching,
|
|
13
15
|
accounts: requestState.getAccounts(),
|
|
14
16
|
sessions: []
|
|
15
17
|
};
|
|
@@ -18,7 +20,7 @@ const createSessionRefreshActions = (client, requestState, getStore, notify) =>
|
|
|
18
20
|
}
|
|
19
21
|
const revision = requestState.nextRevision();
|
|
20
22
|
const previousSnapshot = store.snapshot;
|
|
21
|
-
if (store.snapshot.status !== "authenticated" && store.snapshot.status !== "offline") {
|
|
23
|
+
if (!store.snapshot.switching && store.snapshot.status !== "authenticated" && store.snapshot.status !== "offline") {
|
|
22
24
|
store.snapshot = {
|
|
23
25
|
...store.snapshot,
|
|
24
26
|
status: "loading",
|
|
@@ -62,7 +64,10 @@ const createSessionRefreshActions = (client, requestState, getStore, notify) =>
|
|
|
62
64
|
sessions: sessions.map(normalizeSession),
|
|
63
65
|
error: "error" in sessionsResult ? toError(sessionsResult.error) : undefined
|
|
64
66
|
};
|
|
65
|
-
store.snapshot =
|
|
67
|
+
store.snapshot = {
|
|
68
|
+
...nextSnapshot,
|
|
69
|
+
switching: previousSnapshot.switching
|
|
70
|
+
};
|
|
66
71
|
notify();
|
|
67
72
|
};
|
|
68
73
|
const refreshSessions = async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getHttpStatus","toError","normalizeSession","createSessionRefreshActions","client","requestState","getStore","notify","refresh","includeSessions","store","syncActiveAccount","getActiveLogin","nextRevision","snapshot","status","accounts","getAccounts","sessions","revision","previousSnapshot","error","undefined","currentProfileRequest","getProfileRequest","currentSessionsRequest","getSessionsRequest","profileResult","sessionsResult","Promise","all","then","profile","resolve","isCurrent","nextSnapshot","map","refreshSessions","cause"],"sourceRoot":"../../../../../src","sources":["modules/auth/session/session-store-refresh.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,OAAO,QAAQ,qBAAkB;AAEzD,SACEC,gBAAgB,QAIX,0BAAuB;AAE9B,MAAMC,2BAA2B,GAAGA,CAClCC,MAAc,EACdC,YAAsC,EACtCC,QAA4B,EAC5BC,MAAkB,KACf;EACH,MAAMC,OAAO,GAAG,MAAOC,eAAwB,IAAK;IAClD,MAAMC,KAAK,GAAGJ,QAAQ,CAAC,CAAC;IAExBD,YAAY,CAACM,iBAAiB,CAAC,CAAC;IAEhC,IAAI,CAACP,MAAM,CAACQ,cAAc,CAAC,CAAC,EAAE;MAC5BP,YAAY,CAACQ,YAAY,CAAC,CAAC;MAC3BH,KAAK,CAACI,QAAQ,GAAG;QACfC,MAAM,EAAE,YAAY;QACpBC,QAAQ,
|
|
1
|
+
{"version":3,"names":["getHttpStatus","toError","normalizeSession","createSessionRefreshActions","client","requestState","getStore","notify","refresh","includeSessions","store","syncActiveAccount","getActiveLogin","nextRevision","snapshot","status","reason","switching","accounts","getAccounts","sessions","revision","previousSnapshot","error","undefined","currentProfileRequest","getProfileRequest","currentSessionsRequest","getSessionsRequest","profileResult","sessionsResult","Promise","all","then","profile","resolve","isCurrent","nextSnapshot","map","refreshSessions","cause"],"sourceRoot":"../../../../../src","sources":["modules/auth/session/session-store-refresh.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeSession","session","legacy","id","authMethod","remoteAddress","ip","lastUpdated","lastActiveAt","createdAt"],"sourceRoot":"../../../../../src","sources":["modules/auth/session/session-store-types.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["normalizeSession","session","legacy","id","authMethod","remoteAddress","ip","lastUpdated","lastActiveAt","createdAt"],"sourceRoot":"../../../../../src","sources":["modules/auth/session/session-store-types.ts"],"mappings":";;AAwCA,MAAMA,gBAAgB,GAAIC,OAA0B,IAAwB;EAC1E,MAAMC,MAAM,GAAGD,OAId;EAED,OAAO;IACLE,EAAE,EAAEF,OAAO,CAACE,EAAE;IACdC,UAAU,EAAEH,OAAO,CAACG,UAAU;IAC9BC,aAAa,EAAEJ,OAAO,CAACI,aAAa,IAAIH,MAAM,CAACI,EAAE;IACjDC,WAAW,EAAEN,OAAO,CAACM,WAAW,IAAIL,MAAM,CAACM,YAAY,IAAIN,MAAM,CAACO;EACpE,CAAC;AACH,CAAC;AAED,SAAST,gBAAgB","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { addEventListener as addNetworkEventListener } from "@react-native-community/netinfo";
|
|
4
|
-
import { logoutSession } from "./logout-session.js";
|
|
4
|
+
import { isLogoutInProgress, logoutSession } from "./logout-session.js";
|
|
5
5
|
import { createSessionRefreshActions } from "./session-store-refresh.js";
|
|
6
6
|
import { SessionStoreRequestState } from "./session-store-request-state.js";
|
|
7
7
|
const stores = new WeakMap();
|
|
@@ -10,19 +10,51 @@ const createSessionStore = client => {
|
|
|
10
10
|
const listeners = new Set();
|
|
11
11
|
const requestState = new SessionStoreRequestState(client, sessionClient);
|
|
12
12
|
let unsubscribeNetwork;
|
|
13
|
+
let unsubscribeClient;
|
|
13
14
|
let wasConnected;
|
|
14
15
|
let logoutRequest;
|
|
15
16
|
const storeRef = {};
|
|
16
17
|
const notify = () => listeners.forEach(listener => listener());
|
|
18
|
+
const onClientChange = () => {
|
|
19
|
+
if (isLogoutInProgress(client) || storeRef.current?.snapshot.switching) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
void Promise.resolve().then(() => {
|
|
23
|
+
const currentStore = storeRef.current;
|
|
24
|
+
if (!currentStore || isLogoutInProgress(client) || currentStore.snapshot.switching) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (client.getActiveLogin()) {
|
|
28
|
+
void currentStore.refresh(false);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (currentStore.snapshot.status !== "authenticated" && currentStore.snapshot.status !== "offline") {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
requestState.invalidate();
|
|
35
|
+
currentStore.snapshot = {
|
|
36
|
+
status: "signed-out",
|
|
37
|
+
reason: "session-ended",
|
|
38
|
+
accounts: requestState.getAccounts(),
|
|
39
|
+
sessions: []
|
|
40
|
+
};
|
|
41
|
+
notify();
|
|
42
|
+
});
|
|
43
|
+
};
|
|
17
44
|
const refreshActions = createSessionRefreshActions(client, requestState, () => storeRef.current, notify);
|
|
18
45
|
const store = {
|
|
19
46
|
snapshot: {
|
|
20
47
|
status: "loading",
|
|
48
|
+
switching: false,
|
|
21
49
|
accounts: requestState.getAccounts(),
|
|
22
50
|
sessions: []
|
|
23
51
|
},
|
|
24
52
|
subscribe: listener => {
|
|
25
53
|
listeners.add(listener);
|
|
54
|
+
if (!unsubscribeClient) {
|
|
55
|
+
client.addEventListener?.("change", onClientChange);
|
|
56
|
+
unsubscribeClient = () => client.removeEventListener?.("change", onClientChange);
|
|
57
|
+
}
|
|
26
58
|
if (!unsubscribeNetwork) {
|
|
27
59
|
unsubscribeNetwork = addNetworkEventListener(state => {
|
|
28
60
|
const isConnected = state.isConnected === true && state.isInternetReachable !== false;
|
|
@@ -36,6 +68,8 @@ const createSessionStore = client => {
|
|
|
36
68
|
return () => {
|
|
37
69
|
listeners.delete(listener);
|
|
38
70
|
if (listeners.size === 0) {
|
|
71
|
+
unsubscribeClient?.();
|
|
72
|
+
unsubscribeClient = undefined;
|
|
39
73
|
unsubscribeNetwork?.();
|
|
40
74
|
unsubscribeNetwork = undefined;
|
|
41
75
|
wasConnected = undefined;
|
|
@@ -43,34 +77,8 @@ const createSessionStore = client => {
|
|
|
43
77
|
};
|
|
44
78
|
},
|
|
45
79
|
...refreshActions,
|
|
46
|
-
switchAccount:
|
|
47
|
-
|
|
48
|
-
store.snapshot = {
|
|
49
|
-
status: "loading",
|
|
50
|
-
accounts: requestState.getAccounts(),
|
|
51
|
-
sessions: []
|
|
52
|
-
};
|
|
53
|
-
notify();
|
|
54
|
-
try {
|
|
55
|
-
await sessionClient.switchAccount(accountId);
|
|
56
|
-
} finally {
|
|
57
|
-
await store.refresh(true);
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
removeAccount: async accountId => {
|
|
61
|
-
requestState.invalidate();
|
|
62
|
-
store.snapshot = {
|
|
63
|
-
status: "loading",
|
|
64
|
-
accounts: requestState.getAccounts(),
|
|
65
|
-
sessions: []
|
|
66
|
-
};
|
|
67
|
-
notify();
|
|
68
|
-
try {
|
|
69
|
-
await sessionClient.removeAccount(accountId);
|
|
70
|
-
} finally {
|
|
71
|
-
await store.refresh(true);
|
|
72
|
-
}
|
|
73
|
-
},
|
|
80
|
+
switchAccount: accountId => runAccountOperation(() => sessionClient.switchAccount(accountId)),
|
|
81
|
+
removeAccount: accountId => runAccountOperation(() => sessionClient.removeAccount(accountId)),
|
|
74
82
|
logout: async () => {
|
|
75
83
|
if (logoutRequest) {
|
|
76
84
|
return logoutRequest;
|
|
@@ -98,6 +106,26 @@ const createSessionStore = client => {
|
|
|
98
106
|
}
|
|
99
107
|
};
|
|
100
108
|
storeRef.current = store;
|
|
109
|
+
async function runAccountOperation(operation) {
|
|
110
|
+
const currentStore = storeRef.current;
|
|
111
|
+
requestState.invalidate();
|
|
112
|
+
currentStore.snapshot = {
|
|
113
|
+
...currentStore.snapshot,
|
|
114
|
+
switching: true,
|
|
115
|
+
accounts: requestState.getAccounts()
|
|
116
|
+
};
|
|
117
|
+
notify();
|
|
118
|
+
try {
|
|
119
|
+
await operation();
|
|
120
|
+
} finally {
|
|
121
|
+
await currentStore.refresh(true);
|
|
122
|
+
currentStore.snapshot = {
|
|
123
|
+
...currentStore.snapshot,
|
|
124
|
+
switching: false
|
|
125
|
+
};
|
|
126
|
+
notify();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
101
129
|
return store;
|
|
102
130
|
};
|
|
103
131
|
const getSessionStore = client => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addEventListener","addNetworkEventListener","logoutSession","createSessionRefreshActions","SessionStoreRequestState","stores","WeakMap","createSessionStore","client","sessionClient","listeners","Set","requestState","unsubscribeNetwork","wasConnected","logoutRequest","storeRef","notify","forEach","listener","
|
|
1
|
+
{"version":3,"names":["addEventListener","addNetworkEventListener","isLogoutInProgress","logoutSession","createSessionRefreshActions","SessionStoreRequestState","stores","WeakMap","createSessionStore","client","sessionClient","listeners","Set","requestState","unsubscribeNetwork","unsubscribeClient","wasConnected","logoutRequest","storeRef","notify","forEach","listener","onClientChange","current","snapshot","switching","Promise","resolve","then","currentStore","getActiveLogin","refresh","status","invalidate","reason","accounts","getAccounts","sessions","refreshActions","store","subscribe","add","removeEventListener","state","isConnected","isInternetReachable","shouldRefresh","delete","size","undefined","switchAccount","accountId","runAccountOperation","removeAccount","logout","revokeSessions","option","operation","getSessionStore","key","existing","get","next","set"],"sourceRoot":"../../../../../src","sources":["modules/auth/session/session-store.ts"],"mappings":"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","ignoreList":[]}
|