@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
|
@@ -1332,10 +1332,10 @@ function $constructor(name, initializer3, params) {
|
|
|
1332
1332
|
let Definition = _Definition;
|
|
1333
1333
|
Object.defineProperty(Definition, "name", { value: name });
|
|
1334
1334
|
function _(def) {
|
|
1335
|
-
var
|
|
1335
|
+
var _a7;
|
|
1336
1336
|
const inst = params?.Parent ? new Definition() : this;
|
|
1337
1337
|
init(inst, def);
|
|
1338
|
-
(
|
|
1338
|
+
(_a7 = inst._zod).deferred ?? (_a7.deferred = []);
|
|
1339
1339
|
for (const fn of inst._zod.deferred) {
|
|
1340
1340
|
fn();
|
|
1341
1341
|
}
|
|
@@ -2001,8 +2001,8 @@ function explicitlyAborted(x, startIndex = 0) {
|
|
|
2001
2001
|
__name(explicitlyAborted, "explicitlyAborted");
|
|
2002
2002
|
function prefixIssues(path, issues) {
|
|
2003
2003
|
return issues.map((iss) => {
|
|
2004
|
-
var
|
|
2005
|
-
(
|
|
2004
|
+
var _a7;
|
|
2005
|
+
(_a7 = iss).path ?? (_a7.path = []);
|
|
2006
2006
|
iss.path.unshift(path);
|
|
2007
2007
|
return iss;
|
|
2008
2008
|
});
|
|
@@ -2205,7 +2205,7 @@ __name(formatError, "formatError");
|
|
|
2205
2205
|
function treeifyError(error51, mapper = (issue2) => issue2.message) {
|
|
2206
2206
|
const result = { errors: [] };
|
|
2207
2207
|
const processError = /* @__PURE__ */ __name((error52, path = []) => {
|
|
2208
|
-
var
|
|
2208
|
+
var _a7, _b;
|
|
2209
2209
|
for (const issue2 of error52.issues) {
|
|
2210
2210
|
if (issue2.code === "invalid_union" && issue2.errors.length) {
|
|
2211
2211
|
issue2.errors.map((issues) => processError({ issues }, [...path, ...issue2.path]));
|
|
@@ -2226,7 +2226,7 @@ function treeifyError(error51, mapper = (issue2) => issue2.message) {
|
|
|
2226
2226
|
const terminal = i === fullpath.length - 1;
|
|
2227
2227
|
if (typeof el === "string") {
|
|
2228
2228
|
curr.properties ?? (curr.properties = {});
|
|
2229
|
-
(
|
|
2229
|
+
(_a7 = curr.properties)[el] ?? (_a7[el] = { errors: [] });
|
|
2230
2230
|
curr = curr.properties[el];
|
|
2231
2231
|
} else {
|
|
2232
2232
|
curr.items ?? (curr.items = []);
|
|
@@ -2531,10 +2531,10 @@ var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
|
|
|
2531
2531
|
|
|
2532
2532
|
// ../../../node_modules/zod/v4/core/checks.js
|
|
2533
2533
|
var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
|
|
2534
|
-
var
|
|
2534
|
+
var _a7;
|
|
2535
2535
|
inst._zod ?? (inst._zod = {});
|
|
2536
2536
|
inst._zod.def = def;
|
|
2537
|
-
(
|
|
2537
|
+
(_a7 = inst._zod).onattach ?? (_a7.onattach = []);
|
|
2538
2538
|
});
|
|
2539
2539
|
var numericOriginMap = {
|
|
2540
2540
|
number: "number",
|
|
@@ -2600,8 +2600,8 @@ var $ZodCheckGreaterThan = /* @__PURE__ */ $constructor("$ZodCheckGreaterThan",
|
|
|
2600
2600
|
var $ZodCheckMultipleOf = /* @__PURE__ */ $constructor("$ZodCheckMultipleOf", (inst, def) => {
|
|
2601
2601
|
$ZodCheck.init(inst, def);
|
|
2602
2602
|
inst._zod.onattach.push((inst2) => {
|
|
2603
|
-
var
|
|
2604
|
-
(
|
|
2603
|
+
var _a7;
|
|
2604
|
+
(_a7 = inst2._zod.bag).multipleOf ?? (_a7.multipleOf = def.value);
|
|
2605
2605
|
});
|
|
2606
2606
|
inst._zod.check = (payload) => {
|
|
2607
2607
|
if (typeof payload.value !== typeof def.value)
|
|
@@ -2734,9 +2734,9 @@ var $ZodCheckBigIntFormat = /* @__PURE__ */ $constructor("$ZodCheckBigIntFormat"
|
|
|
2734
2734
|
};
|
|
2735
2735
|
});
|
|
2736
2736
|
var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, def) => {
|
|
2737
|
-
var
|
|
2737
|
+
var _a7;
|
|
2738
2738
|
$ZodCheck.init(inst, def);
|
|
2739
|
-
(
|
|
2739
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2740
2740
|
const val = payload.value;
|
|
2741
2741
|
return !nullish(val) && val.size !== void 0;
|
|
2742
2742
|
});
|
|
@@ -2762,9 +2762,9 @@ var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, d
|
|
|
2762
2762
|
};
|
|
2763
2763
|
});
|
|
2764
2764
|
var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, def) => {
|
|
2765
|
-
var
|
|
2765
|
+
var _a7;
|
|
2766
2766
|
$ZodCheck.init(inst, def);
|
|
2767
|
-
(
|
|
2767
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2768
2768
|
const val = payload.value;
|
|
2769
2769
|
return !nullish(val) && val.size !== void 0;
|
|
2770
2770
|
});
|
|
@@ -2790,9 +2790,9 @@ var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, d
|
|
|
2790
2790
|
};
|
|
2791
2791
|
});
|
|
2792
2792
|
var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (inst, def) => {
|
|
2793
|
-
var
|
|
2793
|
+
var _a7;
|
|
2794
2794
|
$ZodCheck.init(inst, def);
|
|
2795
|
-
(
|
|
2795
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2796
2796
|
const val = payload.value;
|
|
2797
2797
|
return !nullish(val) && val.size !== void 0;
|
|
2798
2798
|
});
|
|
@@ -2820,9 +2820,9 @@ var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (i
|
|
|
2820
2820
|
};
|
|
2821
2821
|
});
|
|
2822
2822
|
var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (inst, def) => {
|
|
2823
|
-
var
|
|
2823
|
+
var _a7;
|
|
2824
2824
|
$ZodCheck.init(inst, def);
|
|
2825
|
-
(
|
|
2825
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2826
2826
|
const val = payload.value;
|
|
2827
2827
|
return !nullish(val) && val.length !== void 0;
|
|
2828
2828
|
});
|
|
@@ -2849,9 +2849,9 @@ var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (ins
|
|
|
2849
2849
|
};
|
|
2850
2850
|
});
|
|
2851
2851
|
var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (inst, def) => {
|
|
2852
|
-
var
|
|
2852
|
+
var _a7;
|
|
2853
2853
|
$ZodCheck.init(inst, def);
|
|
2854
|
-
(
|
|
2854
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2855
2855
|
const val = payload.value;
|
|
2856
2856
|
return !nullish(val) && val.length !== void 0;
|
|
2857
2857
|
});
|
|
@@ -2878,9 +2878,9 @@ var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (ins
|
|
|
2878
2878
|
};
|
|
2879
2879
|
});
|
|
2880
2880
|
var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals", (inst, def) => {
|
|
2881
|
-
var
|
|
2881
|
+
var _a7;
|
|
2882
2882
|
$ZodCheck.init(inst, def);
|
|
2883
|
-
(
|
|
2883
|
+
(_a7 = inst._zod.def).when ?? (_a7.when = (payload) => {
|
|
2884
2884
|
const val = payload.value;
|
|
2885
2885
|
return !nullish(val) && val.length !== void 0;
|
|
2886
2886
|
});
|
|
@@ -2909,7 +2909,7 @@ var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals"
|
|
|
2909
2909
|
};
|
|
2910
2910
|
});
|
|
2911
2911
|
var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat", (inst, def) => {
|
|
2912
|
-
var
|
|
2912
|
+
var _a7, _b;
|
|
2913
2913
|
$ZodCheck.init(inst, def);
|
|
2914
2914
|
inst._zod.onattach.push((inst2) => {
|
|
2915
2915
|
const bag = inst2._zod.bag;
|
|
@@ -2920,7 +2920,7 @@ var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat"
|
|
|
2920
2920
|
}
|
|
2921
2921
|
});
|
|
2922
2922
|
if (def.pattern)
|
|
2923
|
-
(
|
|
2923
|
+
(_a7 = inst._zod).check ?? (_a7.check = (payload) => {
|
|
2924
2924
|
def.pattern.lastIndex = 0;
|
|
2925
2925
|
if (def.pattern.test(payload.value))
|
|
2926
2926
|
return;
|
|
@@ -3125,7 +3125,7 @@ var version = {
|
|
|
3125
3125
|
|
|
3126
3126
|
// ../../../node_modules/zod/v4/core/schemas.js
|
|
3127
3127
|
var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
3128
|
-
var
|
|
3128
|
+
var _a7;
|
|
3129
3129
|
inst ?? (inst = {});
|
|
3130
3130
|
inst._zod.def = def;
|
|
3131
3131
|
inst._zod.bag = inst._zod.bag || {};
|
|
@@ -3140,7 +3140,7 @@ var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
|
3140
3140
|
}
|
|
3141
3141
|
}
|
|
3142
3142
|
if (checks.length === 0) {
|
|
3143
|
-
(
|
|
3143
|
+
(_a7 = inst._zod).deferred ?? (_a7.deferred = []);
|
|
3144
3144
|
inst._zod.deferred?.push(() => {
|
|
3145
3145
|
inst._zod.run = inst._zod.parse;
|
|
3146
3146
|
});
|
|
@@ -12531,7 +12531,7 @@ function initializeContext(params) {
|
|
|
12531
12531
|
}
|
|
12532
12532
|
__name(initializeContext, "initializeContext");
|
|
12533
12533
|
function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
|
|
12534
|
-
var
|
|
12534
|
+
var _a7;
|
|
12535
12535
|
const def = schema._zod.def;
|
|
12536
12536
|
const seen = ctx.seen.get(schema);
|
|
12537
12537
|
if (seen) {
|
|
@@ -12579,7 +12579,7 @@ function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
|
|
|
12579
12579
|
delete result.schema.default;
|
|
12580
12580
|
}
|
|
12581
12581
|
if (ctx.io === "input" && "_prefault" in result.schema)
|
|
12582
|
-
(
|
|
12582
|
+
(_a7 = result.schema).default ?? (_a7.default = result.schema._prefault);
|
|
12583
12583
|
delete result.schema._prefault;
|
|
12584
12584
|
const _result = ctx.seen.get(schema);
|
|
12585
12585
|
return _result.schema;
|
|
@@ -15928,7 +15928,7 @@ var __toESM = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod
|
|
|
15928
15928
|
var require_types_cjs_development = __commonJS({
|
|
15929
15929
|
"../learn-card-types/dist/types.cjs.development.cjs"(exports, module) {
|
|
15930
15930
|
"use strict";
|
|
15931
|
-
var
|
|
15931
|
+
var _a8, _b, _c, _d, _e, _f, _g;
|
|
15932
15932
|
var __defProp22 = Object.defineProperty;
|
|
15933
15933
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
15934
15934
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
@@ -15956,6 +15956,8 @@ var require_types_cjs_development = __commonJS({
|
|
|
15956
15956
|
AchievementSubjectValidator: /* @__PURE__ */ __name2(() => AchievementSubjectValidator2, "AchievementSubjectValidator"),
|
|
15957
15957
|
AchievementTypeValidator: /* @__PURE__ */ __name2(() => AchievementTypeValidator2, "AchievementTypeValidator"),
|
|
15958
15958
|
AchievementValidator: /* @__PURE__ */ __name2(() => AchievementValidator2, "AchievementValidator"),
|
|
15959
|
+
AcknowledgeViewInputValidator: /* @__PURE__ */ __name2(() => AcknowledgeViewInputValidator2, "AcknowledgeViewInputValidator"),
|
|
15960
|
+
AcknowledgeViewOutputValidator: /* @__PURE__ */ __name2(() => AcknowledgeViewOutputValidator2, "AcknowledgeViewOutputValidator"),
|
|
15959
15961
|
AddTagInputValidator: /* @__PURE__ */ __name2(() => AddTagInputValidator2, "AddTagInputValidator"),
|
|
15960
15962
|
AddressValidator: /* @__PURE__ */ __name2(() => AddressValidator2, "AddressValidator"),
|
|
15961
15963
|
AgeRatingValidator: /* @__PURE__ */ __name2(() => AgeRatingValidator2, "AgeRatingValidator"),
|
|
@@ -16033,6 +16035,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
16033
16035
|
CreateContactMethodSessionValidator: /* @__PURE__ */ __name2(() => CreateContactMethodSessionValidator2, "CreateContactMethodSessionValidator"),
|
|
16034
16036
|
CreateManagedFrameworkBatchInputValidator: /* @__PURE__ */ __name2(() => CreateManagedFrameworkBatchInputValidator2, "CreateManagedFrameworkBatchInputValidator"),
|
|
16035
16037
|
CreateManagedFrameworkInputValidator: /* @__PURE__ */ __name2(() => CreateManagedFrameworkInputValidator2, "CreateManagedFrameworkInputValidator"),
|
|
16038
|
+
CreateShareLinkInputValidator: /* @__PURE__ */ __name2(() => CreateShareLinkInputValidator2, "CreateShareLinkInputValidator"),
|
|
16036
16039
|
CreateSkillInputValidator: /* @__PURE__ */ __name2(() => CreateSkillInputValidator2, "CreateSkillInputValidator"),
|
|
16037
16040
|
CreateSkillsBatchInputValidator: /* @__PURE__ */ __name2(() => CreateSkillsBatchInputValidator2, "CreateSkillsBatchInputValidator"),
|
|
16038
16041
|
CredentialActivityEventTypeValidator: /* @__PURE__ */ __name2(() => CredentialActivityEventTypeValidator2, "CredentialActivityEventTypeValidator"),
|
|
@@ -16064,10 +16067,14 @@ var require_types_cjs_development = __commonJS({
|
|
|
16064
16067
|
DeleteSkillInputValidator: /* @__PURE__ */ __name2(() => DeleteSkillInputValidator2, "DeleteSkillInputValidator"),
|
|
16065
16068
|
DidDocumentValidator: /* @__PURE__ */ __name2(() => DidDocumentValidator2, "DidDocumentValidator"),
|
|
16066
16069
|
EMPTY_IN_APP_MESSAGES_FLAG: /* @__PURE__ */ __name2(() => EMPTY_IN_APP_MESSAGES_FLAG, "EMPTY_IN_APP_MESSAGES_FLAG"),
|
|
16070
|
+
ESCROW_PIN_LOCKED_MESSAGE: /* @__PURE__ */ __name2(() => ESCROW_PIN_LOCKED_MESSAGE, "ESCROW_PIN_LOCKED_MESSAGE"),
|
|
16071
|
+
ESCROW_PIN_MISMATCH_PATTERN: /* @__PURE__ */ __name2(() => ESCROW_PIN_MISMATCH_PATTERN, "ESCROW_PIN_MISMATCH_PATTERN"),
|
|
16072
|
+
ESCROW_PIN_UNAVAILABLE_MESSAGE: /* @__PURE__ */ __name2(() => ESCROW_PIN_UNAVAILABLE_MESSAGE, "ESCROW_PIN_UNAVAILABLE_MESSAGE"),
|
|
16067
16073
|
EncryptedCredentialRecordValidator: /* @__PURE__ */ __name2(() => EncryptedCredentialRecordValidator2, "EncryptedCredentialRecordValidator"),
|
|
16068
16074
|
EncryptedRecordValidator: /* @__PURE__ */ __name2(() => EncryptedRecordValidator2, "EncryptedRecordValidator"),
|
|
16069
16075
|
EndorsementCredentialValidator: /* @__PURE__ */ __name2(() => EndorsementCredentialValidator2, "EndorsementCredentialValidator"),
|
|
16070
16076
|
EndorsementSubjectValidator: /* @__PURE__ */ __name2(() => EndorsementSubjectValidator2, "EndorsementSubjectValidator"),
|
|
16077
|
+
EscrowPinStatusValidator: /* @__PURE__ */ __name2(() => EscrowPinStatusValidator2, "EscrowPinStatusValidator"),
|
|
16071
16078
|
EvidenceValidator: /* @__PURE__ */ __name2(() => EvidenceValidator2, "EvidenceValidator"),
|
|
16072
16079
|
FlatAuthGrantValidator: /* @__PURE__ */ __name2(() => FlatAuthGrantValidator2, "FlatAuthGrantValidator"),
|
|
16073
16080
|
FrameworkWithSkillsValidator: /* @__PURE__ */ __name2(() => FrameworkWithSkillsValidator2, "FrameworkWithSkillsValidator"),
|
|
@@ -16149,6 +16156,14 @@ var require_types_cjs_development = __commonJS({
|
|
|
16149
16156
|
LaunchTypeValidator: /* @__PURE__ */ __name2(() => LaunchTypeValidator2, "LaunchTypeValidator"),
|
|
16150
16157
|
LearnCardRefreshAuthorizationValidator: /* @__PURE__ */ __name2(() => LearnCardRefreshAuthorizationValidator2, "LearnCardRefreshAuthorizationValidator"),
|
|
16151
16158
|
LinkProviderFrameworkInputValidator: /* @__PURE__ */ __name2(() => LinkProviderFrameworkInputValidator2, "LinkProviderFrameworkInputValidator"),
|
|
16159
|
+
ListShareLinksInputValidator: /* @__PURE__ */ __name2(() => ListShareLinksInputValidator2, "ListShareLinksInputValidator"),
|
|
16160
|
+
MAX_ENDORSEMENTS: /* @__PURE__ */ __name2(() => MAX_ENDORSEMENTS2, "MAX_ENDORSEMENTS"),
|
|
16161
|
+
MAX_SELECTED_CREDENTIALS: /* @__PURE__ */ __name2(() => MAX_SELECTED_CREDENTIALS2, "MAX_SELECTED_CREDENTIALS"),
|
|
16162
|
+
MAX_SHARE_CIPHERTEXT_BYTES: /* @__PURE__ */ __name2(() => MAX_SHARE_CIPHERTEXT_BYTES2, "MAX_SHARE_CIPHERTEXT_BYTES"),
|
|
16163
|
+
MAX_SHARE_LINK_REQUEST_BYTES: /* @__PURE__ */ __name2(() => MAX_SHARE_LINK_REQUEST_BYTES2, "MAX_SHARE_LINK_REQUEST_BYTES"),
|
|
16164
|
+
MAX_SHARE_RECOVERY_JWE_BYTES: /* @__PURE__ */ __name2(() => MAX_SHARE_RECOVERY_JWE_BYTES2, "MAX_SHARE_RECOVERY_JWE_BYTES"),
|
|
16165
|
+
MAX_SHARE_SOURCE_URI_CHARS: /* @__PURE__ */ __name2(() => MAX_SHARE_SOURCE_URI_CHARS2, "MAX_SHARE_SOURCE_URI_CHARS"),
|
|
16166
|
+
MAX_VP_MEMBERS: /* @__PURE__ */ __name2(() => MAX_VP_MEMBERS2, "MAX_VP_MEMBERS"),
|
|
16152
16167
|
ManagedCredentialRefreshReceiptValidator: /* @__PURE__ */ __name2(() => ManagedCredentialRefreshReceiptValidator2, "ManagedCredentialRefreshReceiptValidator"),
|
|
16153
16168
|
ManagedCredentialRefreshServiceValidator: /* @__PURE__ */ __name2(() => ManagedCredentialRefreshServiceValidator2, "ManagedCredentialRefreshServiceValidator"),
|
|
16154
16169
|
PaginatedAppStoreListingsValidator: /* @__PURE__ */ __name2(() => PaginatedAppStoreListingsValidator2, "PaginatedAppStoreListingsValidator"),
|
|
@@ -16171,6 +16186,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
16171
16186
|
PaginatedLCNProfileManagersValidator: /* @__PURE__ */ __name2(() => PaginatedLCNProfileManagersValidator2, "PaginatedLCNProfileManagersValidator"),
|
|
16172
16187
|
PaginatedLCNProfilesAndManagersValidator: /* @__PURE__ */ __name2(() => PaginatedLCNProfilesAndManagersValidator2, "PaginatedLCNProfilesAndManagersValidator"),
|
|
16173
16188
|
PaginatedLCNProfilesValidator: /* @__PURE__ */ __name2(() => PaginatedLCNProfilesValidator2, "PaginatedLCNProfilesValidator"),
|
|
16189
|
+
PaginatedShareLinksValidator: /* @__PURE__ */ __name2(() => PaginatedShareLinksValidator2, "PaginatedShareLinksValidator"),
|
|
16174
16190
|
PaginatedSkillFrameworksValidator: /* @__PURE__ */ __name2(() => PaginatedSkillFrameworksValidator2, "PaginatedSkillFrameworksValidator"),
|
|
16175
16191
|
PaginatedSkillTreeValidator: /* @__PURE__ */ __name2(() => PaginatedSkillTreeValidator2, "PaginatedSkillTreeValidator"),
|
|
16176
16192
|
PaginatedVisibleLCNProfilesValidator: /* @__PURE__ */ __name2(() => PaginatedVisibleLCNProfilesValidator2, "PaginatedVisibleLCNProfilesValidator"),
|
|
@@ -16195,11 +16211,20 @@ var require_types_cjs_development = __commonJS({
|
|
|
16195
16211
|
ReplaceSkillFrameworkSkillsInputValidator: /* @__PURE__ */ __name2(() => ReplaceSkillFrameworkSkillsInputValidator2, "ReplaceSkillFrameworkSkillsInputValidator"),
|
|
16196
16212
|
ReplaceSkillFrameworkSkillsResultValidator: /* @__PURE__ */ __name2(() => ReplaceSkillFrameworkSkillsResultValidator2, "ReplaceSkillFrameworkSkillsResultValidator"),
|
|
16197
16213
|
RequestLearnerContextEventValidator: /* @__PURE__ */ __name2(() => RequestLearnerContextEventValidator2, "RequestLearnerContextEventValidator"),
|
|
16214
|
+
ResolveShareLinkInputValidator: /* @__PURE__ */ __name2(() => ResolveShareLinkInputValidator2, "ResolveShareLinkInputValidator"),
|
|
16198
16215
|
ResultDescriptionValidator: /* @__PURE__ */ __name2(() => ResultDescriptionValidator2, "ResultDescriptionValidator"),
|
|
16199
16216
|
ResultStatusTypeValidator: /* @__PURE__ */ __name2(() => ResultStatusTypeValidator2, "ResultStatusTypeValidator"),
|
|
16200
16217
|
ResultTypeValidator: /* @__PURE__ */ __name2(() => ResultTypeValidator2, "ResultTypeValidator"),
|
|
16201
16218
|
ResultValidator: /* @__PURE__ */ __name2(() => ResultValidator2, "ResultValidator"),
|
|
16202
16219
|
RubricCriterionValidator: /* @__PURE__ */ __name2(() => RubricCriterionValidator2, "RubricCriterionValidator"),
|
|
16220
|
+
SHARE_AAD_PREFIX: /* @__PURE__ */ __name2(() => SHARE_AAD_PREFIX, "SHARE_AAD_PREFIX"),
|
|
16221
|
+
SHARE_CONTENT_KEY_BYTES: /* @__PURE__ */ __name2(() => SHARE_CONTENT_KEY_BYTES2, "SHARE_CONTENT_KEY_BYTES"),
|
|
16222
|
+
SHARE_IV_BYTES: /* @__PURE__ */ __name2(() => SHARE_IV_BYTES2, "SHARE_IV_BYTES"),
|
|
16223
|
+
SHARE_LINK_ID_BYTES: /* @__PURE__ */ __name2(() => SHARE_LINK_ID_BYTES2, "SHARE_LINK_ID_BYTES"),
|
|
16224
|
+
SHARE_LINK_PROTOCOL: /* @__PURE__ */ __name2(() => SHARE_LINK_PROTOCOL2, "SHARE_LINK_PROTOCOL"),
|
|
16225
|
+
SHARE_RECOVERY_PROTOCOL: /* @__PURE__ */ __name2(() => SHARE_RECOVERY_PROTOCOL2, "SHARE_RECOVERY_PROTOCOL"),
|
|
16226
|
+
SHARE_TAG_BYTES: /* @__PURE__ */ __name2(() => SHARE_TAG_BYTES2, "SHARE_TAG_BYTES"),
|
|
16227
|
+
SHARE_VIEW_RECEIPT_TTL_SECONDS: /* @__PURE__ */ __name2(() => SHARE_VIEW_RECEIPT_TTL_SECONDS2, "SHARE_VIEW_RECEIPT_TTL_SECONDS"),
|
|
16203
16228
|
SendAiSessionCredentialEventValidator: /* @__PURE__ */ __name2(() => SendAiSessionCredentialEventValidator2, "SendAiSessionCredentialEventValidator"),
|
|
16204
16229
|
SendBoostInputValidator: /* @__PURE__ */ __name2(() => SendBoostInputValidator2, "SendBoostInputValidator"),
|
|
16205
16230
|
SendBoostResponseValidator: /* @__PURE__ */ __name2(() => SendBoostResponseValidator2, "SendBoostResponseValidator"),
|
|
@@ -16214,6 +16239,32 @@ var require_types_cjs_development = __commonJS({
|
|
|
16214
16239
|
SentCredentialInfoValidator: /* @__PURE__ */ __name2(() => SentCredentialInfoValidator2, "SentCredentialInfoValidator"),
|
|
16215
16240
|
ServiceValidator: /* @__PURE__ */ __name2(() => ServiceValidator2, "ServiceValidator"),
|
|
16216
16241
|
SetPrimaryContactMethodValidator: /* @__PURE__ */ __name2(() => SetPrimaryContactMethodValidator2, "SetPrimaryContactMethodValidator"),
|
|
16242
|
+
ShareCiphertextValidator: /* @__PURE__ */ __name2(() => ShareCiphertextValidator2, "ShareCiphertextValidator"),
|
|
16243
|
+
ShareContentKeyValidator: /* @__PURE__ */ __name2(() => ShareContentKeyValidator2, "ShareContentKeyValidator"),
|
|
16244
|
+
ShareContentStateValidator: /* @__PURE__ */ __name2(() => ShareContentStateValidator2, "ShareContentStateValidator"),
|
|
16245
|
+
ShareEndorsementEntryValidator: /* @__PURE__ */ __name2(() => ShareEndorsementEntryValidator2, "ShareEndorsementEntryValidator"),
|
|
16246
|
+
ShareEnvelopeValidator: /* @__PURE__ */ __name2(() => ShareEnvelopeValidator2, "ShareEnvelopeValidator"),
|
|
16247
|
+
ShareIvValidator: /* @__PURE__ */ __name2(() => ShareIvValidator2, "ShareIvValidator"),
|
|
16248
|
+
ShareLinkIdInputValidator: /* @__PURE__ */ __name2(() => ShareLinkIdInputValidator2, "ShareLinkIdInputValidator"),
|
|
16249
|
+
ShareLinkIdValidator: /* @__PURE__ */ __name2(() => ShareLinkIdValidator2, "ShareLinkIdValidator"),
|
|
16250
|
+
ShareLinkOperationKeyInputValidator: /* @__PURE__ */ __name2(() => ShareLinkOperationKeyInputValidator2, "ShareLinkOperationKeyInputValidator"),
|
|
16251
|
+
ShareLinkOwnerCommitOutputValidator: /* @__PURE__ */ __name2(() => ShareLinkOwnerCommitOutputValidator2, "ShareLinkOwnerCommitOutputValidator"),
|
|
16252
|
+
ShareLinkOwnerContentOutputValidator: /* @__PURE__ */ __name2(() => ShareLinkOwnerContentOutputValidator2, "ShareLinkOwnerContentOutputValidator"),
|
|
16253
|
+
ShareLinkOwnerRecoveryOutputValidator: /* @__PURE__ */ __name2(() => ShareLinkOwnerRecoveryOutputValidator2, "ShareLinkOwnerRecoveryOutputValidator"),
|
|
16254
|
+
ShareLinkOwnerStatusOutputValidator: /* @__PURE__ */ __name2(() => ShareLinkOwnerStatusOutputValidator2, "ShareLinkOwnerStatusOutputValidator"),
|
|
16255
|
+
ShareLinkPublicContentViewValidator: /* @__PURE__ */ __name2(() => ShareLinkPublicContentViewValidator2, "ShareLinkPublicContentViewValidator"),
|
|
16256
|
+
ShareLinkPublicStateValidator: /* @__PURE__ */ __name2(() => ShareLinkPublicStateValidator2, "ShareLinkPublicStateValidator"),
|
|
16257
|
+
ShareLinkStatusValidator: /* @__PURE__ */ __name2(() => ShareLinkStatusValidator2, "ShareLinkStatusValidator"),
|
|
16258
|
+
ShareLinkValidator: /* @__PURE__ */ __name2(() => ShareLinkValidator2, "ShareLinkValidator"),
|
|
16259
|
+
ShareManifestPresentationValidator: /* @__PURE__ */ __name2(() => ShareManifestPresentationValidator2, "ShareManifestPresentationValidator"),
|
|
16260
|
+
ShareOwnerRecoveryValidator: /* @__PURE__ */ __name2(() => ShareOwnerRecoveryValidator2, "ShareOwnerRecoveryValidator"),
|
|
16261
|
+
SharePayloadValidator: /* @__PURE__ */ __name2(() => SharePayloadValidator2, "SharePayloadValidator"),
|
|
16262
|
+
SharePayloadValidatorShape: /* @__PURE__ */ __name2(() => SharePayloadValidatorShape2, "SharePayloadValidatorShape"),
|
|
16263
|
+
ShareRecoveryEndorsementValidator: /* @__PURE__ */ __name2(() => ShareRecoveryEndorsementValidator2, "ShareRecoveryEndorsementValidator"),
|
|
16264
|
+
ShareRecoveryPlaintextValidator: /* @__PURE__ */ __name2(() => ShareRecoveryPlaintextValidator2, "ShareRecoveryPlaintextValidator"),
|
|
16265
|
+
ShareRecoverySelectionValidator: /* @__PURE__ */ __name2(() => ShareRecoverySelectionValidator2, "ShareRecoverySelectionValidator"),
|
|
16266
|
+
ShareSelectionEntryValidator: /* @__PURE__ */ __name2(() => ShareSelectionEntryValidator2, "ShareSelectionEntryValidator"),
|
|
16267
|
+
ShareSharerValidator: /* @__PURE__ */ __name2(() => ShareSharerValidator2, "ShareSharerValidator"),
|
|
16217
16268
|
SkillDeletionStrategyValidator: /* @__PURE__ */ __name2(() => SkillDeletionStrategyValidator2, "SkillDeletionStrategyValidator"),
|
|
16218
16269
|
SkillFrameworkAdminInputValidator: /* @__PURE__ */ __name2(() => SkillFrameworkAdminInputValidator2, "SkillFrameworkAdminInputValidator"),
|
|
16219
16270
|
SkillFrameworkAdminsValidator: /* @__PURE__ */ __name2(() => SkillFrameworkAdminsValidator2, "SkillFrameworkAdminsValidator"),
|
|
@@ -16245,6 +16296,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
16245
16296
|
UnsignedVCValidator: /* @__PURE__ */ __name2(() => UnsignedVCValidator2, "UnsignedVCValidator"),
|
|
16246
16297
|
UnsignedVPValidator: /* @__PURE__ */ __name2(() => UnsignedVPValidator2, "UnsignedVPValidator"),
|
|
16247
16298
|
UpdateFrameworkInputValidator: /* @__PURE__ */ __name2(() => UpdateFrameworkInputValidator2, "UpdateFrameworkInputValidator"),
|
|
16299
|
+
UpdateShareLinkInputValidator: /* @__PURE__ */ __name2(() => UpdateShareLinkInputValidator2, "UpdateShareLinkInputValidator"),
|
|
16248
16300
|
UpdateSkillInputValidator: /* @__PURE__ */ __name2(() => UpdateSkillInputValidator2, "UpdateSkillInputValidator"),
|
|
16249
16301
|
VC2EvidenceValidator: /* @__PURE__ */ __name2(() => VC2EvidenceValidator2, "VC2EvidenceValidator"),
|
|
16250
16302
|
VCValidator: /* @__PURE__ */ __name2(() => VCValidator2, "VCValidator"),
|
|
@@ -16256,7 +16308,12 @@ var require_types_cjs_development = __commonJS({
|
|
|
16256
16308
|
VerificationStatusValidator: /* @__PURE__ */ __name2(() => VerificationStatusValidator2, "VerificationStatusValidator"),
|
|
16257
16309
|
appStoreActionValidator: /* @__PURE__ */ __name2(() => appStoreActionValidator2, "appStoreActionValidator"),
|
|
16258
16310
|
capgoUpdateActionValidator: /* @__PURE__ */ __name2(() => capgoUpdateActionValidator2, "capgoUpdateActionValidator"),
|
|
16311
|
+
classifyShareManifest: /* @__PURE__ */ __name2(() => classifyShareManifest2, "classifyShareManifest"),
|
|
16312
|
+
decodeBase64Url: /* @__PURE__ */ __name2(() => decodeBase64Url2, "decodeBase64Url"),
|
|
16313
|
+
decodedBase64UrlByteLength: /* @__PURE__ */ __name2(() => decodedBase64UrlByteLength, "decodedBase64UrlByteLength"),
|
|
16259
16314
|
dismissActionValidator: /* @__PURE__ */ __name2(() => dismissActionValidator2, "dismissActionValidator"),
|
|
16315
|
+
encodeBase64Url: /* @__PURE__ */ __name2(() => encodeBase64Url2, "encodeBase64Url"),
|
|
16316
|
+
escrowPinMismatchMessage: /* @__PURE__ */ __name2(() => escrowPinMismatchMessage, "escrowPinMismatchMessage"),
|
|
16260
16317
|
externalLinkActionValidator: /* @__PURE__ */ __name2(() => externalLinkActionValidator2, "externalLinkActionValidator"),
|
|
16261
16318
|
inAppMessageActionStyleValidator: /* @__PURE__ */ __name2(() => inAppMessageActionStyleValidator2, "inAppMessageActionStyleValidator"),
|
|
16262
16319
|
inAppMessageActionTargetValidator: /* @__PURE__ */ __name2(() => inAppMessageActionTargetValidator2, "inAppMessageActionTargetValidator"),
|
|
@@ -16271,10 +16328,12 @@ var require_types_cjs_development = __commonJS({
|
|
|
16271
16328
|
inAppMessageVersionSourceValidator: /* @__PURE__ */ __name2(() => inAppMessageVersionSourceValidator2, "inAppMessageVersionSourceValidator"),
|
|
16272
16329
|
inAppMessagesFlagValidator: /* @__PURE__ */ __name2(() => inAppMessagesFlagValidator2, "inAppMessagesFlagValidator"),
|
|
16273
16330
|
internalLinkActionValidator: /* @__PURE__ */ __name2(() => internalLinkActionValidator2, "internalLinkActionValidator"),
|
|
16331
|
+
isCanonicalBase64Url: /* @__PURE__ */ __name2(() => isCanonicalBase64Url2, "isCanonicalBase64Url"),
|
|
16274
16332
|
isStoredCredentialEnvelope: /* @__PURE__ */ __name2(() => isStoredCredentialEnvelope2, "isStoredCredentialEnvelope"),
|
|
16275
16333
|
parseInAppMessagesFlag: /* @__PURE__ */ __name2(() => parseInAppMessagesFlag, "parseInAppMessagesFlag"),
|
|
16276
16334
|
platformPredicateValidator: /* @__PURE__ */ __name2(() => platformPredicateValidator2, "platformPredicateValidator"),
|
|
16277
16335
|
rolePredicateValidator: /* @__PURE__ */ __name2(() => rolePredicateValidator2, "rolePredicateValidator"),
|
|
16336
|
+
utf8ByteLength: /* @__PURE__ */ __name2(() => utf8ByteLength2, "utf8ByteLength"),
|
|
16278
16337
|
versionPredicateValidator: /* @__PURE__ */ __name2(() => versionPredicateValidator2, "versionPredicateValidator")
|
|
16279
16338
|
});
|
|
16280
16339
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -16796,7 +16855,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
16796
16855
|
util: /* @__PURE__ */ __name2(() => util_exports2, "util"),
|
|
16797
16856
|
version: /* @__PURE__ */ __name2(() => version3, "version")
|
|
16798
16857
|
});
|
|
16799
|
-
var
|
|
16858
|
+
var _a7;
|
|
16800
16859
|
var NEVER2 = /* @__PURE__ */ Object.freeze({
|
|
16801
16860
|
status: "aborted"
|
|
16802
16861
|
});
|
|
@@ -16866,18 +16925,18 @@ var require_types_cjs_development = __commonJS({
|
|
|
16866
16925
|
__name2($constructor2, "$constructor");
|
|
16867
16926
|
__name22($constructor2, "$constructor");
|
|
16868
16927
|
var $brand2 = /* @__PURE__ */ Symbol("zod_brand");
|
|
16869
|
-
var $ZodAsyncError2 = (
|
|
16928
|
+
var $ZodAsyncError2 = (_a8 = class extends Error {
|
|
16870
16929
|
constructor() {
|
|
16871
16930
|
super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);
|
|
16872
16931
|
}
|
|
16873
|
-
}, __name(
|
|
16932
|
+
}, __name(_a8, "$ZodAsyncError"), __name2(_a8, "$ZodAsyncError"), __name22(_a8, "$ZodAsyncError"), _a8);
|
|
16874
16933
|
var $ZodEncodeError2 = (_b = class extends Error {
|
|
16875
16934
|
constructor(name) {
|
|
16876
16935
|
super(`Encountered unidirectional transform during encode: ${name}`);
|
|
16877
16936
|
this.name = "ZodEncodeError";
|
|
16878
16937
|
}
|
|
16879
16938
|
}, __name(_b, "$ZodEncodeError"), __name2(_b, "$ZodEncodeError"), __name22(_b, "$ZodEncodeError"), _b);
|
|
16880
|
-
(
|
|
16939
|
+
(_a7 = globalThis).__zod_globalConfig ?? (_a7.__zod_globalConfig = {});
|
|
16881
16940
|
var globalConfig2 = globalThis.__zod_globalConfig;
|
|
16882
16941
|
function config2(newConfig) {
|
|
16883
16942
|
if (newConfig)
|
|
@@ -34298,6 +34357,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
34298
34357
|
this.name = "AuthSessionError";
|
|
34299
34358
|
}
|
|
34300
34359
|
}, __name(_g, "AuthSessionError"), __name2(_g, "AuthSessionError"), __name22(_g, "AuthSessionError"), _g);
|
|
34360
|
+
var ESCROW_PIN_LOCKED_MESSAGE = "Too many incorrect PIN attempts. You can still recover by waiting.";
|
|
34361
|
+
var ESCROW_PIN_UNAVAILABLE_MESSAGE = "PIN recovery is not available for this account.";
|
|
34362
|
+
var ESCROW_PIN_MISMATCH_PATTERN = /^Incorrect PIN\. (\d+) attempts left\.$/;
|
|
34363
|
+
var escrowPinMismatchMessage = /* @__PURE__ */ __name22((attemptsRemaining) => `Incorrect PIN. ${attemptsRemaining} attempts left.`, "escrowPinMismatchMessage");
|
|
34364
|
+
var EscrowPinStatusValidator2 = external_exports2.object({
|
|
34365
|
+
state: external_exports2.enum(["none", "enabled", "locked", "stale"]),
|
|
34366
|
+
enabled: external_exports2.boolean(),
|
|
34367
|
+
attemptsRemaining: external_exports2.number().int().nonnegative(),
|
|
34368
|
+
salt: external_exports2.string().optional()
|
|
34369
|
+
});
|
|
34301
34370
|
var BITSTRING_STATUS_PURPOSES2 = ["revocation", "suspension"];
|
|
34302
34371
|
var DEFAULT_BITSTRING_STATUS_LIST_SIZE = 131072;
|
|
34303
34372
|
var BitstringStatusPurposeValidator2 = external_exports2.enum(BITSTRING_STATUS_PURPOSES2);
|
|
@@ -34412,6 +34481,458 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
34412
34481
|
const result = inAppMessagesFlagValidator2.safeParse(raw);
|
|
34413
34482
|
return result.success ? result.data : EMPTY_IN_APP_MESSAGES_FLAG;
|
|
34414
34483
|
}, "parseInAppMessagesFlag");
|
|
34484
|
+
var SHARE_LINK_ID_BYTES2 = 16;
|
|
34485
|
+
var SHARE_CONTENT_KEY_BYTES2 = 32;
|
|
34486
|
+
var SHARE_IV_BYTES2 = 12;
|
|
34487
|
+
var SHARE_TAG_BYTES2 = 16;
|
|
34488
|
+
var MAX_SHARE_CIPHERTEXT_BYTES2 = 512 * 1024;
|
|
34489
|
+
var MAX_SHARE_RECOVERY_JWE_BYTES2 = 64 * 1024;
|
|
34490
|
+
var MAX_SELECTED_CREDENTIALS2 = 50;
|
|
34491
|
+
var MAX_ENDORSEMENTS2 = 200;
|
|
34492
|
+
var MAX_VP_MEMBERS2 = MAX_SELECTED_CREDENTIALS2 + MAX_ENDORSEMENTS2;
|
|
34493
|
+
var MAX_SHARE_SOURCE_URI_CHARS2 = 2048;
|
|
34494
|
+
var MAX_SHARE_LINK_REQUEST_BYTES2 = 1024 * 1024;
|
|
34495
|
+
var SHARE_LINK_PROTOCOL2 = "lc-share/v1";
|
|
34496
|
+
var SHARE_RECOVERY_PROTOCOL2 = "lc-share-recovery/v1";
|
|
34497
|
+
var SHARE_AAD_PREFIX = "lc-share:v1";
|
|
34498
|
+
var BASE64URL_ALPHABET2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
|
|
34499
|
+
var BASE64URL_LOOKUP2 = (() => {
|
|
34500
|
+
const table = new Int16Array(128).fill(-1);
|
|
34501
|
+
for (let index = 0; index < BASE64URL_ALPHABET2.length; index += 1) {
|
|
34502
|
+
table[BASE64URL_ALPHABET2.charCodeAt(index)] = index;
|
|
34503
|
+
}
|
|
34504
|
+
return table;
|
|
34505
|
+
})();
|
|
34506
|
+
var encodeBase64Url2 = /* @__PURE__ */ __name22((bytes) => {
|
|
34507
|
+
let output = "";
|
|
34508
|
+
for (let index = 0; index < bytes.length; index += 3) {
|
|
34509
|
+
const first = bytes[index];
|
|
34510
|
+
const second = bytes[index + 1];
|
|
34511
|
+
const third = bytes[index + 2];
|
|
34512
|
+
output += BASE64URL_ALPHABET2[first >> 2];
|
|
34513
|
+
output += BASE64URL_ALPHABET2[(first & 3) << 4 | (second ?? 0) >> 4];
|
|
34514
|
+
if (second === void 0) break;
|
|
34515
|
+
output += BASE64URL_ALPHABET2[(second & 15) << 2 | (third ?? 0) >> 6];
|
|
34516
|
+
if (third === void 0) break;
|
|
34517
|
+
output += BASE64URL_ALPHABET2[third & 63];
|
|
34518
|
+
}
|
|
34519
|
+
return output;
|
|
34520
|
+
}, "encodeBase64Url");
|
|
34521
|
+
var decodeBase64Url2 = /* @__PURE__ */ __name22((value) => {
|
|
34522
|
+
if (typeof value !== "string") return null;
|
|
34523
|
+
const output = new Uint8Array(Math.floor(value.length * 6 / 8));
|
|
34524
|
+
let bits = 0;
|
|
34525
|
+
let bitCount = 0;
|
|
34526
|
+
let outputIndex = 0;
|
|
34527
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
34528
|
+
const code = value.charCodeAt(index);
|
|
34529
|
+
const digit = code < 128 ? BASE64URL_LOOKUP2[code] : -1;
|
|
34530
|
+
if (digit < 0) return null;
|
|
34531
|
+
bits = bits << 6 | digit;
|
|
34532
|
+
bitCount += 6;
|
|
34533
|
+
if (bitCount >= 8) {
|
|
34534
|
+
bitCount -= 8;
|
|
34535
|
+
output[outputIndex] = bits >> bitCount & 255;
|
|
34536
|
+
outputIndex += 1;
|
|
34537
|
+
}
|
|
34538
|
+
}
|
|
34539
|
+
return output;
|
|
34540
|
+
}, "decodeBase64Url");
|
|
34541
|
+
var isCanonicalBase64Url2 = /* @__PURE__ */ __name22((value, expectedBytes) => {
|
|
34542
|
+
if (typeof value !== "string") return false;
|
|
34543
|
+
if (expectedBytes !== void 0 && value.length !== Math.ceil(expectedBytes * 4 / 3))
|
|
34544
|
+
return false;
|
|
34545
|
+
const decoded = decodeBase64Url2(value);
|
|
34546
|
+
if (decoded === null) return false;
|
|
34547
|
+
if (expectedBytes !== void 0 && decoded.length !== expectedBytes) return false;
|
|
34548
|
+
return encodeBase64Url2(decoded) === value;
|
|
34549
|
+
}, "isCanonicalBase64Url");
|
|
34550
|
+
var decodedBase64UrlByteLength = /* @__PURE__ */ __name22((value) => decodeBase64Url2(value)?.length ?? null, "decodedBase64UrlByteLength");
|
|
34551
|
+
var utf8ByteLength2 = /* @__PURE__ */ __name22((value) => new TextEncoder().encode(value).length, "utf8ByteLength");
|
|
34552
|
+
var canonicalBase64Url2 = /* @__PURE__ */ __name22((bytes) => external_exports2.string().refine((value) => isCanonicalBase64Url2(value, bytes), {
|
|
34553
|
+
message: `must be canonical base64url for exactly ${bytes} bytes`
|
|
34554
|
+
}), "canonicalBase64Url");
|
|
34555
|
+
var ShareLinkIdValidator2 = canonicalBase64Url2(SHARE_LINK_ID_BYTES2);
|
|
34556
|
+
var ShareContentKeyValidator2 = canonicalBase64Url2(SHARE_CONTENT_KEY_BYTES2);
|
|
34557
|
+
var ShareIvValidator2 = canonicalBase64Url2(SHARE_IV_BYTES2);
|
|
34558
|
+
var ShareCiphertextValidator2 = external_exports2.string().refine(
|
|
34559
|
+
(value) => {
|
|
34560
|
+
if (value.length > Math.ceil(MAX_SHARE_CIPHERTEXT_BYTES2 * 4 / 3)) return false;
|
|
34561
|
+
const decoded = decodeBase64Url2(value);
|
|
34562
|
+
if (decoded === null) return false;
|
|
34563
|
+
if (encodeBase64Url2(decoded) !== value) return false;
|
|
34564
|
+
return decoded.length >= SHARE_TAG_BYTES2 && decoded.length <= MAX_SHARE_CIPHERTEXT_BYTES2;
|
|
34565
|
+
},
|
|
34566
|
+
{
|
|
34567
|
+
message: `must be canonical base64url decoding to ${SHARE_TAG_BYTES2}..${MAX_SHARE_CIPHERTEXT_BYTES2} bytes`
|
|
34568
|
+
}
|
|
34569
|
+
);
|
|
34570
|
+
var ShareEnvelopeValidator2 = external_exports2.object({
|
|
34571
|
+
v: external_exports2.literal(1),
|
|
34572
|
+
alg: external_exports2.literal("A256GCM"),
|
|
34573
|
+
iv: ShareIvValidator2,
|
|
34574
|
+
ct: ShareCiphertextValidator2
|
|
34575
|
+
}).strict();
|
|
34576
|
+
var safeVersion2 = external_exports2.number().int().min(1).max(2 ** 31 - 1);
|
|
34577
|
+
var safeCredentialIndex2 = external_exports2.number().int().min(0).max(MAX_VP_MEMBERS2 - 1);
|
|
34578
|
+
var ShareSelectionEntryValidator2 = external_exports2.object({ credentialIndex: safeCredentialIndex2 }).strict();
|
|
34579
|
+
var ShareEndorsementEntryValidator2 = external_exports2.object({ credentialIndex: safeCredentialIndex2, targetCredentialIndex: safeCredentialIndex2 }).strict();
|
|
34580
|
+
var ShareSharerValidator2 = external_exports2.object({
|
|
34581
|
+
profileId: external_exports2.string().min(1).max(128),
|
|
34582
|
+
displayName: external_exports2.string().min(1).max(120),
|
|
34583
|
+
avatar: external_exports2.string().max(2048).optional()
|
|
34584
|
+
}).strict();
|
|
34585
|
+
var presentationShape2 = VPValidator2.extend({
|
|
34586
|
+
verifiableCredential: VCValidator2.array().min(1).max(MAX_VP_MEMBERS2)
|
|
34587
|
+
});
|
|
34588
|
+
var hasBoundedPresentation2 = /* @__PURE__ */ __name22((value) => {
|
|
34589
|
+
let credentialCount = 0;
|
|
34590
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
34591
|
+
const visit = /* @__PURE__ */ __name22((node, depth) => {
|
|
34592
|
+
if (node === null || typeof node !== "object") return true;
|
|
34593
|
+
if (depth > 32 || ancestors.has(node)) return false;
|
|
34594
|
+
ancestors.add(node);
|
|
34595
|
+
try {
|
|
34596
|
+
for (const [key, child] of Object.entries(node)) {
|
|
34597
|
+
if (key === "verifiableCredential") {
|
|
34598
|
+
credentialCount += Array.isArray(child) ? child.length : 1;
|
|
34599
|
+
if (credentialCount > MAX_VP_MEMBERS2) return false;
|
|
34600
|
+
}
|
|
34601
|
+
if (!visit(child, depth + 1)) return false;
|
|
34602
|
+
}
|
|
34603
|
+
return true;
|
|
34604
|
+
} finally {
|
|
34605
|
+
ancestors.delete(node);
|
|
34606
|
+
}
|
|
34607
|
+
}, "visit");
|
|
34608
|
+
return visit(value, 0);
|
|
34609
|
+
}, "hasBoundedPresentation");
|
|
34610
|
+
var ShareManifestPresentationValidator2 = external_exports2.custom(
|
|
34611
|
+
(value) => hasBoundedPresentation2(value) && presentationShape2.safeParse(value).success,
|
|
34612
|
+
{ message: "invalid share presentation" }
|
|
34613
|
+
);
|
|
34614
|
+
var SharePayloadValidatorShape2 = external_exports2.object({
|
|
34615
|
+
protocol: external_exports2.literal(SHARE_LINK_PROTOCOL2),
|
|
34616
|
+
shareId: ShareLinkIdValidator2,
|
|
34617
|
+
contentVersion: safeVersion2,
|
|
34618
|
+
createdAt: external_exports2.iso.datetime(),
|
|
34619
|
+
sharer: ShareSharerValidator2,
|
|
34620
|
+
presentation: ShareManifestPresentationValidator2,
|
|
34621
|
+
selection: ShareSelectionEntryValidator2.array().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34622
|
+
endorsements: ShareEndorsementEntryValidator2.array().max(MAX_ENDORSEMENTS2).default([])
|
|
34623
|
+
}).strict();
|
|
34624
|
+
var classificationFailure2 = /* @__PURE__ */ __name22((code, message, path = []) => ({ ok: false, code, message, path }), "classificationFailure");
|
|
34625
|
+
var readSignedClaimId2 = /* @__PURE__ */ __name22((member) => {
|
|
34626
|
+
if (member === null || typeof member !== "object") return void 0;
|
|
34627
|
+
const record22 = member;
|
|
34628
|
+
const claim = record22.credentialSubject ?? record22.endorsement;
|
|
34629
|
+
if (claim === null || typeof claim !== "object") return void 0;
|
|
34630
|
+
const claimRecord = claim;
|
|
34631
|
+
const nested = claimRecord.endorsement;
|
|
34632
|
+
const nestedId = nested !== null && typeof nested === "object" ? nested.id : void 0;
|
|
34633
|
+
return claimRecord.id ?? nestedId;
|
|
34634
|
+
}, "readSignedClaimId");
|
|
34635
|
+
var classifyShareManifest2 = /* @__PURE__ */ __name22((payload) => {
|
|
34636
|
+
const members = payload.presentation?.verifiableCredential;
|
|
34637
|
+
if (!Array.isArray(members) || members.length === 0) {
|
|
34638
|
+
return classificationFailure2("NO_PRESENTATION_MEMBERS", "presentation has no credentials");
|
|
34639
|
+
}
|
|
34640
|
+
if (members.length > MAX_VP_MEMBERS2) {
|
|
34641
|
+
return classificationFailure2(
|
|
34642
|
+
"TOO_MANY_VP_MEMBERS",
|
|
34643
|
+
`presentation has ${members.length} members, over the ${MAX_VP_MEMBERS2} bound`
|
|
34644
|
+
);
|
|
34645
|
+
}
|
|
34646
|
+
const selection = payload.selection;
|
|
34647
|
+
const endorsements = payload.endorsements ?? [];
|
|
34648
|
+
if (!Array.isArray(selection) || selection.length < 1 || selection.length > MAX_SELECTED_CREDENTIALS2) {
|
|
34649
|
+
return classificationFailure2("BAD_SELECTION", "selection must contain 1..50 entries");
|
|
34650
|
+
}
|
|
34651
|
+
if (!Array.isArray(endorsements) || endorsements.length > MAX_ENDORSEMENTS2) {
|
|
34652
|
+
return classificationFailure2(
|
|
34653
|
+
"BAD_ENDORSEMENTS",
|
|
34654
|
+
"endorsements must contain at most 200 entries"
|
|
34655
|
+
);
|
|
34656
|
+
}
|
|
34657
|
+
const selectedIndices = [];
|
|
34658
|
+
const selected = /* @__PURE__ */ new Set();
|
|
34659
|
+
for (let index = 0; index < selection.length; index += 1) {
|
|
34660
|
+
const entry = selection[index];
|
|
34661
|
+
const credentialIndex = entry?.credentialIndex;
|
|
34662
|
+
if (!Number.isSafeInteger(credentialIndex) || credentialIndex < 0 || credentialIndex >= members.length) {
|
|
34663
|
+
return classificationFailure2(
|
|
34664
|
+
"SELECTION_INDEX_OUT_OF_BOUNDS",
|
|
34665
|
+
`selection[${index}].credentialIndex is out of bounds`,
|
|
34666
|
+
["selection", index, "credentialIndex"]
|
|
34667
|
+
);
|
|
34668
|
+
}
|
|
34669
|
+
if (selected.has(credentialIndex)) {
|
|
34670
|
+
return classificationFailure2(
|
|
34671
|
+
"SELECTION_INDEX_DUPLICATE",
|
|
34672
|
+
`selection[${index}].credentialIndex is duplicated`,
|
|
34673
|
+
["selection", index, "credentialIndex"]
|
|
34674
|
+
);
|
|
34675
|
+
}
|
|
34676
|
+
selected.add(credentialIndex);
|
|
34677
|
+
selectedIndices.push(credentialIndex);
|
|
34678
|
+
}
|
|
34679
|
+
const classified = new Set(selected);
|
|
34680
|
+
const endorsementIndices = [];
|
|
34681
|
+
for (let index = 0; index < endorsements.length; index += 1) {
|
|
34682
|
+
const entry = endorsements[index];
|
|
34683
|
+
const credentialIndex = entry?.credentialIndex;
|
|
34684
|
+
const targetIndex = entry?.targetCredentialIndex;
|
|
34685
|
+
if (!Number.isSafeInteger(credentialIndex) || credentialIndex < 0 || credentialIndex >= members.length) {
|
|
34686
|
+
return classificationFailure2(
|
|
34687
|
+
"ENDORSEMENT_INDEX_OUT_OF_BOUNDS",
|
|
34688
|
+
`endorsements[${index}].credentialIndex is out of bounds`,
|
|
34689
|
+
["endorsements", index, "credentialIndex"]
|
|
34690
|
+
);
|
|
34691
|
+
}
|
|
34692
|
+
if (classified.has(credentialIndex)) {
|
|
34693
|
+
return classificationFailure2(
|
|
34694
|
+
"VP_MEMBER_CLASSIFIED_TWICE",
|
|
34695
|
+
`endorsements[${index}].credentialIndex was already classified`,
|
|
34696
|
+
["endorsements", index, "credentialIndex"]
|
|
34697
|
+
);
|
|
34698
|
+
}
|
|
34699
|
+
if (!selected.has(targetIndex)) {
|
|
34700
|
+
return classificationFailure2(
|
|
34701
|
+
"ENDORSEMENT_TARGET_NOT_SELECTED",
|
|
34702
|
+
`endorsements[${index}].targetCredentialIndex must reference a selected credential`,
|
|
34703
|
+
["endorsements", index, "targetCredentialIndex"]
|
|
34704
|
+
);
|
|
34705
|
+
}
|
|
34706
|
+
const referenced = readSignedClaimId2(members[credentialIndex]);
|
|
34707
|
+
const target = members[targetIndex];
|
|
34708
|
+
const targetId = target !== null && typeof target === "object" ? target.id : void 0;
|
|
34709
|
+
if (typeof referenced !== "string" || typeof targetId !== "string" || referenced !== targetId) {
|
|
34710
|
+
return classificationFailure2(
|
|
34711
|
+
"ENDORSEMENT_TARGET_UNBOUND",
|
|
34712
|
+
`endorsements[${index}] claim does not reference the target credential id`,
|
|
34713
|
+
["endorsements", index]
|
|
34714
|
+
);
|
|
34715
|
+
}
|
|
34716
|
+
classified.add(credentialIndex);
|
|
34717
|
+
endorsementIndices.push(credentialIndex);
|
|
34718
|
+
}
|
|
34719
|
+
if (classified.size !== members.length) {
|
|
34720
|
+
return classificationFailure2(
|
|
34721
|
+
"UNCLASSIFIED_VP_MEMBER",
|
|
34722
|
+
"every presentation member must be classified exactly once",
|
|
34723
|
+
["presentation", "verifiableCredential"]
|
|
34724
|
+
);
|
|
34725
|
+
}
|
|
34726
|
+
return {
|
|
34727
|
+
ok: true,
|
|
34728
|
+
classification: { selectedIndices, endorsementIndices, memberCount: members.length }
|
|
34729
|
+
};
|
|
34730
|
+
}, "classifyShareManifest");
|
|
34731
|
+
var SharePayloadValidator2 = SharePayloadValidatorShape2.superRefine((payload, ctx) => {
|
|
34732
|
+
const result = classifyShareManifest2(payload);
|
|
34733
|
+
if (!result.ok) {
|
|
34734
|
+
ctx.addIssue({
|
|
34735
|
+
code: "custom",
|
|
34736
|
+
message: result.message,
|
|
34737
|
+
path: result.path,
|
|
34738
|
+
params: { shareLinkCode: result.code }
|
|
34739
|
+
});
|
|
34740
|
+
}
|
|
34741
|
+
});
|
|
34742
|
+
var ShareRecoverySelectionValidator2 = external_exports2.object({
|
|
34743
|
+
ref: external_exports2.string().min(1).max(MAX_SHARE_SOURCE_URI_CHARS2),
|
|
34744
|
+
order: external_exports2.number().int().min(0).max(MAX_SELECTED_CREDENTIALS2 - 1)
|
|
34745
|
+
}).strict();
|
|
34746
|
+
var ShareRecoveryEndorsementValidator2 = external_exports2.object({ targetRef: external_exports2.string().min(1).max(MAX_SHARE_SOURCE_URI_CHARS2) }).strict();
|
|
34747
|
+
var ShareRecoveryPlaintextValidator2 = external_exports2.object({
|
|
34748
|
+
protocol: external_exports2.literal(SHARE_RECOVERY_PROTOCOL2),
|
|
34749
|
+
shareId: ShareLinkIdValidator2,
|
|
34750
|
+
ownerProfileId: external_exports2.string().min(1).max(128),
|
|
34751
|
+
createdAt: external_exports2.iso.datetime(),
|
|
34752
|
+
latest: external_exports2.object({ contentVersion: safeVersion2, key: ShareContentKeyValidator2 }).strict(),
|
|
34753
|
+
selection: ShareRecoverySelectionValidator2.array().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34754
|
+
endorsements: ShareRecoveryEndorsementValidator2.array().max(MAX_ENDORSEMENTS2).default([])
|
|
34755
|
+
}).strict().superRefine((recovery, ctx) => {
|
|
34756
|
+
const orders = /* @__PURE__ */ new Set();
|
|
34757
|
+
recovery.selection.forEach((entry, index) => {
|
|
34758
|
+
if (entry.order >= recovery.selection.length) {
|
|
34759
|
+
ctx.addIssue({
|
|
34760
|
+
code: "custom",
|
|
34761
|
+
message: "order must be within the selection bounds",
|
|
34762
|
+
path: ["selection", index, "order"]
|
|
34763
|
+
});
|
|
34764
|
+
}
|
|
34765
|
+
if (orders.has(entry.order)) {
|
|
34766
|
+
ctx.addIssue({
|
|
34767
|
+
code: "custom",
|
|
34768
|
+
message: "order must be unique within the selection",
|
|
34769
|
+
path: ["selection", index, "order"]
|
|
34770
|
+
});
|
|
34771
|
+
}
|
|
34772
|
+
orders.add(entry.order);
|
|
34773
|
+
});
|
|
34774
|
+
});
|
|
34775
|
+
var ShareOwnerRecoveryValidator2 = JWEValidator2.refine(
|
|
34776
|
+
(value) => utf8ByteLength2(JSON.stringify(value)) <= MAX_SHARE_RECOVERY_JWE_BYTES2,
|
|
34777
|
+
{ message: `serialized recovery JWE must be at most ${MAX_SHARE_RECOVERY_JWE_BYTES2} bytes` }
|
|
34778
|
+
);
|
|
34779
|
+
var ShareLinkStatusValidator2 = external_exports2.enum(["pending", "active", "stopped"]);
|
|
34780
|
+
var ShareContentStateValidator2 = external_exports2.enum(["staging", "finalized", "content_missing"]);
|
|
34781
|
+
var ShareLinkValidator2 = external_exports2.object({
|
|
34782
|
+
id: ShareLinkIdValidator2,
|
|
34783
|
+
title: external_exports2.string().min(1).max(120),
|
|
34784
|
+
note: external_exports2.string().max(500).optional(),
|
|
34785
|
+
selectedCount: external_exports2.number().int().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34786
|
+
version: safeVersion2,
|
|
34787
|
+
contentVersion: safeVersion2,
|
|
34788
|
+
status: ShareLinkStatusValidator2,
|
|
34789
|
+
contentState: ShareContentStateValidator2,
|
|
34790
|
+
createdAt: external_exports2.iso.datetime(),
|
|
34791
|
+
updatedAt: external_exports2.iso.datetime(),
|
|
34792
|
+
expiresAt: external_exports2.iso.datetime().nullable(),
|
|
34793
|
+
stoppedAt: external_exports2.iso.datetime().nullable(),
|
|
34794
|
+
lastViewedAt: external_exports2.iso.datetime().nullable(),
|
|
34795
|
+
viewCount: external_exports2.number().int().min(0).optional(),
|
|
34796
|
+
passcodeProtected: external_exports2.boolean(),
|
|
34797
|
+
notifyOnView: external_exports2.boolean(),
|
|
34798
|
+
minorPolicy: external_exports2.object({
|
|
34799
|
+
isMinor: external_exports2.boolean().nullable(),
|
|
34800
|
+
policyResolved: external_exports2.boolean(),
|
|
34801
|
+
defaultExpiryDays: external_exports2.union([external_exports2.literal(30), external_exports2.literal(365)]),
|
|
34802
|
+
viewCountingEnabled: external_exports2.boolean()
|
|
34803
|
+
}),
|
|
34804
|
+
/**
|
|
34805
|
+
* Guarded application/API URL for the content. Optional because owner APIs in
|
|
34806
|
+
* D1 have no public resolve/content endpoint yet; it must never be a
|
|
34807
|
+
* LearnCloud object URL or carry a fabricated decryption key.
|
|
34808
|
+
*/
|
|
34809
|
+
contentUrl: external_exports2.string().optional()
|
|
34810
|
+
});
|
|
34811
|
+
var clientRequestId2 = external_exports2.string().uuid();
|
|
34812
|
+
var CreateShareLinkInputValidator2 = external_exports2.object({
|
|
34813
|
+
id: ShareLinkIdValidator2,
|
|
34814
|
+
clientRequestId: clientRequestId2,
|
|
34815
|
+
title: external_exports2.string().min(1).max(120),
|
|
34816
|
+
note: external_exports2.string().max(500).optional(),
|
|
34817
|
+
expiresAt: external_exports2.iso.datetime().nullable().optional(),
|
|
34818
|
+
passcode: external_exports2.string().min(8).max(64).optional(),
|
|
34819
|
+
notifyOnView: external_exports2.boolean().default(false),
|
|
34820
|
+
selectedCount: external_exports2.number().int().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34821
|
+
contentVersion: external_exports2.literal(1),
|
|
34822
|
+
envelope: ShareEnvelopeValidator2,
|
|
34823
|
+
ownerEncryptedRecovery: ShareOwnerRecoveryValidator2
|
|
34824
|
+
}).strict();
|
|
34825
|
+
var UpdateShareLinkInputValidator2 = external_exports2.object({
|
|
34826
|
+
id: ShareLinkIdValidator2,
|
|
34827
|
+
expectedVersion: safeVersion2,
|
|
34828
|
+
clientRequestId: clientRequestId2,
|
|
34829
|
+
title: external_exports2.string().min(1).max(120).optional(),
|
|
34830
|
+
note: external_exports2.string().max(500).nullable().optional(),
|
|
34831
|
+
expiresAt: external_exports2.iso.datetime().nullable().optional(),
|
|
34832
|
+
/** Omitted preserves the current passcode, null removes it, and a string replaces it. */
|
|
34833
|
+
passcode: external_exports2.string().min(8).max(64).nullable().optional(),
|
|
34834
|
+
notifyOnView: external_exports2.boolean().optional(),
|
|
34835
|
+
contentVersion: safeVersion2.optional(),
|
|
34836
|
+
selectedCount: external_exports2.number().int().min(1).max(MAX_SELECTED_CREDENTIALS2).optional(),
|
|
34837
|
+
envelope: ShareEnvelopeValidator2.optional(),
|
|
34838
|
+
ownerEncryptedRecovery: ShareOwnerRecoveryValidator2.optional()
|
|
34839
|
+
}).strict().superRefine((value, ctx) => {
|
|
34840
|
+
const provided = [
|
|
34841
|
+
value.contentVersion,
|
|
34842
|
+
value.selectedCount,
|
|
34843
|
+
value.envelope,
|
|
34844
|
+
value.ownerEncryptedRecovery
|
|
34845
|
+
].filter((field) => field !== void 0).length;
|
|
34846
|
+
if (provided !== 0 && provided !== 4) {
|
|
34847
|
+
ctx.addIssue({
|
|
34848
|
+
code: "custom",
|
|
34849
|
+
message: "content replacement requires contentVersion, selectedCount, envelope and ownerEncryptedRecovery together"
|
|
34850
|
+
});
|
|
34851
|
+
}
|
|
34852
|
+
});
|
|
34853
|
+
var ShareLinkIdInputValidator2 = external_exports2.object({ id: ShareLinkIdValidator2 }).strict();
|
|
34854
|
+
var ShareLinkOperationKeyInputValidator2 = external_exports2.object({ id: ShareLinkIdValidator2, operationId: external_exports2.string().uuid() }).strict();
|
|
34855
|
+
var ShareLinkOwnerCommitOutputValidator2 = external_exports2.discriminatedUnion("status", [
|
|
34856
|
+
external_exports2.object({ status: external_exports2.literal("completed"), share: ShareLinkValidator2 }).strict(),
|
|
34857
|
+
external_exports2.object({
|
|
34858
|
+
status: external_exports2.literal("pending"),
|
|
34859
|
+
id: ShareLinkIdValidator2,
|
|
34860
|
+
operationId: external_exports2.string().uuid()
|
|
34861
|
+
}).strict()
|
|
34862
|
+
]);
|
|
34863
|
+
var ShareLinkOwnerStatusOutputValidator2 = external_exports2.discriminatedUnion("status", [
|
|
34864
|
+
external_exports2.object({ status: external_exports2.literal("found"), share: ShareLinkValidator2 }).strict(),
|
|
34865
|
+
external_exports2.object({
|
|
34866
|
+
status: external_exports2.literal("pending"),
|
|
34867
|
+
id: ShareLinkIdValidator2,
|
|
34868
|
+
operationId: external_exports2.string().uuid()
|
|
34869
|
+
}).strict(),
|
|
34870
|
+
external_exports2.object({ status: external_exports2.literal("not_found"), id: ShareLinkIdValidator2 }).strict()
|
|
34871
|
+
]);
|
|
34872
|
+
var ShareLinkOwnerRecoveryOutputValidator2 = external_exports2.object({ recovery: ShareOwnerRecoveryValidator2 }).strict();
|
|
34873
|
+
var ShareLinkOwnerContentOutputValidator2 = external_exports2.object({
|
|
34874
|
+
id: ShareLinkIdValidator2,
|
|
34875
|
+
contentVersion: safeVersion2,
|
|
34876
|
+
envelope: ShareEnvelopeValidator2
|
|
34877
|
+
}).strict();
|
|
34878
|
+
var ResolveShareLinkInputValidator2 = external_exports2.object({
|
|
34879
|
+
id: ShareLinkIdValidator2,
|
|
34880
|
+
/** Sent only in a POST body; it must never be placed in a share URL. */
|
|
34881
|
+
passcode: external_exports2.string().min(4).max(64).optional()
|
|
34882
|
+
}).strict();
|
|
34883
|
+
var ShareLinkPublicStateValidator2 = external_exports2.discriminatedUnion("state", [
|
|
34884
|
+
external_exports2.object({
|
|
34885
|
+
state: external_exports2.literal("passcode_required"),
|
|
34886
|
+
id: ShareLinkIdValidator2
|
|
34887
|
+
}).strict(),
|
|
34888
|
+
external_exports2.object({ state: external_exports2.literal("try_later"), id: ShareLinkIdValidator2 }).strict(),
|
|
34889
|
+
external_exports2.object({
|
|
34890
|
+
state: external_exports2.literal("active"),
|
|
34891
|
+
id: ShareLinkIdValidator2,
|
|
34892
|
+
title: external_exports2.string().max(120),
|
|
34893
|
+
note: external_exports2.string().max(500).optional(),
|
|
34894
|
+
selectedCount: external_exports2.number().int().min(1).max(MAX_SELECTED_CREDENTIALS2),
|
|
34895
|
+
contentVersion: safeVersion2,
|
|
34896
|
+
contentUrl: external_exports2.string(),
|
|
34897
|
+
sharer: external_exports2.object({
|
|
34898
|
+
displayName: external_exports2.string().max(120),
|
|
34899
|
+
avatar: external_exports2.string().max(2048).optional()
|
|
34900
|
+
}),
|
|
34901
|
+
createdAt: external_exports2.iso.datetime(),
|
|
34902
|
+
updatedAt: external_exports2.iso.datetime(),
|
|
34903
|
+
expiresAt: external_exports2.iso.datetime().nullable()
|
|
34904
|
+
}).strict(),
|
|
34905
|
+
external_exports2.object({
|
|
34906
|
+
state: external_exports2.literal("expired"),
|
|
34907
|
+
id: ShareLinkIdValidator2,
|
|
34908
|
+
expiresAt: external_exports2.iso.datetime()
|
|
34909
|
+
}).strict(),
|
|
34910
|
+
external_exports2.object({
|
|
34911
|
+
state: external_exports2.literal("stopped"),
|
|
34912
|
+
id: ShareLinkIdValidator2,
|
|
34913
|
+
stoppedAt: external_exports2.iso.datetime()
|
|
34914
|
+
}).strict(),
|
|
34915
|
+
external_exports2.object({ state: external_exports2.literal("not_found"), id: ShareLinkIdValidator2 }).strict()
|
|
34916
|
+
]);
|
|
34917
|
+
var ListShareLinksInputValidator2 = external_exports2.object({
|
|
34918
|
+
limit: external_exports2.number().int().min(1).max(50).default(25),
|
|
34919
|
+
cursor: external_exports2.string().max(512).optional()
|
|
34920
|
+
}).strict();
|
|
34921
|
+
var PaginatedShareLinksValidator2 = PaginationResponseValidator2.extend({
|
|
34922
|
+
records: ShareLinkValidator2.array()
|
|
34923
|
+
});
|
|
34924
|
+
var AcknowledgeViewInputValidator2 = external_exports2.object({
|
|
34925
|
+
receipt: external_exports2.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/)
|
|
34926
|
+
}).strict();
|
|
34927
|
+
var AcknowledgeViewOutputValidator2 = external_exports2.object({ ok: external_exports2.literal(true) }).strict();
|
|
34928
|
+
var SHARE_VIEW_RECEIPT_TTL_SECONDS2 = 10 * 60;
|
|
34929
|
+
var ShareLinkPublicContentViewValidator2 = external_exports2.object({
|
|
34930
|
+
id: ShareLinkIdValidator2,
|
|
34931
|
+
contentVersion: safeVersion2,
|
|
34932
|
+
envelope: ShareEnvelopeValidator2,
|
|
34933
|
+
contentUrl: external_exports2.string(),
|
|
34934
|
+
receipt: external_exports2.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/)
|
|
34935
|
+
}).strict();
|
|
34415
34936
|
}
|
|
34416
34937
|
});
|
|
34417
34938
|
var require_dist = __commonJS({
|
|
@@ -34745,6 +35266,15 @@ var optionalEnvironmentPort = external_exports.preprocess(
|
|
|
34745
35266
|
(value) => value === "" || value === void 0 ? void 0 : value,
|
|
34746
35267
|
environmentPort.optional()
|
|
34747
35268
|
);
|
|
35269
|
+
var DEFAULT_MAX_CANONICAL_BYTES = 2 * 1024 * 1024;
|
|
35270
|
+
var _a5;
|
|
35271
|
+
var ShareContentCanonicalizationError = (_a5 = class extends Error {
|
|
35272
|
+
constructor(message) {
|
|
35273
|
+
super(message);
|
|
35274
|
+
this.code = "UNSUPPORTED_REQUEST_VALUE";
|
|
35275
|
+
this.name = "ShareContentCanonicalizationError";
|
|
35276
|
+
}
|
|
35277
|
+
}, __name(_a5, "ShareContentCanonicalizationError"), __name2(_a5, "ShareContentCanonicalizationError"), _a5);
|
|
34748
35278
|
var unwrapBoostCredential = /* @__PURE__ */ __name2((vc) => {
|
|
34749
35279
|
if (vc?.type?.includes("CertifiedBoostCredential") && vc?.boostCredential) {
|
|
34750
35280
|
return vc.boostCredential;
|
|
@@ -37110,14 +37640,20 @@ var CredentialActivityStatsValidator = external_exports.object({
|
|
|
37110
37640
|
failed: external_exports.number(),
|
|
37111
37641
|
claimRate: external_exports.number()
|
|
37112
37642
|
});
|
|
37113
|
-
var
|
|
37114
|
-
var AuthSessionError = (
|
|
37643
|
+
var _a6;
|
|
37644
|
+
var AuthSessionError = (_a6 = class extends Error {
|
|
37115
37645
|
constructor(message, reason) {
|
|
37116
37646
|
super(message);
|
|
37117
37647
|
this.reason = reason;
|
|
37118
37648
|
this.name = "AuthSessionError";
|
|
37119
37649
|
}
|
|
37120
|
-
}, __name(
|
|
37650
|
+
}, __name(_a6, "AuthSessionError"), __name3(_a6, "AuthSessionError"), _a6);
|
|
37651
|
+
var EscrowPinStatusValidator = external_exports.object({
|
|
37652
|
+
state: external_exports.enum(["none", "enabled", "locked", "stale"]),
|
|
37653
|
+
enabled: external_exports.boolean(),
|
|
37654
|
+
attemptsRemaining: external_exports.number().int().nonnegative(),
|
|
37655
|
+
salt: external_exports.string().optional()
|
|
37656
|
+
});
|
|
37121
37657
|
var BITSTRING_STATUS_PURPOSES = ["revocation", "suspension"];
|
|
37122
37658
|
var BitstringStatusPurposeValidator = external_exports.enum(BITSTRING_STATUS_PURPOSES);
|
|
37123
37659
|
var BitstringStatusListEntryValidator = external_exports.object({
|
|
@@ -37226,6 +37762,456 @@ var inAppMessagesFlagValidator = external_exports.object({
|
|
|
37226
37762
|
version: external_exports.number().default(1),
|
|
37227
37763
|
messages: external_exports.array(inAppMessageValidator).default([])
|
|
37228
37764
|
}).passthrough();
|
|
37765
|
+
var SHARE_LINK_ID_BYTES = 16;
|
|
37766
|
+
var SHARE_CONTENT_KEY_BYTES = 32;
|
|
37767
|
+
var SHARE_IV_BYTES = 12;
|
|
37768
|
+
var SHARE_TAG_BYTES = 16;
|
|
37769
|
+
var MAX_SHARE_CIPHERTEXT_BYTES = 512 * 1024;
|
|
37770
|
+
var MAX_SHARE_RECOVERY_JWE_BYTES = 64 * 1024;
|
|
37771
|
+
var MAX_SELECTED_CREDENTIALS = 50;
|
|
37772
|
+
var MAX_ENDORSEMENTS = 200;
|
|
37773
|
+
var MAX_VP_MEMBERS = MAX_SELECTED_CREDENTIALS + MAX_ENDORSEMENTS;
|
|
37774
|
+
var MAX_SHARE_SOURCE_URI_CHARS = 2048;
|
|
37775
|
+
var MAX_SHARE_LINK_REQUEST_BYTES = 1024 * 1024;
|
|
37776
|
+
var SHARE_LINK_PROTOCOL = "lc-share/v1";
|
|
37777
|
+
var SHARE_RECOVERY_PROTOCOL = "lc-share-recovery/v1";
|
|
37778
|
+
var BASE64URL_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
|
|
37779
|
+
var BASE64URL_LOOKUP = (() => {
|
|
37780
|
+
const table = new Int16Array(128).fill(-1);
|
|
37781
|
+
for (let index = 0; index < BASE64URL_ALPHABET.length; index += 1) {
|
|
37782
|
+
table[BASE64URL_ALPHABET.charCodeAt(index)] = index;
|
|
37783
|
+
}
|
|
37784
|
+
return table;
|
|
37785
|
+
})();
|
|
37786
|
+
var encodeBase64Url = /* @__PURE__ */ __name3((bytes) => {
|
|
37787
|
+
let output = "";
|
|
37788
|
+
for (let index = 0; index < bytes.length; index += 3) {
|
|
37789
|
+
const first = bytes[index];
|
|
37790
|
+
const second = bytes[index + 1];
|
|
37791
|
+
const third = bytes[index + 2];
|
|
37792
|
+
output += BASE64URL_ALPHABET[first >> 2];
|
|
37793
|
+
output += BASE64URL_ALPHABET[(first & 3) << 4 | (second ?? 0) >> 4];
|
|
37794
|
+
if (second === void 0) break;
|
|
37795
|
+
output += BASE64URL_ALPHABET[(second & 15) << 2 | (third ?? 0) >> 6];
|
|
37796
|
+
if (third === void 0) break;
|
|
37797
|
+
output += BASE64URL_ALPHABET[third & 63];
|
|
37798
|
+
}
|
|
37799
|
+
return output;
|
|
37800
|
+
}, "encodeBase64Url");
|
|
37801
|
+
var decodeBase64Url = /* @__PURE__ */ __name3((value) => {
|
|
37802
|
+
if (typeof value !== "string") return null;
|
|
37803
|
+
const output = new Uint8Array(Math.floor(value.length * 6 / 8));
|
|
37804
|
+
let bits = 0;
|
|
37805
|
+
let bitCount = 0;
|
|
37806
|
+
let outputIndex = 0;
|
|
37807
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
37808
|
+
const code = value.charCodeAt(index);
|
|
37809
|
+
const digit = code < 128 ? BASE64URL_LOOKUP[code] : -1;
|
|
37810
|
+
if (digit < 0) return null;
|
|
37811
|
+
bits = bits << 6 | digit;
|
|
37812
|
+
bitCount += 6;
|
|
37813
|
+
if (bitCount >= 8) {
|
|
37814
|
+
bitCount -= 8;
|
|
37815
|
+
output[outputIndex] = bits >> bitCount & 255;
|
|
37816
|
+
outputIndex += 1;
|
|
37817
|
+
}
|
|
37818
|
+
}
|
|
37819
|
+
return output;
|
|
37820
|
+
}, "decodeBase64Url");
|
|
37821
|
+
var isCanonicalBase64Url = /* @__PURE__ */ __name3((value, expectedBytes) => {
|
|
37822
|
+
if (typeof value !== "string") return false;
|
|
37823
|
+
if (expectedBytes !== void 0 && value.length !== Math.ceil(expectedBytes * 4 / 3))
|
|
37824
|
+
return false;
|
|
37825
|
+
const decoded = decodeBase64Url(value);
|
|
37826
|
+
if (decoded === null) return false;
|
|
37827
|
+
if (expectedBytes !== void 0 && decoded.length !== expectedBytes) return false;
|
|
37828
|
+
return encodeBase64Url(decoded) === value;
|
|
37829
|
+
}, "isCanonicalBase64Url");
|
|
37830
|
+
var utf8ByteLength = /* @__PURE__ */ __name3((value) => new TextEncoder().encode(value).length, "utf8ByteLength");
|
|
37831
|
+
var canonicalBase64Url = /* @__PURE__ */ __name3((bytes) => external_exports.string().refine((value) => isCanonicalBase64Url(value, bytes), {
|
|
37832
|
+
message: `must be canonical base64url for exactly ${bytes} bytes`
|
|
37833
|
+
}), "canonicalBase64Url");
|
|
37834
|
+
var ShareLinkIdValidator = canonicalBase64Url(SHARE_LINK_ID_BYTES);
|
|
37835
|
+
var ShareContentKeyValidator = canonicalBase64Url(SHARE_CONTENT_KEY_BYTES);
|
|
37836
|
+
var ShareIvValidator = canonicalBase64Url(SHARE_IV_BYTES);
|
|
37837
|
+
var ShareCiphertextValidator = external_exports.string().refine(
|
|
37838
|
+
(value) => {
|
|
37839
|
+
if (value.length > Math.ceil(MAX_SHARE_CIPHERTEXT_BYTES * 4 / 3)) return false;
|
|
37840
|
+
const decoded = decodeBase64Url(value);
|
|
37841
|
+
if (decoded === null) return false;
|
|
37842
|
+
if (encodeBase64Url(decoded) !== value) return false;
|
|
37843
|
+
return decoded.length >= SHARE_TAG_BYTES && decoded.length <= MAX_SHARE_CIPHERTEXT_BYTES;
|
|
37844
|
+
},
|
|
37845
|
+
{
|
|
37846
|
+
message: `must be canonical base64url decoding to ${SHARE_TAG_BYTES}..${MAX_SHARE_CIPHERTEXT_BYTES} bytes`
|
|
37847
|
+
}
|
|
37848
|
+
);
|
|
37849
|
+
var ShareEnvelopeValidator = external_exports.object({
|
|
37850
|
+
v: external_exports.literal(1),
|
|
37851
|
+
alg: external_exports.literal("A256GCM"),
|
|
37852
|
+
iv: ShareIvValidator,
|
|
37853
|
+
ct: ShareCiphertextValidator
|
|
37854
|
+
}).strict();
|
|
37855
|
+
var safeVersion = external_exports.number().int().min(1).max(2 ** 31 - 1);
|
|
37856
|
+
var safeCredentialIndex = external_exports.number().int().min(0).max(MAX_VP_MEMBERS - 1);
|
|
37857
|
+
var ShareSelectionEntryValidator = external_exports.object({ credentialIndex: safeCredentialIndex }).strict();
|
|
37858
|
+
var ShareEndorsementEntryValidator = external_exports.object({ credentialIndex: safeCredentialIndex, targetCredentialIndex: safeCredentialIndex }).strict();
|
|
37859
|
+
var ShareSharerValidator = external_exports.object({
|
|
37860
|
+
profileId: external_exports.string().min(1).max(128),
|
|
37861
|
+
displayName: external_exports.string().min(1).max(120),
|
|
37862
|
+
avatar: external_exports.string().max(2048).optional()
|
|
37863
|
+
}).strict();
|
|
37864
|
+
var presentationShape = VPValidator.extend({
|
|
37865
|
+
verifiableCredential: VCValidator.array().min(1).max(MAX_VP_MEMBERS)
|
|
37866
|
+
});
|
|
37867
|
+
var hasBoundedPresentation = /* @__PURE__ */ __name3((value) => {
|
|
37868
|
+
let credentialCount = 0;
|
|
37869
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
37870
|
+
const visit = /* @__PURE__ */ __name3((node, depth) => {
|
|
37871
|
+
if (node === null || typeof node !== "object") return true;
|
|
37872
|
+
if (depth > 32 || ancestors.has(node)) return false;
|
|
37873
|
+
ancestors.add(node);
|
|
37874
|
+
try {
|
|
37875
|
+
for (const [key, child] of Object.entries(node)) {
|
|
37876
|
+
if (key === "verifiableCredential") {
|
|
37877
|
+
credentialCount += Array.isArray(child) ? child.length : 1;
|
|
37878
|
+
if (credentialCount > MAX_VP_MEMBERS) return false;
|
|
37879
|
+
}
|
|
37880
|
+
if (!visit(child, depth + 1)) return false;
|
|
37881
|
+
}
|
|
37882
|
+
return true;
|
|
37883
|
+
} finally {
|
|
37884
|
+
ancestors.delete(node);
|
|
37885
|
+
}
|
|
37886
|
+
}, "visit");
|
|
37887
|
+
return visit(value, 0);
|
|
37888
|
+
}, "hasBoundedPresentation");
|
|
37889
|
+
var ShareManifestPresentationValidator = external_exports.custom(
|
|
37890
|
+
(value) => hasBoundedPresentation(value) && presentationShape.safeParse(value).success,
|
|
37891
|
+
{ message: "invalid share presentation" }
|
|
37892
|
+
);
|
|
37893
|
+
var SharePayloadValidatorShape = external_exports.object({
|
|
37894
|
+
protocol: external_exports.literal(SHARE_LINK_PROTOCOL),
|
|
37895
|
+
shareId: ShareLinkIdValidator,
|
|
37896
|
+
contentVersion: safeVersion,
|
|
37897
|
+
createdAt: external_exports.iso.datetime(),
|
|
37898
|
+
sharer: ShareSharerValidator,
|
|
37899
|
+
presentation: ShareManifestPresentationValidator,
|
|
37900
|
+
selection: ShareSelectionEntryValidator.array().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
37901
|
+
endorsements: ShareEndorsementEntryValidator.array().max(MAX_ENDORSEMENTS).default([])
|
|
37902
|
+
}).strict();
|
|
37903
|
+
var classificationFailure = /* @__PURE__ */ __name3((code, message, path = []) => ({ ok: false, code, message, path }), "classificationFailure");
|
|
37904
|
+
var readSignedClaimId = /* @__PURE__ */ __name3((member) => {
|
|
37905
|
+
if (member === null || typeof member !== "object") return void 0;
|
|
37906
|
+
const record2 = member;
|
|
37907
|
+
const claim = record2.credentialSubject ?? record2.endorsement;
|
|
37908
|
+
if (claim === null || typeof claim !== "object") return void 0;
|
|
37909
|
+
const claimRecord = claim;
|
|
37910
|
+
const nested = claimRecord.endorsement;
|
|
37911
|
+
const nestedId = nested !== null && typeof nested === "object" ? nested.id : void 0;
|
|
37912
|
+
return claimRecord.id ?? nestedId;
|
|
37913
|
+
}, "readSignedClaimId");
|
|
37914
|
+
var classifyShareManifest = /* @__PURE__ */ __name3((payload) => {
|
|
37915
|
+
const members = payload.presentation?.verifiableCredential;
|
|
37916
|
+
if (!Array.isArray(members) || members.length === 0) {
|
|
37917
|
+
return classificationFailure("NO_PRESENTATION_MEMBERS", "presentation has no credentials");
|
|
37918
|
+
}
|
|
37919
|
+
if (members.length > MAX_VP_MEMBERS) {
|
|
37920
|
+
return classificationFailure(
|
|
37921
|
+
"TOO_MANY_VP_MEMBERS",
|
|
37922
|
+
`presentation has ${members.length} members, over the ${MAX_VP_MEMBERS} bound`
|
|
37923
|
+
);
|
|
37924
|
+
}
|
|
37925
|
+
const selection = payload.selection;
|
|
37926
|
+
const endorsements = payload.endorsements ?? [];
|
|
37927
|
+
if (!Array.isArray(selection) || selection.length < 1 || selection.length > MAX_SELECTED_CREDENTIALS) {
|
|
37928
|
+
return classificationFailure("BAD_SELECTION", "selection must contain 1..50 entries");
|
|
37929
|
+
}
|
|
37930
|
+
if (!Array.isArray(endorsements) || endorsements.length > MAX_ENDORSEMENTS) {
|
|
37931
|
+
return classificationFailure(
|
|
37932
|
+
"BAD_ENDORSEMENTS",
|
|
37933
|
+
"endorsements must contain at most 200 entries"
|
|
37934
|
+
);
|
|
37935
|
+
}
|
|
37936
|
+
const selectedIndices = [];
|
|
37937
|
+
const selected = /* @__PURE__ */ new Set();
|
|
37938
|
+
for (let index = 0; index < selection.length; index += 1) {
|
|
37939
|
+
const entry = selection[index];
|
|
37940
|
+
const credentialIndex = entry?.credentialIndex;
|
|
37941
|
+
if (!Number.isSafeInteger(credentialIndex) || credentialIndex < 0 || credentialIndex >= members.length) {
|
|
37942
|
+
return classificationFailure(
|
|
37943
|
+
"SELECTION_INDEX_OUT_OF_BOUNDS",
|
|
37944
|
+
`selection[${index}].credentialIndex is out of bounds`,
|
|
37945
|
+
["selection", index, "credentialIndex"]
|
|
37946
|
+
);
|
|
37947
|
+
}
|
|
37948
|
+
if (selected.has(credentialIndex)) {
|
|
37949
|
+
return classificationFailure(
|
|
37950
|
+
"SELECTION_INDEX_DUPLICATE",
|
|
37951
|
+
`selection[${index}].credentialIndex is duplicated`,
|
|
37952
|
+
["selection", index, "credentialIndex"]
|
|
37953
|
+
);
|
|
37954
|
+
}
|
|
37955
|
+
selected.add(credentialIndex);
|
|
37956
|
+
selectedIndices.push(credentialIndex);
|
|
37957
|
+
}
|
|
37958
|
+
const classified = new Set(selected);
|
|
37959
|
+
const endorsementIndices = [];
|
|
37960
|
+
for (let index = 0; index < endorsements.length; index += 1) {
|
|
37961
|
+
const entry = endorsements[index];
|
|
37962
|
+
const credentialIndex = entry?.credentialIndex;
|
|
37963
|
+
const targetIndex = entry?.targetCredentialIndex;
|
|
37964
|
+
if (!Number.isSafeInteger(credentialIndex) || credentialIndex < 0 || credentialIndex >= members.length) {
|
|
37965
|
+
return classificationFailure(
|
|
37966
|
+
"ENDORSEMENT_INDEX_OUT_OF_BOUNDS",
|
|
37967
|
+
`endorsements[${index}].credentialIndex is out of bounds`,
|
|
37968
|
+
["endorsements", index, "credentialIndex"]
|
|
37969
|
+
);
|
|
37970
|
+
}
|
|
37971
|
+
if (classified.has(credentialIndex)) {
|
|
37972
|
+
return classificationFailure(
|
|
37973
|
+
"VP_MEMBER_CLASSIFIED_TWICE",
|
|
37974
|
+
`endorsements[${index}].credentialIndex was already classified`,
|
|
37975
|
+
["endorsements", index, "credentialIndex"]
|
|
37976
|
+
);
|
|
37977
|
+
}
|
|
37978
|
+
if (!selected.has(targetIndex)) {
|
|
37979
|
+
return classificationFailure(
|
|
37980
|
+
"ENDORSEMENT_TARGET_NOT_SELECTED",
|
|
37981
|
+
`endorsements[${index}].targetCredentialIndex must reference a selected credential`,
|
|
37982
|
+
["endorsements", index, "targetCredentialIndex"]
|
|
37983
|
+
);
|
|
37984
|
+
}
|
|
37985
|
+
const referenced = readSignedClaimId(members[credentialIndex]);
|
|
37986
|
+
const target = members[targetIndex];
|
|
37987
|
+
const targetId = target !== null && typeof target === "object" ? target.id : void 0;
|
|
37988
|
+
if (typeof referenced !== "string" || typeof targetId !== "string" || referenced !== targetId) {
|
|
37989
|
+
return classificationFailure(
|
|
37990
|
+
"ENDORSEMENT_TARGET_UNBOUND",
|
|
37991
|
+
`endorsements[${index}] claim does not reference the target credential id`,
|
|
37992
|
+
["endorsements", index]
|
|
37993
|
+
);
|
|
37994
|
+
}
|
|
37995
|
+
classified.add(credentialIndex);
|
|
37996
|
+
endorsementIndices.push(credentialIndex);
|
|
37997
|
+
}
|
|
37998
|
+
if (classified.size !== members.length) {
|
|
37999
|
+
return classificationFailure(
|
|
38000
|
+
"UNCLASSIFIED_VP_MEMBER",
|
|
38001
|
+
"every presentation member must be classified exactly once",
|
|
38002
|
+
["presentation", "verifiableCredential"]
|
|
38003
|
+
);
|
|
38004
|
+
}
|
|
38005
|
+
return {
|
|
38006
|
+
ok: true,
|
|
38007
|
+
classification: { selectedIndices, endorsementIndices, memberCount: members.length }
|
|
38008
|
+
};
|
|
38009
|
+
}, "classifyShareManifest");
|
|
38010
|
+
var SharePayloadValidator = SharePayloadValidatorShape.superRefine((payload, ctx) => {
|
|
38011
|
+
const result = classifyShareManifest(payload);
|
|
38012
|
+
if (!result.ok) {
|
|
38013
|
+
ctx.addIssue({
|
|
38014
|
+
code: "custom",
|
|
38015
|
+
message: result.message,
|
|
38016
|
+
path: result.path,
|
|
38017
|
+
params: { shareLinkCode: result.code }
|
|
38018
|
+
});
|
|
38019
|
+
}
|
|
38020
|
+
});
|
|
38021
|
+
var ShareRecoverySelectionValidator = external_exports.object({
|
|
38022
|
+
ref: external_exports.string().min(1).max(MAX_SHARE_SOURCE_URI_CHARS),
|
|
38023
|
+
order: external_exports.number().int().min(0).max(MAX_SELECTED_CREDENTIALS - 1)
|
|
38024
|
+
}).strict();
|
|
38025
|
+
var ShareRecoveryEndorsementValidator = external_exports.object({ targetRef: external_exports.string().min(1).max(MAX_SHARE_SOURCE_URI_CHARS) }).strict();
|
|
38026
|
+
var ShareRecoveryPlaintextValidator = external_exports.object({
|
|
38027
|
+
protocol: external_exports.literal(SHARE_RECOVERY_PROTOCOL),
|
|
38028
|
+
shareId: ShareLinkIdValidator,
|
|
38029
|
+
ownerProfileId: external_exports.string().min(1).max(128),
|
|
38030
|
+
createdAt: external_exports.iso.datetime(),
|
|
38031
|
+
latest: external_exports.object({ contentVersion: safeVersion, key: ShareContentKeyValidator }).strict(),
|
|
38032
|
+
selection: ShareRecoverySelectionValidator.array().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
38033
|
+
endorsements: ShareRecoveryEndorsementValidator.array().max(MAX_ENDORSEMENTS).default([])
|
|
38034
|
+
}).strict().superRefine((recovery, ctx) => {
|
|
38035
|
+
const orders = /* @__PURE__ */ new Set();
|
|
38036
|
+
recovery.selection.forEach((entry, index) => {
|
|
38037
|
+
if (entry.order >= recovery.selection.length) {
|
|
38038
|
+
ctx.addIssue({
|
|
38039
|
+
code: "custom",
|
|
38040
|
+
message: "order must be within the selection bounds",
|
|
38041
|
+
path: ["selection", index, "order"]
|
|
38042
|
+
});
|
|
38043
|
+
}
|
|
38044
|
+
if (orders.has(entry.order)) {
|
|
38045
|
+
ctx.addIssue({
|
|
38046
|
+
code: "custom",
|
|
38047
|
+
message: "order must be unique within the selection",
|
|
38048
|
+
path: ["selection", index, "order"]
|
|
38049
|
+
});
|
|
38050
|
+
}
|
|
38051
|
+
orders.add(entry.order);
|
|
38052
|
+
});
|
|
38053
|
+
});
|
|
38054
|
+
var ShareOwnerRecoveryValidator = JWEValidator.refine(
|
|
38055
|
+
(value) => utf8ByteLength(JSON.stringify(value)) <= MAX_SHARE_RECOVERY_JWE_BYTES,
|
|
38056
|
+
{ message: `serialized recovery JWE must be at most ${MAX_SHARE_RECOVERY_JWE_BYTES} bytes` }
|
|
38057
|
+
);
|
|
38058
|
+
var ShareLinkStatusValidator = external_exports.enum(["pending", "active", "stopped"]);
|
|
38059
|
+
var ShareContentStateValidator = external_exports.enum(["staging", "finalized", "content_missing"]);
|
|
38060
|
+
var ShareLinkValidator = external_exports.object({
|
|
38061
|
+
id: ShareLinkIdValidator,
|
|
38062
|
+
title: external_exports.string().min(1).max(120),
|
|
38063
|
+
note: external_exports.string().max(500).optional(),
|
|
38064
|
+
selectedCount: external_exports.number().int().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
38065
|
+
version: safeVersion,
|
|
38066
|
+
contentVersion: safeVersion,
|
|
38067
|
+
status: ShareLinkStatusValidator,
|
|
38068
|
+
contentState: ShareContentStateValidator,
|
|
38069
|
+
createdAt: external_exports.iso.datetime(),
|
|
38070
|
+
updatedAt: external_exports.iso.datetime(),
|
|
38071
|
+
expiresAt: external_exports.iso.datetime().nullable(),
|
|
38072
|
+
stoppedAt: external_exports.iso.datetime().nullable(),
|
|
38073
|
+
lastViewedAt: external_exports.iso.datetime().nullable(),
|
|
38074
|
+
viewCount: external_exports.number().int().min(0).optional(),
|
|
38075
|
+
passcodeProtected: external_exports.boolean(),
|
|
38076
|
+
notifyOnView: external_exports.boolean(),
|
|
38077
|
+
minorPolicy: external_exports.object({
|
|
38078
|
+
isMinor: external_exports.boolean().nullable(),
|
|
38079
|
+
policyResolved: external_exports.boolean(),
|
|
38080
|
+
defaultExpiryDays: external_exports.union([external_exports.literal(30), external_exports.literal(365)]),
|
|
38081
|
+
viewCountingEnabled: external_exports.boolean()
|
|
38082
|
+
}),
|
|
38083
|
+
/**
|
|
38084
|
+
* Guarded application/API URL for the content. Optional because owner APIs in
|
|
38085
|
+
* D1 have no public resolve/content endpoint yet; it must never be a
|
|
38086
|
+
* LearnCloud object URL or carry a fabricated decryption key.
|
|
38087
|
+
*/
|
|
38088
|
+
contentUrl: external_exports.string().optional()
|
|
38089
|
+
});
|
|
38090
|
+
var clientRequestId = external_exports.string().uuid();
|
|
38091
|
+
var CreateShareLinkInputValidator = external_exports.object({
|
|
38092
|
+
id: ShareLinkIdValidator,
|
|
38093
|
+
clientRequestId,
|
|
38094
|
+
title: external_exports.string().min(1).max(120),
|
|
38095
|
+
note: external_exports.string().max(500).optional(),
|
|
38096
|
+
expiresAt: external_exports.iso.datetime().nullable().optional(),
|
|
38097
|
+
passcode: external_exports.string().min(8).max(64).optional(),
|
|
38098
|
+
notifyOnView: external_exports.boolean().default(false),
|
|
38099
|
+
selectedCount: external_exports.number().int().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
38100
|
+
contentVersion: external_exports.literal(1),
|
|
38101
|
+
envelope: ShareEnvelopeValidator,
|
|
38102
|
+
ownerEncryptedRecovery: ShareOwnerRecoveryValidator
|
|
38103
|
+
}).strict();
|
|
38104
|
+
var UpdateShareLinkInputValidator = external_exports.object({
|
|
38105
|
+
id: ShareLinkIdValidator,
|
|
38106
|
+
expectedVersion: safeVersion,
|
|
38107
|
+
clientRequestId,
|
|
38108
|
+
title: external_exports.string().min(1).max(120).optional(),
|
|
38109
|
+
note: external_exports.string().max(500).nullable().optional(),
|
|
38110
|
+
expiresAt: external_exports.iso.datetime().nullable().optional(),
|
|
38111
|
+
/** Omitted preserves the current passcode, null removes it, and a string replaces it. */
|
|
38112
|
+
passcode: external_exports.string().min(8).max(64).nullable().optional(),
|
|
38113
|
+
notifyOnView: external_exports.boolean().optional(),
|
|
38114
|
+
contentVersion: safeVersion.optional(),
|
|
38115
|
+
selectedCount: external_exports.number().int().min(1).max(MAX_SELECTED_CREDENTIALS).optional(),
|
|
38116
|
+
envelope: ShareEnvelopeValidator.optional(),
|
|
38117
|
+
ownerEncryptedRecovery: ShareOwnerRecoveryValidator.optional()
|
|
38118
|
+
}).strict().superRefine((value, ctx) => {
|
|
38119
|
+
const provided = [
|
|
38120
|
+
value.contentVersion,
|
|
38121
|
+
value.selectedCount,
|
|
38122
|
+
value.envelope,
|
|
38123
|
+
value.ownerEncryptedRecovery
|
|
38124
|
+
].filter((field) => field !== void 0).length;
|
|
38125
|
+
if (provided !== 0 && provided !== 4) {
|
|
38126
|
+
ctx.addIssue({
|
|
38127
|
+
code: "custom",
|
|
38128
|
+
message: "content replacement requires contentVersion, selectedCount, envelope and ownerEncryptedRecovery together"
|
|
38129
|
+
});
|
|
38130
|
+
}
|
|
38131
|
+
});
|
|
38132
|
+
var ShareLinkIdInputValidator = external_exports.object({ id: ShareLinkIdValidator }).strict();
|
|
38133
|
+
var ShareLinkOperationKeyInputValidator = external_exports.object({ id: ShareLinkIdValidator, operationId: external_exports.string().uuid() }).strict();
|
|
38134
|
+
var ShareLinkOwnerCommitOutputValidator = external_exports.discriminatedUnion("status", [
|
|
38135
|
+
external_exports.object({ status: external_exports.literal("completed"), share: ShareLinkValidator }).strict(),
|
|
38136
|
+
external_exports.object({
|
|
38137
|
+
status: external_exports.literal("pending"),
|
|
38138
|
+
id: ShareLinkIdValidator,
|
|
38139
|
+
operationId: external_exports.string().uuid()
|
|
38140
|
+
}).strict()
|
|
38141
|
+
]);
|
|
38142
|
+
var ShareLinkOwnerStatusOutputValidator = external_exports.discriminatedUnion("status", [
|
|
38143
|
+
external_exports.object({ status: external_exports.literal("found"), share: ShareLinkValidator }).strict(),
|
|
38144
|
+
external_exports.object({
|
|
38145
|
+
status: external_exports.literal("pending"),
|
|
38146
|
+
id: ShareLinkIdValidator,
|
|
38147
|
+
operationId: external_exports.string().uuid()
|
|
38148
|
+
}).strict(),
|
|
38149
|
+
external_exports.object({ status: external_exports.literal("not_found"), id: ShareLinkIdValidator }).strict()
|
|
38150
|
+
]);
|
|
38151
|
+
var ShareLinkOwnerRecoveryOutputValidator = external_exports.object({ recovery: ShareOwnerRecoveryValidator }).strict();
|
|
38152
|
+
var ShareLinkOwnerContentOutputValidator = external_exports.object({
|
|
38153
|
+
id: ShareLinkIdValidator,
|
|
38154
|
+
contentVersion: safeVersion,
|
|
38155
|
+
envelope: ShareEnvelopeValidator
|
|
38156
|
+
}).strict();
|
|
38157
|
+
var ResolveShareLinkInputValidator = external_exports.object({
|
|
38158
|
+
id: ShareLinkIdValidator,
|
|
38159
|
+
/** Sent only in a POST body; it must never be placed in a share URL. */
|
|
38160
|
+
passcode: external_exports.string().min(4).max(64).optional()
|
|
38161
|
+
}).strict();
|
|
38162
|
+
var ShareLinkPublicStateValidator = external_exports.discriminatedUnion("state", [
|
|
38163
|
+
external_exports.object({
|
|
38164
|
+
state: external_exports.literal("passcode_required"),
|
|
38165
|
+
id: ShareLinkIdValidator
|
|
38166
|
+
}).strict(),
|
|
38167
|
+
external_exports.object({ state: external_exports.literal("try_later"), id: ShareLinkIdValidator }).strict(),
|
|
38168
|
+
external_exports.object({
|
|
38169
|
+
state: external_exports.literal("active"),
|
|
38170
|
+
id: ShareLinkIdValidator,
|
|
38171
|
+
title: external_exports.string().max(120),
|
|
38172
|
+
note: external_exports.string().max(500).optional(),
|
|
38173
|
+
selectedCount: external_exports.number().int().min(1).max(MAX_SELECTED_CREDENTIALS),
|
|
38174
|
+
contentVersion: safeVersion,
|
|
38175
|
+
contentUrl: external_exports.string(),
|
|
38176
|
+
sharer: external_exports.object({
|
|
38177
|
+
displayName: external_exports.string().max(120),
|
|
38178
|
+
avatar: external_exports.string().max(2048).optional()
|
|
38179
|
+
}),
|
|
38180
|
+
createdAt: external_exports.iso.datetime(),
|
|
38181
|
+
updatedAt: external_exports.iso.datetime(),
|
|
38182
|
+
expiresAt: external_exports.iso.datetime().nullable()
|
|
38183
|
+
}).strict(),
|
|
38184
|
+
external_exports.object({
|
|
38185
|
+
state: external_exports.literal("expired"),
|
|
38186
|
+
id: ShareLinkIdValidator,
|
|
38187
|
+
expiresAt: external_exports.iso.datetime()
|
|
38188
|
+
}).strict(),
|
|
38189
|
+
external_exports.object({
|
|
38190
|
+
state: external_exports.literal("stopped"),
|
|
38191
|
+
id: ShareLinkIdValidator,
|
|
38192
|
+
stoppedAt: external_exports.iso.datetime()
|
|
38193
|
+
}).strict(),
|
|
38194
|
+
external_exports.object({ state: external_exports.literal("not_found"), id: ShareLinkIdValidator }).strict()
|
|
38195
|
+
]);
|
|
38196
|
+
var ListShareLinksInputValidator = external_exports.object({
|
|
38197
|
+
limit: external_exports.number().int().min(1).max(50).default(25),
|
|
38198
|
+
cursor: external_exports.string().max(512).optional()
|
|
38199
|
+
}).strict();
|
|
38200
|
+
var PaginatedShareLinksValidator = PaginationResponseValidator.extend({
|
|
38201
|
+
records: ShareLinkValidator.array()
|
|
38202
|
+
});
|
|
38203
|
+
var AcknowledgeViewInputValidator = external_exports.object({
|
|
38204
|
+
receipt: external_exports.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/)
|
|
38205
|
+
}).strict();
|
|
38206
|
+
var AcknowledgeViewOutputValidator = external_exports.object({ ok: external_exports.literal(true) }).strict();
|
|
38207
|
+
var SHARE_VIEW_RECEIPT_TTL_SECONDS = 10 * 60;
|
|
38208
|
+
var ShareLinkPublicContentViewValidator = external_exports.object({
|
|
38209
|
+
id: ShareLinkIdValidator,
|
|
38210
|
+
contentVersion: safeVersion,
|
|
38211
|
+
envelope: ShareEnvelopeValidator,
|
|
38212
|
+
contentUrl: external_exports.string(),
|
|
38213
|
+
receipt: external_exports.string().min(22).max(128).regex(/^[A-Za-z0-9_-]+$/)
|
|
38214
|
+
}).strict();
|
|
37229
38215
|
|
|
37230
38216
|
// src/read.ts
|
|
37231
38217
|
var isTemplateRenderMethod = /* @__PURE__ */ __name((rm) => TemplateRenderMethodValidator.safeParse(rm).success, "isTemplateRenderMethod");
|