create-twenty-app 2.13.0 → 2.14.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/cli.mjs CHANGED
@@ -30,7 +30,7 @@ var b = Object.create, x = Object.defineProperty, S = Object.getOwnPropertyDescr
30
30
  enumerable: !0
31
31
  }) : n, e)), ie = {
32
32
  name: "create-twenty-app",
33
- version: "2.13.0",
33
+ version: "2.14.0",
34
34
  description: "Command-line interface to create Twenty application",
35
35
  main: "dist/cli.cjs",
36
36
  bin: "dist/cli.cjs",
@@ -120,7 +120,7 @@ var b = Object.create, x = Object.defineProperty, S = Object.getOwnPropertyDescr
120
120
  await r.writeFile(i, a.replace("DISPLAY-NAME-TO-BE-GENERATED", e).replace("DESCRIPTION-TO-BE-GENERATED", t).replace(/UUID-TO-BE-GENERATED/g, () => s()));
121
121
  }, de = async ({ appName: e, appDirectory: t }) => {
122
122
  let n = await r.readJson(o(t, "package.json"));
123
- n.name = e, n.devDependencies["twenty-sdk"] = ie.version, n.dependencies["twenty-client-sdk"] = ie.version, await r.writeFile(o(t, "package.json"), JSON.stringify(n, null, 2), "utf8");
123
+ n.name = e, n.devDependencies["twenty-sdk"] = ie.version, n.devDependencies["twenty-client-sdk"] = ie.version, await r.writeFile(o(t, "package.json"), JSON.stringify(n, null, 2), "utf8");
124
124
  }, fe = (/* @__PURE__ */ T(((e, t) => {
125
125
  (function() {
126
126
  var n, r = "4.18.1", i = 200, a = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", o = "Expected a function", s = "Invalid `variable` option passed into `_.template`", c = "Invalid `imports` option passed into `_.template`", l = "__lodash_hash_undefined__", u = 500, d = "__lodash_placeholder__", f = 1, p = 2, m = 4, h = 1, g = 2, _ = 1, v = 2, y = 4, b = 8, x = 16, S = 32, C = 64, ee = 128, w = 256, T = 512, te = 30, ne = "...", re = 800, ie = 16, ae = 1, oe = 2, se = 3, ce = Infinity, le = 9007199254740991, ue = 17976931348623157e292, de = NaN, fe = 4294967295, pe = fe - 1, me = fe >>> 1, he = [
@@ -31453,7 +31453,7 @@ function Dk() {
31453
31453
  return rk(Ck, arguments);
31454
31454
  }
31455
31455
  //#endregion
31456
- //#region ../twenty-shared/dist/utils-_9VrT9Ur.mjs
31456
+ //#region ../twenty-shared/dist/utils-BABg2N6J.mjs
31457
31457
  var Ok = /* @__PURE__ */ re(iO(), 1);
31458
31458
  aO(), ZO(), J.TEXT, J.FULL_NAME, J.EMAILS, J.ADDRESS, J.LINKS, J.PHONES, J.RICH_TEXT, J.UUID;
31459
31459
  var kk = (e) => /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e);
@@ -31857,21 +31857,12 @@ var tA = [Y.IS_EMPTY, Y.IS_NOT_EMPTY], nA = [Y.IS, Y.IS_NOT];
31857
31857
  Y.IS_NOT,
31858
31858
  ...tA
31859
31859
  ], Y.IS, Y.IS_NOT, Y.IS_EMPTY, Y.IS_NOT_EMPTY;
31860
- var rA = (e, t, n) => Object.values(Sp[e]).includes(t) && t === n;
31861
- function iA(e) {
31862
- "@babel/helpers - typeof";
31863
- return iA = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
31864
- return typeof e;
31865
- } : function(e) {
31866
- return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
31867
- }, iA(e);
31868
- }
31869
- var aA = 365.2425, oA = 3600 * 24;
31870
- oA * 7, oA * aA / 12 * 3;
31871
- var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refine((e) => Array.isArray(e) && e.every((e) => typeof e == "string"), { error: "Expected an array of strings" }), cA = zf((e) => {
31860
+ var rA = (e, t, n) => Object.values(Sp[e]).includes(t) && t === n, iA = 365.2425, aA = 3600 * 24;
31861
+ aA * 7, aA * iA / 12 * 3;
31862
+ var oA = eu().transform((e) => e === "" ? [] : RA(e) ? [e] : JSON.parse(e)).refine((e) => Array.isArray(e) && e.every((e) => typeof e == "string"), { error: "Expected an array of strings" }), sA = zf((e) => {
31872
31863
  try {
31873
31864
  if (typeof e == "string") {
31874
- if (zA(e)) return [e];
31865
+ if (RA(e)) return [e];
31875
31866
  try {
31876
31867
  let t = JSON.parse(e);
31877
31868
  return Array.isArray(t) ? t : [t];
@@ -31883,11 +31874,11 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
31883
31874
  } catch {
31884
31875
  return [];
31885
31876
  }
31886
- }, Cd(eu().refine((e) => kk(e) || zA(e), "Must be a valid UUID or a variable with {{ }} syntax"))).catch([]), lA = Ed({
31877
+ }, Cd(eu().refine((e) => kk(e) || RA(e), "Must be a valid UUID or a variable with {{ }} syntax"))).catch([]), cA = Ed({
31887
31878
  isCurrentWorkspaceMemberSelected: nd().optional(),
31888
31879
  isCurrentRecordSelected: nd().optional(),
31889
31880
  selectedRecordIds: Cd(eu())
31890
- }), uA = eu().transform((e, t) => {
31881
+ }), lA = eu().transform((e, t) => {
31891
31882
  try {
31892
31883
  return JSON.parse(e);
31893
31884
  } catch (e) {
@@ -31896,13 +31887,13 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
31896
31887
  message: e.message
31897
31888
  }), Te;
31898
31889
  }
31899
- }).pipe(lA), dA = ({ recordFilter: e, fieldMetadataItemById: t, filterValueDependencies: n }) => {
31890
+ }).pipe(cA), uA = ({ recordFilter: e, fieldMetadataItemById: t, filterValueDependencies: n }) => {
31900
31891
  let r = t.get(e.fieldMetadataId);
31901
31892
  if (E(r) && Jk(e)) {
31902
31893
  if (r.type === J.RELATION && E(e.relationTargetFieldMetadataId)) {
31903
31894
  let i = t.get(e.relationTargetFieldMetadataId);
31904
31895
  if (!E(i)) return;
31905
- let a = fA({
31896
+ let a = dA({
31906
31897
  recordFilter: {
31907
31898
  ...e,
31908
31899
  fieldMetadataId: i.id,
@@ -31913,13 +31904,13 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
31913
31904
  });
31914
31905
  return E(a) ? { [r.name]: a } : void 0;
31915
31906
  }
31916
- return fA({
31907
+ return dA({
31917
31908
  recordFilter: e,
31918
31909
  fieldMetadataItem: r,
31919
31910
  filterValueDependencies: n
31920
31911
  });
31921
31912
  }
31922
- }, fA = ({ recordFilter: e, fieldMetadataItem: t, filterValueDependencies: n }) => {
31913
+ }, dA = ({ recordFilter: e, fieldMetadataItem: t, filterValueDependencies: n }) => {
31923
31914
  if (Hk({
31924
31915
  recordFilterOperand: e.operand,
31925
31916
  correspondingFieldMetadataItem: t
@@ -31951,7 +31942,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
31951
31942
  }
31952
31943
  case "DATE":
31953
31944
  if (e.operand === Y.IS_RELATIVE) {
31954
- let n = DA(e.value), r = OA({
31945
+ let n = EA(e.value), r = DA({
31955
31946
  value: "PAST_1_DAY",
31956
31947
  operand: Y.IS_RELATIVE
31957
31948
  });
@@ -31977,9 +31968,9 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
31977
31968
  throw Error(`Unknown operand ${e.operand} for ${a} filter`);
31978
31969
  case "DATE_TIME":
31979
31970
  if (e.operand === Y.IS_RELATIVE) {
31980
- let r = jA(e), i = E(r) && typeof r == "object" ? r : null;
31971
+ let r = AA(e), i = E(r) && typeof r == "object" ? r : null;
31981
31972
  if (!E(i)) throw Error(`Cannot parse relative date filter : "${e.value}"`);
31982
- let a = jA({
31973
+ let a = AA({
31983
31974
  value: `PAST_1_DAY;;${n.timeZone}`,
31984
31975
  operand: Y.IS_RELATIVE
31985
31976
  });
@@ -31992,7 +31983,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
31992
31983
  switch (e.operand) {
31993
31984
  case Y.IS_IN_PAST: return { [t.name]: { lt: r.toInstant().round("minute").toString() } };
31994
31985
  case Y.IS_IN_FUTURE: return { [t.name]: { gt: r.toInstant().round("minute").toString() } };
31995
- case Y.IS_TODAY: return { and: [{ [t.name]: { gte: _A(r, "DAY").toInstant().toString() } }, { [t.name]: { lt: vA(r, "DAY").toInstant().toString() } }] };
31986
+ case Y.IS_TODAY: return { and: [{ [t.name]: { gte: gA(r, "DAY").toInstant().toString() } }, { [t.name]: { lt: _A(r, "DAY").toInstant().toString() } }] };
31996
31987
  }
31997
31988
  } else {
31998
31989
  if (!(0, we.isNonEmptyString)(e.value)) throw Error("Date filter is empty");
@@ -32028,10 +32019,10 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32028
32019
  default: throw Error(`Unknown operand ${e.operand} for ${a} filter`);
32029
32020
  }
32030
32021
  case "RELATION": {
32031
- let { isCurrentWorkspaceMemberSelected: r, isCurrentRecordSelected: i, selectedRecordIds: o } = uA.catch({
32022
+ let { isCurrentWorkspaceMemberSelected: r, isCurrentRecordSelected: i, selectedRecordIds: o } = lA.catch({
32032
32023
  isCurrentWorkspaceMemberSelected: !1,
32033
32024
  isCurrentRecordSelected: !1,
32034
- selectedRecordIds: cA.parse(e.value)
32025
+ selectedRecordIds: sA.parse(e.value)
32035
32026
  }).parse(e.value), s = [
32036
32027
  ...o,
32037
32028
  ...r ? [n?.currentWorkspaceMemberId] : [],
@@ -32045,7 +32036,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32045
32036
  }
32046
32037
  }
32047
32038
  case "CURRENCY": if (rA(J.CURRENCY, "currencyCode", r)) {
32048
- let n = sA.parse(e.value);
32039
+ let n = oA.parse(e.value);
32049
32040
  if (n.length === 0) return;
32050
32041
  let i = { [t.name]: { currencyCode: { in: n } } };
32051
32042
  switch (e.operand) {
@@ -32077,7 +32068,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32077
32068
  case "ADDRESS": switch (e.operand) {
32078
32069
  case Y.CONTAINS: if (i) {
32079
32070
  if (r === "addressCountry") {
32080
- let n = sA.parse(e.value);
32071
+ let n = oA.parse(e.value);
32081
32072
  return n.length === 0 ? {} : { [t.name]: { [r]: { in: n } } };
32082
32073
  }
32083
32074
  return { [t.name]: { [r]: { ilike: `%${e.value}%` } } };
@@ -32106,7 +32097,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32106
32097
  default: throw Error(`Unknown operand ${e.operand} for ${a} filter`);
32107
32098
  }
32108
32099
  case "MULTI_SELECT": {
32109
- let n = sA.parse(e.value);
32100
+ let n = oA.parse(e.value);
32110
32101
  if (n.length === 0) return;
32111
32102
  let r = n.filter((e) => e === ""), i = n.filter((e) => e !== "");
32112
32103
  switch (e.operand) {
@@ -32123,7 +32114,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32123
32114
  }
32124
32115
  }
32125
32116
  case "SELECT": {
32126
- let n = sA.parse(e.value);
32117
+ let n = oA.parse(e.value);
32127
32118
  if (n.length === 0) return;
32128
32119
  let r = n.filter((e) => e === ""), i = n.filter((e) => e !== "");
32129
32120
  switch (e.operand) {
@@ -32158,9 +32149,9 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32158
32149
  default: throw Error(`Unknown operand ${e.operand} for ${t.label} filter`);
32159
32150
  }
32160
32151
  if (r === "workspaceMemberId") {
32161
- let { isCurrentWorkspaceMemberSelected: r, selectedRecordIds: i } = uA.catch({
32152
+ let { isCurrentWorkspaceMemberSelected: r, selectedRecordIds: i } = lA.catch({
32162
32153
  isCurrentWorkspaceMemberSelected: !1,
32163
- selectedRecordIds: cA.parse(e.value)
32154
+ selectedRecordIds: sA.parse(e.value)
32164
32155
  }).parse(e.value), a = r ? [...i, n?.currentWorkspaceMemberId].filter(E) : i;
32165
32156
  if (!E(a) || a.length === 0) return;
32166
32157
  switch (e.operand) {
@@ -32221,7 +32212,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32221
32212
  }
32222
32213
  case "BOOLEAN": return { [t.name]: { eq: e.value === "true" } };
32223
32214
  case "UUID": {
32224
- let n = cA.parse(e.value), r = E(n) && n.length > 0 ? n : ["00000000-0000-4000-8000-000000000000"];
32215
+ let n = sA.parse(e.value), r = E(n) && n.length > 0 ? n : ["00000000-0000-4000-8000-000000000000"];
32225
32216
  switch (e.operand) {
32226
32217
  case Y.IS: return { [t.name]: { in: r } };
32227
32218
  case Y.IS_NOT: return { not: { [t.name]: { in: r } } };
@@ -32230,14 +32221,14 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32230
32221
  }
32231
32222
  default: throw Error("Unknown filter type");
32232
32223
  }
32233
- }, pA = ({ filterValueDependencies: e, filters: t, fieldMetadataItemById: n, recordFilterGroups: r, currentRecordFilterGroupId: i }) => {
32224
+ }, fA = ({ filterValueDependencies: e, filters: t, fieldMetadataItemById: n, recordFilterGroups: r, currentRecordFilterGroupId: i }) => {
32234
32225
  let a = r.find((e) => e.id === i);
32235
32226
  if (!E(a)) return;
32236
- let o = t.filter((e) => e.recordFilterGroupId === i).map((t) => dA({
32227
+ let o = t.filter((e) => e.recordFilterGroupId === i).map((t) => uA({
32237
32228
  filterValueDependencies: e,
32238
32229
  recordFilter: t,
32239
32230
  fieldMetadataItemById: n
32240
- })).filter(E), s = r.filter((e) => e.parentRecordFilterGroupId === i).map((i) => pA({
32231
+ })).filter(E), s = r.filter((e) => e.parentRecordFilterGroupId === i).map((i) => fA({
32241
32232
  filterValueDependencies: e,
32242
32233
  filters: t,
32243
32234
  fieldMetadataItemById: n,
@@ -32247,7 +32238,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32247
32238
  if (a.logicalOperator === bp.AND) return { and: [...o, ...s] };
32248
32239
  if (a.logicalOperator === bp.OR) return { or: [...o, ...s] };
32249
32240
  throw Error(`Unknown logical operator ${a.logicalOperator}`);
32250
- }, mA = (e, t, n) => {
32241
+ }, pA = (e, t, n) => {
32251
32242
  switch (t) {
32252
32243
  case "DAY": return e.add({ days: n });
32253
32244
  case "WEEK": return e.add({ weeks: n });
@@ -32259,22 +32250,22 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32259
32250
  case "HOUR": return e.add({ hours: n });
32260
32251
  default: return Ak(t);
32261
32252
  }
32262
- }, hA = Zf.enum([
32253
+ }, mA = Zf.enum([
32263
32254
  vp.MONDAY,
32264
32255
  vp.SATURDAY,
32265
32256
  vp.SUNDAY
32266
- ]), gA = (e) => {
32257
+ ]), hA = (e) => {
32267
32258
  switch (e) {
32268
32259
  case vp.MONDAY: return 1;
32269
32260
  case vp.SATURDAY: return 6;
32270
32261
  case vp.SUNDAY: return 7;
32271
32262
  default: return Ak(e);
32272
32263
  }
32273
- }, _A = (e, t, n) => {
32264
+ }, gA = (e, t, n) => {
32274
32265
  switch (t) {
32275
32266
  case "DAY": return e.startOfDay();
32276
32267
  case "WEEK": {
32277
- let t = E(n) ? gA(n) : 1, r = (e.dayOfWeek - t + 7) % 7;
32268
+ let t = E(n) ? hA(n) : 1, r = (e.dayOfWeek - t + 7) % 7;
32278
32269
  return e.startOfDay().subtract({ days: r });
32279
32270
  }
32280
32271
  case "QUARTER": {
@@ -32309,23 +32300,23 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32309
32300
  });
32310
32301
  default: return Ak(t);
32311
32302
  }
32312
- }, vA = (e, t, n) => {
32303
+ }, _A = (e, t, n) => {
32313
32304
  switch (t) {
32314
- case "DAY": return _A(e, "DAY").add({ days: 1 });
32315
- case "WEEK": return _A(e, "WEEK", n).add({ weeks: 1 });
32316
- case "MONTH": return _A(e, "MONTH", n).add({ months: 1 });
32317
- case "QUARTER": return _A(e, "QUARTER", n).add({ months: 3 });
32318
- case "YEAR": return _A(e, "YEAR", n).add({ years: 1 });
32319
- case "SECOND": return _A(e, "SECOND").add({ seconds: 1 });
32320
- case "MINUTE": return _A(e, "MINUTE").add({ minutes: 1 });
32321
- case "HOUR": return _A(e, "HOUR").add({ hours: 1 });
32305
+ case "DAY": return gA(e, "DAY").add({ days: 1 });
32306
+ case "WEEK": return gA(e, "WEEK", n).add({ weeks: 1 });
32307
+ case "MONTH": return gA(e, "MONTH", n).add({ months: 1 });
32308
+ case "QUARTER": return gA(e, "QUARTER", n).add({ months: 3 });
32309
+ case "YEAR": return gA(e, "YEAR", n).add({ years: 1 });
32310
+ case "SECOND": return gA(e, "SECOND").add({ seconds: 1 });
32311
+ case "MINUTE": return gA(e, "MINUTE").add({ minutes: 1 });
32312
+ case "HOUR": return gA(e, "HOUR").add({ hours: 1 });
32322
32313
  default: return Ak(t);
32323
32314
  }
32324
- }, yA = Zf.union([Zf.coerce.number().int().positive(), Zf.literal("undefined")]).transform((e) => e === "undefined" ? void 0 : e), bA = Zf.enum([
32315
+ }, vA = Zf.union([Zf.coerce.number().int().positive(), Zf.literal("undefined")]).transform((e) => e === "undefined" ? void 0 : e), yA = Zf.enum([
32325
32316
  "NEXT",
32326
32317
  "THIS",
32327
32318
  "PAST"
32328
- ]), xA = Zf.enum([
32319
+ ]), bA = Zf.enum([
32329
32320
  "SECOND",
32330
32321
  "MINUTE",
32331
32322
  "HOUR",
@@ -32334,24 +32325,24 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32334
32325
  "MONTH",
32335
32326
  "QUARTER",
32336
32327
  "YEAR"
32337
- ]), SA = Zf.object({
32338
- direction: bA,
32339
- amount: yA.nullish(),
32340
- unit: xA,
32328
+ ]), xA = Zf.object({
32329
+ direction: yA,
32330
+ amount: vA.nullish(),
32331
+ unit: bA,
32341
32332
  timezone: Zf.string().nullish(),
32342
- firstDayOfTheWeek: hA.nullish()
32343
- }).refine((e) => !(e.amount === void 0 && e.direction !== "THIS"), { error: "Amount cannot be 'undefined' unless direction is 'THIS'" }), CA = /((?:THIS)|(?:PAST)|(?:NEXT))_(\d*)_(DAY|MONTH|YEAR|WEEK|QUARTER|HOUR|MINUTE|SECOND)(?:(?:;;([^;;]*);;)?(?:(MONDAY|SUNDAY|SATURDAY);;)?)?/, wA = Zf.string().transform((e, t) => {
32344
- let n = new RegExp(CA).exec(e);
32333
+ firstDayOfTheWeek: mA.nullish()
32334
+ }).refine((e) => !(e.amount === void 0 && e.direction !== "THIS"), { error: "Amount cannot be 'undefined' unless direction is 'THIS'" }), SA = /((?:THIS)|(?:PAST)|(?:NEXT))_(\d*)_(DAY|MONTH|YEAR|WEEK|QUARTER|HOUR|MINUTE|SECOND)(?:(?:;;([^;;]*);;)?(?:(MONDAY|SUNDAY|SATURDAY);;)?)?/, CA = Zf.string().transform((e, t) => {
32335
+ let n = new RegExp(SA).exec(e);
32345
32336
  if (!(0, we.isNonEmptyArray)(n)) return t.addIssue(`Cannot parse stringified inline relative date filter, value : "${e}"`), Zf.NEVER;
32346
32337
  let [r, i, a, o, s, c] = n;
32347
- return SA.parse({
32338
+ return xA.parse({
32348
32339
  direction: i,
32349
32340
  amount: a,
32350
32341
  unit: o,
32351
32342
  timezone: s,
32352
32343
  firstDayOfTheWeek: c
32353
32344
  });
32354
- }), TA = (e, t, n) => {
32345
+ }), wA = (e, t, n) => {
32355
32346
  switch (t) {
32356
32347
  case "DAY": return e.subtract({ days: n });
32357
32348
  case "WEEK": return e.subtract({ weeks: n });
@@ -32363,20 +32354,20 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32363
32354
  case "HOUR": return e.subtract({ hours: n });
32364
32355
  default: return Ak(t);
32365
32356
  }
32366
- }, EA = (e, t) => {
32357
+ }, TA = (e, t) => {
32367
32358
  let { direction: n, amount: r, unit: i, firstDayOfTheWeek: a } = e;
32368
32359
  switch (n) {
32369
32360
  case "NEXT": {
32370
32361
  if (!cp(r)) throw Error("Amount is required");
32371
32362
  if (i === "QUARTER") {
32372
- let n = mA(_A(t, "QUARTER", a), "QUARTER", 1), i = mA(n, "QUARTER", r), o = n.toPlainDate().toString(), s = i.toPlainDate().toString();
32363
+ let n = pA(gA(t, "QUARTER", a), "QUARTER", 1), i = pA(n, "QUARTER", r), o = n.toPlainDate().toString(), s = i.toPlainDate().toString();
32373
32364
  return {
32374
32365
  ...e,
32375
32366
  start: o,
32376
32367
  end: s
32377
32368
  };
32378
32369
  }
32379
- let n = t.startOfDay().add({ days: 1 }), o = mA(n, i, r), s = n.toPlainDate().toString(), c = o?.toPlainDate().toString();
32370
+ let n = t.startOfDay().add({ days: 1 }), o = pA(n, i, r), s = n.toPlainDate().toString(), c = o?.toPlainDate().toString();
32380
32371
  return {
32381
32372
  ...e,
32382
32373
  start: s,
@@ -32386,14 +32377,14 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32386
32377
  case "PAST": {
32387
32378
  if (!cp(r)) throw Error("Amount is required");
32388
32379
  if (i === "QUARTER") {
32389
- let n = _A(t, "QUARTER", a), i = TA(n, "QUARTER", r).toPlainDate().toString(), o = n.toPlainDate().toString();
32380
+ let n = gA(t, "QUARTER", a), i = wA(n, "QUARTER", r).toPlainDate().toString(), o = n.toPlainDate().toString();
32390
32381
  return {
32391
32382
  ...e,
32392
32383
  start: i,
32393
32384
  end: o
32394
32385
  };
32395
32386
  }
32396
- let n = t.startOfDay(), o = TA(n, i, r)?.toPlainDate().toString(), s = n.toPlainDate().toString();
32387
+ let n = t.startOfDay(), o = wA(n, i, r)?.toPlainDate().toString(), s = n.toPlainDate().toString();
32397
32388
  return {
32398
32389
  ...e,
32399
32390
  start: o,
@@ -32401,7 +32392,7 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32401
32392
  };
32402
32393
  }
32403
32394
  case "THIS": {
32404
- let n = _A(t, i, a), r = vA(t, i, a), o = n?.toPlainDate().toString(), s = r?.toPlainDate().toString();
32395
+ let n = gA(t, i, a), r = _A(t, i, a), o = n?.toPlainDate().toString(), s = r?.toPlainDate().toString();
32405
32396
  return {
32406
32397
  ...e,
32407
32398
  start: o,
@@ -32409,13 +32400,13 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32409
32400
  };
32410
32401
  }
32411
32402
  }
32412
- }, DA = (e) => {
32403
+ }, EA = (e) => {
32413
32404
  if (!(0, we.isNonEmptyString)(e)) return null;
32414
- let t = wA.safeParse(e);
32405
+ let t = CA.safeParse(e);
32415
32406
  if (!t.success) return null;
32416
32407
  let n = t.data;
32417
- return EA(n, cp(n.timezone) ? hD.Now.zonedDateTimeISO(n.timezone) : hD.Now.zonedDateTimeISO());
32418
- }, OA = (e) => e.value ? e.operand === Y.IS_RELATIVE ? DA(e.value) : e.value : null, kA = (e, t) => {
32408
+ return TA(n, cp(n.timezone) ? hD.Now.zonedDateTimeISO(n.timezone) : hD.Now.zonedDateTimeISO());
32409
+ }, DA = (e) => e.value ? e.operand === Y.IS_RELATIVE ? EA(e.value) : e.value : null, OA = (e, t) => {
32419
32410
  let { direction: n, amount: r, unit: i, firstDayOfTheWeek: a } = e, o = [
32420
32411
  "SECOND",
32421
32412
  "MINUTE",
@@ -32425,78 +32416,78 @@ var sA = eu().transform((e) => e === "" ? [] : zA(e) ? [e] : JSON.parse(e)).refi
32425
32416
  case "NEXT":
32426
32417
  if (!E(r)) throw Error("Amount is required");
32427
32418
  if (i === "QUARTER") {
32428
- let n = vA(t, "QUARTER");
32419
+ let n = _A(t, "QUARTER");
32429
32420
  return {
32430
32421
  ...e,
32431
32422
  start: n,
32432
- end: mA(n, i, r)
32423
+ end: pA(n, i, r)
32433
32424
  };
32434
32425
  }
32435
32426
  if (o) return {
32436
32427
  ...e,
32437
32428
  start: t,
32438
- end: mA(t, i, r)
32429
+ end: pA(t, i, r)
32439
32430
  };
32440
32431
  {
32441
32432
  let n = t.startOfDay().add({ days: 1 });
32442
32433
  return {
32443
32434
  ...e,
32444
32435
  start: n,
32445
- end: mA(n, i, r)
32436
+ end: pA(n, i, r)
32446
32437
  };
32447
32438
  }
32448
32439
  case "PAST":
32449
32440
  if (!E(r)) throw Error("Amount is required");
32450
32441
  if (i === "QUARTER") {
32451
- let n = _A(t, "QUARTER");
32442
+ let n = gA(t, "QUARTER");
32452
32443
  return {
32453
32444
  ...e,
32454
- start: TA(n, i, r),
32445
+ start: wA(n, i, r),
32455
32446
  end: n
32456
32447
  };
32457
32448
  }
32458
32449
  if (o) return {
32459
32450
  ...e,
32460
- start: TA(t, i, r),
32451
+ start: wA(t, i, r),
32461
32452
  end: t
32462
32453
  };
32463
32454
  {
32464
32455
  let n = t.startOfDay();
32465
32456
  return {
32466
32457
  ...e,
32467
- start: TA(n, i, r),
32458
+ start: wA(n, i, r),
32468
32459
  end: n
32469
32460
  };
32470
32461
  }
32471
32462
  case "THIS": return {
32472
32463
  ...e,
32473
- start: _A(t, i, a),
32474
- end: vA(t, i, a)
32464
+ start: gA(t, i, a),
32465
+ end: _A(t, i, a)
32475
32466
  };
32476
32467
  }
32477
- }, AA = (e) => {
32468
+ }, kA = (e) => {
32478
32469
  if (!(0, we.isNonEmptyString)(e)) return null;
32479
- let t = wA.safeParse(e);
32470
+ let t = CA.safeParse(e);
32480
32471
  if (t.success) {
32481
32472
  let e = t.data;
32482
- return kA(e, (cp(e.timezone) ? hD.Now.zonedDateTimeISO(e.timezone) : hD.Now.zonedDateTimeISO()).round({ smallestUnit: "second" }));
32473
+ return OA(e, (cp(e.timezone) ? hD.Now.zonedDateTimeISO(e.timezone) : hD.Now.zonedDateTimeISO()).round({ smallestUnit: "second" }));
32483
32474
  } else return null;
32484
- }, jA = (e) => e.value ? e.operand === Y.IS_RELATIVE ? AA(e.value) : e.value : null;
32475
+ }, AA = (e) => e.value ? e.operand === Y.IS_RELATIVE ? kA(e.value) : e.value : null;
32485
32476
  xp.Is, Y.IS, xp.IsNotNull, Y.IS_NOT_NULL, xp.IsNot, Y.IS_NOT, xp.LessThanOrEqual, Y.LESS_THAN_OR_EQUAL, xp.GreaterThanOrEqual, Y.GREATER_THAN_OR_EQUAL, xp.IsBefore, Y.IS_BEFORE, xp.IsAfter, Y.IS_AFTER, xp.Contains, Y.CONTAINS, xp.DoesNotContain, Y.DOES_NOT_CONTAIN, xp.IsEmpty, Y.IS_EMPTY, xp.IsNotEmpty, Y.IS_NOT_EMPTY, xp.IsRelative, Y.IS_RELATIVE, xp.IsInPast, Y.IS_IN_PAST, xp.IsInFuture, Y.IS_IN_FUTURE, xp.IsToday, Y.IS_TODAY, Y.IS, Y.IS, Y.IS_NOT_NULL, Y.IS_NOT_NULL, Y.IS_NOT, Y.IS_NOT, Y.LESS_THAN_OR_EQUAL, Y.LESS_THAN_OR_EQUAL, Y.GREATER_THAN_OR_EQUAL, Y.GREATER_THAN_OR_EQUAL, Y.IS_BEFORE, Y.IS_BEFORE, Y.IS_AFTER, Y.IS_AFTER, Y.CONTAINS, Y.CONTAINS, Y.DOES_NOT_CONTAIN, Y.DOES_NOT_CONTAIN, Y.IS_EMPTY, Y.IS_EMPTY, Y.IS_NOT_EMPTY, Y.IS_NOT_EMPTY, Y.IS_RELATIVE, Y.IS_RELATIVE, Y.IS_IN_PAST, Y.IS_IN_PAST, Y.IS_IN_FUTURE, Y.IS_IN_FUTURE, Y.IS_TODAY, Y.IS_TODAY, Y.VECTOR_SEARCH, Y.VECTOR_SEARCH;
32486
- var MA = (e) => {
32477
+ var jA = (e) => {
32487
32478
  try {
32488
32479
  return new URL(e);
32489
32480
  } catch {
32490
32481
  return null;
32491
32482
  }
32492
- }, NA = (e) => e === void 0 || typeof e != "object" || !e ? e : Array.isArray(e) ? e.map((e) => NA(e)).filter((e) => !(0, we.isUndefined)(e)) : Object.entries(e).reduce((e, [t, n]) => {
32483
+ }, MA = (e) => e === void 0 || typeof e != "object" || !e ? e : Array.isArray(e) ? e.map((e) => MA(e)).filter((e) => !(0, we.isUndefined)(e)) : Object.entries(e).reduce((e, [t, n]) => {
32493
32484
  if ((0, we.isUndefined)(n)) return e;
32494
32485
  if (n === null || n instanceof Date) return {
32495
32486
  ...e,
32496
32487
  [t]: n
32497
32488
  };
32498
32489
  if (typeof n == "object") {
32499
- let r = NA(n);
32490
+ let r = MA(n);
32500
32491
  return !(0, we.isUndefined)(r) && Object.keys(r).length > 0 ? {
32501
32492
  ...e,
32502
32493
  [t]: r
@@ -32506,29 +32497,29 @@ var MA = (e) => {
32506
32497
  ...e,
32507
32498
  [t]: n
32508
32499
  };
32509
- }, {}), PA = {
32500
+ }, {}), NA = {
32510
32501
  BOLD: "bold",
32511
32502
  ITALIC: "italic",
32512
32503
  UNDERLINE: "underline",
32513
32504
  STRIKE: "strike",
32514
32505
  LINK: "link"
32515
32506
  };
32516
- PA.UNDERLINE, PA.BOLD, PA.ITALIC, PA.STRIKE, PA.LINK;
32517
- var FA = (e) => {
32507
+ NA.UNDERLINE, NA.BOLD, NA.ITALIC, NA.STRIKE, NA.LINK;
32508
+ var PA = (e) => {
32518
32509
  let t = e.trim();
32519
32510
  return t.startsWith("http://") || t.startsWith("https://") || t.startsWith("HTTPS://") || t.startsWith("HTTP://") ? t : `https://${t}`;
32520
- }, IA = (e, t) => {
32511
+ }, FA = (e, t) => {
32521
32512
  let n = t?.allowIp ?? !0, r = t?.allowLocalhost ?? !0, i = /^(((?!-))(xn--|_)?[a-z0-9-]{0,61}[a-z0-9]{1,1}\.){1,10}(xn--)?([a-z0-9][a-z0-9-]{0,60}|[a-z0-9-]{1,30}\.[a-z]{2,})$/.test(e), a = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e), o = e === "localhost" || e === "127.0.0.1";
32522
32513
  return o && !r || a && !n ? !1 : i || o || a;
32523
32514
  };
32524
32515
  eu().transform((e, t) => {
32525
- let n = FA(e.trim()), r = n.replace("https://", "").replace("http://", "").replace("HTTPS://", "").replace("HTTP://", "");
32516
+ let n = PA(e.trim()), r = n.replace("https://", "").replace("http://", "").replace("HTTPS://", "").replace("HTTP://", "");
32526
32517
  if (/^\d+(?:\/[a-zA-Z]*)?$/.test(r)) return t.addIssue({
32527
32518
  code: "custom",
32528
32519
  message: "domain is not a valid url"
32529
32520
  }), Te;
32530
32521
  try {
32531
- return IA(new URL(n).hostname) ? n : (t.addIssue({
32522
+ return FA(new URL(n).hostname) ? n : (t.addIssue({
32532
32523
  code: "custom",
32533
32524
  message: "domain is not a valid url"
32534
32525
  }), Te);
@@ -32539,54 +32530,54 @@ eu().transform((e, t) => {
32539
32530
  }), Te;
32540
32531
  }
32541
32532
  });
32542
- var LA = (e) => {
32543
- let t = MA(e);
32533
+ var IA = (e) => {
32534
+ let t = jA(e);
32544
32535
  return E(t) ? (t.origin + t.pathname + t.search + t.hash).replace(/\/$/, "") : e;
32545
- }, RA = (e) => {
32536
+ }, LA = (e) => {
32546
32537
  let t = e.trim();
32547
- return t === "" ? t : LA(FA(t));
32548
- }, zA = (e) => /^{{[^{}]+}}$/.test(e), BA = /* @__PURE__ */ new Map();
32538
+ return t === "" ? t : IA(PA(t));
32539
+ }, RA = (e) => /^{{[^{}]+}}$/.test(e), zA = /* @__PURE__ */ new Map();
32549
32540
  for (let e of Ek()) {
32550
- let t = Dk(e), n = BA.get(t);
32551
- n ? n.push(e) : BA.set(t, [e]);
32541
+ let t = Dk(e), n = zA.get(t);
32542
+ n ? n.push(e) : zA.set(t, [e]);
32552
32543
  }
32553
32544
  new Set(Ek());
32554
- var VA = (e) => typeof e == "string", HA = RegExp("\\{\\{([^{}]+)\\}\\}", "g"), UA = (e, t) => E(e) ? VA(e) ? KA(e, t) : Array.isArray(e) ? WA(e, t) : typeof e == "object" && e ? GA(e, t) : e : e, WA = (e, t) => {
32545
+ var BA = (e) => typeof e == "string", VA = RegExp("\\{\\{([^{}]+)\\}\\}", "g"), HA = (e, t) => E(e) ? BA(e) ? GA(e, t) : Array.isArray(e) ? UA(e, t) : typeof e == "object" && e ? WA(e, t) : e : e, UA = (e, t) => {
32555
32546
  let n = e;
32556
- for (let r = 0; r < e.length; ++r) n[r] = UA(e[r], t);
32547
+ for (let r = 0; r < e.length; ++r) n[r] = HA(e[r], t);
32557
32548
  return n;
32558
- }, GA = (e, t) => Object.entries(e).reduce((e, [n, r]) => {
32559
- let i = UA(n, t);
32560
- return e[typeof i == "string" ? i : String(i)] = UA(r, t), e;
32561
- }, {}), KA = (e, t) => {
32562
- let n = e.match(HA);
32563
- return !n || n.length === 0 ? e : n.length === 1 && n[0] === e ? zk(e, t) : e.replace(HA, (e, n) => zk(e, t));
32564
- }, qA = {
32549
+ }, WA = (e, t) => Object.entries(e).reduce((e, [n, r]) => {
32550
+ let i = HA(n, t);
32551
+ return e[typeof i == "string" ? i : String(i)] = HA(r, t), e;
32552
+ }, {}), GA = (e, t) => {
32553
+ let n = e.match(VA);
32554
+ return !n || n.length === 0 ? e : n.length === 1 && n[0] === e ? zk(e, t) : e.replace(VA, (e, n) => zk(e, t));
32555
+ }, KA = {
32565
32556
  darwin: "https://docs.docker.com/desktop/setup/install/mac-install/",
32566
32557
  win32: "https://docs.docker.com/desktop/setup/install/windows-install/",
32567
32558
  linux: "https://docs.docker.com/engine/install/"
32568
- }, JA = () => {
32559
+ }, qA = () => {
32569
32560
  try {
32570
32561
  return d("docker --version", { stdio: "ignore" }), !0;
32571
32562
  } catch {
32572
32563
  return !1;
32573
32564
  }
32574
- }, YA = () => [
32565
+ }, JA = () => [
32575
32566
  " Docker is required but not installed.",
32576
32567
  "",
32577
- ` Install Docker: ${qA[process.platform] ?? qA.linux}`,
32568
+ ` Install Docker: ${KA[process.platform] ?? KA.linux}`,
32578
32569
  "",
32579
32570
  " Then run this command again.",
32580
32571
  "",
32581
32572
  " Alternatively, connect to an existing Twenty instance:",
32582
32573
  " npx create-twenty-app@latest my-twenty-app --url <your-instance-url>"
32583
- ].join("\n"), XA = process.env.INIT_CWD || process.cwd(), ZA = "twentycrm/twenty-app-dev:latest", QA = class {
32574
+ ].join("\n"), YA = process.env.INIT_CWD || process.cwd(), XA = "twentycrm/twenty-app-dev:latest", ZA = class {
32584
32575
  constructor() {
32585
32576
  this.stepCounter = 0, this.totalSteps = 0;
32586
32577
  }
32587
32578
  async execute(t = {}) {
32588
32579
  let { appName: n, appDisplayName: i, appDirectory: a, appDescription: o } = this.getAppInfos(t), s = t.serverUrl ?? h, c = s !== h;
32589
- !c && !JA() && (console.log(e.yellow("\n" + YA() + "\n")), process.exit(1)), c && t.authenticationMethod === "apiKey" && console.log(e.yellow("API key authentication is only supported on a local Docker instance. Ignoring and switching to OAuth authentication."));
32580
+ !c && !qA() && (console.log(e.yellow("\n" + JA() + "\n")), process.exit(1)), c && t.authenticationMethod === "apiKey" && console.log(e.yellow("API key authentication is only supported on a local Docker instance. Ignoring and switching to OAuth authentication."));
32590
32581
  let l = c ? "oauth" : t.authenticationMethod ?? "apiKey";
32591
32582
  try {
32592
32583
  await this.validateDirectory(a), this.totalSteps = this.computeTotalSteps({ skipLocalInstance: c }), this.stepCounter = 0;
@@ -32631,7 +32622,7 @@ var VA = (e) => typeof e == "string", HA = RegExp("\\{\\{([^{}]+)\\}\\}", "g"),
32631
32622
  return {
32632
32623
  appName: t,
32633
32624
  appDisplayName: n,
32634
- appDirectory: e.directory ? i.join(XA, e.directory) : i.join(XA, u(t)),
32625
+ appDirectory: e.directory ? i.join(YA, e.directory) : i.join(YA, u(t)),
32635
32626
  appDescription: r
32636
32627
  };
32637
32628
  }
@@ -32649,7 +32640,7 @@ var VA = (e) => typeof e == "string", HA = RegExp("\\{\\{([^{}]+)\\}\\}", "g"),
32649
32640
  }
32650
32641
  pullImageInBackground() {
32651
32642
  return new Promise((e) => {
32652
- let t = f("docker", ["pull", ZA], { stdio: "ignore" });
32643
+ let t = f("docker", ["pull", XA], { stdio: "ignore" });
32653
32644
  t.on("close", (t) => e(t === 0)), t.on("error", () => e(!1));
32654
32645
  });
32655
32646
  }
@@ -32684,7 +32675,7 @@ var VA = (e) => typeof e == "string", HA = RegExp("\\{\\{([^{}]+)\\}\\}", "g"),
32684
32675
  let r = (await n.json()).data?.currentWorkspace?.workspaceUrls;
32685
32676
  if (!r) return null;
32686
32677
  let i = r.customUrl ?? r.subdomainUrl;
32687
- return i ? RA(i) : null;
32678
+ return i ? LA(i) : null;
32688
32679
  }
32689
32680
  async readMainPageLayoutUniversalIdentifier(e) {
32690
32681
  let t = i.join(e, "src", "constants", "universal-identifiers.ts");
@@ -32795,10 +32786,10 @@ var VA = (e) => typeof e == "string", HA = RegExp("\\{\\{([^{}]+)\\}\\}", "g"),
32795
32786
  let o = 1;
32796
32787
  console.log(e.white(` ${o}. Navigate to your project`)), console.log(e.cyan(` cd ${i}\n`)), o++, r || (console.log(e.white(` ${o}. Connect to a Twenty instance`)), console.log(e.cyan(" yarn twenty remote:add --url <your-instance-url>\n")), o++), console.log(e.white(` ${o}. Start developing`)), console.log(e.cyan(" yarn twenty dev\n")), o++, console.log(e.white(` ${o}. Open your twenty instance`)), console.log(e.cyan(` ${n}\n`)), console.log(e.gray(" Documentation: https://docs.twenty.com/developers/extend/capabilities/apps"));
32797
32788
  }
32798
- }, $A = new t(ie.name).description("CLI tool to initialize a new Twenty application").version(ie.version, "-v, --version", "Output the current version of create-twenty-app.").argument("[directory]").option("-n, --name <name>", "Application name").option("-d, --display-name <displayName>", "Application display name").option("--description <description>", "Application description").option("--url <url>", "Twenty server URL (default: http://localhost:2020)").option("--api-url <apiUrl>", "[deprecated: use --url]").option("--authentication-method <method>", "Authentication method: oauth or apiKey (default: apiKey for local, oauth for remote)").helpOption("-h, --help", "Display this help message.").action(async (t, n) => {
32789
+ }, QA = new t(ie.name).description("CLI tool to initialize a new Twenty application").version(ie.version, "-v, --version", "Output the current version of create-twenty-app.").argument("[directory]").option("-n, --name <name>", "Application name").option("-d, --display-name <displayName>", "Application display name").option("--description <description>", "Application description").option("--url <url>", "Twenty server URL (default: http://localhost:2020)").option("--api-url <apiUrl>", "[deprecated: use --url]").option("--authentication-method <method>", "Authentication method: oauth or apiKey (default: apiKey for local, oauth for remote)").helpOption("-h, --help", "Display this help message.").action(async (t, n) => {
32799
32790
  t && !/^[a-z0-9-]+$/.test(t) && (console.error(e.red(`Invalid directory "${t}". Must contain only lowercase letters, numbers, and hyphens`)), process.exit(1)), n?.name !== void 0 && n.name.trim().length === 0 && (console.error(e.red("Error: --name cannot be empty.")), process.exit(1)), n?.authenticationMethod && !["oauth", "apiKey"].includes(n.authenticationMethod) && (console.error(e.red("Error: --authentication-method must be \"oauth\" or \"apiKey\".")), process.exit(1)), n?.apiUrl && console.warn(e.yellow("Warning: --api-url is deprecated. Use --url instead."));
32800
32791
  let r = (n?.url ?? n?.apiUrl)?.replace(/\/+$/, "");
32801
- await new QA().execute({
32792
+ await new ZA().execute({
32802
32793
  directory: t,
32803
32794
  name: n?.name,
32804
32795
  displayName: n?.displayName,
@@ -32807,9 +32798,9 @@ var VA = (e) => typeof e == "string", HA = RegExp("\\{\\{([^{}]+)\\}\\}", "g"),
32807
32798
  authenticationMethod: n?.authenticationMethod
32808
32799
  });
32809
32800
  });
32810
- $A.exitOverride();
32801
+ QA.exitOverride();
32811
32802
  try {
32812
- $A.parse();
32803
+ QA.parse();
32813
32804
  } catch (t) {
32814
32805
  t instanceof n && process.exit(t.exitCode), t instanceof Error && (console.error(e.red("Error:"), t.message), process.exit(1));
32815
32806
  }