@vercel/flags-core 1.10.3 → 1.11.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.
@@ -559,7 +559,7 @@ function bulkEvaluate(flags, shared) {
559
559
  }
560
560
 
561
561
  // package.json
562
- var version = "1.10.3";
562
+ var version = "1.11.0";
563
563
 
564
564
  // src/lib/report-value.ts
565
565
  function internalReportValue(key, value, data) {
@@ -1063,6 +1063,10 @@ import { getVercelOidcToken } from "@vercel/oidc";
1063
1063
 
1064
1064
  // src/utils/sdk-keys.ts
1065
1065
  var SDK_KEY_REGEX = /^vf_(?:server|client)_/;
1066
+ var PROJECT_ID_REGEX = /^[A-Za-z0-9_]{1,64}$/;
1067
+ function isValidProjectId(value) {
1068
+ return PROJECT_ID_REGEX.test(value);
1069
+ }
1066
1070
  function parseSdkKeyFromFlagsConnectionString(text) {
1067
1071
  if (SDK_KEY_REGEX.test(text)) return text;
1068
1072
  try {
@@ -1129,7 +1133,21 @@ function getProjectIdFromOidcToken(oidcToken) {
1129
1133
  var Authentication = class {
1130
1134
  sdkKey;
1131
1135
  sourceProjectId;
1132
- constructor(sdkKeyOrConnectionString) {
1136
+ constructor(sdkKeyOrConnectionString, options = {}) {
1137
+ if (options.projectId !== void 0) {
1138
+ if (typeof options.projectId !== "string" || !isValidProjectId(options.projectId)) {
1139
+ throw new Error(
1140
+ `@vercel/flags-core: Invalid projectId "${options.projectId}". Expected a project id like "prj_\u2026" (letters, digits and underscores, up to 64 characters)`
1141
+ );
1142
+ }
1143
+ if (sdkKeyOrConnectionString !== void 0) {
1144
+ throw new Error(
1145
+ "@vercel/flags-core: projectId cannot be combined with an SDK key. Connected projects are read with the OIDC token of this deployment."
1146
+ );
1147
+ }
1148
+ this.sourceProjectId = options.projectId;
1149
+ return;
1150
+ }
1133
1151
  if (sdkKeyOrConnectionString !== void 0) {
1134
1152
  if (typeof sdkKeyOrConnectionString !== "string") {
1135
1153
  throw new Error(
@@ -3704,8 +3722,8 @@ function make(createRawClient, defaults) {
3704
3722
  const optionsOnly = typeof sdkKeyOrConnectionStringOrOptions === "object" && sdkKeyOrConnectionStringOrOptions !== null;
3705
3723
  const sdkKeyOrConnectionString = optionsOnly ? void 0 : sdkKeyOrConnectionStringOrOptions;
3706
3724
  const createClientOptions = optionsOnly ? sdkKeyOrConnectionStringOrOptions : options;
3707
- const { experimental_reportExposures, ...controllerOptions } = createClientOptions ?? {};
3708
- const auth = new Authentication(sdkKeyOrConnectionString);
3725
+ const { experimental_reportExposures, projectId, ...controllerOptions } = createClientOptions ?? {};
3726
+ const auth = new Authentication(sdkKeyOrConnectionString, { projectId });
3709
3727
  const waitUntil2 = controllerOptions.waitUntil ?? defaults.waitUntil;
3710
3728
  const controller = new Controller({
3711
3729
  auth,
@@ -3796,4 +3814,4 @@ export {
3796
3814
  resetDefaultFlagsClient,
3797
3815
  createClient
3798
3816
  };
3799
- //# sourceMappingURL=chunk-OIOT7N7A.js.map
3817
+ //# sourceMappingURL=chunk-OI7WI6QP.js.map