@learncard/render-method-plugin 8.0.0 → 9.0.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.
- package/dist/render-method-plugin.cjs.development.cjs +1022 -36
- package/dist/render-method-plugin.cjs.development.cjs.map +3 -3
- package/dist/render-method-plugin.cjs.production.min.cjs +43 -43
- package/dist/render-method-plugin.cjs.production.min.cjs.map +3 -3
- package/dist/render-method-plugin.esm.js +1022 -36
- package/dist/render-method-plugin.esm.js.map +3 -3
- package/package.json +8 -8
|
@@ -1365,10 +1365,10 @@ function $constructor(name, initializer3, params) {
|
|
|
1365
1365
|
let Definition = _Definition;
|
|
1366
1366
|
Object.defineProperty(Definition, "name", { value: name });
|
|
1367
1367
|
function _(def) {
|
|
1368
|
-
var
|
|
1368
|
+
var _a7;
|
|
1369
1369
|
const inst = params?.Parent ? new Definition() : this;
|
|
1370
1370
|
init(inst, def);
|
|
1371
|
-
(
|
|
1371
|
+
(_a7 = inst._zod).deferred ?? (_a7.deferred = []);
|
|
1372
1372
|
for (const fn of inst._zod.deferred) {
|
|
1373
1373
|
fn();
|
|
1374
1374
|
}
|
|
@@ -2034,8 +2034,8 @@ function explicitlyAborted(x, startIndex = 0) {
|
|
|
2034
2034
|
__name(explicitlyAborted, "explicitlyAborted");
|
|
2035
2035
|
function prefixIssues(path, issues) {
|
|
2036
2036
|
return issues.map((iss) => {
|
|
2037
|
-
var
|
|
2038
|
-
(
|
|
2037
|
+
var _a7;
|
|
2038
|
+
(_a7 = iss).path ?? (_a7.path = []);
|
|
2039
2039
|
iss.path.unshift(path);
|
|
2040
2040
|
return iss;
|
|
2041
2041
|
});
|
|
@@ -2238,7 +2238,7 @@ __name(formatError, "formatError");
|
|
|
2238
2238
|
function treeifyError(error51, mapper = (issue2) => issue2.message) {
|
|
2239
2239
|
const result = { errors: [] };
|
|
2240
2240
|
const processError = /* @__PURE__ */ __name((error52, path = []) => {
|
|
2241
|
-
var
|
|
2241
|
+
var _a7, _b;
|
|
2242
2242
|
for (const issue2 of error52.issues) {
|
|
2243
2243
|
if (issue2.code === "invalid_union" && issue2.errors.length) {
|
|
2244
2244
|
issue2.errors.map((issues) => processError({ issues }, [...path, ...issue2.path]));
|
|
@@ -2259,7 +2259,7 @@ function treeifyError(error51, mapper = (issue2) => issue2.message) {
|
|
|
2259
2259
|
const terminal = i === fullpath.length - 1;
|
|
2260
2260
|
if (typeof el === "string") {
|
|
2261
2261
|
curr.properties ?? (curr.properties = {});
|
|
2262
|
-
(
|
|
2262
|
+
(_a7 = curr.properties)[el] ?? (_a7[el] = { errors: [] });
|
|
2263
2263
|
curr = curr.properties[el];
|
|
2264
2264
|
} else {
|
|
2265
2265
|
curr.items ?? (curr.items = []);
|
|
@@ -2564,10 +2564,10 @@ var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
|
|
|
2564
2564
|
|
|
2565
2565
|
// ../../../node_modules/zod/v4/core/checks.js
|
|
2566
2566
|
var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
|
|
2567
|
-
var
|
|
2567
|
+
var _a7;
|
|
2568
2568
|
inst._zod ?? (inst._zod = {});
|
|
2569
2569
|
inst._zod.def = def;
|
|
2570
|
-
(
|
|
2570
|
+
(_a7 = inst._zod).onattach ?? (_a7.onattach = []);
|
|
2571
2571
|
});
|
|
2572
2572
|
var numericOriginMap = {
|
|
2573
2573
|
number: "number",
|
|
@@ -2633,8 +2633,8 @@ var $ZodCheckGreaterThan = /* @__PURE__ */ $constructor("$ZodCheckGreaterThan",
|
|
|
2633
2633
|
var $ZodCheckMultipleOf = /* @__PURE__ */ $constructor("$ZodCheckMultipleOf", (inst, def) => {
|
|
2634
2634
|
$ZodCheck.init(inst, def);
|
|
2635
2635
|
inst._zod.onattach.push((inst2) => {
|
|
2636
|
-
var
|
|
2637
|
-
(
|
|
2636
|
+
var _a7;
|
|
2637
|
+
(_a7 = inst2._zod.bag).multipleOf ?? (_a7.multipleOf = def.value);
|
|
2638
2638
|
});
|
|
2639
2639
|
inst._zod.check = (payload) => {
|
|
2640
2640
|
if (typeof payload.value !== typeof def.value)
|
|
@@ -2767,9 +2767,9 @@ var $ZodCheckBigIntFormat = /* @__PURE__ */ $constructor("$ZodCheckBigIntFormat"
|
|
|
2767
2767
|
};
|
|
2768
2768
|
});
|
|
2769
2769
|
var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, def) => {
|
|
2770
|
-
var
|
|
2770
|
+
var _a7;
|
|
2771
2771
|
$ZodCheck.init(inst, def);
|
|
2772
|
-
(
|
|
2772
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2773
2773
|
const val = payload.value;
|
|
2774
2774
|
return !nullish(val) && val.size !== void 0;
|
|
2775
2775
|
});
|
|
@@ -2795,9 +2795,9 @@ var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, d
|
|
|
2795
2795
|
};
|
|
2796
2796
|
});
|
|
2797
2797
|
var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, def) => {
|
|
2798
|
-
var
|
|
2798
|
+
var _a7;
|
|
2799
2799
|
$ZodCheck.init(inst, def);
|
|
2800
|
-
(
|
|
2800
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2801
2801
|
const val = payload.value;
|
|
2802
2802
|
return !nullish(val) && val.size !== void 0;
|
|
2803
2803
|
});
|
|
@@ -2823,9 +2823,9 @@ var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, d
|
|
|
2823
2823
|
};
|
|
2824
2824
|
});
|
|
2825
2825
|
var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (inst, def) => {
|
|
2826
|
-
var
|
|
2826
|
+
var _a7;
|
|
2827
2827
|
$ZodCheck.init(inst, def);
|
|
2828
|
-
(
|
|
2828
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2829
2829
|
const val = payload.value;
|
|
2830
2830
|
return !nullish(val) && val.size !== void 0;
|
|
2831
2831
|
});
|
|
@@ -2853,9 +2853,9 @@ var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (i
|
|
|
2853
2853
|
};
|
|
2854
2854
|
});
|
|
2855
2855
|
var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (inst, def) => {
|
|
2856
|
-
var
|
|
2856
|
+
var _a7;
|
|
2857
2857
|
$ZodCheck.init(inst, def);
|
|
2858
|
-
(
|
|
2858
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2859
2859
|
const val = payload.value;
|
|
2860
2860
|
return !nullish(val) && val.length !== void 0;
|
|
2861
2861
|
});
|
|
@@ -2882,9 +2882,9 @@ var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (ins
|
|
|
2882
2882
|
};
|
|
2883
2883
|
});
|
|
2884
2884
|
var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (inst, def) => {
|
|
2885
|
-
var
|
|
2885
|
+
var _a7;
|
|
2886
2886
|
$ZodCheck.init(inst, def);
|
|
2887
|
-
(
|
|
2887
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2888
2888
|
const val = payload.value;
|
|
2889
2889
|
return !nullish(val) && val.length !== void 0;
|
|
2890
2890
|
});
|
|
@@ -2911,9 +2911,9 @@ var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (ins
|
|
|
2911
2911
|
};
|
|
2912
2912
|
});
|
|
2913
2913
|
var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals", (inst, def) => {
|
|
2914
|
-
var
|
|
2914
|
+
var _a7;
|
|
2915
2915
|
$ZodCheck.init(inst, def);
|
|
2916
|
-
(
|
|
2916
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2917
2917
|
const val = payload.value;
|
|
2918
2918
|
return !nullish(val) && val.length !== void 0;
|
|
2919
2919
|
});
|
|
@@ -2942,7 +2942,7 @@ var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals"
|
|
|
2942
2942
|
};
|
|
2943
2943
|
});
|
|
2944
2944
|
var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat", (inst, def) => {
|
|
2945
|
-
var
|
|
2945
|
+
var _a7, _b;
|
|
2946
2946
|
$ZodCheck.init(inst, def);
|
|
2947
2947
|
inst._zod.onattach.push((inst2) => {
|
|
2948
2948
|
const bag = inst2._zod.bag;
|
|
@@ -2953,7 +2953,7 @@ var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat"
|
|
|
2953
2953
|
}
|
|
2954
2954
|
});
|
|
2955
2955
|
if (def.pattern)
|
|
2956
|
-
(
|
|
2956
|
+
(_a7 = inst._zod).check ?? (_a7.check = (payload) => {
|
|
2957
2957
|
def.pattern.lastIndex = 0;
|
|
2958
2958
|
if (def.pattern.test(payload.value))
|
|
2959
2959
|
return;
|
|
@@ -3158,7 +3158,7 @@ var version = {
|
|
|
3158
3158
|
|
|
3159
3159
|
// ../../../node_modules/zod/v4/core/schemas.js
|
|
3160
3160
|
var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
3161
|
-
var
|
|
3161
|
+
var _a7;
|
|
3162
3162
|
inst ?? (inst = {});
|
|
3163
3163
|
inst._zod.def = def;
|
|
3164
3164
|
inst._zod.bag = inst._zod.bag || {};
|
|
@@ -3173,7 +3173,7 @@ var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
|
3173
3173
|
}
|
|
3174
3174
|
}
|
|
3175
3175
|
if (checks.length === 0) {
|
|
3176
|
-
(
|
|
3176
|
+
(_a7 = inst._zod).deferred ?? (_a7.deferred = []);
|
|
3177
3177
|
inst._zod.deferred?.push(() => {
|
|
3178
3178
|
inst._zod.run = inst._zod.parse;
|
|
3179
3179
|
});
|
|
@@ -12564,7 +12564,7 @@ function initializeContext(params) {
|
|
|
12564
12564
|
}
|
|
12565
12565
|
__name(initializeContext, "initializeContext");
|
|
12566
12566
|
function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
|
|
12567
|
-
var
|
|
12567
|
+
var _a7;
|
|
12568
12568
|
const def = schema._zod.def;
|
|
12569
12569
|
const seen = ctx.seen.get(schema);
|
|
12570
12570
|
if (seen) {
|
|
@@ -12612,7 +12612,7 @@ function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
|
|
|
12612
12612
|
delete result.schema.default;
|
|
12613
12613
|
}
|
|
12614
12614
|
if (ctx.io === "input" && "_prefault" in result.schema)
|
|
12615
|
-
(
|
|
12615
|
+
(_a7 = result.schema).default ?? (_a7.default = result.schema._prefault);
|
|
12616
12616
|
delete result.schema._prefault;
|
|
12617
12617
|
const _result = ctx.seen.get(schema);
|
|
12618
12618
|
return _result.schema;
|
|
@@ -15961,7 +15961,7 @@ var __toESM = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod
|
|
|
15961
15961
|
var require_types_cjs_development = __commonJS({
|
|
15962
15962
|
"../learn-card-types/dist/types.cjs.development.cjs"(exports, module2) {
|
|
15963
15963
|
"use strict";
|
|
15964
|
-
var
|
|
15964
|
+
var _a8, _b, _c, _d, _e, _f, _g;
|
|
15965
15965
|
var __defProp22 = Object.defineProperty;
|
|
15966
15966
|
var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
|
|
15967
15967
|
var __getOwnPropNames22 = Object.getOwnPropertyNames;
|
|
@@ -15989,6 +15989,8 @@ var require_types_cjs_development = __commonJS({
|
|
|
15989
15989
|
AchievementSubjectValidator: /* @__PURE__ */ __name2(() => AchievementSubjectValidator2, "AchievementSubjectValidator"),
|
|
15990
15990
|
AchievementTypeValidator: /* @__PURE__ */ __name2(() => AchievementTypeValidator2, "AchievementTypeValidator"),
|
|
15991
15991
|
AchievementValidator: /* @__PURE__ */ __name2(() => AchievementValidator2, "AchievementValidator"),
|
|
15992
|
+
AcknowledgeViewInputValidator: /* @__PURE__ */ __name2(() => AcknowledgeViewInputValidator2, "AcknowledgeViewInputValidator"),
|
|
15993
|
+
AcknowledgeViewOutputValidator: /* @__PURE__ */ __name2(() => AcknowledgeViewOutputValidator2, "AcknowledgeViewOutputValidator"),
|
|
15992
15994
|
AddTagInputValidator: /* @__PURE__ */ __name2(() => AddTagInputValidator2, "AddTagInputValidator"),
|
|
15993
15995
|
AddressValidator: /* @__PURE__ */ __name2(() => AddressValidator2, "AddressValidator"),
|
|
15994
15996
|
AgeRatingValidator: /* @__PURE__ */ __name2(() => AgeRatingValidator2, "AgeRatingValidator"),
|
|
@@ -16066,6 +16068,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
16066
16068
|
CreateContactMethodSessionValidator: /* @__PURE__ */ __name2(() => CreateContactMethodSessionValidator2, "CreateContactMethodSessionValidator"),
|
|
16067
16069
|
CreateManagedFrameworkBatchInputValidator: /* @__PURE__ */ __name2(() => CreateManagedFrameworkBatchInputValidator2, "CreateManagedFrameworkBatchInputValidator"),
|
|
16068
16070
|
CreateManagedFrameworkInputValidator: /* @__PURE__ */ __name2(() => CreateManagedFrameworkInputValidator2, "CreateManagedFrameworkInputValidator"),
|
|
16071
|
+
CreateShareLinkInputValidator: /* @__PURE__ */ __name2(() => CreateShareLinkInputValidator2, "CreateShareLinkInputValidator"),
|
|
16069
16072
|
CreateSkillInputValidator: /* @__PURE__ */ __name2(() => CreateSkillInputValidator2, "CreateSkillInputValidator"),
|
|
16070
16073
|
CreateSkillsBatchInputValidator: /* @__PURE__ */ __name2(() => CreateSkillsBatchInputValidator2, "CreateSkillsBatchInputValidator"),
|
|
16071
16074
|
CredentialActivityEventTypeValidator: /* @__PURE__ */ __name2(() => CredentialActivityEventTypeValidator2, "CredentialActivityEventTypeValidator"),
|
|
@@ -16097,10 +16100,14 @@ var require_types_cjs_development = __commonJS({
|
|
|
16097
16100
|
DeleteSkillInputValidator: /* @__PURE__ */ __name2(() => DeleteSkillInputValidator2, "DeleteSkillInputValidator"),
|
|
16098
16101
|
DidDocumentValidator: /* @__PURE__ */ __name2(() => DidDocumentValidator2, "DidDocumentValidator"),
|
|
16099
16102
|
EMPTY_IN_APP_MESSAGES_FLAG: /* @__PURE__ */ __name2(() => EMPTY_IN_APP_MESSAGES_FLAG, "EMPTY_IN_APP_MESSAGES_FLAG"),
|
|
16103
|
+
ESCROW_PIN_LOCKED_MESSAGE: /* @__PURE__ */ __name2(() => ESCROW_PIN_LOCKED_MESSAGE, "ESCROW_PIN_LOCKED_MESSAGE"),
|
|
16104
|
+
ESCROW_PIN_MISMATCH_PATTERN: /* @__PURE__ */ __name2(() => ESCROW_PIN_MISMATCH_PATTERN, "ESCROW_PIN_MISMATCH_PATTERN"),
|
|
16105
|
+
ESCROW_PIN_UNAVAILABLE_MESSAGE: /* @__PURE__ */ __name2(() => ESCROW_PIN_UNAVAILABLE_MESSAGE, "ESCROW_PIN_UNAVAILABLE_MESSAGE"),
|
|
16100
16106
|
EncryptedCredentialRecordValidator: /* @__PURE__ */ __name2(() => EncryptedCredentialRecordValidator2, "EncryptedCredentialRecordValidator"),
|
|
16101
16107
|
EncryptedRecordValidator: /* @__PURE__ */ __name2(() => EncryptedRecordValidator2, "EncryptedRecordValidator"),
|
|
16102
16108
|
EndorsementCredentialValidator: /* @__PURE__ */ __name2(() => EndorsementCredentialValidator2, "EndorsementCredentialValidator"),
|
|
16103
16109
|
EndorsementSubjectValidator: /* @__PURE__ */ __name2(() => EndorsementSubjectValidator2, "EndorsementSubjectValidator"),
|
|
16110
|
+
EscrowPinStatusValidator: /* @__PURE__ */ __name2(() => EscrowPinStatusValidator2, "EscrowPinStatusValidator"),
|
|
16104
16111
|
EvidenceValidator: /* @__PURE__ */ __name2(() => EvidenceValidator2, "EvidenceValidator"),
|
|
16105
16112
|
FlatAuthGrantValidator: /* @__PURE__ */ __name2(() => FlatAuthGrantValidator2, "FlatAuthGrantValidator"),
|
|
16106
16113
|
FrameworkWithSkillsValidator: /* @__PURE__ */ __name2(() => FrameworkWithSkillsValidator2, "FrameworkWithSkillsValidator"),
|
|
@@ -16182,6 +16189,14 @@ var require_types_cjs_development = __commonJS({
|
|
|
16182
16189
|
LaunchTypeValidator: /* @__PURE__ */ __name2(() => LaunchTypeValidator2, "LaunchTypeValidator"),
|
|
16183
16190
|
LearnCardRefreshAuthorizationValidator: /* @__PURE__ */ __name2(() => LearnCardRefreshAuthorizationValidator2, "LearnCardRefreshAuthorizationValidator"),
|
|
16184
16191
|
LinkProviderFrameworkInputValidator: /* @__PURE__ */ __name2(() => LinkProviderFrameworkInputValidator2, "LinkProviderFrameworkInputValidator"),
|
|
16192
|
+
ListShareLinksInputValidator: /* @__PURE__ */ __name2(() => ListShareLinksInputValidator2, "ListShareLinksInputValidator"),
|
|
16193
|
+
MAX_ENDORSEMENTS: /* @__PURE__ */ __name2(() => MAX_ENDORSEMENTS2, "MAX_ENDORSEMENTS"),
|
|
16194
|
+
MAX_SELECTED_CREDENTIALS: /* @__PURE__ */ __name2(() => MAX_SELECTED_CREDENTIALS2, "MAX_SELECTED_CREDENTIALS"),
|
|
16195
|
+
MAX_SHARE_CIPHERTEXT_BYTES: /* @__PURE__ */ __name2(() => MAX_SHARE_CIPHERTEXT_BYTES2, "MAX_SHARE_CIPHERTEXT_BYTES"),
|
|
16196
|
+
MAX_SHARE_LINK_REQUEST_BYTES: /* @__PURE__ */ __name2(() => MAX_SHARE_LINK_REQUEST_BYTES2, "MAX_SHARE_LINK_REQUEST_BYTES"),
|
|
16197
|
+
MAX_SHARE_RECOVERY_JWE_BYTES: /* @__PURE__ */ __name2(() => MAX_SHARE_RECOVERY_JWE_BYTES2, "MAX_SHARE_RECOVERY_JWE_BYTES"),
|
|
16198
|
+
MAX_SHARE_SOURCE_URI_CHARS: /* @__PURE__ */ __name2(() => MAX_SHARE_SOURCE_URI_CHARS2, "MAX_SHARE_SOURCE_URI_CHARS"),
|
|
16199
|
+
MAX_VP_MEMBERS: /* @__PURE__ */ __name2(() => MAX_VP_MEMBERS2, "MAX_VP_MEMBERS"),
|
|
16185
16200
|
ManagedCredentialRefreshReceiptValidator: /* @__PURE__ */ __name2(() => ManagedCredentialRefreshReceiptValidator2, "ManagedCredentialRefreshReceiptValidator"),
|
|
16186
16201
|
ManagedCredentialRefreshServiceValidator: /* @__PURE__ */ __name2(() => ManagedCredentialRefreshServiceValidator2, "ManagedCredentialRefreshServiceValidator"),
|
|
16187
16202
|
PaginatedAppStoreListingsValidator: /* @__PURE__ */ __name2(() => PaginatedAppStoreListingsValidator2, "PaginatedAppStoreListingsValidator"),
|
|
@@ -16204,6 +16219,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
16204
16219
|
PaginatedLCNProfileManagersValidator: /* @__PURE__ */ __name2(() => PaginatedLCNProfileManagersValidator2, "PaginatedLCNProfileManagersValidator"),
|
|
16205
16220
|
PaginatedLCNProfilesAndManagersValidator: /* @__PURE__ */ __name2(() => PaginatedLCNProfilesAndManagersValidator2, "PaginatedLCNProfilesAndManagersValidator"),
|
|
16206
16221
|
PaginatedLCNProfilesValidator: /* @__PURE__ */ __name2(() => PaginatedLCNProfilesValidator2, "PaginatedLCNProfilesValidator"),
|
|
16222
|
+
PaginatedShareLinksValidator: /* @__PURE__ */ __name2(() => PaginatedShareLinksValidator2, "PaginatedShareLinksValidator"),
|
|
16207
16223
|
PaginatedSkillFrameworksValidator: /* @__PURE__ */ __name2(() => PaginatedSkillFrameworksValidator2, "PaginatedSkillFrameworksValidator"),
|
|
16208
16224
|
PaginatedSkillTreeValidator: /* @__PURE__ */ __name2(() => PaginatedSkillTreeValidator2, "PaginatedSkillTreeValidator"),
|
|
16209
16225
|
PaginatedVisibleLCNProfilesValidator: /* @__PURE__ */ __name2(() => PaginatedVisibleLCNProfilesValidator2, "PaginatedVisibleLCNProfilesValidator"),
|
|
@@ -16228,11 +16244,20 @@ var require_types_cjs_development = __commonJS({
|
|
|
16228
16244
|
ReplaceSkillFrameworkSkillsInputValidator: /* @__PURE__ */ __name2(() => ReplaceSkillFrameworkSkillsInputValidator2, "ReplaceSkillFrameworkSkillsInputValidator"),
|
|
16229
16245
|
ReplaceSkillFrameworkSkillsResultValidator: /* @__PURE__ */ __name2(() => ReplaceSkillFrameworkSkillsResultValidator2, "ReplaceSkillFrameworkSkillsResultValidator"),
|
|
16230
16246
|
RequestLearnerContextEventValidator: /* @__PURE__ */ __name2(() => RequestLearnerContextEventValidator2, "RequestLearnerContextEventValidator"),
|
|
16247
|
+
ResolveShareLinkInputValidator: /* @__PURE__ */ __name2(() => ResolveShareLinkInputValidator2, "ResolveShareLinkInputValidator"),
|
|
16231
16248
|
ResultDescriptionValidator: /* @__PURE__ */ __name2(() => ResultDescriptionValidator2, "ResultDescriptionValidator"),
|
|
16232
16249
|
ResultStatusTypeValidator: /* @__PURE__ */ __name2(() => ResultStatusTypeValidator2, "ResultStatusTypeValidator"),
|
|
16233
16250
|
ResultTypeValidator: /* @__PURE__ */ __name2(() => ResultTypeValidator2, "ResultTypeValidator"),
|
|
16234
16251
|
ResultValidator: /* @__PURE__ */ __name2(() => ResultValidator2, "ResultValidator"),
|
|
16235
16252
|
RubricCriterionValidator: /* @__PURE__ */ __name2(() => RubricCriterionValidator2, "RubricCriterionValidator"),
|
|
16253
|
+
SHARE_AAD_PREFIX: /* @__PURE__ */ __name2(() => SHARE_AAD_PREFIX, "SHARE_AAD_PREFIX"),
|
|
16254
|
+
SHARE_CONTENT_KEY_BYTES: /* @__PURE__ */ __name2(() => SHARE_CONTENT_KEY_BYTES2, "SHARE_CONTENT_KEY_BYTES"),
|
|
16255
|
+
SHARE_IV_BYTES: /* @__PURE__ */ __name2(() => SHARE_IV_BYTES2, "SHARE_IV_BYTES"),
|
|
16256
|
+
SHARE_LINK_ID_BYTES: /* @__PURE__ */ __name2(() => SHARE_LINK_ID_BYTES2, "SHARE_LINK_ID_BYTES"),
|
|
16257
|
+
SHARE_LINK_PROTOCOL: /* @__PURE__ */ __name2(() => SHARE_LINK_PROTOCOL2, "SHARE_LINK_PROTOCOL"),
|
|
16258
|
+
SHARE_RECOVERY_PROTOCOL: /* @__PURE__ */ __name2(() => SHARE_RECOVERY_PROTOCOL2, "SHARE_RECOVERY_PROTOCOL"),
|
|
16259
|
+
SHARE_TAG_BYTES: /* @__PURE__ */ __name2(() => SHARE_TAG_BYTES2, "SHARE_TAG_BYTES"),
|
|
16260
|
+
SHARE_VIEW_RECEIPT_TTL_SECONDS: /* @__PURE__ */ __name2(() => SHARE_VIEW_RECEIPT_TTL_SECONDS2, "SHARE_VIEW_RECEIPT_TTL_SECONDS"),
|
|
16236
16261
|
SendAiSessionCredentialEventValidator: /* @__PURE__ */ __name2(() => SendAiSessionCredentialEventValidator2, "SendAiSessionCredentialEventValidator"),
|
|
16237
16262
|
SendBoostInputValidator: /* @__PURE__ */ __name2(() => SendBoostInputValidator2, "SendBoostInputValidator"),
|
|
16238
16263
|
SendBoostResponseValidator: /* @__PURE__ */ __name2(() => SendBoostResponseValidator2, "SendBoostResponseValidator"),
|
|
@@ -16247,6 +16272,32 @@ var require_types_cjs_development = __commonJS({
|
|
|
16247
16272
|
SentCredentialInfoValidator: /* @__PURE__ */ __name2(() => SentCredentialInfoValidator2, "SentCredentialInfoValidator"),
|
|
16248
16273
|
ServiceValidator: /* @__PURE__ */ __name2(() => ServiceValidator2, "ServiceValidator"),
|
|
16249
16274
|
SetPrimaryContactMethodValidator: /* @__PURE__ */ __name2(() => SetPrimaryContactMethodValidator2, "SetPrimaryContactMethodValidator"),
|
|
16275
|
+
ShareCiphertextValidator: /* @__PURE__ */ __name2(() => ShareCiphertextValidator2, "ShareCiphertextValidator"),
|
|
16276
|
+
ShareContentKeyValidator: /* @__PURE__ */ __name2(() => ShareContentKeyValidator2, "ShareContentKeyValidator"),
|
|
16277
|
+
ShareContentStateValidator: /* @__PURE__ */ __name2(() => ShareContentStateValidator2, "ShareContentStateValidator"),
|
|
16278
|
+
ShareEndorsementEntryValidator: /* @__PURE__ */ __name2(() => ShareEndorsementEntryValidator2, "ShareEndorsementEntryValidator"),
|
|
16279
|
+
ShareEnvelopeValidator: /* @__PURE__ */ __name2(() => ShareEnvelopeValidator2, "ShareEnvelopeValidator"),
|
|
16280
|
+
ShareIvValidator: /* @__PURE__ */ __name2(() => ShareIvValidator2, "ShareIvValidator"),
|
|
16281
|
+
ShareLinkIdInputValidator: /* @__PURE__ */ __name2(() => ShareLinkIdInputValidator2, "ShareLinkIdInputValidator"),
|
|
16282
|
+
ShareLinkIdValidator: /* @__PURE__ */ __name2(() => ShareLinkIdValidator2, "ShareLinkIdValidator"),
|
|
16283
|
+
ShareLinkOperationKeyInputValidator: /* @__PURE__ */ __name2(() => ShareLinkOperationKeyInputValidator2, "ShareLinkOperationKeyInputValidator"),
|
|
16284
|
+
ShareLinkOwnerCommitOutputValidator: /* @__PURE__ */ __name2(() => ShareLinkOwnerCommitOutputValidator2, "ShareLinkOwnerCommitOutputValidator"),
|
|
16285
|
+
ShareLinkOwnerContentOutputValidator: /* @__PURE__ */ __name2(() => ShareLinkOwnerContentOutputValidator2, "ShareLinkOwnerContentOutputValidator"),
|
|
16286
|
+
ShareLinkOwnerRecoveryOutputValidator: /* @__PURE__ */ __name2(() => ShareLinkOwnerRecoveryOutputValidator2, "ShareLinkOwnerRecoveryOutputValidator"),
|
|
16287
|
+
ShareLinkOwnerStatusOutputValidator: /* @__PURE__ */ __name2(() => ShareLinkOwnerStatusOutputValidator2, "ShareLinkOwnerStatusOutputValidator"),
|
|
16288
|
+
ShareLinkPublicContentViewValidator: /* @__PURE__ */ __name2(() => ShareLinkPublicContentViewValidator2, "ShareLinkPublicContentViewValidator"),
|
|
16289
|
+
ShareLinkPublicStateValidator: /* @__PURE__ */ __name2(() => ShareLinkPublicStateValidator2, "ShareLinkPublicStateValidator"),
|
|
16290
|
+
ShareLinkStatusValidator: /* @__PURE__ */ __name2(() => ShareLinkStatusValidator2, "ShareLinkStatusValidator"),
|
|
16291
|
+
ShareLinkValidator: /* @__PURE__ */ __name2(() => ShareLinkValidator2, "ShareLinkValidator"),
|
|
16292
|
+
ShareManifestPresentationValidator: /* @__PURE__ */ __name2(() => ShareManifestPresentationValidator2, "ShareManifestPresentationValidator"),
|
|
16293
|
+
ShareOwnerRecoveryValidator: /* @__PURE__ */ __name2(() => ShareOwnerRecoveryValidator2, "ShareOwnerRecoveryValidator"),
|
|
16294
|
+
SharePayloadValidator: /* @__PURE__ */ __name2(() => SharePayloadValidator2, "SharePayloadValidator"),
|
|
16295
|
+
SharePayloadValidatorShape: /* @__PURE__ */ __name2(() => SharePayloadValidatorShape2, "SharePayloadValidatorShape"),
|
|
16296
|
+
ShareRecoveryEndorsementValidator: /* @__PURE__ */ __name2(() => ShareRecoveryEndorsementValidator2, "ShareRecoveryEndorsementValidator"),
|
|
16297
|
+
ShareRecoveryPlaintextValidator: /* @__PURE__ */ __name2(() => ShareRecoveryPlaintextValidator2, "ShareRecoveryPlaintextValidator"),
|
|
16298
|
+
ShareRecoverySelectionValidator: /* @__PURE__ */ __name2(() => ShareRecoverySelectionValidator2, "ShareRecoverySelectionValidator"),
|
|
16299
|
+
ShareSelectionEntryValidator: /* @__PURE__ */ __name2(() => ShareSelectionEntryValidator2, "ShareSelectionEntryValidator"),
|
|
16300
|
+
ShareSharerValidator: /* @__PURE__ */ __name2(() => ShareSharerValidator2, "ShareSharerValidator"),
|
|
16250
16301
|
SkillDeletionStrategyValidator: /* @__PURE__ */ __name2(() => SkillDeletionStrategyValidator2, "SkillDeletionStrategyValidator"),
|
|
16251
16302
|
SkillFrameworkAdminInputValidator: /* @__PURE__ */ __name2(() => SkillFrameworkAdminInputValidator2, "SkillFrameworkAdminInputValidator"),
|
|
16252
16303
|
SkillFrameworkAdminsValidator: /* @__PURE__ */ __name2(() => SkillFrameworkAdminsValidator2, "SkillFrameworkAdminsValidator"),
|
|
@@ -16278,6 +16329,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
16278
16329
|
UnsignedVCValidator: /* @__PURE__ */ __name2(() => UnsignedVCValidator2, "UnsignedVCValidator"),
|
|
16279
16330
|
UnsignedVPValidator: /* @__PURE__ */ __name2(() => UnsignedVPValidator2, "UnsignedVPValidator"),
|
|
16280
16331
|
UpdateFrameworkInputValidator: /* @__PURE__ */ __name2(() => UpdateFrameworkInputValidator2, "UpdateFrameworkInputValidator"),
|
|
16332
|
+
UpdateShareLinkInputValidator: /* @__PURE__ */ __name2(() => UpdateShareLinkInputValidator2, "UpdateShareLinkInputValidator"),
|
|
16281
16333
|
UpdateSkillInputValidator: /* @__PURE__ */ __name2(() => UpdateSkillInputValidator2, "UpdateSkillInputValidator"),
|
|
16282
16334
|
VC2EvidenceValidator: /* @__PURE__ */ __name2(() => VC2EvidenceValidator2, "VC2EvidenceValidator"),
|
|
16283
16335
|
VCValidator: /* @__PURE__ */ __name2(() => VCValidator2, "VCValidator"),
|
|
@@ -16289,7 +16341,12 @@ var require_types_cjs_development = __commonJS({
|
|
|
16289
16341
|
VerificationStatusValidator: /* @__PURE__ */ __name2(() => VerificationStatusValidator2, "VerificationStatusValidator"),
|
|
16290
16342
|
appStoreActionValidator: /* @__PURE__ */ __name2(() => appStoreActionValidator2, "appStoreActionValidator"),
|
|
16291
16343
|
capgoUpdateActionValidator: /* @__PURE__ */ __name2(() => capgoUpdateActionValidator2, "capgoUpdateActionValidator"),
|
|
16344
|
+
classifyShareManifest: /* @__PURE__ */ __name2(() => classifyShareManifest2, "classifyShareManifest"),
|
|
16345
|
+
decodeBase64Url: /* @__PURE__ */ __name2(() => decodeBase64Url2, "decodeBase64Url"),
|
|
16346
|
+
decodedBase64UrlByteLength: /* @__PURE__ */ __name2(() => decodedBase64UrlByteLength, "decodedBase64UrlByteLength"),
|
|
16292
16347
|
dismissActionValidator: /* @__PURE__ */ __name2(() => dismissActionValidator2, "dismissActionValidator"),
|
|
16348
|
+
encodeBase64Url: /* @__PURE__ */ __name2(() => encodeBase64Url2, "encodeBase64Url"),
|
|
16349
|
+
escrowPinMismatchMessage: /* @__PURE__ */ __name2(() => escrowPinMismatchMessage, "escrowPinMismatchMessage"),
|
|
16293
16350
|
externalLinkActionValidator: /* @__PURE__ */ __name2(() => externalLinkActionValidator2, "externalLinkActionValidator"),
|
|
16294
16351
|
inAppMessageActionStyleValidator: /* @__PURE__ */ __name2(() => inAppMessageActionStyleValidator2, "inAppMessageActionStyleValidator"),
|
|
16295
16352
|
inAppMessageActionTargetValidator: /* @__PURE__ */ __name2(() => inAppMessageActionTargetValidator2, "inAppMessageActionTargetValidator"),
|
|
@@ -16304,10 +16361,12 @@ var require_types_cjs_development = __commonJS({
|
|
|
16304
16361
|
inAppMessageVersionSourceValidator: /* @__PURE__ */ __name2(() => inAppMessageVersionSourceValidator2, "inAppMessageVersionSourceValidator"),
|
|
16305
16362
|
inAppMessagesFlagValidator: /* @__PURE__ */ __name2(() => inAppMessagesFlagValidator2, "inAppMessagesFlagValidator"),
|
|
16306
16363
|
internalLinkActionValidator: /* @__PURE__ */ __name2(() => internalLinkActionValidator2, "internalLinkActionValidator"),
|
|
16364
|
+
isCanonicalBase64Url: /* @__PURE__ */ __name2(() => isCanonicalBase64Url2, "isCanonicalBase64Url"),
|
|
16307
16365
|
isStoredCredentialEnvelope: /* @__PURE__ */ __name2(() => isStoredCredentialEnvelope2, "isStoredCredentialEnvelope"),
|
|
16308
16366
|
parseInAppMessagesFlag: /* @__PURE__ */ __name2(() => parseInAppMessagesFlag, "parseInAppMessagesFlag"),
|
|
16309
16367
|
platformPredicateValidator: /* @__PURE__ */ __name2(() => platformPredicateValidator2, "platformPredicateValidator"),
|
|
16310
16368
|
rolePredicateValidator: /* @__PURE__ */ __name2(() => rolePredicateValidator2, "rolePredicateValidator"),
|
|
16369
|
+
utf8ByteLength: /* @__PURE__ */ __name2(() => utf8ByteLength2, "utf8ByteLength"),
|
|
16311
16370
|
versionPredicateValidator: /* @__PURE__ */ __name2(() => versionPredicateValidator2, "versionPredicateValidator")
|
|
16312
16371
|
});
|
|
16313
16372
|
module2.exports = __toCommonJS2(index_exports2);
|
|
@@ -16829,7 +16888,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
16829
16888
|
util: /* @__PURE__ */ __name2(() => util_exports2, "util"),
|
|
16830
16889
|
version: /* @__PURE__ */ __name2(() => version3, "version")
|
|
16831
16890
|
});
|
|
16832
|
-
var
|
|
16891
|
+
var _a7;
|
|
16833
16892
|
var NEVER2 = /* @__PURE__ */ Object.freeze({
|
|
16834
16893
|
status: "aborted"
|
|
16835
16894
|
});
|
|
@@ -16899,18 +16958,18 @@ var require_types_cjs_development = __commonJS({
|
|
|
16899
16958
|
__name2($constructor2, "$constructor");
|
|
16900
16959
|
__name22($constructor2, "$constructor");
|
|
16901
16960
|
var $brand2 = /* @__PURE__ */ Symbol("zod_brand");
|
|
16902
|
-
var $ZodAsyncError2 = (
|
|
16961
|
+
var $ZodAsyncError2 = (_a8 = class extends Error {
|
|
16903
16962
|
constructor() {
|
|
16904
16963
|
super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);
|
|
16905
16964
|
}
|
|
16906
|
-
}, __name(
|
|
16965
|
+
}, __name(_a8, "$ZodAsyncError"), __name2(_a8, "$ZodAsyncError"), __name22(_a8, "$ZodAsyncError"), _a8);
|
|
16907
16966
|
var $ZodEncodeError2 = (_b = class extends Error {
|
|
16908
16967
|
constructor(name) {
|
|
16909
16968
|
super(`Encountered unidirectional transform during encode: ${name}`);
|
|
16910
16969
|
this.name = "ZodEncodeError";
|
|
16911
16970
|
}
|
|
16912
16971
|
}, __name(_b, "$ZodEncodeError"), __name2(_b, "$ZodEncodeError"), __name22(_b, "$ZodEncodeError"), _b);
|
|
16913
|
-
(
|
|
16972
|
+
(_a7 = globalThis).__zod_globalConfig ?? (_a7.__zod_globalConfig = {});
|
|
16914
16973
|
var globalConfig2 = globalThis.__zod_globalConfig;
|
|
16915
16974
|
function config2(newConfig) {
|
|
16916
16975
|
if (newConfig)
|
|
@@ -34331,6 +34390,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
34331
34390
|
this.name = "AuthSessionError";
|
|
34332
34391
|
}
|
|
34333
34392
|
}, __name(_g, "AuthSessionError"), __name2(_g, "AuthSessionError"), __name22(_g, "AuthSessionError"), _g);
|
|
34393
|
+
var ESCROW_PIN_LOCKED_MESSAGE = "Too many incorrect PIN attempts. You can still recover by waiting.";
|
|
34394
|
+
var ESCROW_PIN_UNAVAILABLE_MESSAGE = "PIN recovery is not available for this account.";
|
|
34395
|
+
var ESCROW_PIN_MISMATCH_PATTERN = /^Incorrect PIN\. (\d+) attempts left\.$/;
|
|
34396
|
+
var escrowPinMismatchMessage = /* @__PURE__ */ __name22((attemptsRemaining) => `Incorrect PIN. ${attemptsRemaining} attempts left.`, "escrowPinMismatchMessage");
|
|
34397
|
+
var EscrowPinStatusValidator2 = external_exports2.object({
|
|
34398
|
+
state: external_exports2.enum(["none", "enabled", "locked", "stale"]),
|
|
34399
|
+
enabled: external_exports2.boolean(),
|
|
34400
|
+
attemptsRemaining: external_exports2.number().int().nonnegative(),
|
|
34401
|
+
salt: external_exports2.string().optional()
|
|
34402
|
+
});
|
|
34334
34403
|
var BITSTRING_STATUS_PURPOSES2 = ["revocation", "suspension"];
|
|
34335
34404
|
var DEFAULT_BITSTRING_STATUS_LIST_SIZE = 131072;
|
|
34336
34405
|
var BitstringStatusPurposeValidator2 = external_exports2.enum(BITSTRING_STATUS_PURPOSES2);
|
|
@@ -34445,6 +34514,458 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
34445
34514
|
const result = inAppMessagesFlagValidator2.safeParse(raw);
|
|
34446
34515
|
return result.success ? result.data : EMPTY_IN_APP_MESSAGES_FLAG;
|
|
34447
34516
|
}, "parseInAppMessagesFlag");
|
|
34517
|
+
var SHARE_LINK_ID_BYTES2 = 16;
|
|
34518
|
+
var SHARE_CONTENT_KEY_BYTES2 = 32;
|
|
34519
|
+
var SHARE_IV_BYTES2 = 12;
|
|
34520
|
+
var SHARE_TAG_BYTES2 = 16;
|
|
34521
|
+
var MAX_SHARE_CIPHERTEXT_BYTES2 = 512 * 1024;
|
|
34522
|
+
var MAX_SHARE_RECOVERY_JWE_BYTES2 = 64 * 1024;
|
|
34523
|
+
var MAX_SELECTED_CREDENTIALS2 = 50;
|
|
34524
|
+
var MAX_ENDORSEMENTS2 = 200;
|
|
34525
|
+
var MAX_VP_MEMBERS2 = MAX_SELECTED_CREDENTIALS2 + MAX_ENDORSEMENTS2;
|
|
34526
|
+
var MAX_SHARE_SOURCE_URI_CHARS2 = 2048;
|
|
34527
|
+
var MAX_SHARE_LINK_REQUEST_BYTES2 = 1024 * 1024;
|
|
34528
|
+
var SHARE_LINK_PROTOCOL2 = "lc-share/v1";
|
|
34529
|
+
var SHARE_RECOVERY_PROTOCOL2 = "lc-share-recovery/v1";
|
|
34530
|
+
var SHARE_AAD_PREFIX = "lc-share:v1";
|
|
34531
|
+
var BASE64URL_ALPHABET2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
|
|
34532
|
+
var BASE64URL_LOOKUP2 = (() => {
|
|
34533
|
+
const table = new Int16Array(128).fill(-1);
|
|
34534
|
+
for (let index = 0; index < BASE64URL_ALPHABET2.length; index += 1) {
|
|
34535
|
+
table[BASE64URL_ALPHABET2.charCodeAt(index)] = index;
|
|
34536
|
+
}
|
|
34537
|
+
return table;
|
|
34538
|
+
})();
|
|
34539
|
+
var encodeBase64Url2 = /* @__PURE__ */ __name22((bytes) => {
|
|
34540
|
+
let output = "";
|
|
34541
|
+
for (let index = 0; index < bytes.length; index += 3) {
|
|
34542
|
+
const first = bytes[index];
|
|
34543
|
+
const second = bytes[index + 1];
|
|
34544
|
+
const third = bytes[index + 2];
|
|
34545
|
+
output += BASE64URL_ALPHABET2[first >> 2];
|
|
34546
|
+
output += BASE64URL_ALPHABET2[(first & 3) << 4 | (second ?? 0) >> 4];
|
|
34547
|
+
if (second === void 0) break;
|
|
34548
|
+
output += BASE64URL_ALPHABET2[(second & 15) << 2 | (third ?? 0) >> 6];
|
|
34549
|
+
if (third === void 0) break;
|
|
34550
|
+
output += BASE64URL_ALPHABET2[third & 63];
|
|
34551
|
+
}
|
|
34552
|
+
return output;
|
|
34553
|
+
}, "encodeBase64Url");
|
|
34554
|
+
var decodeBase64Url2 = /* @__PURE__ */ __name22((value) => {
|
|
34555
|
+
if (typeof value !== "string") return null;
|
|
34556
|
+
const output = new Uint8Array(Math.floor(value.length * 6 / 8));
|
|
34557
|
+
let bits = 0;
|
|
34558
|
+
let bitCount = 0;
|
|
34559
|
+
let outputIndex = 0;
|
|
34560
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
34561
|
+
const code = value.charCodeAt(index);
|
|
34562
|
+
const digit = code < 128 ? BASE64URL_LOOKUP2[code] : -1;
|
|
34563
|
+
if (digit < 0) return null;
|
|
34564
|
+
bits = bits << 6 | digit;
|
|
34565
|
+
bitCount += 6;
|
|
34566
|
+
if (bitCount >= 8) {
|
|
34567
|
+
bitCount -= 8;
|
|
34568
|
+
output[outputIndex] = bits >> bitCount & 255;
|
|
34569
|
+
outputIndex += 1;
|
|
34570
|
+
}
|
|
34571
|
+
}
|
|
34572
|
+
return output;
|
|
34573
|
+
}, "decodeBase64Url");
|
|
34574
|
+
var isCanonicalBase64Url2 = /* @__PURE__ */ __name22((value, expectedBytes) => {
|
|
34575
|
+
if (typeof value !== "string") return false;
|
|
34576
|
+
if (expectedBytes !== void 0 && value.length !== Math.ceil(expectedBytes * 4 / 3))
|
|
34577
|
+
return false;
|
|
34578
|
+
const decoded = decodeBase64Url2(value);
|
|
34579
|
+
if (decoded === null) return false;
|
|
34580
|
+
if (expectedBytes !== void 0 && decoded.length !== expectedBytes) return false;
|
|
34581
|
+
return encodeBase64Url2(decoded) === value;
|
|
34582
|
+
}, "isCanonicalBase64Url");
|
|
34583
|
+
var decodedBase64UrlByteLength = /* @__PURE__ */ __name22((value) => decodeBase64Url2(value)?.length ?? null, "decodedBase64UrlByteLength");
|
|
34584
|
+
var utf8ByteLength2 = /* @__PURE__ */ __name22((value) => new TextEncoder().encode(value).length, "utf8ByteLength");
|
|
34585
|
+
var canonicalBase64Url2 = /* @__PURE__ */ __name22((bytes) => external_exports2.string().refine((value) => isCanonicalBase64Url2(value, bytes), {
|
|
34586
|
+
message: `must be canonical base64url for exactly ${bytes} bytes`
|
|
34587
|
+
}), "canonicalBase64Url");
|
|
34588
|
+
var ShareLinkIdValidator2 = canonicalBase64Url2(SHARE_LINK_ID_BYTES2);
|
|
34589
|
+
var ShareContentKeyValidator2 = canonicalBase64Url2(SHARE_CONTENT_KEY_BYTES2);
|
|
34590
|
+
var ShareIvValidator2 = canonicalBase64Url2(SHARE_IV_BYTES2);
|
|
34591
|
+
var ShareCiphertextValidator2 = external_exports2.string().refine(
|
|
34592
|
+
(value) => {
|
|
34593
|
+
if (value.length > Math.ceil(MAX_SHARE_CIPHERTEXT_BYTES2 * 4 / 3)) return false;
|
|
34594
|
+
const decoded = decodeBase64Url2(value);
|
|
34595
|
+
if (decoded === null) return false;
|
|
34596
|
+
if (encodeBase64Url2(decoded) !== value) return false;
|
|
34597
|
+
return decoded.length >= SHARE_TAG_BYTES2 && decoded.length <= MAX_SHARE_CIPHERTEXT_BYTES2;
|
|
34598
|
+
},
|
|
34599
|
+
{
|
|
34600
|
+
message: `must be canonical base64url decoding to ${SHARE_TAG_BYTES2}..${MAX_SHARE_CIPHERTEXT_BYTES2} bytes`
|
|
34601
|
+
}
|
|
34602
|
+
);
|
|
34603
|
+
var ShareEnvelopeValidator2 = external_exports2.object({
|
|
34604
|
+
v: external_exports2.literal(1),
|
|
34605
|
+
alg: external_exports2.literal("A256GCM"),
|
|
34606
|
+
iv: ShareIvValidator2,
|
|
34607
|
+
ct: ShareCiphertextValidator2
|
|
34608
|
+
}).strict();
|
|
34609
|
+
var safeVersion2 = external_exports2.number().int().min(1).max(2 ** 31 - 1);
|
|
34610
|
+
var safeCredentialIndex2 = external_exports2.number().int().min(0).max(MAX_VP_MEMBERS2 - 1);
|
|
34611
|
+
var ShareSelectionEntryValidator2 = external_exports2.object({ credentialIndex: safeCredentialIndex2 }).strict();
|
|
34612
|
+
var ShareEndorsementEntryValidator2 = external_exports2.object({ credentialIndex: safeCredentialIndex2, targetCredentialIndex: safeCredentialIndex2 }).strict();
|
|
34613
|
+
var ShareSharerValidator2 = external_exports2.object({
|
|
34614
|
+
profileId: external_exports2.string().min(1).max(128),
|
|
34615
|
+
displayName: external_exports2.string().min(1).max(120),
|
|
34616
|
+
avatar: external_exports2.string().max(2048).optional()
|
|
34617
|
+
}).strict();
|
|
34618
|
+
var presentationShape2 = VPValidator2.extend({
|
|
34619
|
+
verifiableCredential: VCValidator2.array().min(1).max(MAX_VP_MEMBERS2)
|
|
34620
|
+
});
|
|
34621
|
+
var hasBoundedPresentation2 = /* @__PURE__ */ __name22((value) => {
|
|
34622
|
+
let credentialCount = 0;
|
|
34623
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
34624
|
+
const visit = /* @__PURE__ */ __name22((node, depth) => {
|
|
34625
|
+
if (node === null || typeof node !== "object") return true;
|
|
34626
|
+
if (depth > 32 || ancestors.has(node)) return false;
|
|
34627
|
+
ancestors.add(node);
|
|
34628
|
+
try {
|
|
34629
|
+
for (const [key, child] of Object.entries(node)) {
|
|
34630
|
+
if (key === "verifiableCredential") {
|
|
34631
|
+
credentialCount += Array.isArray(child) ? child.length : 1;
|
|
34632
|
+
if (credentialCount > MAX_VP_MEMBERS2) return false;
|
|
34633
|
+
}
|
|
34634
|
+
if (!visit(child, depth + 1)) return false;
|
|
34635
|
+
}
|
|
34636
|
+
return true;
|
|
34637
|
+
} finally {
|
|
34638
|
+
ancestors.delete(node);
|
|
34639
|
+
}
|
|
34640
|
+
}, "visit");
|
|
34641
|
+
return visit(value, 0);
|
|
34642
|
+
}, "hasBoundedPresentation");
|
|
34643
|
+
var ShareManifestPresentationValidator2 = external_exports2.custom(
|
|
34644
|
+
(value) => hasBoundedPresentation2(value) && presentationShape2.safeParse(value).success,
|
|
34645
|
+
{ message: "invalid share presentation" }
|
|
34646
|
+
);
|
|
34647
|
+
var SharePayloadValidatorShape2 = external_exports2.object({
|
|
34648
|
+
protocol: external_exports2.literal(SHARE_LINK_PROTOCOL2),
|
|
34649
|
+
shareId: ShareLinkIdValidator2,
|
|
34650
|
+
contentVersion: safeVersion2,
|
|
34651
|
+
createdAt: external_exports2.iso.datetime(),
|
|
34652
|
+
sharer: ShareSharerValidator2,
|
|
34653
|
+
presentation: ShareManifestPresentationValidator2,
|
|
34654
|
+
selection: ShareSelectionEntryValidator2.array().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34655
|
+
endorsements: ShareEndorsementEntryValidator2.array().max(MAX_ENDORSEMENTS2).default([])
|
|
34656
|
+
}).strict();
|
|
34657
|
+
var classificationFailure2 = /* @__PURE__ */ __name22((code, message, path = []) => ({ ok: false, code, message, path }), "classificationFailure");
|
|
34658
|
+
var readSignedClaimId2 = /* @__PURE__ */ __name22((member) => {
|
|
34659
|
+
if (member === null || typeof member !== "object") return void 0;
|
|
34660
|
+
const record22 = member;
|
|
34661
|
+
const claim = record22.credentialSubject ?? record22.endorsement;
|
|
34662
|
+
if (claim === null || typeof claim !== "object") return void 0;
|
|
34663
|
+
const claimRecord = claim;
|
|
34664
|
+
const nested = claimRecord.endorsement;
|
|
34665
|
+
const nestedId = nested !== null && typeof nested === "object" ? nested.id : void 0;
|
|
34666
|
+
return claimRecord.id ?? nestedId;
|
|
34667
|
+
}, "readSignedClaimId");
|
|
34668
|
+
var classifyShareManifest2 = /* @__PURE__ */ __name22((payload) => {
|
|
34669
|
+
const members = payload.presentation?.verifiableCredential;
|
|
34670
|
+
if (!Array.isArray(members) || members.length === 0) {
|
|
34671
|
+
return classificationFailure2("NO_PRESENTATION_MEMBERS", "presentation has no credentials");
|
|
34672
|
+
}
|
|
34673
|
+
if (members.length > MAX_VP_MEMBERS2) {
|
|
34674
|
+
return classificationFailure2(
|
|
34675
|
+
"TOO_MANY_VP_MEMBERS",
|
|
34676
|
+
`presentation has ${members.length} members, over the ${MAX_VP_MEMBERS2} bound`
|
|
34677
|
+
);
|
|
34678
|
+
}
|
|
34679
|
+
const selection = payload.selection;
|
|
34680
|
+
const endorsements = payload.endorsements ?? [];
|
|
34681
|
+
if (!Array.isArray(selection) || selection.length < 1 || selection.length > MAX_SELECTED_CREDENTIALS2) {
|
|
34682
|
+
return classificationFailure2("BAD_SELECTION", "selection must contain 1..50 entries");
|
|
34683
|
+
}
|
|
34684
|
+
if (!Array.isArray(endorsements) || endorsements.length > MAX_ENDORSEMENTS2) {
|
|
34685
|
+
return classificationFailure2(
|
|
34686
|
+
"BAD_ENDORSEMENTS",
|
|
34687
|
+
"endorsements must contain at most 200 entries"
|
|
34688
|
+
);
|
|
34689
|
+
}
|
|
34690
|
+
const selectedIndices = [];
|
|
34691
|
+
const selected = /* @__PURE__ */ new Set();
|
|
34692
|
+
for (let index = 0; index < selection.length; index += 1) {
|
|
34693
|
+
const entry = selection[index];
|
|
34694
|
+
const credentialIndex = entry?.credentialIndex;
|
|
34695
|
+
if (!Number.isSafeInteger(credentialIndex) || credentialIndex < 0 || credentialIndex >= members.length) {
|
|
34696
|
+
return classificationFailure2(
|
|
34697
|
+
"SELECTION_INDEX_OUT_OF_BOUNDS",
|
|
34698
|
+
`selection[${index}].credentialIndex is out of bounds`,
|
|
34699
|
+
["selection", index, "credentialIndex"]
|
|
34700
|
+
);
|
|
34701
|
+
}
|
|
34702
|
+
if (selected.has(credentialIndex)) {
|
|
34703
|
+
return classificationFailure2(
|
|
34704
|
+
"SELECTION_INDEX_DUPLICATE",
|
|
34705
|
+
`selection[${index}].credentialIndex is duplicated`,
|
|
34706
|
+
["selection", index, "credentialIndex"]
|
|
34707
|
+
);
|
|
34708
|
+
}
|
|
34709
|
+
selected.add(credentialIndex);
|
|
34710
|
+
selectedIndices.push(credentialIndex);
|
|
34711
|
+
}
|
|
34712
|
+
const classified = new Set(selected);
|
|
34713
|
+
const endorsementIndices = [];
|
|
34714
|
+
for (let index = 0; index < endorsements.length; index += 1) {
|
|
34715
|
+
const entry = endorsements[index];
|
|
34716
|
+
const credentialIndex = entry?.credentialIndex;
|
|
34717
|
+
const targetIndex = entry?.targetCredentialIndex;
|
|
34718
|
+
if (!Number.isSafeInteger(credentialIndex) || credentialIndex < 0 || credentialIndex >= members.length) {
|
|
34719
|
+
return classificationFailure2(
|
|
34720
|
+
"ENDORSEMENT_INDEX_OUT_OF_BOUNDS",
|
|
34721
|
+
`endorsements[${index}].credentialIndex is out of bounds`,
|
|
34722
|
+
["endorsements", index, "credentialIndex"]
|
|
34723
|
+
);
|
|
34724
|
+
}
|
|
34725
|
+
if (classified.has(credentialIndex)) {
|
|
34726
|
+
return classificationFailure2(
|
|
34727
|
+
"VP_MEMBER_CLASSIFIED_TWICE",
|
|
34728
|
+
`endorsements[${index}].credentialIndex was already classified`,
|
|
34729
|
+
["endorsements", index, "credentialIndex"]
|
|
34730
|
+
);
|
|
34731
|
+
}
|
|
34732
|
+
if (!selected.has(targetIndex)) {
|
|
34733
|
+
return classificationFailure2(
|
|
34734
|
+
"ENDORSEMENT_TARGET_NOT_SELECTED",
|
|
34735
|
+
`endorsements[${index}].targetCredentialIndex must reference a selected credential`,
|
|
34736
|
+
["endorsements", index, "targetCredentialIndex"]
|
|
34737
|
+
);
|
|
34738
|
+
}
|
|
34739
|
+
const referenced = readSignedClaimId2(members[credentialIndex]);
|
|
34740
|
+
const target = members[targetIndex];
|
|
34741
|
+
const targetId = target !== null && typeof target === "object" ? target.id : void 0;
|
|
34742
|
+
if (typeof referenced !== "string" || typeof targetId !== "string" || referenced !== targetId) {
|
|
34743
|
+
return classificationFailure2(
|
|
34744
|
+
"ENDORSEMENT_TARGET_UNBOUND",
|
|
34745
|
+
`endorsements[${index}] claim does not reference the target credential id`,
|
|
34746
|
+
["endorsements", index]
|
|
34747
|
+
);
|
|
34748
|
+
}
|
|
34749
|
+
classified.add(credentialIndex);
|
|
34750
|
+
endorsementIndices.push(credentialIndex);
|
|
34751
|
+
}
|
|
34752
|
+
if (classified.size !== members.length) {
|
|
34753
|
+
return classificationFailure2(
|
|
34754
|
+
"UNCLASSIFIED_VP_MEMBER",
|
|
34755
|
+
"every presentation member must be classified exactly once",
|
|
34756
|
+
["presentation", "verifiableCredential"]
|
|
34757
|
+
);
|
|
34758
|
+
}
|
|
34759
|
+
return {
|
|
34760
|
+
ok: true,
|
|
34761
|
+
classification: { selectedIndices, endorsementIndices, memberCount: members.length }
|
|
34762
|
+
};
|
|
34763
|
+
}, "classifyShareManifest");
|
|
34764
|
+
var SharePayloadValidator2 = SharePayloadValidatorShape2.superRefine((payload, ctx) => {
|
|
34765
|
+
const result = classifyShareManifest2(payload);
|
|
34766
|
+
if (!result.ok) {
|
|
34767
|
+
ctx.addIssue({
|
|
34768
|
+
code: "custom",
|
|
34769
|
+
message: result.message,
|
|
34770
|
+
path: result.path,
|
|
34771
|
+
params: { shareLinkCode: result.code }
|
|
34772
|
+
});
|
|
34773
|
+
}
|
|
34774
|
+
});
|
|
34775
|
+
var ShareRecoverySelectionValidator2 = external_exports2.object({
|
|
34776
|
+
ref: external_exports2.string().min(1).max(MAX_SHARE_SOURCE_URI_CHARS2),
|
|
34777
|
+
order: external_exports2.number().int().min(0).max(MAX_SELECTED_CREDENTIALS2 - 1)
|
|
34778
|
+
}).strict();
|
|
34779
|
+
var ShareRecoveryEndorsementValidator2 = external_exports2.object({ targetRef: external_exports2.string().min(1).max(MAX_SHARE_SOURCE_URI_CHARS2) }).strict();
|
|
34780
|
+
var ShareRecoveryPlaintextValidator2 = external_exports2.object({
|
|
34781
|
+
protocol: external_exports2.literal(SHARE_RECOVERY_PROTOCOL2),
|
|
34782
|
+
shareId: ShareLinkIdValidator2,
|
|
34783
|
+
ownerProfileId: external_exports2.string().min(1).max(128),
|
|
34784
|
+
createdAt: external_exports2.iso.datetime(),
|
|
34785
|
+
latest: external_exports2.object({ contentVersion: safeVersion2, key: ShareContentKeyValidator2 }).strict(),
|
|
34786
|
+
selection: ShareRecoverySelectionValidator2.array().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34787
|
+
endorsements: ShareRecoveryEndorsementValidator2.array().max(MAX_ENDORSEMENTS2).default([])
|
|
34788
|
+
}).strict().superRefine((recovery, ctx) => {
|
|
34789
|
+
const orders = /* @__PURE__ */ new Set();
|
|
34790
|
+
recovery.selection.forEach((entry, index) => {
|
|
34791
|
+
if (entry.order >= recovery.selection.length) {
|
|
34792
|
+
ctx.addIssue({
|
|
34793
|
+
code: "custom",
|
|
34794
|
+
message: "order must be within the selection bounds",
|
|
34795
|
+
path: ["selection", index, "order"]
|
|
34796
|
+
});
|
|
34797
|
+
}
|
|
34798
|
+
if (orders.has(entry.order)) {
|
|
34799
|
+
ctx.addIssue({
|
|
34800
|
+
code: "custom",
|
|
34801
|
+
message: "order must be unique within the selection",
|
|
34802
|
+
path: ["selection", index, "order"]
|
|
34803
|
+
});
|
|
34804
|
+
}
|
|
34805
|
+
orders.add(entry.order);
|
|
34806
|
+
});
|
|
34807
|
+
});
|
|
34808
|
+
var ShareOwnerRecoveryValidator2 = JWEValidator2.refine(
|
|
34809
|
+
(value) => utf8ByteLength2(JSON.stringify(value)) <= MAX_SHARE_RECOVERY_JWE_BYTES2,
|
|
34810
|
+
{ message: `serialized recovery JWE must be at most ${MAX_SHARE_RECOVERY_JWE_BYTES2} bytes` }
|
|
34811
|
+
);
|
|
34812
|
+
var ShareLinkStatusValidator2 = external_exports2.enum(["pending", "active", "stopped"]);
|
|
34813
|
+
var ShareContentStateValidator2 = external_exports2.enum(["staging", "finalized", "content_missing"]);
|
|
34814
|
+
var ShareLinkValidator2 = external_exports2.object({
|
|
34815
|
+
id: ShareLinkIdValidator2,
|
|
34816
|
+
title: external_exports2.string().min(1).max(120),
|
|
34817
|
+
note: external_exports2.string().max(500).optional(),
|
|
34818
|
+
selectedCount: external_exports2.number().int().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34819
|
+
version: safeVersion2,
|
|
34820
|
+
contentVersion: safeVersion2,
|
|
34821
|
+
status: ShareLinkStatusValidator2,
|
|
34822
|
+
contentState: ShareContentStateValidator2,
|
|
34823
|
+
createdAt: external_exports2.iso.datetime(),
|
|
34824
|
+
updatedAt: external_exports2.iso.datetime(),
|
|
34825
|
+
expiresAt: external_exports2.iso.datetime().nullable(),
|
|
34826
|
+
stoppedAt: external_exports2.iso.datetime().nullable(),
|
|
34827
|
+
lastViewedAt: external_exports2.iso.datetime().nullable(),
|
|
34828
|
+
viewCount: external_exports2.number().int().min(0).optional(),
|
|
34829
|
+
passcodeProtected: external_exports2.boolean(),
|
|
34830
|
+
notifyOnView: external_exports2.boolean(),
|
|
34831
|
+
minorPolicy: external_exports2.object({
|
|
34832
|
+
isMinor: external_exports2.boolean().nullable(),
|
|
34833
|
+
policyResolved: external_exports2.boolean(),
|
|
34834
|
+
defaultExpiryDays: external_exports2.union([external_exports2.literal(30), external_exports2.literal(365)]),
|
|
34835
|
+
viewCountingEnabled: external_exports2.boolean()
|
|
34836
|
+
}),
|
|
34837
|
+
/**
|
|
34838
|
+
* Guarded application/API URL for the content. Optional because owner APIs in
|
|
34839
|
+
* D1 have no public resolve/content endpoint yet; it must never be a
|
|
34840
|
+
* LearnCloud object URL or carry a fabricated decryption key.
|
|
34841
|
+
*/
|
|
34842
|
+
contentUrl: external_exports2.string().optional()
|
|
34843
|
+
});
|
|
34844
|
+
var clientRequestId2 = external_exports2.string().uuid();
|
|
34845
|
+
var CreateShareLinkInputValidator2 = external_exports2.object({
|
|
34846
|
+
id: ShareLinkIdValidator2,
|
|
34847
|
+
clientRequestId: clientRequestId2,
|
|
34848
|
+
title: external_exports2.string().min(1).max(120),
|
|
34849
|
+
note: external_exports2.string().max(500).optional(),
|
|
34850
|
+
expiresAt: external_exports2.iso.datetime().nullable().optional(),
|
|
34851
|
+
passcode: external_exports2.string().min(8).max(64).optional(),
|
|
34852
|
+
notifyOnView: external_exports2.boolean().default(false),
|
|
34853
|
+
selectedCount: external_exports2.number().int().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34854
|
+
contentVersion: external_exports2.literal(1),
|
|
34855
|
+
envelope: ShareEnvelopeValidator2,
|
|
34856
|
+
ownerEncryptedRecovery: ShareOwnerRecoveryValidator2
|
|
34857
|
+
}).strict();
|
|
34858
|
+
var UpdateShareLinkInputValidator2 = external_exports2.object({
|
|
34859
|
+
id: ShareLinkIdValidator2,
|
|
34860
|
+
expectedVersion: safeVersion2,
|
|
34861
|
+
clientRequestId: clientRequestId2,
|
|
34862
|
+
title: external_exports2.string().min(1).max(120).optional(),
|
|
34863
|
+
note: external_exports2.string().max(500).nullable().optional(),
|
|
34864
|
+
expiresAt: external_exports2.iso.datetime().nullable().optional(),
|
|
34865
|
+
/** Omitted preserves the current passcode, null removes it, and a string replaces it. */
|
|
34866
|
+
passcode: external_exports2.string().min(8).max(64).nullable().optional(),
|
|
34867
|
+
notifyOnView: external_exports2.boolean().optional(),
|
|
34868
|
+
contentVersion: safeVersion2.optional(),
|
|
34869
|
+
selectedCount: external_exports2.number().int().min(1).max(MAX_SELECTED_CREDENTIALS2).optional(),
|
|
34870
|
+
envelope: ShareEnvelopeValidator2.optional(),
|
|
34871
|
+
ownerEncryptedRecovery: ShareOwnerRecoveryValidator2.optional()
|
|
34872
|
+
}).strict().superRefine((value, ctx) => {
|
|
34873
|
+
const provided = [
|
|
34874
|
+
value.contentVersion,
|
|
34875
|
+
value.selectedCount,
|
|
34876
|
+
value.envelope,
|
|
34877
|
+
value.ownerEncryptedRecovery
|
|
34878
|
+
].filter((field) => field !== void 0).length;
|
|
34879
|
+
if (provided !== 0 && provided !== 4) {
|
|
34880
|
+
ctx.addIssue({
|
|
34881
|
+
code: "custom",
|
|
34882
|
+
message: "content replacement requires contentVersion, selectedCount, envelope and ownerEncryptedRecovery together"
|
|
34883
|
+
});
|
|
34884
|
+
}
|
|
34885
|
+
});
|
|
34886
|
+
var ShareLinkIdInputValidator2 = external_exports2.object({ id: ShareLinkIdValidator2 }).strict();
|
|
34887
|
+
var ShareLinkOperationKeyInputValidator2 = external_exports2.object({ id: ShareLinkIdValidator2, operationId: external_exports2.string().uuid() }).strict();
|
|
34888
|
+
var ShareLinkOwnerCommitOutputValidator2 = external_exports2.discriminatedUnion("status", [
|
|
34889
|
+
external_exports2.object({ status: external_exports2.literal("completed"), share: ShareLinkValidator2 }).strict(),
|
|
34890
|
+
external_exports2.object({
|
|
34891
|
+
status: external_exports2.literal("pending"),
|
|
34892
|
+
id: ShareLinkIdValidator2,
|
|
34893
|
+
operationId: external_exports2.string().uuid()
|
|
34894
|
+
}).strict()
|
|
34895
|
+
]);
|
|
34896
|
+
var ShareLinkOwnerStatusOutputValidator2 = external_exports2.discriminatedUnion("status", [
|
|
34897
|
+
external_exports2.object({ status: external_exports2.literal("found"), share: ShareLinkValidator2 }).strict(),
|
|
34898
|
+
external_exports2.object({
|
|
34899
|
+
status: external_exports2.literal("pending"),
|
|
34900
|
+
id: ShareLinkIdValidator2,
|
|
34901
|
+
operationId: external_exports2.string().uuid()
|
|
34902
|
+
}).strict(),
|
|
34903
|
+
external_exports2.object({ status: external_exports2.literal("not_found"), id: ShareLinkIdValidator2 }).strict()
|
|
34904
|
+
]);
|
|
34905
|
+
var ShareLinkOwnerRecoveryOutputValidator2 = external_exports2.object({ recovery: ShareOwnerRecoveryValidator2 }).strict();
|
|
34906
|
+
var ShareLinkOwnerContentOutputValidator2 = external_exports2.object({
|
|
34907
|
+
id: ShareLinkIdValidator2,
|
|
34908
|
+
contentVersion: safeVersion2,
|
|
34909
|
+
envelope: ShareEnvelopeValidator2
|
|
34910
|
+
}).strict();
|
|
34911
|
+
var ResolveShareLinkInputValidator2 = external_exports2.object({
|
|
34912
|
+
id: ShareLinkIdValidator2,
|
|
34913
|
+
/** Sent only in a POST body; it must never be placed in a share URL. */
|
|
34914
|
+
passcode: external_exports2.string().min(4).max(64).optional()
|
|
34915
|
+
}).strict();
|
|
34916
|
+
var ShareLinkPublicStateValidator2 = external_exports2.discriminatedUnion("state", [
|
|
34917
|
+
external_exports2.object({
|
|
34918
|
+
state: external_exports2.literal("passcode_required"),
|
|
34919
|
+
id: ShareLinkIdValidator2
|
|
34920
|
+
}).strict(),
|
|
34921
|
+
external_exports2.object({ state: external_exports2.literal("try_later"), id: ShareLinkIdValidator2 }).strict(),
|
|
34922
|
+
external_exports2.object({
|
|
34923
|
+
state: external_exports2.literal("active"),
|
|
34924
|
+
id: ShareLinkIdValidator2,
|
|
34925
|
+
title: external_exports2.string().max(120),
|
|
34926
|
+
note: external_exports2.string().max(500).optional(),
|
|
34927
|
+
selectedCount: external_exports2.number().int().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34928
|
+
contentVersion: safeVersion2,
|
|
34929
|
+
contentUrl: external_exports2.string(),
|
|
34930
|
+
sharer: external_exports2.object({
|
|
34931
|
+
displayName: external_exports2.string().max(120),
|
|
34932
|
+
avatar: external_exports2.string().max(2048).optional()
|
|
34933
|
+
}),
|
|
34934
|
+
createdAt: external_exports2.iso.datetime(),
|
|
34935
|
+
updatedAt: external_exports2.iso.datetime(),
|
|
34936
|
+
expiresAt: external_exports2.iso.datetime().nullable()
|
|
34937
|
+
}).strict(),
|
|
34938
|
+
external_exports2.object({
|
|
34939
|
+
state: external_exports2.literal("expired"),
|
|
34940
|
+
id: ShareLinkIdValidator2,
|
|
34941
|
+
expiresAt: external_exports2.iso.datetime()
|
|
34942
|
+
}).strict(),
|
|
34943
|
+
external_exports2.object({
|
|
34944
|
+
state: external_exports2.literal("stopped"),
|
|
34945
|
+
id: ShareLinkIdValidator2,
|
|
34946
|
+
stoppedAt: external_exports2.iso.datetime()
|
|
34947
|
+
}).strict(),
|
|
34948
|
+
external_exports2.object({ state: external_exports2.literal("not_found"), id: ShareLinkIdValidator2 }).strict()
|
|
34949
|
+
]);
|
|
34950
|
+
var ListShareLinksInputValidator2 = external_exports2.object({
|
|
34951
|
+
limit: external_exports2.number().int().min(1).max(50).default(25),
|
|
34952
|
+
cursor: external_exports2.string().max(512).optional()
|
|
34953
|
+
}).strict();
|
|
34954
|
+
var PaginatedShareLinksValidator2 = PaginationResponseValidator2.extend({
|
|
34955
|
+
records: ShareLinkValidator2.array()
|
|
34956
|
+
});
|
|
34957
|
+
var AcknowledgeViewInputValidator2 = external_exports2.object({
|
|
34958
|
+
receipt: external_exports2.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/)
|
|
34959
|
+
}).strict();
|
|
34960
|
+
var AcknowledgeViewOutputValidator2 = external_exports2.object({ ok: external_exports2.literal(true) }).strict();
|
|
34961
|
+
var SHARE_VIEW_RECEIPT_TTL_SECONDS2 = 10 * 60;
|
|
34962
|
+
var ShareLinkPublicContentViewValidator2 = external_exports2.object({
|
|
34963
|
+
id: ShareLinkIdValidator2,
|
|
34964
|
+
contentVersion: safeVersion2,
|
|
34965
|
+
envelope: ShareEnvelopeValidator2,
|
|
34966
|
+
contentUrl: external_exports2.string(),
|
|
34967
|
+
receipt: external_exports2.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/)
|
|
34968
|
+
}).strict();
|
|
34448
34969
|
}
|
|
34449
34970
|
});
|
|
34450
34971
|
var require_dist = __commonJS({
|
|
@@ -34778,6 +35299,15 @@ var optionalEnvironmentPort = external_exports.preprocess(
|
|
|
34778
35299
|
(value) => value === "" || value === void 0 ? void 0 : value,
|
|
34779
35300
|
environmentPort.optional()
|
|
34780
35301
|
);
|
|
35302
|
+
var DEFAULT_MAX_CANONICAL_BYTES = 2 * 1024 * 1024;
|
|
35303
|
+
var _a5;
|
|
35304
|
+
var ShareContentCanonicalizationError = (_a5 = class extends Error {
|
|
35305
|
+
constructor(message) {
|
|
35306
|
+
super(message);
|
|
35307
|
+
this.code = "UNSUPPORTED_REQUEST_VALUE";
|
|
35308
|
+
this.name = "ShareContentCanonicalizationError";
|
|
35309
|
+
}
|
|
35310
|
+
}, __name(_a5, "ShareContentCanonicalizationError"), __name2(_a5, "ShareContentCanonicalizationError"), _a5);
|
|
34781
35311
|
var unwrapBoostCredential = /* @__PURE__ */ __name2((vc) => {
|
|
34782
35312
|
if (vc?.type?.includes("CertifiedBoostCredential") && vc?.boostCredential) {
|
|
34783
35313
|
return vc.boostCredential;
|
|
@@ -37143,14 +37673,20 @@ var CredentialActivityStatsValidator = external_exports.object({
|
|
|
37143
37673
|
failed: external_exports.number(),
|
|
37144
37674
|
claimRate: external_exports.number()
|
|
37145
37675
|
});
|
|
37146
|
-
var
|
|
37147
|
-
var AuthSessionError = (
|
|
37676
|
+
var _a6;
|
|
37677
|
+
var AuthSessionError = (_a6 = class extends Error {
|
|
37148
37678
|
constructor(message, reason) {
|
|
37149
37679
|
super(message);
|
|
37150
37680
|
this.reason = reason;
|
|
37151
37681
|
this.name = "AuthSessionError";
|
|
37152
37682
|
}
|
|
37153
|
-
}, __name(
|
|
37683
|
+
}, __name(_a6, "AuthSessionError"), __name3(_a6, "AuthSessionError"), _a6);
|
|
37684
|
+
var EscrowPinStatusValidator = external_exports.object({
|
|
37685
|
+
state: external_exports.enum(["none", "enabled", "locked", "stale"]),
|
|
37686
|
+
enabled: external_exports.boolean(),
|
|
37687
|
+
attemptsRemaining: external_exports.number().int().nonnegative(),
|
|
37688
|
+
salt: external_exports.string().optional()
|
|
37689
|
+
});
|
|
37154
37690
|
var BITSTRING_STATUS_PURPOSES = ["revocation", "suspension"];
|
|
37155
37691
|
var BitstringStatusPurposeValidator = external_exports.enum(BITSTRING_STATUS_PURPOSES);
|
|
37156
37692
|
var BitstringStatusListEntryValidator = external_exports.object({
|
|
@@ -37259,6 +37795,456 @@ var inAppMessagesFlagValidator = external_exports.object({
|
|
|
37259
37795
|
version: external_exports.number().default(1),
|
|
37260
37796
|
messages: external_exports.array(inAppMessageValidator).default([])
|
|
37261
37797
|
}).passthrough();
|
|
37798
|
+
var SHARE_LINK_ID_BYTES = 16;
|
|
37799
|
+
var SHARE_CONTENT_KEY_BYTES = 32;
|
|
37800
|
+
var SHARE_IV_BYTES = 12;
|
|
37801
|
+
var SHARE_TAG_BYTES = 16;
|
|
37802
|
+
var MAX_SHARE_CIPHERTEXT_BYTES = 512 * 1024;
|
|
37803
|
+
var MAX_SHARE_RECOVERY_JWE_BYTES = 64 * 1024;
|
|
37804
|
+
var MAX_SELECTED_CREDENTIALS = 50;
|
|
37805
|
+
var MAX_ENDORSEMENTS = 200;
|
|
37806
|
+
var MAX_VP_MEMBERS = MAX_SELECTED_CREDENTIALS + MAX_ENDORSEMENTS;
|
|
37807
|
+
var MAX_SHARE_SOURCE_URI_CHARS = 2048;
|
|
37808
|
+
var MAX_SHARE_LINK_REQUEST_BYTES = 1024 * 1024;
|
|
37809
|
+
var SHARE_LINK_PROTOCOL = "lc-share/v1";
|
|
37810
|
+
var SHARE_RECOVERY_PROTOCOL = "lc-share-recovery/v1";
|
|
37811
|
+
var BASE64URL_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
|
|
37812
|
+
var BASE64URL_LOOKUP = (() => {
|
|
37813
|
+
const table = new Int16Array(128).fill(-1);
|
|
37814
|
+
for (let index = 0; index < BASE64URL_ALPHABET.length; index += 1) {
|
|
37815
|
+
table[BASE64URL_ALPHABET.charCodeAt(index)] = index;
|
|
37816
|
+
}
|
|
37817
|
+
return table;
|
|
37818
|
+
})();
|
|
37819
|
+
var encodeBase64Url = /* @__PURE__ */ __name3((bytes) => {
|
|
37820
|
+
let output = "";
|
|
37821
|
+
for (let index = 0; index < bytes.length; index += 3) {
|
|
37822
|
+
const first = bytes[index];
|
|
37823
|
+
const second = bytes[index + 1];
|
|
37824
|
+
const third = bytes[index + 2];
|
|
37825
|
+
output += BASE64URL_ALPHABET[first >> 2];
|
|
37826
|
+
output += BASE64URL_ALPHABET[(first & 3) << 4 | (second ?? 0) >> 4];
|
|
37827
|
+
if (second === void 0) break;
|
|
37828
|
+
output += BASE64URL_ALPHABET[(second & 15) << 2 | (third ?? 0) >> 6];
|
|
37829
|
+
if (third === void 0) break;
|
|
37830
|
+
output += BASE64URL_ALPHABET[third & 63];
|
|
37831
|
+
}
|
|
37832
|
+
return output;
|
|
37833
|
+
}, "encodeBase64Url");
|
|
37834
|
+
var decodeBase64Url = /* @__PURE__ */ __name3((value) => {
|
|
37835
|
+
if (typeof value !== "string") return null;
|
|
37836
|
+
const output = new Uint8Array(Math.floor(value.length * 6 / 8));
|
|
37837
|
+
let bits = 0;
|
|
37838
|
+
let bitCount = 0;
|
|
37839
|
+
let outputIndex = 0;
|
|
37840
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
37841
|
+
const code = value.charCodeAt(index);
|
|
37842
|
+
const digit = code < 128 ? BASE64URL_LOOKUP[code] : -1;
|
|
37843
|
+
if (digit < 0) return null;
|
|
37844
|
+
bits = bits << 6 | digit;
|
|
37845
|
+
bitCount += 6;
|
|
37846
|
+
if (bitCount >= 8) {
|
|
37847
|
+
bitCount -= 8;
|
|
37848
|
+
output[outputIndex] = bits >> bitCount & 255;
|
|
37849
|
+
outputIndex += 1;
|
|
37850
|
+
}
|
|
37851
|
+
}
|
|
37852
|
+
return output;
|
|
37853
|
+
}, "decodeBase64Url");
|
|
37854
|
+
var isCanonicalBase64Url = /* @__PURE__ */ __name3((value, expectedBytes) => {
|
|
37855
|
+
if (typeof value !== "string") return false;
|
|
37856
|
+
if (expectedBytes !== void 0 && value.length !== Math.ceil(expectedBytes * 4 / 3))
|
|
37857
|
+
return false;
|
|
37858
|
+
const decoded = decodeBase64Url(value);
|
|
37859
|
+
if (decoded === null) return false;
|
|
37860
|
+
if (expectedBytes !== void 0 && decoded.length !== expectedBytes) return false;
|
|
37861
|
+
return encodeBase64Url(decoded) === value;
|
|
37862
|
+
}, "isCanonicalBase64Url");
|
|
37863
|
+
var utf8ByteLength = /* @__PURE__ */ __name3((value) => new TextEncoder().encode(value).length, "utf8ByteLength");
|
|
37864
|
+
var canonicalBase64Url = /* @__PURE__ */ __name3((bytes) => external_exports.string().refine((value) => isCanonicalBase64Url(value, bytes), {
|
|
37865
|
+
message: `must be canonical base64url for exactly ${bytes} bytes`
|
|
37866
|
+
}), "canonicalBase64Url");
|
|
37867
|
+
var ShareLinkIdValidator = canonicalBase64Url(SHARE_LINK_ID_BYTES);
|
|
37868
|
+
var ShareContentKeyValidator = canonicalBase64Url(SHARE_CONTENT_KEY_BYTES);
|
|
37869
|
+
var ShareIvValidator = canonicalBase64Url(SHARE_IV_BYTES);
|
|
37870
|
+
var ShareCiphertextValidator = external_exports.string().refine(
|
|
37871
|
+
(value) => {
|
|
37872
|
+
if (value.length > Math.ceil(MAX_SHARE_CIPHERTEXT_BYTES * 4 / 3)) return false;
|
|
37873
|
+
const decoded = decodeBase64Url(value);
|
|
37874
|
+
if (decoded === null) return false;
|
|
37875
|
+
if (encodeBase64Url(decoded) !== value) return false;
|
|
37876
|
+
return decoded.length >= SHARE_TAG_BYTES && decoded.length <= MAX_SHARE_CIPHERTEXT_BYTES;
|
|
37877
|
+
},
|
|
37878
|
+
{
|
|
37879
|
+
message: `must be canonical base64url decoding to ${SHARE_TAG_BYTES}..${MAX_SHARE_CIPHERTEXT_BYTES} bytes`
|
|
37880
|
+
}
|
|
37881
|
+
);
|
|
37882
|
+
var ShareEnvelopeValidator = external_exports.object({
|
|
37883
|
+
v: external_exports.literal(1),
|
|
37884
|
+
alg: external_exports.literal("A256GCM"),
|
|
37885
|
+
iv: ShareIvValidator,
|
|
37886
|
+
ct: ShareCiphertextValidator
|
|
37887
|
+
}).strict();
|
|
37888
|
+
var safeVersion = external_exports.number().int().min(1).max(2 ** 31 - 1);
|
|
37889
|
+
var safeCredentialIndex = external_exports.number().int().min(0).max(MAX_VP_MEMBERS - 1);
|
|
37890
|
+
var ShareSelectionEntryValidator = external_exports.object({ credentialIndex: safeCredentialIndex }).strict();
|
|
37891
|
+
var ShareEndorsementEntryValidator = external_exports.object({ credentialIndex: safeCredentialIndex, targetCredentialIndex: safeCredentialIndex }).strict();
|
|
37892
|
+
var ShareSharerValidator = external_exports.object({
|
|
37893
|
+
profileId: external_exports.string().min(1).max(128),
|
|
37894
|
+
displayName: external_exports.string().min(1).max(120),
|
|
37895
|
+
avatar: external_exports.string().max(2048).optional()
|
|
37896
|
+
}).strict();
|
|
37897
|
+
var presentationShape = VPValidator.extend({
|
|
37898
|
+
verifiableCredential: VCValidator.array().min(1).max(MAX_VP_MEMBERS)
|
|
37899
|
+
});
|
|
37900
|
+
var hasBoundedPresentation = /* @__PURE__ */ __name3((value) => {
|
|
37901
|
+
let credentialCount = 0;
|
|
37902
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
37903
|
+
const visit = /* @__PURE__ */ __name3((node, depth) => {
|
|
37904
|
+
if (node === null || typeof node !== "object") return true;
|
|
37905
|
+
if (depth > 32 || ancestors.has(node)) return false;
|
|
37906
|
+
ancestors.add(node);
|
|
37907
|
+
try {
|
|
37908
|
+
for (const [key, child] of Object.entries(node)) {
|
|
37909
|
+
if (key === "verifiableCredential") {
|
|
37910
|
+
credentialCount += Array.isArray(child) ? child.length : 1;
|
|
37911
|
+
if (credentialCount > MAX_VP_MEMBERS) return false;
|
|
37912
|
+
}
|
|
37913
|
+
if (!visit(child, depth + 1)) return false;
|
|
37914
|
+
}
|
|
37915
|
+
return true;
|
|
37916
|
+
} finally {
|
|
37917
|
+
ancestors.delete(node);
|
|
37918
|
+
}
|
|
37919
|
+
}, "visit");
|
|
37920
|
+
return visit(value, 0);
|
|
37921
|
+
}, "hasBoundedPresentation");
|
|
37922
|
+
var ShareManifestPresentationValidator = external_exports.custom(
|
|
37923
|
+
(value) => hasBoundedPresentation(value) && presentationShape.safeParse(value).success,
|
|
37924
|
+
{ message: "invalid share presentation" }
|
|
37925
|
+
);
|
|
37926
|
+
var SharePayloadValidatorShape = external_exports.object({
|
|
37927
|
+
protocol: external_exports.literal(SHARE_LINK_PROTOCOL),
|
|
37928
|
+
shareId: ShareLinkIdValidator,
|
|
37929
|
+
contentVersion: safeVersion,
|
|
37930
|
+
createdAt: external_exports.iso.datetime(),
|
|
37931
|
+
sharer: ShareSharerValidator,
|
|
37932
|
+
presentation: ShareManifestPresentationValidator,
|
|
37933
|
+
selection: ShareSelectionEntryValidator.array().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
37934
|
+
endorsements: ShareEndorsementEntryValidator.array().max(MAX_ENDORSEMENTS).default([])
|
|
37935
|
+
}).strict();
|
|
37936
|
+
var classificationFailure = /* @__PURE__ */ __name3((code, message, path = []) => ({ ok: false, code, message, path }), "classificationFailure");
|
|
37937
|
+
var readSignedClaimId = /* @__PURE__ */ __name3((member) => {
|
|
37938
|
+
if (member === null || typeof member !== "object") return void 0;
|
|
37939
|
+
const record2 = member;
|
|
37940
|
+
const claim = record2.credentialSubject ?? record2.endorsement;
|
|
37941
|
+
if (claim === null || typeof claim !== "object") return void 0;
|
|
37942
|
+
const claimRecord = claim;
|
|
37943
|
+
const nested = claimRecord.endorsement;
|
|
37944
|
+
const nestedId = nested !== null && typeof nested === "object" ? nested.id : void 0;
|
|
37945
|
+
return claimRecord.id ?? nestedId;
|
|
37946
|
+
}, "readSignedClaimId");
|
|
37947
|
+
var classifyShareManifest = /* @__PURE__ */ __name3((payload) => {
|
|
37948
|
+
const members = payload.presentation?.verifiableCredential;
|
|
37949
|
+
if (!Array.isArray(members) || members.length === 0) {
|
|
37950
|
+
return classificationFailure("NO_PRESENTATION_MEMBERS", "presentation has no credentials");
|
|
37951
|
+
}
|
|
37952
|
+
if (members.length > MAX_VP_MEMBERS) {
|
|
37953
|
+
return classificationFailure(
|
|
37954
|
+
"TOO_MANY_VP_MEMBERS",
|
|
37955
|
+
`presentation has ${members.length} members, over the ${MAX_VP_MEMBERS} bound`
|
|
37956
|
+
);
|
|
37957
|
+
}
|
|
37958
|
+
const selection = payload.selection;
|
|
37959
|
+
const endorsements = payload.endorsements ?? [];
|
|
37960
|
+
if (!Array.isArray(selection) || selection.length < 1 || selection.length > MAX_SELECTED_CREDENTIALS) {
|
|
37961
|
+
return classificationFailure("BAD_SELECTION", "selection must contain 1..50 entries");
|
|
37962
|
+
}
|
|
37963
|
+
if (!Array.isArray(endorsements) || endorsements.length > MAX_ENDORSEMENTS) {
|
|
37964
|
+
return classificationFailure(
|
|
37965
|
+
"BAD_ENDORSEMENTS",
|
|
37966
|
+
"endorsements must contain at most 200 entries"
|
|
37967
|
+
);
|
|
37968
|
+
}
|
|
37969
|
+
const selectedIndices = [];
|
|
37970
|
+
const selected = /* @__PURE__ */ new Set();
|
|
37971
|
+
for (let index = 0; index < selection.length; index += 1) {
|
|
37972
|
+
const entry = selection[index];
|
|
37973
|
+
const credentialIndex = entry?.credentialIndex;
|
|
37974
|
+
if (!Number.isSafeInteger(credentialIndex) || credentialIndex < 0 || credentialIndex >= members.length) {
|
|
37975
|
+
return classificationFailure(
|
|
37976
|
+
"SELECTION_INDEX_OUT_OF_BOUNDS",
|
|
37977
|
+
`selection[${index}].credentialIndex is out of bounds`,
|
|
37978
|
+
["selection", index, "credentialIndex"]
|
|
37979
|
+
);
|
|
37980
|
+
}
|
|
37981
|
+
if (selected.has(credentialIndex)) {
|
|
37982
|
+
return classificationFailure(
|
|
37983
|
+
"SELECTION_INDEX_DUPLICATE",
|
|
37984
|
+
`selection[${index}].credentialIndex is duplicated`,
|
|
37985
|
+
["selection", index, "credentialIndex"]
|
|
37986
|
+
);
|
|
37987
|
+
}
|
|
37988
|
+
selected.add(credentialIndex);
|
|
37989
|
+
selectedIndices.push(credentialIndex);
|
|
37990
|
+
}
|
|
37991
|
+
const classified = new Set(selected);
|
|
37992
|
+
const endorsementIndices = [];
|
|
37993
|
+
for (let index = 0; index < endorsements.length; index += 1) {
|
|
37994
|
+
const entry = endorsements[index];
|
|
37995
|
+
const credentialIndex = entry?.credentialIndex;
|
|
37996
|
+
const targetIndex = entry?.targetCredentialIndex;
|
|
37997
|
+
if (!Number.isSafeInteger(credentialIndex) || credentialIndex < 0 || credentialIndex >= members.length) {
|
|
37998
|
+
return classificationFailure(
|
|
37999
|
+
"ENDORSEMENT_INDEX_OUT_OF_BOUNDS",
|
|
38000
|
+
`endorsements[${index}].credentialIndex is out of bounds`,
|
|
38001
|
+
["endorsements", index, "credentialIndex"]
|
|
38002
|
+
);
|
|
38003
|
+
}
|
|
38004
|
+
if (classified.has(credentialIndex)) {
|
|
38005
|
+
return classificationFailure(
|
|
38006
|
+
"VP_MEMBER_CLASSIFIED_TWICE",
|
|
38007
|
+
`endorsements[${index}].credentialIndex was already classified`,
|
|
38008
|
+
["endorsements", index, "credentialIndex"]
|
|
38009
|
+
);
|
|
38010
|
+
}
|
|
38011
|
+
if (!selected.has(targetIndex)) {
|
|
38012
|
+
return classificationFailure(
|
|
38013
|
+
"ENDORSEMENT_TARGET_NOT_SELECTED",
|
|
38014
|
+
`endorsements[${index}].targetCredentialIndex must reference a selected credential`,
|
|
38015
|
+
["endorsements", index, "targetCredentialIndex"]
|
|
38016
|
+
);
|
|
38017
|
+
}
|
|
38018
|
+
const referenced = readSignedClaimId(members[credentialIndex]);
|
|
38019
|
+
const target = members[targetIndex];
|
|
38020
|
+
const targetId = target !== null && typeof target === "object" ? target.id : void 0;
|
|
38021
|
+
if (typeof referenced !== "string" || typeof targetId !== "string" || referenced !== targetId) {
|
|
38022
|
+
return classificationFailure(
|
|
38023
|
+
"ENDORSEMENT_TARGET_UNBOUND",
|
|
38024
|
+
`endorsements[${index}] claim does not reference the target credential id`,
|
|
38025
|
+
["endorsements", index]
|
|
38026
|
+
);
|
|
38027
|
+
}
|
|
38028
|
+
classified.add(credentialIndex);
|
|
38029
|
+
endorsementIndices.push(credentialIndex);
|
|
38030
|
+
}
|
|
38031
|
+
if (classified.size !== members.length) {
|
|
38032
|
+
return classificationFailure(
|
|
38033
|
+
"UNCLASSIFIED_VP_MEMBER",
|
|
38034
|
+
"every presentation member must be classified exactly once",
|
|
38035
|
+
["presentation", "verifiableCredential"]
|
|
38036
|
+
);
|
|
38037
|
+
}
|
|
38038
|
+
return {
|
|
38039
|
+
ok: true,
|
|
38040
|
+
classification: { selectedIndices, endorsementIndices, memberCount: members.length }
|
|
38041
|
+
};
|
|
38042
|
+
}, "classifyShareManifest");
|
|
38043
|
+
var SharePayloadValidator = SharePayloadValidatorShape.superRefine((payload, ctx) => {
|
|
38044
|
+
const result = classifyShareManifest(payload);
|
|
38045
|
+
if (!result.ok) {
|
|
38046
|
+
ctx.addIssue({
|
|
38047
|
+
code: "custom",
|
|
38048
|
+
message: result.message,
|
|
38049
|
+
path: result.path,
|
|
38050
|
+
params: { shareLinkCode: result.code }
|
|
38051
|
+
});
|
|
38052
|
+
}
|
|
38053
|
+
});
|
|
38054
|
+
var ShareRecoverySelectionValidator = external_exports.object({
|
|
38055
|
+
ref: external_exports.string().min(1).max(MAX_SHARE_SOURCE_URI_CHARS),
|
|
38056
|
+
order: external_exports.number().int().min(0).max(MAX_SELECTED_CREDENTIALS - 1)
|
|
38057
|
+
}).strict();
|
|
38058
|
+
var ShareRecoveryEndorsementValidator = external_exports.object({ targetRef: external_exports.string().min(1).max(MAX_SHARE_SOURCE_URI_CHARS) }).strict();
|
|
38059
|
+
var ShareRecoveryPlaintextValidator = external_exports.object({
|
|
38060
|
+
protocol: external_exports.literal(SHARE_RECOVERY_PROTOCOL),
|
|
38061
|
+
shareId: ShareLinkIdValidator,
|
|
38062
|
+
ownerProfileId: external_exports.string().min(1).max(128),
|
|
38063
|
+
createdAt: external_exports.iso.datetime(),
|
|
38064
|
+
latest: external_exports.object({ contentVersion: safeVersion, key: ShareContentKeyValidator }).strict(),
|
|
38065
|
+
selection: ShareRecoverySelectionValidator.array().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
38066
|
+
endorsements: ShareRecoveryEndorsementValidator.array().max(MAX_ENDORSEMENTS).default([])
|
|
38067
|
+
}).strict().superRefine((recovery, ctx) => {
|
|
38068
|
+
const orders = /* @__PURE__ */ new Set();
|
|
38069
|
+
recovery.selection.forEach((entry, index) => {
|
|
38070
|
+
if (entry.order >= recovery.selection.length) {
|
|
38071
|
+
ctx.addIssue({
|
|
38072
|
+
code: "custom",
|
|
38073
|
+
message: "order must be within the selection bounds",
|
|
38074
|
+
path: ["selection", index, "order"]
|
|
38075
|
+
});
|
|
38076
|
+
}
|
|
38077
|
+
if (orders.has(entry.order)) {
|
|
38078
|
+
ctx.addIssue({
|
|
38079
|
+
code: "custom",
|
|
38080
|
+
message: "order must be unique within the selection",
|
|
38081
|
+
path: ["selection", index, "order"]
|
|
38082
|
+
});
|
|
38083
|
+
}
|
|
38084
|
+
orders.add(entry.order);
|
|
38085
|
+
});
|
|
38086
|
+
});
|
|
38087
|
+
var ShareOwnerRecoveryValidator = JWEValidator.refine(
|
|
38088
|
+
(value) => utf8ByteLength(JSON.stringify(value)) <= MAX_SHARE_RECOVERY_JWE_BYTES,
|
|
38089
|
+
{ message: `serialized recovery JWE must be at most ${MAX_SHARE_RECOVERY_JWE_BYTES} bytes` }
|
|
38090
|
+
);
|
|
38091
|
+
var ShareLinkStatusValidator = external_exports.enum(["pending", "active", "stopped"]);
|
|
38092
|
+
var ShareContentStateValidator = external_exports.enum(["staging", "finalized", "content_missing"]);
|
|
38093
|
+
var ShareLinkValidator = external_exports.object({
|
|
38094
|
+
id: ShareLinkIdValidator,
|
|
38095
|
+
title: external_exports.string().min(1).max(120),
|
|
38096
|
+
note: external_exports.string().max(500).optional(),
|
|
38097
|
+
selectedCount: external_exports.number().int().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
38098
|
+
version: safeVersion,
|
|
38099
|
+
contentVersion: safeVersion,
|
|
38100
|
+
status: ShareLinkStatusValidator,
|
|
38101
|
+
contentState: ShareContentStateValidator,
|
|
38102
|
+
createdAt: external_exports.iso.datetime(),
|
|
38103
|
+
updatedAt: external_exports.iso.datetime(),
|
|
38104
|
+
expiresAt: external_exports.iso.datetime().nullable(),
|
|
38105
|
+
stoppedAt: external_exports.iso.datetime().nullable(),
|
|
38106
|
+
lastViewedAt: external_exports.iso.datetime().nullable(),
|
|
38107
|
+
viewCount: external_exports.number().int().min(0).optional(),
|
|
38108
|
+
passcodeProtected: external_exports.boolean(),
|
|
38109
|
+
notifyOnView: external_exports.boolean(),
|
|
38110
|
+
minorPolicy: external_exports.object({
|
|
38111
|
+
isMinor: external_exports.boolean().nullable(),
|
|
38112
|
+
policyResolved: external_exports.boolean(),
|
|
38113
|
+
defaultExpiryDays: external_exports.union([external_exports.literal(30), external_exports.literal(365)]),
|
|
38114
|
+
viewCountingEnabled: external_exports.boolean()
|
|
38115
|
+
}),
|
|
38116
|
+
/**
|
|
38117
|
+
* Guarded application/API URL for the content. Optional because owner APIs in
|
|
38118
|
+
* D1 have no public resolve/content endpoint yet; it must never be a
|
|
38119
|
+
* LearnCloud object URL or carry a fabricated decryption key.
|
|
38120
|
+
*/
|
|
38121
|
+
contentUrl: external_exports.string().optional()
|
|
38122
|
+
});
|
|
38123
|
+
var clientRequestId = external_exports.string().uuid();
|
|
38124
|
+
var CreateShareLinkInputValidator = external_exports.object({
|
|
38125
|
+
id: ShareLinkIdValidator,
|
|
38126
|
+
clientRequestId,
|
|
38127
|
+
title: external_exports.string().min(1).max(120),
|
|
38128
|
+
note: external_exports.string().max(500).optional(),
|
|
38129
|
+
expiresAt: external_exports.iso.datetime().nullable().optional(),
|
|
38130
|
+
passcode: external_exports.string().min(8).max(64).optional(),
|
|
38131
|
+
notifyOnView: external_exports.boolean().default(false),
|
|
38132
|
+
selectedCount: external_exports.number().int().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
38133
|
+
contentVersion: external_exports.literal(1),
|
|
38134
|
+
envelope: ShareEnvelopeValidator,
|
|
38135
|
+
ownerEncryptedRecovery: ShareOwnerRecoveryValidator
|
|
38136
|
+
}).strict();
|
|
38137
|
+
var UpdateShareLinkInputValidator = external_exports.object({
|
|
38138
|
+
id: ShareLinkIdValidator,
|
|
38139
|
+
expectedVersion: safeVersion,
|
|
38140
|
+
clientRequestId,
|
|
38141
|
+
title: external_exports.string().min(1).max(120).optional(),
|
|
38142
|
+
note: external_exports.string().max(500).nullable().optional(),
|
|
38143
|
+
expiresAt: external_exports.iso.datetime().nullable().optional(),
|
|
38144
|
+
/** Omitted preserves the current passcode, null removes it, and a string replaces it. */
|
|
38145
|
+
passcode: external_exports.string().min(8).max(64).nullable().optional(),
|
|
38146
|
+
notifyOnView: external_exports.boolean().optional(),
|
|
38147
|
+
contentVersion: safeVersion.optional(),
|
|
38148
|
+
selectedCount: external_exports.number().int().min(1).max(MAX_SELECTED_CREDENTIALS).optional(),
|
|
38149
|
+
envelope: ShareEnvelopeValidator.optional(),
|
|
38150
|
+
ownerEncryptedRecovery: ShareOwnerRecoveryValidator.optional()
|
|
38151
|
+
}).strict().superRefine((value, ctx) => {
|
|
38152
|
+
const provided = [
|
|
38153
|
+
value.contentVersion,
|
|
38154
|
+
value.selectedCount,
|
|
38155
|
+
value.envelope,
|
|
38156
|
+
value.ownerEncryptedRecovery
|
|
38157
|
+
].filter((field) => field !== void 0).length;
|
|
38158
|
+
if (provided !== 0 && provided !== 4) {
|
|
38159
|
+
ctx.addIssue({
|
|
38160
|
+
code: "custom",
|
|
38161
|
+
message: "content replacement requires contentVersion, selectedCount, envelope and ownerEncryptedRecovery together"
|
|
38162
|
+
});
|
|
38163
|
+
}
|
|
38164
|
+
});
|
|
38165
|
+
var ShareLinkIdInputValidator = external_exports.object({ id: ShareLinkIdValidator }).strict();
|
|
38166
|
+
var ShareLinkOperationKeyInputValidator = external_exports.object({ id: ShareLinkIdValidator, operationId: external_exports.string().uuid() }).strict();
|
|
38167
|
+
var ShareLinkOwnerCommitOutputValidator = external_exports.discriminatedUnion("status", [
|
|
38168
|
+
external_exports.object({ status: external_exports.literal("completed"), share: ShareLinkValidator }).strict(),
|
|
38169
|
+
external_exports.object({
|
|
38170
|
+
status: external_exports.literal("pending"),
|
|
38171
|
+
id: ShareLinkIdValidator,
|
|
38172
|
+
operationId: external_exports.string().uuid()
|
|
38173
|
+
}).strict()
|
|
38174
|
+
]);
|
|
38175
|
+
var ShareLinkOwnerStatusOutputValidator = external_exports.discriminatedUnion("status", [
|
|
38176
|
+
external_exports.object({ status: external_exports.literal("found"), share: ShareLinkValidator }).strict(),
|
|
38177
|
+
external_exports.object({
|
|
38178
|
+
status: external_exports.literal("pending"),
|
|
38179
|
+
id: ShareLinkIdValidator,
|
|
38180
|
+
operationId: external_exports.string().uuid()
|
|
38181
|
+
}).strict(),
|
|
38182
|
+
external_exports.object({ status: external_exports.literal("not_found"), id: ShareLinkIdValidator }).strict()
|
|
38183
|
+
]);
|
|
38184
|
+
var ShareLinkOwnerRecoveryOutputValidator = external_exports.object({ recovery: ShareOwnerRecoveryValidator }).strict();
|
|
38185
|
+
var ShareLinkOwnerContentOutputValidator = external_exports.object({
|
|
38186
|
+
id: ShareLinkIdValidator,
|
|
38187
|
+
contentVersion: safeVersion,
|
|
38188
|
+
envelope: ShareEnvelopeValidator
|
|
38189
|
+
}).strict();
|
|
38190
|
+
var ResolveShareLinkInputValidator = external_exports.object({
|
|
38191
|
+
id: ShareLinkIdValidator,
|
|
38192
|
+
/** Sent only in a POST body; it must never be placed in a share URL. */
|
|
38193
|
+
passcode: external_exports.string().min(4).max(64).optional()
|
|
38194
|
+
}).strict();
|
|
38195
|
+
var ShareLinkPublicStateValidator = external_exports.discriminatedUnion("state", [
|
|
38196
|
+
external_exports.object({
|
|
38197
|
+
state: external_exports.literal("passcode_required"),
|
|
38198
|
+
id: ShareLinkIdValidator
|
|
38199
|
+
}).strict(),
|
|
38200
|
+
external_exports.object({ state: external_exports.literal("try_later"), id: ShareLinkIdValidator }).strict(),
|
|
38201
|
+
external_exports.object({
|
|
38202
|
+
state: external_exports.literal("active"),
|
|
38203
|
+
id: ShareLinkIdValidator,
|
|
38204
|
+
title: external_exports.string().max(120),
|
|
38205
|
+
note: external_exports.string().max(500).optional(),
|
|
38206
|
+
selectedCount: external_exports.number().int().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
38207
|
+
contentVersion: safeVersion,
|
|
38208
|
+
contentUrl: external_exports.string(),
|
|
38209
|
+
sharer: external_exports.object({
|
|
38210
|
+
displayName: external_exports.string().max(120),
|
|
38211
|
+
avatar: external_exports.string().max(2048).optional()
|
|
38212
|
+
}),
|
|
38213
|
+
createdAt: external_exports.iso.datetime(),
|
|
38214
|
+
updatedAt: external_exports.iso.datetime(),
|
|
38215
|
+
expiresAt: external_exports.iso.datetime().nullable()
|
|
38216
|
+
}).strict(),
|
|
38217
|
+
external_exports.object({
|
|
38218
|
+
state: external_exports.literal("expired"),
|
|
38219
|
+
id: ShareLinkIdValidator,
|
|
38220
|
+
expiresAt: external_exports.iso.datetime()
|
|
38221
|
+
}).strict(),
|
|
38222
|
+
external_exports.object({
|
|
38223
|
+
state: external_exports.literal("stopped"),
|
|
38224
|
+
id: ShareLinkIdValidator,
|
|
38225
|
+
stoppedAt: external_exports.iso.datetime()
|
|
38226
|
+
}).strict(),
|
|
38227
|
+
external_exports.object({ state: external_exports.literal("not_found"), id: ShareLinkIdValidator }).strict()
|
|
38228
|
+
]);
|
|
38229
|
+
var ListShareLinksInputValidator = external_exports.object({
|
|
38230
|
+
limit: external_exports.number().int().min(1).max(50).default(25),
|
|
38231
|
+
cursor: external_exports.string().max(512).optional()
|
|
38232
|
+
}).strict();
|
|
38233
|
+
var PaginatedShareLinksValidator = PaginationResponseValidator.extend({
|
|
38234
|
+
records: ShareLinkValidator.array()
|
|
38235
|
+
});
|
|
38236
|
+
var AcknowledgeViewInputValidator = external_exports.object({
|
|
38237
|
+
receipt: external_exports.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/)
|
|
38238
|
+
}).strict();
|
|
38239
|
+
var AcknowledgeViewOutputValidator = external_exports.object({ ok: external_exports.literal(true) }).strict();
|
|
38240
|
+
var SHARE_VIEW_RECEIPT_TTL_SECONDS = 10 * 60;
|
|
38241
|
+
var ShareLinkPublicContentViewValidator = external_exports.object({
|
|
38242
|
+
id: ShareLinkIdValidator,
|
|
38243
|
+
contentVersion: safeVersion,
|
|
38244
|
+
envelope: ShareEnvelopeValidator,
|
|
38245
|
+
contentUrl: external_exports.string(),
|
|
38246
|
+
receipt: external_exports.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/)
|
|
38247
|
+
}).strict();
|
|
37262
38248
|
|
|
37263
38249
|
// src/read.ts
|
|
37264
38250
|
var isTemplateRenderMethod = /* @__PURE__ */ __name((rm) => TemplateRenderMethodValidator.safeParse(rm).success, "isTemplateRenderMethod");
|