@wix/create-headless-site 0.0.17 → 0.0.18

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/build/index.js CHANGED
@@ -95045,7 +95045,7 @@ function wixCliCliError(params) {
95045
95045
  var package_default = {
95046
95046
  name: "@wix/create-headless-site",
95047
95047
  description: "Headless site creation wizard",
95048
- version: "0.0.17",
95048
+ version: "0.0.18",
95049
95049
  bin: "bin/index.cjs",
95050
95050
  devDependencies: {
95051
95051
  "@commander-js/extra-typings": "^13.0.0",
@@ -102498,12 +102498,12 @@ var VersionType;
102498
102498
  VersionType2["DEV_VERSION"] = "DEV_VERSION";
102499
102499
  })(VersionType || (VersionType = {}));
102500
102500
  var WebhookIdentityType;
102501
- (function(WebhookIdentityType3) {
102502
- WebhookIdentityType3["UNKNOWN"] = "UNKNOWN";
102503
- WebhookIdentityType3["ANONYMOUS_VISITOR"] = "ANONYMOUS_VISITOR";
102504
- WebhookIdentityType3["MEMBER"] = "MEMBER";
102505
- WebhookIdentityType3["WIX_USER"] = "WIX_USER";
102506
- WebhookIdentityType3["APP"] = "APP";
102501
+ (function(WebhookIdentityType4) {
102502
+ WebhookIdentityType4["UNKNOWN"] = "UNKNOWN";
102503
+ WebhookIdentityType4["ANONYMOUS_VISITOR"] = "ANONYMOUS_VISITOR";
102504
+ WebhookIdentityType4["MEMBER"] = "MEMBER";
102505
+ WebhookIdentityType4["WIX_USER"] = "WIX_USER";
102506
+ WebhookIdentityType4["APP"] = "APP";
102507
102507
  })(WebhookIdentityType || (WebhookIdentityType = {}));
102508
102508
 
102509
102509
  // ../dev-center-client/src/schemas.ts
@@ -104996,12 +104996,12 @@ var TranslationType;
104996
104996
  TranslationType2["COMPONENT"] = "COMPONENT";
104997
104997
  })(TranslationType || (TranslationType = {}));
104998
104998
  var WebhookIdentityType2;
104999
- (function(WebhookIdentityType3) {
105000
- WebhookIdentityType3["UNKNOWN"] = "UNKNOWN";
105001
- WebhookIdentityType3["ANONYMOUS_VISITOR"] = "ANONYMOUS_VISITOR";
105002
- WebhookIdentityType3["MEMBER"] = "MEMBER";
105003
- WebhookIdentityType3["WIX_USER"] = "WIX_USER";
105004
- WebhookIdentityType3["APP"] = "APP";
104999
+ (function(WebhookIdentityType4) {
105000
+ WebhookIdentityType4["UNKNOWN"] = "UNKNOWN";
105001
+ WebhookIdentityType4["ANONYMOUS_VISITOR"] = "ANONYMOUS_VISITOR";
105002
+ WebhookIdentityType4["MEMBER"] = "MEMBER";
105003
+ WebhookIdentityType4["WIX_USER"] = "WIX_USER";
105004
+ WebhookIdentityType4["APP"] = "APP";
105005
105005
  })(WebhookIdentityType2 || (WebhookIdentityType2 = {}));
105006
105006
 
105007
105007
  // ../../node_modules/@wix/ambassador-devcenter-apps-v1-app-template/build/es/types.impl.js
@@ -106069,11 +106069,42 @@ function removeAppEnvironmentVariables(payload5) {
106069
106069
 
106070
106070
  // ../backend-as-a-service-client/src/schemas.ts
106071
106071
  init_esm_shims();
106072
+
106073
+ // ../../node_modules/@wix/ambassador-velo-backend-v1-app-deployment/build/es/types.impl.js
106074
+ init_esm_shims();
106075
+ var CloudProvider;
106076
+ (function(CloudProvider2) {
106077
+ CloudProvider2["UNKNOWN_CLOUD_PROVIDER"] = "UNKNOWN_CLOUD_PROVIDER";
106078
+ CloudProvider2["CLOUD_FLARE"] = "CLOUD_FLARE";
106079
+ CloudProvider2["KUBERNETES"] = "KUBERNETES";
106080
+ })(CloudProvider || (CloudProvider = {}));
106081
+ var DeploymentState;
106082
+ (function(DeploymentState2) {
106083
+ DeploymentState2["UNKNOWN_DEPLOYMENT_STATE"] = "UNKNOWN_DEPLOYMENT_STATE";
106084
+ DeploymentState2["STATICS_UPLOAD_PENDING"] = "STATICS_UPLOAD_PENDING";
106085
+ DeploymentState2["DEPLOY_SUCCESS"] = "DEPLOY_SUCCESS";
106086
+ DeploymentState2["DEPLOY_FAILED"] = "DEPLOY_FAILED";
106087
+ })(DeploymentState || (DeploymentState = {}));
106088
+ var SortOrder;
106089
+ (function(SortOrder2) {
106090
+ SortOrder2["ASC"] = "ASC";
106091
+ SortOrder2["DESC"] = "DESC";
106092
+ })(SortOrder || (SortOrder = {}));
106093
+ var WebhookIdentityType3;
106094
+ (function(WebhookIdentityType4) {
106095
+ WebhookIdentityType4["UNKNOWN"] = "UNKNOWN";
106096
+ WebhookIdentityType4["ANONYMOUS_VISITOR"] = "ANONYMOUS_VISITOR";
106097
+ WebhookIdentityType4["MEMBER"] = "MEMBER";
106098
+ WebhookIdentityType4["WIX_USER"] = "WIX_USER";
106099
+ WebhookIdentityType4["APP"] = "APP";
106100
+ })(WebhookIdentityType3 || (WebhookIdentityType3 = {}));
106101
+
106102
+ // ../backend-as-a-service-client/src/schemas.ts
106072
106103
  var staticFileMetadata = z.object({
106073
106104
  path: z.string(),
106074
106105
  hash: z.string(),
106075
106106
  size: z.number().optional(),
106076
- contentType: z.string().optional().nullable()
106107
+ contentType: z.string()
106077
106108
  });
106078
106109
  var StaticFileUploadUrlSchema = z.object({
106079
106110
  uploadUrl: z.string().url(),
@@ -106081,7 +106112,8 @@ var StaticFileUploadUrlSchema = z.object({
106081
106112
  });
106082
106113
  var AppDeploymentSchema = z.object({
106083
106114
  id: z.string().uuid(),
106084
- deploymentBaseUrl: z.string()
106115
+ deploymentBaseUrl: z.string(),
106116
+ cloudProviderOverride: z.nativeEnum(CloudProvider)
106085
106117
  }).passthrough();
106086
106118
  var CompleteAppDeploymentSchema = z.object({
106087
106119
  appDeployment: AppDeploymentSchema
@@ -106101,7 +106133,7 @@ var CreateAppProjectSchema = z.object({
106101
106133
  });
106102
106134
  var CreateAppDeploymentSchema = z.object({
106103
106135
  staticFilesUploadUrls: z.array(StaticFileUploadUrlSchema).optional(),
106104
- uploadAuthToken: z.string(),
106136
+ uploadAuthToken: z.string().optional(),
106105
106137
  appDeployment: AppDeploymentSchema.optional()
106106
106138
  });
106107
106139
  var StaticFileUploadSchema = z.object({
@@ -106124,7 +106156,7 @@ var BackendAsAServiceClient = class {
106124
106156
  };
106125
106157
  }
106126
106158
  retryOptions;
106127
- createAppProject = async (appId, projectName) => {
106159
+ createAppProject = async (appId, projectName, cloudProvider) => {
106128
106160
  try {
106129
106161
  const { data } = await this.httpClient.request(
106130
106162
  createAppProject({
@@ -106132,7 +106164,8 @@ var BackendAsAServiceClient = class {
106132
106164
  id: appId,
106133
106165
  displayName: projectName,
106134
106166
  slug: (0, import_lodash3.kebabCase)(projectName),
106135
- appProjectTypeId: APP_PROJECT_TYPE_ID
106167
+ appProjectTypeId: APP_PROJECT_TYPE_ID,
106168
+ cloudProviderOverride: cloudProvider
106136
106169
  }
106137
106170
  })
106138
106171
  );
@@ -106210,6 +106243,30 @@ var BackendAsAServiceClient = class {
106210
106243
  });
106211
106244
  }
106212
106245
  };
106246
+ putBinaryFile = async (endpointUrl, fileContent, contentType) => {
106247
+ try {
106248
+ await pRetry(
106249
+ async () => {
106250
+ const response = await fetch(endpointUrl, {
106251
+ method: "PUT",
106252
+ headers: {
106253
+ "Content-Type": contentType
106254
+ },
106255
+ body: fileContent
106256
+ });
106257
+ if (!response.ok) {
106258
+ throw new Error(response.statusText);
106259
+ }
106260
+ },
106261
+ { retries: 3 }
106262
+ );
106263
+ } catch (e2) {
106264
+ throw new CliError({
106265
+ code: CliErrorCode.FailedToUploadStaticFiles(),
106266
+ cause: e2
106267
+ });
106268
+ }
106269
+ };
106213
106270
  // Env management
106214
106271
  getAppEnvironmentByName = async (appId, environment) => {
106215
106272
  try {
@@ -106292,7 +106349,10 @@ var useCreateProject = (businessId) => {
106292
106349
  const { getInstalledAppInstanceId } = useMetasiteManagerClient();
106293
106350
  const { createAppProject: createAppProject2, upsertAppEnvironment: upsertAppEnvironment2 } = useBackendAsAServiceClient();
106294
106351
  return useAsyncCallback3(
106295
- async (_2, { projectName }) => {
106352
+ async (_2, {
106353
+ projectName,
106354
+ cloudProvider
106355
+ }) => {
106296
106356
  const { id: projectId } = await createOAuthApp2({
106297
106357
  name: `Private App for: ${projectName}`
106298
106358
  });
@@ -106300,7 +106360,11 @@ var useCreateProject = (businessId) => {
106300
106360
  getAppSecret({ appId: projectId }),
106301
106361
  getInstalledAppInstanceId({ metaSiteId: businessId, appId: projectId })
106302
106362
  ]);
106303
- const { appProject } = await createAppProject2(projectId, projectName);
106363
+ const { appProject } = await createAppProject2(
106364
+ projectId,
106365
+ projectName,
106366
+ cloudProvider
106367
+ );
106304
106368
  const loginRoute = `api/auth/callback`;
106305
106369
  const logoutRoute = `api/auth/logout-callback`;
106306
106370
  const projectBaseURL = new URL(appProject.baseUrl);
@@ -106345,7 +106409,12 @@ var useCreateProject = (businessId) => {
106345
106409
  };
106346
106410
 
106347
106411
  // src/components/CreateProject.tsx
106348
- var CreateProject = ({ onSubmit, projectName: providedProjectName, businessId }) => {
106412
+ var CreateProject = ({
106413
+ onSubmit,
106414
+ projectName: providedProjectName,
106415
+ businessId,
106416
+ cloudProvider
106417
+ }) => {
106349
106418
  const { status, execute } = useCreateProject(businessId);
106350
106419
  (0, import_react104.useEffect)(() => {
106351
106420
  if ((0, import_variant31.isType)(status, "Success")) {
@@ -106354,9 +106423,9 @@ var CreateProject = ({ onSubmit, projectName: providedProjectName, businessId })
106354
106423
  }, [status, onSubmit]);
106355
106424
  (0, import_react104.useEffect)(() => {
106356
106425
  if (providedProjectName) {
106357
- void execute({ projectName: providedProjectName });
106426
+ void execute({ projectName: providedProjectName, cloudProvider });
106358
106427
  }
106359
- }, [providedProjectName, execute]);
106428
+ }, [providedProjectName, cloudProvider, execute]);
106360
106429
  const validate3 = (0, import_react104.useCallback)(async (projectName) => {
106361
106430
  try {
106362
106431
  validateProjectName(projectName);
@@ -106369,7 +106438,7 @@ var CreateProject = ({ onSubmit, projectName: providedProjectName, businessId })
106369
106438
  TextInput2,
106370
106439
  {
106371
106440
  label: "What's the name of your Custom Frontend project?",
106372
- onSubmit: (projectName) => execute({ projectName }),
106441
+ onSubmit: (projectName) => execute({ projectName, cloudProvider }),
106373
106442
  validate: validate3,
106374
106443
  inCreateFlow: true
106375
106444
  }
@@ -116072,6 +116141,19 @@ function validateGitUrl(value2) {
116072
116141
  throw new InvalidArgumentError("Value must be a valid Git URL");
116073
116142
  }
116074
116143
 
116144
+ // src/validations/validate-cloud-provider.ts
116145
+ init_esm_shims();
116146
+ var validateCloudProvider = (value2) => {
116147
+ const allowedValues = ["cloudflare", "kubernetes"];
116148
+ const normalizedValue = value2.toLowerCase();
116149
+ if (!allowedValues.includes(normalizedValue)) {
116150
+ throw new Error(
116151
+ `Invalid cloud provider: ${value2}. Allowed values are: ${allowedValues.join(", ")}`
116152
+ );
116153
+ }
116154
+ return normalizedValue;
116155
+ };
116156
+
116075
116157
  // src/validations/validate-template-params.ts
116076
116158
  init_esm_shims();
116077
116159
  var schema2 = z.string().transform((value2) => JSON.parse(value2)).pipe(z.record(z.unknown()));
@@ -116792,6 +116874,24 @@ var TemplateSource = (0, import_variant37.variant)({
116792
116874
  GitRepo: (0, import_variant37.fields)(),
116793
116875
  Local: (0, import_variant37.fields)()
116794
116876
  });
116877
+ function parseCloudProvider(cloudProvider) {
116878
+ if (!cloudProvider) {
116879
+ return CloudProvider.CLOUD_FLARE;
116880
+ }
116881
+ switch (cloudProvider.trim().toLowerCase()) {
116882
+ case "cloudflare":
116883
+ return CloudProvider.CLOUD_FLARE;
116884
+ case "kubernetes":
116885
+ return CloudProvider.KUBERNETES;
116886
+ default:
116887
+ throw new CliError({
116888
+ code: CliErrorCode.ProjectNameArgumentIsInvalid({
116889
+ errorMessage: `Invalid cloud provider: "${cloudProvider}".`
116890
+ }),
116891
+ cause: null
116892
+ });
116893
+ }
116894
+ }
116795
116895
  async function parseTemplateOptions(options) {
116796
116896
  if (options.siteTemplateId) {
116797
116897
  if (options.templateRepo && options.templateRepoPath) {
@@ -116870,6 +116970,7 @@ async function parseCommandOptions(targetParentFolder2, options) {
116870
116970
  targetParentFolder2,
116871
116971
  options
116872
116972
  );
116973
+ const cloudProvider = parseCloudProvider(options.cloudProvider);
116873
116974
  const publish = processPublish({
116874
116975
  template,
116875
116976
  projectName,
@@ -116888,6 +116989,7 @@ async function parseCommandOptions(targetParentFolder2, options) {
116888
116989
  template,
116889
116990
  projectName,
116890
116991
  businessName: options.businessName,
116992
+ cloudProvider,
116891
116993
  publish
116892
116994
  };
116893
116995
  }
@@ -117295,7 +117397,8 @@ var CreateHeadlessSiteCommand = ({
117295
117397
  template: defaultTemplate,
117296
117398
  publish,
117297
117399
  projectName: defaultProjectName,
117298
- businessName: defaultBusinessName
117400
+ businessName: defaultBusinessName,
117401
+ cloudProvider
117299
117402
  }) => {
117300
117403
  const [businessName, setBusinessName] = (0, import_react115.useState)(
117301
117404
  defaultBusinessName
@@ -117356,6 +117459,7 @@ var CreateHeadlessSiteCommand = ({
117356
117459
  {
117357
117460
  businessId,
117358
117461
  projectName: defaultProjectName,
117462
+ cloudProvider,
117359
117463
  onSubmit: (data) => setProjectData(data)
117360
117464
  }
117361
117465
  )),
@@ -117422,7 +117526,9 @@ var ProcessCommand = ({ targetParentFolder: targetParentFolder2, commandOptions
117422
117526
  return (0, import_variant43.match)(status, {
117423
117527
  Error: () => null,
117424
117528
  Loading: () => /* @__PURE__ */ import_react116.default.createElement(Spinner2, { text: "Loading..." }),
117425
- Success: ({ result: { template, projectName, businessName, publish } }) => {
117529
+ Success: ({
117530
+ result: { template, projectName, businessName, cloudProvider, publish }
117531
+ }) => {
117426
117532
  return /* @__PURE__ */ import_react116.default.createElement(
117427
117533
  CreateHeadlessSiteCommand,
117428
117534
  {
@@ -117431,6 +117537,7 @@ var ProcessCommand = ({ targetParentFolder: targetParentFolder2, commandOptions
117431
117537
  template,
117432
117538
  projectName,
117433
117539
  businessName,
117540
+ cloudProvider,
117434
117541
  publish
117435
117542
  }
117436
117543
  );
@@ -117540,6 +117647,11 @@ program2.command("init", { isDefault: true }).description("Create headless site"
117540
117647
  "--project-name <project-name>",
117541
117648
  "The name of your Custom Frontend project"
117542
117649
  ).argParser(validateProjectName).hideHelp()
117650
+ ).addOption(
117651
+ new Option(
117652
+ "--cloud-provider <cloud-provider>",
117653
+ "Cloud provider for deployment"
117654
+ ).argParser(validateCloudProvider).hideHelp()
117543
117655
  ).addOption(
117544
117656
  new Option(
117545
117657
  "--publish",