twenty 2.46.0 → 2.49.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/CONTRIBUTING.md +25 -17
- package/dist/app-template/yarn.lock +165 -191
- package/dist/app-worker.cjs +1 -1
- package/dist/chunks/application-BE-X21OV.cjs +5 -0
- package/dist/chunks/build-pull-entities-caP3XupC.cjs +5 -0
- package/dist/chunks/{build-source-manifest-CLKH5vzc.cjs → build-source-manifest-DWRbCMVq.cjs} +1 -1
- package/dist/chunks/{build-source-snapshot-CbGsy1-v.cjs → build-source-snapshot-CtgBQfSx.cjs} +816 -157
- package/dist/chunks/{check-node-requirement-mqwNPktb.cjs → check-node-requirement-CGBKvEqH.cjs} +1 -1
- package/dist/chunks/cli-node-version-range.constant-D7fE8edk.cjs +1 -0
- package/dist/chunks/cli-version.constant-BBeYll5N.cjs +1 -0
- package/dist/chunks/collect-translatable-strings-GBVXMoaX.cjs +1 -0
- package/dist/chunks/{collect-watch-inputs-B9jWG4W0.cjs → collect-watch-inputs-CJVgCTo5.cjs} +1 -1
- package/dist/chunks/compile-application-translations-B4jILjGc.cjs +1 -0
- package/dist/chunks/{constants-CL6mrTMT-B748cNNG.cjs → constants-CemcuPi_-D7dbw2cv.cjs} +1 -1
- package/dist/chunks/{convert-to-label-BPBLtc_O.cjs → convert-to-label-DH4ArWop.cjs} +1 -1
- package/dist/chunks/create-app-not-installed-error-DY-iuPPx.cjs +1 -0
- package/dist/chunks/{create-http-status-error-D3gy3DzB.cjs → create-http-status-error-C6gJS0JS.cjs} +1 -1
- package/dist/chunks/create-metadata-client-BRD2ys8z.cjs +6 -0
- package/dist/chunks/create-pull-base-write-CX9yftCd.cjs +1 -0
- package/dist/chunks/create-rest-client-Cc5Cmakp.cjs +60 -0
- package/dist/chunks/create-tooling-failure-B2FmNwR2.cjs +1 -0
- package/dist/chunks/extract-manifest-from-file-mvb6OhWm.cjs +1 -0
- package/dist/chunks/extract-source-translations-Bd_030qL.cjs +1 -0
- package/dist/chunks/{fetch-metadata-inspection-Dp034TpK.cjs → fetch-metadata-inspection-CAmEp-xl.cjs} +1 -1
- package/dist/chunks/{fetch-signed-in-identity-BhvaL3zp.cjs → fetch-signed-in-identity-b_LbRuL-.cjs} +1 -1
- package/dist/chunks/{fetch-workspace-id-DJStmf_V.cjs → fetch-workspace-id-C9kY0s84.cjs} +1 -1
- package/dist/chunks/{format-body-VcKL4WXt.cjs → format-body-BIv-9Sd5.cjs} +1 -1
- package/dist/chunks/{format-data-value-B6rIbpJv.cjs → format-data-value-C7Njc7Sb.cjs} +1 -1
- package/dist/chunks/format-display-path-gEepVJDg.cjs +1 -0
- package/dist/chunks/{format-metadata-fields-DJnTg1R9.cjs → format-metadata-fields-BOG2kj2h.cjs} +1 -1
- package/dist/chunks/{format-metadata-owner-yUeocnwY.cjs → format-metadata-owner-CyEMvoQr.cjs} +1 -1
- package/dist/chunks/format-progress-line-DgxG_7p2.cjs +1 -0
- package/dist/chunks/generate-application-client-BOLnv8nr.cjs +1 -0
- package/dist/chunks/{get-app-plan-summary-B0uwHXbO.cjs → get-app-plan-summary-D1Dsd34P.cjs} +2 -2
- package/dist/chunks/get-client-generation-skip-reason-CUn0Y2Vu.cjs +1 -0
- package/dist/chunks/get-client-sdk-package-path-2U3kDCRq.cjs +1 -0
- package/dist/chunks/{get-function-input-schema-GNk3NRLJ-Bfph1o9z.cjs → get-function-input-schema-GNk3NRLJ-CWNFoyKh.cjs} +1 -1
- package/dist/chunks/global-flags.constant-0k222fHC.cjs +1 -0
- package/dist/chunks/{is-access-token-expiring-gICPXsbO.cjs → is-access-token-expiring-D-YfufId.cjs} +1 -1
- package/dist/chunks/{is-application-not-found-error-mNeGbxmT.cjs → is-application-not-found-error-4vnGlYbm.cjs} +1 -1
- package/dist/chunks/is-exported-manifest-dsiWCcjx.cjs +1 -0
- package/dist/chunks/is-inside-directory-DHVCQE5C.cjs +1 -0
- package/dist/chunks/{is-interaction-allowed-ycbAFMIj.cjs → is-interaction-allowed-CF-ko1KI.cjs} +1 -1
- package/dist/chunks/is-locale-catalog-CRn-mKHj.cjs +1 -0
- package/dist/chunks/is-supported-locale-BOZxTj7r.cjs +1 -0
- package/dist/chunks/{is-supported-locale-BAjnKnKj.cjs → locale-catalog-format-rg5FMb7l.cjs} +5 -5
- package/dist/chunks/metadata-Vepr2xeA.cjs +1 -0
- package/dist/chunks/{metadata-page.constant-BkG4ndrO.cjs → metadata-page.constant-thBSPIZT.cjs} +1 -1
- package/dist/chunks/{parse-api-url-BllxRdpE.cjs → parse-api-url-CEfjRyid.cjs} +1 -1
- package/dist/chunks/{parse-app-export-BkfflyUY.cjs → parse-app-export-DUZ2dQJ8.cjs} +1 -1
- package/dist/chunks/parse-extraction-locale-fg7K8vps.cjs +1 -0
- package/dist/chunks/{parse-graphql-response-CtP9KTS2.cjs → parse-graphql-response-DvoRiFPV.cjs} +1 -1
- package/dist/chunks/{parse-json-input-CvMTKAWw.cjs → parse-json-input-DE451WQG.cjs} +1 -1
- package/dist/chunks/{print-typescript-value-DhElcFzI.cjs → print-typescript-value-DaEFmMda.cjs} +1 -1
- package/dist/chunks/pull-source-D9QUEAsK.cjs +1 -0
- package/dist/chunks/read-app-identity-DtEnxiEF.cjs +1 -0
- package/dist/chunks/read-application-identifier-DyZcsUV4.cjs +1 -0
- package/dist/chunks/{read-application-identity-BFg_p84F.cjs → read-application-identity-CMJ-W5D8.cjs} +1 -1
- package/dist/chunks/{read-config-DUJ27809.cjs → read-config-DdtXhdPp.cjs} +1 -1
- package/dist/chunks/read-json-object-CgaXuNS0.cjs +1 -0
- package/dist/chunks/read-snapshot-file-dvWjVexO.cjs +1 -0
- package/dist/chunks/{read-source-identity-C8LG1v6U.cjs → read-source-identity-Ca7QkuwC.cjs} +1 -1
- package/dist/chunks/record-pull-base-Dfqth7Uy.cjs +1 -0
- package/dist/chunks/{record-typecheck-config-inputs-BDqkKCrj.cjs → record-typecheck-config-inputs-DZy2PhMY.cjs} +1 -1
- package/dist/chunks/{request-oauth-tokens-C4KKlTQT.cjs → request-oauth-tokens-BY5ew3aM.cjs} +1 -1
- package/dist/chunks/require-approval-D0FfoHhF.cjs +1 -0
- package/dist/chunks/resolve-app-project-dftvbB2P.cjs +1 -0
- package/dist/chunks/resolve-command-target-0k6iitOZ.cjs +1 -0
- package/dist/chunks/resolve-inside-sdk-6M8jy9bi.cjs +1 -0
- package/dist/chunks/{resolve-metadata-object-QoDi-Aik.cjs → resolve-metadata-object-DzDTQF_T.cjs} +1 -1
- package/dist/chunks/resolve-project-typescript-Cw2kvn6E.cjs +1 -0
- package/dist/chunks/{resolve-request-url-jC5kYwkn.cjs → resolve-request-url-Cnuxu_nj.cjs} +1 -1
- package/dist/chunks/resolve-source-sdk-B1Fxlsmt.cjs +1 -0
- package/dist/chunks/{run-api-graphql-command-Biy0WqXa.cjs → run-api-graphql-command-CzQ4IH4l.cjs} +1 -1
- package/dist/chunks/{run-api-rest-command-D9kdQceV.cjs → run-api-rest-command-BtXv11uz.cjs} +1 -1
- package/dist/chunks/{run-app-add-command-DcTQg7Si.cjs → run-app-add-command-DsgrCsEl.cjs} +5 -5
- package/dist/chunks/run-app-apply-command-X_XGAwRN.cjs +2 -0
- package/dist/chunks/{run-app-build-command-BRYb0one.cjs → run-app-build-command--t8qRNsn.cjs} +1 -1
- package/dist/chunks/run-app-dev-command-Cc-nhH2t.cjs +2 -0
- package/dist/chunks/run-app-exec-command-mdXCYmUn.cjs +3 -0
- package/dist/chunks/run-app-generate-client-command-3DMg-WyX.cjs +2 -0
- package/dist/chunks/run-app-init-command-BfS8IFmY.cjs +2 -0
- package/dist/chunks/run-app-install-command-DMbwFvtE.cjs +1 -0
- package/dist/chunks/run-app-logs-command-B7_iDOj1.cjs +9 -0
- package/dist/chunks/run-app-operation-DFCj0sG_.cjs +1 -0
- package/dist/chunks/run-app-plan-command-Dh_DFA7H.cjs +1 -0
- package/dist/chunks/run-app-publish-command-eJcYGb8S.cjs +3 -0
- package/dist/chunks/run-app-pull-command-BV2cMuLU.cjs +3 -0
- package/dist/chunks/run-app-translations-extract-command-CBBbk_vJ.cjs +2 -0
- package/dist/chunks/{run-app-typecheck-command-C8LqpOej.cjs → run-app-typecheck-command-pAHhuBGo.cjs} +1 -1
- package/dist/chunks/run-app-uninstall-command-C5um6udQ.cjs +2 -0
- package/dist/chunks/{run-auth-login-command-_zDgRcth.cjs → run-auth-login-command-C4VI44Xu.cjs} +1 -1
- package/dist/chunks/{run-auth-logout-command-BO6O7GVi.cjs → run-auth-logout-command-5Tvqclki.cjs} +1 -1
- package/dist/chunks/{run-auth-status-command-Cj-vqoHg.cjs → run-auth-status-command-CLH1bylR.cjs} +1 -1
- package/dist/chunks/{run-cli-c9TOR0zj.cjs → run-cli-BA0FsxzB.cjs} +8 -8
- package/dist/chunks/{run-commands-command-C6gvMpQ_.cjs → run-commands-command-CjzkTcrO.cjs} +1 -1
- package/dist/chunks/{run-data-get-command-jDEU4EG1.cjs → run-data-get-command-DoZIpf8O.cjs} +1 -1
- package/dist/chunks/{run-data-list-command-EnCdbuzc.cjs → run-data-list-command-DAoplyqj.cjs} +1 -1
- package/dist/chunks/{run-doctor-command-DnJ6io-m.cjs → run-doctor-command-D8cpt7FI.cjs} +2 -2
- package/dist/chunks/{run-metadata-field-describe-command-vJngpw2S.cjs → run-metadata-field-describe-command-BrZYIhjH.cjs} +1 -1
- package/dist/chunks/{run-metadata-field-list-command-CR4w7fI6.cjs → run-metadata-field-list-command-C9-pHXbx.cjs} +1 -1
- package/dist/chunks/{run-metadata-object-describe-command-CHP8K-W2.cjs → run-metadata-object-describe-command-WFdGu1Iq.cjs} +1 -1
- package/dist/chunks/{run-metadata-object-list-command-BqXMcAp6.cjs → run-metadata-object-list-command-8UKU3cMW.cjs} +1 -1
- package/dist/chunks/{run-open-command-DKl8acw0.cjs → run-open-command-B1pdHp36.cjs} +1 -1
- package/dist/chunks/{run-remote-list-command-DeAzr5Mn.cjs → run-remote-list-command-BRPcCOKx.cjs} +1 -1
- package/dist/chunks/{run-remote-remove-command-D0C5sWjP.cjs → run-remote-remove-command-CS6za2Pm.cjs} +1 -1
- package/dist/chunks/{run-remote-rename-command-Byq9WRHd.cjs → run-remote-rename-command-BOqWQUR4.cjs} +1 -1
- package/dist/chunks/{run-remote-use-command-B6VVDlMG.cjs → run-remote-use-command-BANiokD-.cjs} +1 -1
- package/dist/chunks/{run-version-command-BmSk8PUV.cjs → run-version-command-C0xgcPP6.cjs} +1 -1
- package/dist/chunks/{select-target-C1VZjf-A.cjs → select-target-CfuNLCQL.cjs} +1 -1
- package/dist/chunks/sign-in-to-remote-again-DYCWIDa9.cjs +1 -0
- package/dist/chunks/{sign-in-with-browser-C3kC6uP2.cjs → sign-in-with-browser-Ck4tOxtA.cjs} +1 -1
- package/dist/chunks/to-public-target-C0POrVoG.cjs +1 -0
- package/dist/chunks/{to-worker-output-diagnostics-lprh9b0l.cjs → to-worker-output-diagnostics-Bt_acI26.cjs} +1 -1
- package/dist/chunks/{typecheck-application-DGrovgX9.cjs → typecheck-application-DEO1SVdO.cjs} +2 -2
- package/dist/chunks/{update-config-BkKBEfAp.cjs → update-config-FzOzO3wZ.cjs} +1 -1
- package/dist/chunks/utils-ZOESAfF8-ub6jPiZ-.cjs +35 -0
- package/dist/chunks/with-phase-details-Dof8Ao9R.cjs +1 -0
- package/dist/chunks/{write-config-atomically-DRWTukU-.cjs → write-config-atomically-C-YMKq3P.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/docs/commands.md +93 -5
- package/package.json +6 -6
- package/src/app/source/README.md +1 -1
- package/dist/chunks/application-DuIJE2qG.cjs +0 -5
- package/dist/chunks/build-pull-entities-zwArrVMk.cjs +0 -5
- package/dist/chunks/cli-version.constant-aSp8WZDh.cjs +0 -1
- package/dist/chunks/compile-application-translations-B59jYVWc.cjs +0 -1
- package/dist/chunks/create-app-not-installed-error-Cc8YZqI7.cjs +0 -1
- package/dist/chunks/create-metadata-client-ChjDalSi.cjs +0 -6
- package/dist/chunks/create-pull-base-write-rxjcKtD-.cjs +0 -1
- package/dist/chunks/create-rest-client-eAfOFfDA.cjs +0 -58
- package/dist/chunks/create-tooling-failure-DLI5FlQP.cjs +0 -1
- package/dist/chunks/extract-manifest-from-file-j-Y9wNas.cjs +0 -1
- package/dist/chunks/generate-application-client-CCVLjxTj.cjs +0 -1
- package/dist/chunks/global-flags.constant-8GfW0sNU.cjs +0 -1
- package/dist/chunks/is-exported-manifest-CriNOWvx.cjs +0 -1
- package/dist/chunks/is-inside-directory-t3ixLQDr.cjs +0 -1
- package/dist/chunks/metadata-D9sQOTRK.cjs +0 -1
- package/dist/chunks/package-CdYv4LEx.cjs +0 -1
- package/dist/chunks/pull-source-eoiJwFb9.cjs +0 -1
- package/dist/chunks/read-app-identity-SeleQ_D6.cjs +0 -1
- package/dist/chunks/record-pull-base-BbxvlnU8.cjs +0 -1
- package/dist/chunks/require-approval-fhegB1ap.cjs +0 -1
- package/dist/chunks/resolve-app-project-D5ZXIpsG.cjs +0 -1
- package/dist/chunks/resolve-inside-sdk-p-16gKb4.cjs +0 -1
- package/dist/chunks/resolve-project-typescript-CDY8BbmP.cjs +0 -1
- package/dist/chunks/resolve-source-sdk-mK-f4q55.cjs +0 -1
- package/dist/chunks/run-app-apply-command-DwLPPJ-Y.cjs +0 -2
- package/dist/chunks/run-app-dev-command-CVeh9Gab.cjs +0 -2
- package/dist/chunks/run-app-exec-command-DKLNLbL5.cjs +0 -3
- package/dist/chunks/run-app-init-command-CJj8_spC.cjs +0 -2
- package/dist/chunks/run-app-logs-command-Dusb8K-W.cjs +0 -9
- package/dist/chunks/run-app-operation-BWrY9YZK.cjs +0 -1
- package/dist/chunks/run-app-plan-command-C0_3e332.cjs +0 -1
- package/dist/chunks/run-app-pull-command-DcZqs8gR.cjs +0 -3
- package/dist/chunks/run-app-uninstall-command-ncWS_k-p.cjs +0 -2
- package/dist/chunks/sign-in-to-remote-again-CW8HPSTP.cjs +0 -1
- package/dist/chunks/to-public-target-CIAwoOKL.cjs +0 -1
- package/dist/chunks/utils-B8EXJeaX-DK3gCslL.cjs +0 -33
package/dist/chunks/{build-source-snapshot-CbGsy1-v.cjs → build-source-snapshot-CtgBQfSx.cjs}
RENAMED
|
@@ -1,176 +1,835 @@
|
|
|
1
|
-
const e=require("./build-CX6FBrbu.cjs"),t=require("./constants-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const e=require("./build-CX6FBrbu.cjs"),t=require("./constants-CemcuPi_-D7dbw2cv.cjs"),n=require("./application-BE-X21OV.cjs"),r=require("./validate-app-path-Dau-PC0a.cjs"),i=require("./collect-watch-inputs-CJVgCTo5.cjs"),a=require("./cli-error-CSsayo0u.cjs"),o=require("./fs-utils-Bl1fQcaJ.cjs"),s=require("./get-tooling-error-context-C69TBSej.cjs"),c=require("./typecheck-application-DEO1SVdO.cjs"),l=require("./compile-application-translations-B4jILjGc.cjs"),u=require("./resolve-source-sdk-B1Fxlsmt.cjs"),d=require("./constants-Cf5-CwMu.cjs"),f=require("./is-supported-locale-BOZxTj7r.cjs");let p=require("node:crypto"),m=require("node:fs/promises"),h=require("node:path"),g=require("node:module"),_=require("node:fs"),v=require("esbuild");v=e.i(v);let y=require("typescript");y=e.i(y);let b=require("path");b=e.i(b);let x=require("crypto");x=e.i(x);var S=({sourcePath:e,destinationPath:t,dereferenceSymlinks:n=!1})=>n?(0,m.copyFile)(e,t):o.t(e,t),ee=/^readme(\.[^.]+)?$/i,te=e=>{let t=e.filter(e=>ee.test(e));return t.find(e=>/\.md$/i.test(e))??t[0]},ne=async({appPath:e,relativeOutputDir:t=n.l,dereferenceSymlinks:r=!1})=>{let a=te(await(0,m.readdir)(e));if(a===void 0)return;let s=(0,h.join)(e,t);await o.r(s);let c=(0,h.join)(e,a),l=(0,h.join)(s,a);i.r(c),await S({sourcePath:c,destinationPath:l,dereferenceSymlinks:r})},re=`twenty-client-sdk`,ie=async({result:e,appPath:n,fileFolder:r,lastChecksums:i,onFileBuilt:a})=>{let o=Object.keys(e.metafile?.outputs??{}).filter(e=>e.endsWith(`.mjs`));for(let s of o){let o=b.default.resolve(s),c=b.default.relative(n,o),l=e.metafile?.outputs?.[s]?.entryPoint||``,u=b.default.relative(n,l),d=await(0,m.readFile)(o),f=r===t.I.BuiltFrontComponent?`sha256`:`md5`,p=x.default.createHash(f).update(d).digest(`hex`);if(i.get(c)===p)continue;i.set(c,p);let h=(e.metafile?.outputs?.[s])?.imports?.some(e=>e.external===!0&&e.path.startsWith(re))??!1;a&&await a({fileFolder:r,builtPath:c,sourcePath:u,checksum:p,usesSdkClient:h})}},C=async({appPath:e,sourcePaths:t,fileFolder:n,buildOptions:r,onFileBuilt:a})=>{if(t.length===0)return;let o={};for(let n of t){let t=n.replace(/\.tsx?$/,``);if(Object.hasOwn(o,t))throw Error(`Application sources ${b.default.relative(e,o[t])} and ${n} produce the same build output. Rename one of them.`);o[t]=b.default.join(e,n)}await ie({result:await v.build({...r,entryPoints:o,plugins:[...i.n(),...r.plugins??[]]}),appPath:e,fileFolder:n,lastChecksums:new Map,onFileBuilt:a})},ae=[`twenty-client-sdk/core`,`twenty-client-sdk/metadata`,`path`,`fs`,`crypto`,`stream`,`util`,`os`,`url`,`http`,`https`,`events`,`buffer`,`querystring`,`assert`,`zlib`,`net`,`tls`,`child_process`,`worker_threads`],oe=[`twenty-client-sdk/core`,`twenty-client-sdk/metadata`,n.o],w=`// jsx-runtime-wrapper.ts
|
|
2
|
+
import {
|
|
3
|
+
Fragment,
|
|
4
|
+
jsx as originalJsx,
|
|
5
|
+
jsxs as originalJsxs
|
|
6
|
+
} from "__real_react_jsx_runtime__";
|
|
7
|
+
import {
|
|
8
|
+
CUSTOM_ELEMENT_TAG_BY_HTML_TAG,
|
|
9
|
+
getStyleElementCssText,
|
|
10
|
+
injectStyleViaHead,
|
|
11
|
+
withJsxEventRef
|
|
12
|
+
} from "__jsx_shared_helpers__";
|
|
13
|
+
var wrapJsxFactory = (originalJsxFactory) => function wrappedJsx(type, props, key) {
|
|
14
|
+
if (typeof type !== "string") {
|
|
15
|
+
return originalJsxFactory(type, props, key);
|
|
16
|
+
}
|
|
17
|
+
if (type === "style") {
|
|
18
|
+
injectStyleViaHead(getStyleElementCssText(props));
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const customElementTag = CUSTOM_ELEMENT_TAG_BY_HTML_TAG[type];
|
|
22
|
+
if (!customElementTag) {
|
|
23
|
+
return originalJsxFactory(type, props, key);
|
|
24
|
+
}
|
|
25
|
+
return originalJsxFactory(customElementTag, withJsxEventRef(props), key);
|
|
26
|
+
};
|
|
27
|
+
var jsx = wrapJsxFactory(originalJsx);
|
|
28
|
+
var jsxs = wrapJsxFactory(originalJsxs);
|
|
29
|
+
export {
|
|
30
|
+
Fragment,
|
|
31
|
+
jsx,
|
|
32
|
+
jsxs
|
|
33
|
+
};
|
|
34
|
+
`,se=`// constants/custom-element-tag-by-html-tag.ts
|
|
35
|
+
var CUSTOM_ELEMENT_TAG_BY_HTML_TAG = globalThis.__HTML_TAG_TO_CUSTOM_ELEMENT_TAG__ || {};
|
|
36
|
+
|
|
37
|
+
// utils/extract-css-text.ts
|
|
38
|
+
var extractCssText = (children) => {
|
|
39
|
+
if (typeof children === "string") {
|
|
40
|
+
return children;
|
|
41
|
+
}
|
|
42
|
+
if (!Array.isArray(children)) {
|
|
43
|
+
return "";
|
|
44
|
+
}
|
|
45
|
+
return children.filter((child) => typeof child === "string").join("");
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// utils/get-style-element-css-text.ts
|
|
49
|
+
var getStyleElementCssText = (props) => props && props.dangerouslySetInnerHTML ? props.dangerouslySetInnerHTML.__html || "" : extractCssText(props && props.children);
|
|
50
|
+
|
|
51
|
+
// states/injected-style-keys.ts
|
|
52
|
+
var injectedStyleKeys = {};
|
|
53
|
+
|
|
54
|
+
// utils/to-style-key.ts
|
|
55
|
+
var toStyleKey = (cssText) => {
|
|
56
|
+
let cssTextHash = 0;
|
|
57
|
+
for (let characterIndex = 0; characterIndex < cssText.length; characterIndex++) {
|
|
58
|
+
cssTextHash = (cssTextHash << 5) - cssTextHash + cssText.charCodeAt(characterIndex) | 0;
|
|
59
|
+
}
|
|
60
|
+
return "jsx-style-" + cssTextHash;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// utils/inject-style-via-head.ts
|
|
64
|
+
var injectStyleViaHead = (cssText) => {
|
|
65
|
+
if (!cssText) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const styleKey = toStyleKey(cssText);
|
|
69
|
+
if (injectedStyleKeys[styleKey]) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
injectedStyleKeys[styleKey] = true;
|
|
73
|
+
const styleElement = document.createElement("style");
|
|
74
|
+
styleElement.setAttribute("data-jsx-style", styleKey);
|
|
75
|
+
styleElement.textContent = cssText;
|
|
4
76
|
document.head.appendChild(styleElement);
|
|
5
|
-
|
|
6
|
-
}`,le={name:`css-injection`,setup:e=>{e.onLoad({filter:/\.css$/,namespace:`file`},async({path:e})=>{let t=(await v.build({entryPoints:[e],bundle:!0,write:!1,outfile:`injected.css`,logLevel:`silent`,plugins:i.n(),loader:Object.fromEntries([`.png`,`.jpg`,`.jpeg`,`.gif`,`.svg`,`.webp`,`.avif`,`.ico`,`.woff`,`.woff2`,`.ttf`,`.eot`,`.otf`].map(e=>[e,`dataurl`]))})).outputFiles[0].text;return{contents:ce(t),loader:`js`}})}},ue=`export var customElementMap = globalThis.__HTML_TAG_TO_CUSTOM_ELEMENT_TAG__ || {};
|
|
7
|
-
|
|
8
|
-
var _injectedStyleKeys = {};
|
|
9
|
-
|
|
10
|
-
export function injectStyleViaHead(cssText) {
|
|
11
|
-
if (!cssText) return;
|
|
12
|
-
var hash = 0;
|
|
13
|
-
for (var i = 0; i < cssText.length; i++) {
|
|
14
|
-
hash = ((hash << 5) - hash + cssText.charCodeAt(i)) | 0;
|
|
15
|
-
}
|
|
16
|
-
var key = 'jsx-style-' + hash;
|
|
17
|
-
if (_injectedStyleKeys[key]) return;
|
|
18
|
-
_injectedStyleKeys[key] = true;
|
|
19
|
-
var el = document.createElement('style');
|
|
20
|
-
el.setAttribute('data-jsx-style', key);
|
|
21
|
-
el.textContent = cssText;
|
|
22
|
-
document.head.appendChild(el);
|
|
23
|
-
}
|
|
77
|
+
};
|
|
24
78
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
79
|
+
// constants/custom-element-tags.ts
|
|
80
|
+
var CUSTOM_ELEMENT_TAGS = Object.fromEntries(
|
|
81
|
+
Object.values(CUSTOM_ELEMENT_TAG_BY_HTML_TAG).map((customElementTag) => [
|
|
82
|
+
customElementTag,
|
|
83
|
+
true
|
|
84
|
+
])
|
|
85
|
+
);
|
|
33
86
|
|
|
34
|
-
|
|
35
|
-
|
|
87
|
+
// utils/is-custom-element-tag.ts
|
|
88
|
+
var isCustomElementTag = (type) => typeof type === "string" && CUSTOM_ELEMENT_TAGS[type] === true;
|
|
89
|
+
|
|
90
|
+
// utils/apply-user-ref.ts
|
|
91
|
+
var applyUserRef = (userRef, element) => {
|
|
92
|
+
if (typeof userRef === "function") {
|
|
93
|
+
return userRef(element);
|
|
94
|
+
}
|
|
95
|
+
const isObjectRef = userRef != null && typeof userRef === "object";
|
|
96
|
+
if (isObjectRef) {
|
|
97
|
+
userRef.current = element;
|
|
98
|
+
}
|
|
99
|
+
return void 0;
|
|
36
100
|
};
|
|
37
101
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
name.length > 2 &&
|
|
41
|
-
name.charCodeAt(0) === 111 &&
|
|
42
|
-
name.charCodeAt(1) === 110 &&
|
|
43
|
-
name.charCodeAt(2) >= 65 &&
|
|
44
|
-
name.charCodeAt(2) <= 90
|
|
45
|
-
);
|
|
46
|
-
}
|
|
102
|
+
// states/clone-event-ref-attachment-state.ts
|
|
103
|
+
var cloneEventRefAttachmentState = { current: null };
|
|
47
104
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
cleanProps = {};
|
|
57
|
-
for (var j in props) {
|
|
58
|
-
if (j === k) break;
|
|
59
|
-
cleanProps[j] = props[j];
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
events[k] = props[k];
|
|
63
|
-
} else if (events) {
|
|
64
|
-
cleanProps[k] = props[k];
|
|
65
|
-
}
|
|
105
|
+
// utils/apply-user-ref-under-clone-event-ref-attachment.ts
|
|
106
|
+
var applyUserRefUnderCloneEventRefAttachment = (userRef, attachment) => {
|
|
107
|
+
const previousCloneEventRefAttachment = cloneEventRefAttachmentState.current;
|
|
108
|
+
cloneEventRefAttachmentState.current = attachment;
|
|
109
|
+
try {
|
|
110
|
+
return applyUserRef(userRef, attachment.element);
|
|
111
|
+
} finally {
|
|
112
|
+
cloneEventRefAttachmentState.current = previousCloneEventRefAttachment;
|
|
66
113
|
}
|
|
67
|
-
|
|
68
|
-
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// utils/get-clone-event-ref-attachment-of.ts
|
|
117
|
+
var getCloneEventRefAttachmentOf = (element) => {
|
|
118
|
+
const cloneEventRefAttachment = cloneEventRefAttachmentState.current;
|
|
119
|
+
const isCloneEventRefAttachingElement = cloneEventRefAttachment !== null && cloneEventRefAttachment.element === element;
|
|
120
|
+
return isCloneEventRefAttachingElement ? cloneEventRefAttachment : null;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// states/event-listener-entries-by-element.ts
|
|
124
|
+
var eventListenerEntriesByElement = /* @__PURE__ */ new WeakMap();
|
|
125
|
+
|
|
126
|
+
// utils/get-or-create-event-listener-entries-by-key.ts
|
|
127
|
+
var getOrCreateEventListenerEntriesByKey = (element) => {
|
|
128
|
+
const existingListenerEntriesByKey = eventListenerEntriesByElement.get(element);
|
|
129
|
+
if (existingListenerEntriesByKey) {
|
|
130
|
+
return existingListenerEntriesByKey;
|
|
131
|
+
}
|
|
132
|
+
const listenerEntriesByKey = {};
|
|
133
|
+
eventListenerEntriesByElement.set(element, listenerEntriesByKey);
|
|
134
|
+
return listenerEntriesByKey;
|
|
135
|
+
};
|
|
69
136
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
137
|
+
// utils/remove-stale-event-handlers-of-source.ts
|
|
138
|
+
var removeStaleEventHandlersOfSource = ({
|
|
139
|
+
element,
|
|
140
|
+
listenerEntriesByKey,
|
|
141
|
+
currentListenerKeys,
|
|
142
|
+
source
|
|
143
|
+
}) => {
|
|
144
|
+
for (const [listenerKey, listenerEntry] of Object.entries(
|
|
145
|
+
listenerEntriesByKey
|
|
146
|
+
)) {
|
|
147
|
+
const isCurrentListener = !!currentListenerKeys[listenerKey];
|
|
148
|
+
const hasHandlerOfSource = !!listenerEntry.handlersBySource[source];
|
|
149
|
+
if (isCurrentListener || !hasHandlerOfSource) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
delete listenerEntry.handlersBySource[source];
|
|
153
|
+
const hasHandlerOfAnySource = !!listenerEntry.handlersBySource.jsx || !!listenerEntry.handlersBySource.clone;
|
|
154
|
+
if (hasHandlerOfAnySource) {
|
|
155
|
+
continue;
|
|
77
156
|
}
|
|
78
|
-
|
|
79
|
-
|
|
157
|
+
delete listenerEntriesByKey[listenerKey];
|
|
158
|
+
element.removeEventListener(
|
|
159
|
+
listenerEntry.type,
|
|
160
|
+
listenerEntry.listener,
|
|
161
|
+
listenerEntry.capture
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
// utils/is-synthetic-like-event.ts
|
|
167
|
+
var isSyntheticLikeEvent = (event) => event != null && typeof event === "object" && "nativeEvent" in event;
|
|
168
|
+
|
|
169
|
+
// utils/call-chained-event-handlers.ts
|
|
170
|
+
var callChainedEventHandlers = ({
|
|
171
|
+
thisArgument,
|
|
172
|
+
event,
|
|
173
|
+
firstHandler,
|
|
174
|
+
secondHandler
|
|
175
|
+
}) => {
|
|
176
|
+
const isPreventableEvent = isSyntheticLikeEvent(event);
|
|
177
|
+
if (isPreventableEvent) {
|
|
178
|
+
event.preventBaseUIHandler = function() {
|
|
179
|
+
event.baseUIHandlerPrevented = true;
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
firstHandler.call(thisArgument, event);
|
|
183
|
+
const isSecondHandlerPrevented = isPreventableEvent && !!event.baseUIHandlerPrevented;
|
|
184
|
+
if (!isSecondHandlerPrevented) {
|
|
185
|
+
secondHandler.call(thisArgument, event);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
// utils/create-element-event-listener.ts
|
|
190
|
+
var createElementEventListener = (handlersBySource) => function(event) {
|
|
191
|
+
const jsxHandler = handlersBySource.jsx;
|
|
192
|
+
const cloneHandler = handlersBySource.clone;
|
|
193
|
+
if (jsxHandler && cloneHandler) {
|
|
194
|
+
callChainedEventHandlers({
|
|
195
|
+
thisArgument: this,
|
|
196
|
+
event,
|
|
197
|
+
firstHandler: jsxHandler,
|
|
198
|
+
secondHandler: cloneHandler
|
|
199
|
+
});
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const handlerOfSingleSource = jsxHandler || cloneHandler;
|
|
203
|
+
if (handlerOfSingleSource) {
|
|
204
|
+
handlerOfSingleSource.call(this, event);
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
// utils/add-event-listener-entry.ts
|
|
209
|
+
var addEventListenerEntry = (element, listenerEntriesByKey, listenerDescriptor) => {
|
|
210
|
+
const handlersBySource = {};
|
|
211
|
+
const listenerEntry = {
|
|
212
|
+
type: listenerDescriptor.type,
|
|
213
|
+
capture: listenerDescriptor.capture,
|
|
214
|
+
handlersBySource,
|
|
215
|
+
listener: createElementEventListener(handlersBySource)
|
|
80
216
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
217
|
+
listenerEntriesByKey[listenerDescriptor.key] = listenerEntry;
|
|
218
|
+
element.addEventListener(
|
|
219
|
+
listenerEntry.type,
|
|
220
|
+
listenerEntry.listener,
|
|
221
|
+
listenerEntry.capture
|
|
222
|
+
);
|
|
223
|
+
return listenerEntry;
|
|
224
|
+
};
|
|
86
225
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
226
|
+
// utils/to-event-listener-descriptor.ts
|
|
227
|
+
import { USES_PREACT } from "__uses_preact__";
|
|
228
|
+
|
|
229
|
+
// constants/capture-phase-prop-name-suffix.ts
|
|
230
|
+
var CAPTURE_PHASE_PROP_NAME_SUFFIX = "Capture";
|
|
231
|
+
|
|
232
|
+
// utils/is-capture-phase-event-prop.ts
|
|
233
|
+
var POINTER_CAPTURE_EVENT_PROP_NAME_SUFFIX = "PointerCapture";
|
|
234
|
+
var isCapturePhaseEventProp = (eventPropName) => eventPropName.endsWith(CAPTURE_PHASE_PROP_NAME_SUFFIX) && !eventPropName.endsWith(POINTER_CAPTURE_EVENT_PROP_NAME_SUFFIX);
|
|
235
|
+
|
|
236
|
+
// utils/is-text-entry-element.ts
|
|
237
|
+
var INPUT_TYPES_WITHOUT_TEXT_ENTRY = /* @__PURE__ */ new Set(["checkbox", "radio", "file"]);
|
|
238
|
+
var isTextEntryElement = (element) => {
|
|
239
|
+
if (!("tagName" in element) || typeof element.tagName !== "string") {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
const lowerCaseTagName = element.tagName.toLowerCase();
|
|
243
|
+
if (lowerCaseTagName === CUSTOM_ELEMENT_TAG_BY_HTML_TAG.textarea) {
|
|
244
|
+
return true;
|
|
245
|
+
}
|
|
246
|
+
if (lowerCaseTagName !== CUSTOM_ELEMENT_TAG_BY_HTML_TAG.input) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
const inputType = "type" in element && typeof element.type === "string" ? element.type.toLowerCase() : "";
|
|
250
|
+
return !INPUT_TYPES_WITHOUT_TEXT_ENTRY.has(inputType);
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
// utils/to-event-listener-descriptor.ts
|
|
254
|
+
var EVENT_PROP_NAME_PREFIX = "on";
|
|
255
|
+
var DOM_EVENT_PROP_NAME_BY_LOWER_CASE_REACT_EVENT_PROP_NAME = {
|
|
256
|
+
ondoubleclick: "ondblclick"
|
|
257
|
+
};
|
|
258
|
+
var toEventListenerDescriptor = ({
|
|
259
|
+
eventPropName,
|
|
260
|
+
element
|
|
261
|
+
}) => {
|
|
262
|
+
const isCapturePhase = isCapturePhaseEventProp(eventPropName);
|
|
263
|
+
const bubblePhaseEventPropName = isCapturePhase ? eventPropName.slice(0, -CAPTURE_PHASE_PROP_NAME_SUFFIX.length) : eventPropName;
|
|
264
|
+
const lowerCaseEventPropName = bubblePhaseEventPropName.toLowerCase();
|
|
265
|
+
const domEventPropName = DOM_EVENT_PROP_NAME_BY_LOWER_CASE_REACT_EVENT_PROP_NAME[lowerCaseEventPropName] || lowerCaseEventPropName;
|
|
266
|
+
const eventType = domEventPropName.slice(EVENT_PROP_NAME_PREFIX.length);
|
|
267
|
+
const isTextEntryChange = USES_PREACT && eventType === "change" && isTextEntryElement(element);
|
|
268
|
+
const listenerType = isTextEntryChange ? "input" : eventType;
|
|
269
|
+
const listenerKey = isTextEntryChange ? "change:input" : eventType;
|
|
270
|
+
return {
|
|
271
|
+
key: isCapturePhase ? listenerKey + ":capture" : listenerKey,
|
|
272
|
+
type: listenerType,
|
|
273
|
+
capture: isCapturePhase
|
|
119
274
|
};
|
|
120
|
-
}
|
|
275
|
+
};
|
|
121
276
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
277
|
+
// utils/set-event-handlers-of-source.ts
|
|
278
|
+
var setEventHandlersOfSource = ({
|
|
279
|
+
element,
|
|
280
|
+
listenerEntriesByKey,
|
|
281
|
+
events,
|
|
282
|
+
source
|
|
283
|
+
}) => {
|
|
284
|
+
const currentListenerKeys = {};
|
|
285
|
+
for (const eventPropName in events) {
|
|
286
|
+
const listenerDescriptor = toEventListenerDescriptor({
|
|
287
|
+
eventPropName,
|
|
288
|
+
element
|
|
289
|
+
});
|
|
290
|
+
currentListenerKeys[listenerDescriptor.key] = true;
|
|
291
|
+
const listenerEntry = listenerEntriesByKey[listenerDescriptor.key] || addEventListenerEntry(element, listenerEntriesByKey, listenerDescriptor);
|
|
292
|
+
listenerEntry.handlersBySource[source] = events[eventPropName];
|
|
293
|
+
}
|
|
294
|
+
return currentListenerKeys;
|
|
295
|
+
};
|
|
126
296
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
297
|
+
// utils/register-element-event-handlers.ts
|
|
298
|
+
var registerElementEventHandlers = (element, events, source) => {
|
|
299
|
+
const hasEventHandlers = Object.keys(events).length > 0;
|
|
300
|
+
const isElementInListenerRegistry = eventListenerEntriesByElement.has(element);
|
|
301
|
+
if (!hasEventHandlers && !isElementInListenerRegistry) {
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
const listenerEntriesByKey = getOrCreateEventListenerEntriesByKey(element);
|
|
305
|
+
const currentListenerKeys = setEventHandlersOfSource({
|
|
306
|
+
element,
|
|
307
|
+
listenerEntriesByKey,
|
|
308
|
+
events,
|
|
309
|
+
source
|
|
310
|
+
});
|
|
311
|
+
removeStaleEventHandlersOfSource({
|
|
312
|
+
element,
|
|
313
|
+
listenerEntriesByKey,
|
|
314
|
+
currentListenerKeys,
|
|
315
|
+
source
|
|
316
|
+
});
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
// utils/attach-clone-event-ref.ts
|
|
320
|
+
var attachCloneEventRef = ({
|
|
321
|
+
element,
|
|
322
|
+
events,
|
|
323
|
+
userRef,
|
|
324
|
+
outerWinningCloneEvents
|
|
325
|
+
}) => {
|
|
326
|
+
const outerCloneEventRefAttachment = getCloneEventRefAttachmentOf(element);
|
|
327
|
+
if (outerCloneEventRefAttachment !== null) {
|
|
328
|
+
outerCloneEventRefAttachment.hasAttachedInnerCloneEventRef = true;
|
|
329
|
+
return applyUserRef(userRef, element);
|
|
330
|
+
}
|
|
331
|
+
const attachment = {
|
|
332
|
+
element,
|
|
333
|
+
hasAttachedInnerCloneEventRef: false
|
|
334
|
+
};
|
|
335
|
+
registerElementEventHandlers(element, events, "clone");
|
|
336
|
+
const userRefCleanup = applyUserRefUnderCloneEventRefAttachment(
|
|
337
|
+
userRef,
|
|
338
|
+
attachment
|
|
339
|
+
);
|
|
340
|
+
const fallsBackToOuterWinningCloneEvents = !!outerWinningCloneEvents && !attachment.hasAttachedInnerCloneEventRef;
|
|
341
|
+
if (fallsBackToOuterWinningCloneEvents) {
|
|
342
|
+
registerElementEventHandlers(element, outerWinningCloneEvents, "clone");
|
|
343
|
+
}
|
|
344
|
+
return userRefCleanup;
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
// utils/attach-jsx-event-ref.ts
|
|
348
|
+
var attachJsxEventRef = ({
|
|
349
|
+
element,
|
|
350
|
+
events,
|
|
351
|
+
userRef
|
|
352
|
+
}) => {
|
|
353
|
+
registerElementEventHandlers(element, events, "jsx");
|
|
354
|
+
const isAttachedWithoutCloneEventRef = getCloneEventRefAttachmentOf(element) === null;
|
|
355
|
+
if (isAttachedWithoutCloneEventRef) {
|
|
356
|
+
registerElementEventHandlers(element, {}, "clone");
|
|
357
|
+
}
|
|
358
|
+
return applyUserRef(userRef, element);
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
// utils/create-event-ref.ts
|
|
362
|
+
var createEventRef = (events, userRef, source, outerWinningCloneEvents) => {
|
|
363
|
+
function eventRef(element) {
|
|
364
|
+
if (!element) {
|
|
365
|
+
applyUserRef(userRef, element);
|
|
366
|
+
return void 0;
|
|
367
|
+
}
|
|
368
|
+
const userRefCleanup = source === "clone" ? attachCloneEventRef({
|
|
369
|
+
element,
|
|
370
|
+
events,
|
|
371
|
+
userRef,
|
|
372
|
+
outerWinningCloneEvents
|
|
373
|
+
}) : attachJsxEventRef({ element, events, userRef });
|
|
374
|
+
return typeof userRefCleanup === "function" ? userRefCleanup : void 0;
|
|
375
|
+
}
|
|
376
|
+
return Object.assign(eventRef, {
|
|
377
|
+
_eventHandlers: events,
|
|
378
|
+
_outerWinningCloneEvents: outerWinningCloneEvents,
|
|
379
|
+
_innerRef: userRef,
|
|
380
|
+
_eventSource: source
|
|
381
|
+
});
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
// states/event-ref-without-handlers-by-user-ref-by-source.ts
|
|
385
|
+
var eventRefWithoutHandlersByUserRefBySource = {
|
|
386
|
+
jsx: /* @__PURE__ */ new WeakMap(),
|
|
387
|
+
clone: /* @__PURE__ */ new WeakMap()
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
// utils/get-event-ref-without-handlers.ts
|
|
391
|
+
var getEventRefWithoutHandlers = (userRef, source) => {
|
|
392
|
+
const eventRefByUserRef = eventRefWithoutHandlersByUserRefBySource[source];
|
|
393
|
+
const memoizedEventRef = eventRefByUserRef.get(userRef);
|
|
394
|
+
if (memoizedEventRef) {
|
|
395
|
+
return memoizedEventRef;
|
|
396
|
+
}
|
|
397
|
+
const eventRef = createEventRef({}, userRef, source);
|
|
398
|
+
eventRefByUserRef.set(userRef, eventRef);
|
|
399
|
+
return eventRef;
|
|
400
|
+
};
|
|
401
|
+
|
|
402
|
+
// states/event-ref-without-handlers-or-user-ref-by-source.ts
|
|
403
|
+
var eventRefWithoutHandlersOrUserRefBySource = {};
|
|
404
|
+
|
|
405
|
+
// utils/get-event-ref-without-handlers-or-user-ref.ts
|
|
406
|
+
var getEventRefWithoutHandlersOrUserRef = (source) => {
|
|
407
|
+
const memoizedEventRef = eventRefWithoutHandlersOrUserRefBySource[source];
|
|
408
|
+
if (memoizedEventRef) {
|
|
409
|
+
return memoizedEventRef;
|
|
410
|
+
}
|
|
411
|
+
const eventRef = createEventRef({}, null, source);
|
|
412
|
+
eventRefWithoutHandlersOrUserRefBySource[source] = eventRef;
|
|
413
|
+
return eventRef;
|
|
414
|
+
};
|
|
415
|
+
|
|
416
|
+
// utils/make-event-ref.ts
|
|
417
|
+
var makeEventRef = (events, userRef, source) => {
|
|
418
|
+
if (events) {
|
|
419
|
+
return createEventRef(events, userRef, source);
|
|
420
|
+
}
|
|
421
|
+
if (userRef == null) {
|
|
422
|
+
return getEventRefWithoutHandlersOrUserRef(source);
|
|
423
|
+
}
|
|
424
|
+
return getEventRefWithoutHandlers(userRef, source);
|
|
425
|
+
};
|
|
426
|
+
|
|
427
|
+
// utils/does-clone-replace-element-ref.ts
|
|
428
|
+
var doesCloneReplaceElementRef = (cloneConfig, elementRef) => {
|
|
429
|
+
const cloneSetsRef = cloneConfig.ref !== void 0;
|
|
430
|
+
const cloneRefDiffersFromElementRef = cloneConfig.ref !== elementRef;
|
|
431
|
+
return cloneSetsRef && cloneRefDiffersFromElementRef;
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
// utils/get-element-ref.ts
|
|
435
|
+
var getElementRef = (element, readsElementRefFromVnode) => {
|
|
436
|
+
if (readsElementRefFromVnode) {
|
|
437
|
+
return element.ref;
|
|
438
|
+
}
|
|
439
|
+
return element.props.ref;
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
// utils/is-clone-event-ref.ts
|
|
443
|
+
var isCloneEventRef = (ref) => ref != null && ref._eventSource === "clone";
|
|
444
|
+
|
|
445
|
+
// utils/get-outer-winning-clone-events-of.ts
|
|
446
|
+
var getOuterWinningCloneEventsOf = (cloneEventRef) => cloneEventRef._outerWinningCloneEvents || cloneEventRef._eventHandlers;
|
|
447
|
+
|
|
448
|
+
// utils/merge-clone-events-outer-winning.ts
|
|
449
|
+
var mergeCloneEventsOuterWinning = (innerCloneEvents, outerCloneEvents) => Object.assign({}, innerCloneEvents, outerCloneEvents);
|
|
450
|
+
|
|
451
|
+
// utils/to-non-empty-clone-events-or-null.ts
|
|
452
|
+
var toNonEmptyCloneEventsOrNull = (cloneEvents) => Object.keys(cloneEvents).length > 0 ? cloneEvents : null;
|
|
453
|
+
|
|
454
|
+
// utils/make-clone-event-ref-keeping-element-ref.ts
|
|
455
|
+
var makeCloneEventRefKeepingElementRef = ({
|
|
456
|
+
innerCloneEventRef,
|
|
457
|
+
cloneEvents
|
|
458
|
+
}) => {
|
|
459
|
+
if (cloneEvents === null) {
|
|
460
|
+
return innerCloneEventRef;
|
|
461
|
+
}
|
|
462
|
+
const outerWinningCloneEvents = toNonEmptyCloneEventsOrNull(
|
|
463
|
+
mergeCloneEventsOuterWinning(
|
|
464
|
+
getOuterWinningCloneEventsOf(innerCloneEventRef),
|
|
465
|
+
cloneEvents
|
|
466
|
+
)
|
|
467
|
+
);
|
|
468
|
+
const hasInnerOuterWinningCloneEvents = innerCloneEventRef._outerWinningCloneEvents != null;
|
|
469
|
+
if (!hasInnerOuterWinningCloneEvents) {
|
|
470
|
+
return makeEventRef(
|
|
471
|
+
outerWinningCloneEvents,
|
|
472
|
+
innerCloneEventRef._innerRef,
|
|
473
|
+
"clone"
|
|
474
|
+
);
|
|
475
|
+
}
|
|
476
|
+
return createEventRef(
|
|
477
|
+
mergeCloneEventsOuterWinning(
|
|
478
|
+
innerCloneEventRef._eventHandlers,
|
|
479
|
+
cloneEvents
|
|
480
|
+
),
|
|
481
|
+
innerCloneEventRef._innerRef,
|
|
482
|
+
"clone",
|
|
483
|
+
outerWinningCloneEvents
|
|
484
|
+
);
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
// utils/chain-event-handlers.ts
|
|
488
|
+
var chainEventHandlers = (firstHandler, secondHandler) => function(event) {
|
|
489
|
+
callChainedEventHandlers({
|
|
490
|
+
thisArgument: this,
|
|
491
|
+
event,
|
|
492
|
+
firstHandler,
|
|
493
|
+
secondHandler
|
|
494
|
+
});
|
|
495
|
+
};
|
|
496
|
+
|
|
497
|
+
// utils/chain-clone-events.ts
|
|
498
|
+
var chainCloneEvents = (innerCloneEvents, outerCloneEvents) => {
|
|
499
|
+
const chainedCloneEvents = Object.assign(
|
|
500
|
+
{},
|
|
501
|
+
innerCloneEvents
|
|
502
|
+
);
|
|
503
|
+
const outerCloneEventsOrEmpty = outerCloneEvents ?? {};
|
|
504
|
+
for (const [eventPropName, outerHandler] of Object.entries(
|
|
505
|
+
outerCloneEventsOrEmpty
|
|
506
|
+
)) {
|
|
507
|
+
const innerHandler = innerCloneEvents[eventPropName];
|
|
508
|
+
chainedCloneEvents[eventPropName] = innerHandler ? chainEventHandlers(innerHandler, outerHandler) : outerHandler;
|
|
509
|
+
}
|
|
510
|
+
return toNonEmptyCloneEventsOrNull(chainedCloneEvents);
|
|
511
|
+
};
|
|
512
|
+
|
|
513
|
+
// utils/is-jsx-event-ref.ts
|
|
514
|
+
var isJsxEventRef = (ref) => ref != null && ref._eventSource === "jsx";
|
|
515
|
+
|
|
516
|
+
// utils/find-innermost-jsx-event-ref.ts
|
|
517
|
+
var findInnermostJsxEventRef = (ref) => {
|
|
518
|
+
let innerRef = ref;
|
|
519
|
+
while (isCloneEventRef(innerRef)) {
|
|
520
|
+
innerRef = innerRef._innerRef;
|
|
521
|
+
}
|
|
522
|
+
if (isJsxEventRef(innerRef)) {
|
|
523
|
+
return innerRef;
|
|
524
|
+
}
|
|
525
|
+
return null;
|
|
526
|
+
};
|
|
527
|
+
|
|
528
|
+
// utils/does-clone-set-or-clear-event-prop.ts
|
|
529
|
+
var doesCloneSetOrClearEventProp = (cloneConfig, eventPropName) => {
|
|
530
|
+
const isEventPropInCloneConfig = eventPropName in cloneConfig;
|
|
531
|
+
if (!isEventPropInCloneConfig) {
|
|
532
|
+
return false;
|
|
533
|
+
}
|
|
534
|
+
const cloneEventPropValue = cloneConfig[eventPropName];
|
|
535
|
+
const setsEventHandler = typeof cloneEventPropValue === "function";
|
|
536
|
+
const clearsEventHandler = cloneEventPropValue === null || cloneEventPropValue === void 0;
|
|
537
|
+
return setsEventHandler || clearsEventHandler;
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
// utils/is-jsx-event-prop-overridden-by-clone.ts
|
|
541
|
+
var isJsxEventPropOverriddenByClone = ({
|
|
542
|
+
eventPropName,
|
|
543
|
+
cloneConfig,
|
|
544
|
+
eventHandlersSetByInnerClones
|
|
545
|
+
}) => {
|
|
546
|
+
if (doesCloneSetOrClearEventProp(cloneConfig, eventPropName)) {
|
|
547
|
+
return true;
|
|
548
|
+
}
|
|
549
|
+
if (eventHandlersSetByInnerClones === null) {
|
|
550
|
+
return false;
|
|
551
|
+
}
|
|
552
|
+
return eventPropName in eventHandlersSetByInnerClones;
|
|
553
|
+
};
|
|
554
|
+
|
|
555
|
+
// utils/get-jsx-event-prop-names-overridden-by-clone.ts
|
|
556
|
+
var getJsxEventPropNamesOverriddenByClone = ({
|
|
557
|
+
jsxEventHandlers,
|
|
558
|
+
cloneConfig,
|
|
559
|
+
eventHandlersSetByInnerClones
|
|
560
|
+
}) => Object.keys(jsxEventHandlers).filter(
|
|
561
|
+
(jsxEventPropName) => isJsxEventPropOverriddenByClone({
|
|
562
|
+
eventPropName: jsxEventPropName,
|
|
563
|
+
cloneConfig,
|
|
564
|
+
eventHandlersSetByInnerClones
|
|
565
|
+
})
|
|
566
|
+
);
|
|
567
|
+
|
|
568
|
+
// utils/omit-event-handlers.ts
|
|
569
|
+
var omitEventHandlers = (eventHandlers, omittedEventPropNames) => {
|
|
570
|
+
const remainingEventHandlers = {};
|
|
571
|
+
for (const [eventPropName, eventHandler] of Object.entries(eventHandlers)) {
|
|
572
|
+
const isOmitted = omittedEventPropNames.includes(eventPropName);
|
|
573
|
+
if (!isOmitted) {
|
|
574
|
+
remainingEventHandlers[eventPropName] = eventHandler;
|
|
149
575
|
}
|
|
576
|
+
}
|
|
577
|
+
return remainingEventHandlers;
|
|
578
|
+
};
|
|
150
579
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
580
|
+
// utils/replace-jsx-event-ref-inner-ref.ts
|
|
581
|
+
var replaceJsxEventRefInnerRef = (jsxEventRef, innerRef) => {
|
|
582
|
+
const lastInnerRefReplacement = jsxEventRef._lastInnerRefReplacement;
|
|
583
|
+
const canReuseLastInnerRefReplacement = lastInnerRefReplacement !== void 0 && lastInnerRefReplacement._innerRef === innerRef;
|
|
584
|
+
if (canReuseLastInnerRefReplacement) {
|
|
585
|
+
return lastInnerRefReplacement;
|
|
586
|
+
}
|
|
587
|
+
const innerRefReplacement = createEventRef(
|
|
588
|
+
jsxEventRef._eventHandlers,
|
|
589
|
+
innerRef,
|
|
590
|
+
"jsx"
|
|
591
|
+
);
|
|
592
|
+
jsxEventRef._lastInnerRefReplacement = innerRefReplacement;
|
|
593
|
+
return innerRefReplacement;
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
// utils/get-clone-user-ref-with-element-jsx-event-handlers.ts
|
|
597
|
+
var getCloneUserRefWithElementJsxEventHandlers = ({
|
|
598
|
+
elementRef,
|
|
599
|
+
cloneConfig,
|
|
600
|
+
eventHandlersSetByInnerClones
|
|
601
|
+
}) => {
|
|
602
|
+
const cloneUserRef = cloneConfig.ref;
|
|
603
|
+
const elementJsxEventRef = findInnermostJsxEventRef(elementRef);
|
|
604
|
+
if (elementJsxEventRef === null) {
|
|
605
|
+
return cloneUserRef;
|
|
606
|
+
}
|
|
607
|
+
const elementJsxEventHandlers = elementJsxEventRef._eventHandlers;
|
|
608
|
+
const jsxEventPropNamesOverriddenByClone = getJsxEventPropNamesOverriddenByClone({
|
|
609
|
+
jsxEventHandlers: elementJsxEventHandlers,
|
|
610
|
+
cloneConfig,
|
|
611
|
+
eventHandlersSetByInnerClones
|
|
612
|
+
});
|
|
613
|
+
if (jsxEventPropNamesOverriddenByClone.length === 0) {
|
|
614
|
+
return replaceJsxEventRefInnerRef(elementJsxEventRef, cloneUserRef);
|
|
615
|
+
}
|
|
616
|
+
const remainingJsxEventHandlers = omitEventHandlers(
|
|
617
|
+
elementJsxEventHandlers,
|
|
618
|
+
jsxEventPropNamesOverriddenByClone
|
|
619
|
+
);
|
|
620
|
+
const hasRemainingJsxEventHandlers = Object.keys(remainingJsxEventHandlers).length > 0;
|
|
621
|
+
return makeEventRef(
|
|
622
|
+
hasRemainingJsxEventHandlers ? remainingJsxEventHandlers : null,
|
|
623
|
+
cloneUserRef,
|
|
624
|
+
"jsx"
|
|
625
|
+
);
|
|
626
|
+
};
|
|
627
|
+
|
|
628
|
+
// utils/make-clone-event-ref-replacing-element-ref.ts
|
|
629
|
+
var makeCloneEventRefReplacingElementRef = ({
|
|
630
|
+
innerCloneEventRef,
|
|
631
|
+
cloneConfig,
|
|
632
|
+
cloneEvents
|
|
633
|
+
}) => {
|
|
634
|
+
const eventHandlersSetByInnerClones = getOuterWinningCloneEventsOf(innerCloneEventRef);
|
|
635
|
+
const cloneUserRef = getCloneUserRefWithElementJsxEventHandlers({
|
|
636
|
+
elementRef: innerCloneEventRef,
|
|
637
|
+
cloneConfig,
|
|
638
|
+
eventHandlersSetByInnerClones
|
|
639
|
+
});
|
|
640
|
+
const chainedCloneEvents = chainCloneEvents(
|
|
641
|
+
innerCloneEventRef._eventHandlers,
|
|
642
|
+
cloneEvents
|
|
643
|
+
);
|
|
644
|
+
if (chainedCloneEvents === null) {
|
|
645
|
+
return makeEventRef(null, cloneUserRef, "clone");
|
|
646
|
+
}
|
|
647
|
+
const outerWinningCloneEvents = toNonEmptyCloneEventsOrNull(
|
|
648
|
+
mergeCloneEventsOuterWinning(eventHandlersSetByInnerClones, cloneEvents)
|
|
649
|
+
);
|
|
650
|
+
return createEventRef(
|
|
651
|
+
chainedCloneEvents,
|
|
652
|
+
cloneUserRef,
|
|
653
|
+
"clone",
|
|
654
|
+
outerWinningCloneEvents
|
|
655
|
+
);
|
|
656
|
+
};
|
|
657
|
+
|
|
658
|
+
// utils/is-event-ref.ts
|
|
659
|
+
var isEventRef = (ref) => typeof ref === "function" && ref._eventSource !== void 0;
|
|
660
|
+
|
|
661
|
+
// utils/make-clone-event-ref-without-inner-clone.ts
|
|
662
|
+
var makeCloneEventRefWithoutInnerClone = ({
|
|
663
|
+
elementRef,
|
|
664
|
+
cloneConfig,
|
|
665
|
+
replacesElementRef,
|
|
666
|
+
cloneEvents
|
|
667
|
+
}) => {
|
|
668
|
+
const cloneUserRef = replacesElementRef ? getCloneUserRefWithElementJsxEventHandlers({
|
|
669
|
+
elementRef,
|
|
670
|
+
cloneConfig,
|
|
671
|
+
eventHandlersSetByInnerClones: null
|
|
672
|
+
}) : elementRef;
|
|
673
|
+
const cloneAddsNoEventHandlers = cloneEvents === null;
|
|
674
|
+
if (cloneAddsNoEventHandlers && isEventRef(cloneUserRef)) {
|
|
675
|
+
return cloneUserRef;
|
|
676
|
+
}
|
|
677
|
+
return makeEventRef(cloneEvents, cloneUserRef, "clone");
|
|
678
|
+
};
|
|
679
|
+
|
|
680
|
+
// utils/make-clone-event-ref.ts
|
|
681
|
+
var makeCloneEventRef = ({
|
|
682
|
+
elementRef,
|
|
683
|
+
cloneConfig,
|
|
684
|
+
replacesElementRef,
|
|
685
|
+
cloneEvents
|
|
686
|
+
}) => {
|
|
687
|
+
if (!isCloneEventRef(elementRef)) {
|
|
688
|
+
return makeCloneEventRefWithoutInnerClone({
|
|
689
|
+
elementRef,
|
|
690
|
+
cloneConfig,
|
|
691
|
+
replacesElementRef,
|
|
692
|
+
cloneEvents
|
|
693
|
+
});
|
|
694
|
+
}
|
|
695
|
+
if (replacesElementRef) {
|
|
696
|
+
return makeCloneEventRefReplacingElementRef({
|
|
697
|
+
innerCloneEventRef: elementRef,
|
|
698
|
+
cloneConfig,
|
|
699
|
+
cloneEvents
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
return makeCloneEventRefKeepingElementRef({
|
|
703
|
+
innerCloneEventRef: elementRef,
|
|
704
|
+
cloneEvents
|
|
705
|
+
});
|
|
706
|
+
};
|
|
707
|
+
|
|
708
|
+
// utils/is-event-handler-prop.ts
|
|
709
|
+
var EVENT_PROP_NAME_PATTERN = /^on[A-Z]/;
|
|
710
|
+
var isEventHandlerProp = (propName, propValue) => EVENT_PROP_NAME_PATTERN.test(propName) && typeof propValue === "function";
|
|
711
|
+
|
|
712
|
+
// utils/split-event-props.ts
|
|
713
|
+
var splitEventProps = (props) => {
|
|
714
|
+
const cleanProps = {};
|
|
715
|
+
let events = null;
|
|
716
|
+
for (const propName in props) {
|
|
717
|
+
const propValue = props[propName];
|
|
718
|
+
if (!isEventHandlerProp(propName, propValue)) {
|
|
719
|
+
cleanProps[propName] = propValue;
|
|
720
|
+
continue;
|
|
165
721
|
}
|
|
722
|
+
events = events || {};
|
|
723
|
+
events[propName] = propValue;
|
|
166
724
|
}
|
|
167
|
-
return
|
|
168
|
-
}
|
|
725
|
+
return { cleanProps, events };
|
|
726
|
+
};
|
|
727
|
+
|
|
728
|
+
// utils/with-clone-event-ref.ts
|
|
729
|
+
var withCloneEventRef = (element, config, readsElementRefFromVnode) => {
|
|
730
|
+
const cloneConfig = config ?? {};
|
|
731
|
+
const { cleanProps: cleanCloneConfig, events: cloneEvents } = splitEventProps(cloneConfig);
|
|
732
|
+
const elementRef = getElementRef(element, readsElementRefFromVnode);
|
|
733
|
+
return Object.assign(cleanCloneConfig, {
|
|
734
|
+
ref: makeCloneEventRef({
|
|
735
|
+
elementRef,
|
|
736
|
+
cloneConfig,
|
|
737
|
+
replacesElementRef: doesCloneReplaceElementRef(cloneConfig, elementRef),
|
|
738
|
+
cloneEvents
|
|
739
|
+
})
|
|
740
|
+
});
|
|
741
|
+
};
|
|
169
742
|
|
|
170
|
-
|
|
171
|
-
|
|
743
|
+
// utils/with-jsx-event-ref.ts
|
|
744
|
+
var withJsxEventRef = (props) => {
|
|
745
|
+
const { cleanProps, events } = splitEventProps(props);
|
|
746
|
+
return Object.assign(cleanProps, {
|
|
747
|
+
ref: makeEventRef(events, cleanProps.ref, "jsx")
|
|
748
|
+
});
|
|
749
|
+
};
|
|
750
|
+
export {
|
|
751
|
+
CUSTOM_ELEMENT_TAG_BY_HTML_TAG,
|
|
752
|
+
getStyleElementCssText,
|
|
753
|
+
injectStyleViaHead,
|
|
754
|
+
isCustomElementTag,
|
|
755
|
+
makeEventRef,
|
|
756
|
+
withCloneEventRef,
|
|
757
|
+
withJsxEventRef
|
|
758
|
+
};
|
|
759
|
+
`,ce=`// react-wrapper.ts
|
|
760
|
+
import React from "__real_react__";
|
|
761
|
+
import {
|
|
762
|
+
CUSTOM_ELEMENT_TAG_BY_HTML_TAG,
|
|
763
|
+
getStyleElementCssText,
|
|
764
|
+
injectStyleViaHead,
|
|
765
|
+
isCustomElementTag,
|
|
766
|
+
withCloneEventRef,
|
|
767
|
+
withJsxEventRef
|
|
768
|
+
} from "__jsx_shared_helpers__";
|
|
769
|
+
import { USES_PREACT } from "__uses_preact__";
|
|
770
|
+
export * from "__real_react__";
|
|
771
|
+
var originalCreateElement = React.createElement;
|
|
772
|
+
var originalCloneElement = React.cloneElement;
|
|
773
|
+
var getPropsArgument = (argumentsAfterFirst) => argumentsAfterFirst.length > 0 ? argumentsAfterFirst[0] : null;
|
|
774
|
+
var replaceFirstTwoArguments = (argumentsAfterFirst, firstArgument, secondArgument) => [firstArgument, secondArgument, ...argumentsAfterFirst.slice(1)];
|
|
775
|
+
function createElement(type, ...argumentsAfterType) {
|
|
776
|
+
if (typeof type !== "string") {
|
|
777
|
+
return originalCreateElement.apply(null, [type, ...argumentsAfterType]);
|
|
778
|
+
}
|
|
779
|
+
const props = getPropsArgument(argumentsAfterType);
|
|
780
|
+
if (type === "style") {
|
|
781
|
+
injectStyleViaHead(getStyleElementCssText(props));
|
|
782
|
+
return null;
|
|
783
|
+
}
|
|
784
|
+
const customElementTag = CUSTOM_ELEMENT_TAG_BY_HTML_TAG[type];
|
|
785
|
+
if (!customElementTag) {
|
|
786
|
+
return originalCreateElement.apply(null, [type, ...argumentsAfterType]);
|
|
787
|
+
}
|
|
788
|
+
return originalCreateElement.apply(
|
|
789
|
+
null,
|
|
790
|
+
replaceFirstTwoArguments(
|
|
791
|
+
argumentsAfterType,
|
|
792
|
+
customElementTag,
|
|
793
|
+
withJsxEventRef(props)
|
|
794
|
+
)
|
|
795
|
+
);
|
|
796
|
+
}
|
|
797
|
+
function cloneElement(element, ...argumentsAfterElement) {
|
|
798
|
+
const isCustomElement = !!element && isCustomElementTag(element.type);
|
|
799
|
+
if (!isCustomElement) {
|
|
800
|
+
return originalCloneElement.apply(null, [
|
|
801
|
+
element,
|
|
802
|
+
...argumentsAfterElement
|
|
803
|
+
]);
|
|
804
|
+
}
|
|
805
|
+
const propsWithCloneEventRef = withCloneEventRef(
|
|
806
|
+
element,
|
|
807
|
+
getPropsArgument(argumentsAfterElement),
|
|
808
|
+
USES_PREACT
|
|
809
|
+
);
|
|
810
|
+
return originalCloneElement.apply(
|
|
811
|
+
null,
|
|
812
|
+
replaceFirstTwoArguments(
|
|
813
|
+
argumentsAfterElement,
|
|
814
|
+
element,
|
|
815
|
+
propsWithCloneEventRef
|
|
816
|
+
)
|
|
817
|
+
);
|
|
818
|
+
}
|
|
819
|
+
var react_wrapper_default = Object.assign({}, React, { createElement, cloneElement });
|
|
820
|
+
export {
|
|
821
|
+
cloneElement,
|
|
822
|
+
createElement,
|
|
823
|
+
react_wrapper_default as default
|
|
824
|
+
};
|
|
825
|
+
`,le=e=>{let t=e?.usePreact??!1,n=t?`preact/compat/jsx-runtime`:`react/jsx-runtime`,r=t?`preact/compat`:`react`;return{name:`jsx-runtime-remote-wrapper`,setup:e=>{let i,a;e.onResolve({filter:/^__jsx_shared_helpers__$/},()=>({path:`__jsx_shared_helpers__`,namespace:`jsx-shared-helpers`})),e.onLoad({filter:/.*/,namespace:`jsx-shared-helpers`},()=>({contents:se,loader:`js`})),e.onResolve({filter:/^__uses_preact__$/},()=>({path:`__uses_preact__`,namespace:`uses-preact`})),e.onLoad({filter:/.*/,namespace:`uses-preact`},()=>({contents:`export const USES_PREACT = ${t};`,loader:`js`})),e.onResolve({filter:/^react\/jsx-runtime$/},async t=>{if(!t.pluginData?.skipJsxWrapper)return i||=(await e.resolve(n,{kind:t.kind,resolveDir:t.resolveDir,pluginData:{skipJsxWrapper:!0}})).path,{path:`react/jsx-runtime`,namespace:`jsx-runtime-wrapper`}}),e.onResolve({filter:/^__real_react_jsx_runtime__$/},()=>{if(!i)throw Error(`jsx-runtime-remote-wrapper: real jsx-runtime path not resolved yet`);return{path:i}}),e.onLoad({filter:/.*/,namespace:`jsx-runtime-wrapper`},()=>({contents:w,loader:`js`})),e.onResolve({filter:/^react$/},async t=>{if(!t.pluginData?.skipJsxWrapper)return a||=(await e.resolve(r,{kind:t.kind,resolveDir:t.resolveDir,pluginData:{skipJsxWrapper:!0}})).path,{path:`react`,namespace:`react-wrapper`}}),e.onResolve({filter:/^__real_react__$/},()=>{if(!a)throw Error(`jsx-runtime-remote-wrapper: real react path not resolved yet`);return{path:a}}),e.onLoad({filter:/.*/,namespace:`react-wrapper`},()=>({contents:ce,loader:`js`}))}}},T=e=>`__shared_dependencies_${e.replace(/[^A-Za-z0-9]/g,`_`)}__`,ue=({specifier:e,exportNames:t})=>{let r=T(e),i=[...t.namedExports,...t.hasDefaultExport?[`default`]:[]];return i.length===0?`import ${JSON.stringify(n.o)};`:i.map((e,t)=>`export { ${r}_${t} as ${JSON.stringify(e)} } from ${JSON.stringify(n.o)};`).join(`
|
|
826
|
+
`)},E=`twenty-shared-dependencies-shim`,de=e=>({name:`twenty-shared-dependencies-shim`,setup:n=>{n.onResolve({filter:/.*/},({path:n})=>{let r=e();if(t.Vt(r)&&r.exportNamesBySpecifier.has(n))return{path:n,namespace:E}}),n.onLoad({filter:/.*/,namespace:E},({path:n})=>{let r=e()?.exportNamesBySpecifier.get(n);if(t.Vt(r))return{contents:ue({specifier:n,exportNames:r}),loader:`js`}})}}),fe=e=>`if (typeof document !== 'undefined') {
|
|
827
|
+
const styleElement = document.createElement('style');
|
|
828
|
+
document.head.appendChild(styleElement);
|
|
829
|
+
styleElement.textContent = ${JSON.stringify(e)};
|
|
830
|
+
}`,pe={name:`css-injection`,setup:e=>{e.onLoad({filter:/\.css$/,namespace:`file`},async({path:e})=>{let t=(await v.build({entryPoints:[e],bundle:!0,write:!1,outfile:`injected.css`,logLevel:`silent`,plugins:i.n(),loader:Object.fromEntries([`.png`,`.jpg`,`.jpeg`,`.gif`,`.svg`,`.webp`,`.avif`,`.ico`,`.woff`,`.woff2`,`.ttf`,`.eot`,`.otf`].map(e=>[e,`dataurl`]))})).outputFiles[0].text;return{contents:fe(t),loader:`js`}})}},me=/import\s*\{\s*define(?:Settings)?FrontComponent\s*,?\s*\}\s*from\s*['"][^'"]+['"];?\n?/g,D=/export\s+default\s+define(?:Settings)?FrontComponent\s*\(/,he=/component\s*:\s*([A-Za-z_$][\w$]*)\s*[,}]/,O=`__frontComponentDefinition`,ge=e=>{if(!D.test(e))return e;let t=e.replace(me,``);t=t.replace(D,`const ${O} = (`);let n=t.match(he);if(n){let e=n[1];t=t.replace(RegExp(`export\\s+(const|function)\\s+${e}\\b`),`$1 ${e}`)}return`import { createRoot as __createRoot } from 'react-dom/client';
|
|
172
831
|
import { jsx as __frontComponentJsx } from 'react/jsx-runtime';
|
|
173
|
-
`+t+`\nexport default function __renderFrontComponent(__container) { __createRoot(__container).render(__frontComponentJsx(${O}.component, {})); }\n`},_e={name:`jsx-transform-to-remote-dom-worker-format-plugin`,setup:e=>{e.onLoad({filter:/\.tsx$/},async({path:e})=>{try{return{contents:ge(await(0,m.readFile)(e,`utf8`)),loader:`tsx`}}catch(t){return{errors:[{text:`Failed to transform front component: ${t instanceof Error?t.message:String(t)}`,location:{file:e}}]}}})}},ve=()=>({name:`preact-alias`,setup:e=>{e.onResolve({filter:/^react-dom\/client$/},async t=>e.resolve(`preact/compat/client`,{kind:t.kind,resolveDir:t.resolveDir})),e.onResolve({filter:/^react-dom$/},async t=>({path:(await e.resolve(`preact/compat`,{kind:t.kind,resolveDir:t.resolveDir})).path}))}}),k=e=>[...t.
|
|
832
|
+
`+t+`\nexport default function __renderFrontComponent(__container) { __createRoot(__container).render(__frontComponentJsx(${O}.component, {})); }\n`},_e={name:`jsx-transform-to-remote-dom-worker-format-plugin`,setup:e=>{e.onLoad({filter:/\.tsx$/},async({path:e})=>{try{return{contents:ge(await(0,m.readFile)(e,`utf8`)),loader:`tsx`}}catch(t){return{errors:[{text:`Failed to transform front component: ${t instanceof Error?t.message:String(t)}`,location:{file:e}}]}}})}},ve=()=>({name:`preact-alias`,setup:e=>{e.onResolve({filter:/^react-dom\/client$/},async t=>e.resolve(`preact/compat/client`,{kind:t.kind,resolveDir:t.resolveDir})),e.onResolve({filter:/^react-dom$/},async t=>({path:(await e.resolve(`preact/compat`,{kind:t.kind,resolveDir:t.resolveDir})).path}))}}),k=e=>[...t.Vt(e?.getSharedDependenciesBuildContext)?[de(e.getSharedDependenciesBuildContext)]:[],le(e?.usePreact?{usePreact:!0}:void 0),...e?.usePreact?[ve()]:[],_e,pe],A=()=>({bundle:!0,splitting:!1,format:`esm`,outExtension:{".js":`.mjs`},external:oe,jsx:`automatic`,sourcemap:!0,metafile:!0,logLevel:`silent`,minify:!0,define:{"process.env.NODE_ENV":`"production"`},plugins:[...k()]}),ye=e=>/^define[A-Z]/.test(e)||e===`createValidationResult`,j=e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`,be=e=>j(e)||t.p(e)&&Object.values(e).every(j),xe=e=>{let t=[],n=[],r=[];for(let i of Object.keys(e).sort())ye(i)?t.push(i):be(e[i])?n.push(i):r.push(i);return{factories:t,plainData:n,any:r}},M=`twenty-sdk-define-stub`,Se=`__twenty-sdk-define-stub__`,Ce=`
|
|
174
833
|
// Auto-generated stub for twenty-sdk/define injected by the Twenty CLI.
|
|
175
834
|
// Real implementations would pull in zod, twenty-shared and ~1MB of code; at
|
|
176
835
|
// runtime only \`default.config.handler\` is consumed, so tiny no-ops suffice.
|
|
@@ -199,8 +858,8 @@ const __anyStub = new Proxy(() => undefined, __anyHandler);
|
|
|
199
858
|
`:throw SyntaxError();default:++r.v,n+=i}}throw SyntaxError()}(e);for(let e=0;e<t.length;e++){let n=64512&t.charCodeAt(e);if(!(n<55296)&&(n!==55296||(64512&t.charCodeAt(++e))!=56320))return}return t}catch{}}function De(e,t){if(t.v===e.length)throw SyntaxError();let n=e[t.v];switch(++t.v,n){case`\r`:e[t.v]===`
|
|
200
859
|
`&&++t.v;case`
|
|
201
860
|
`:case`\u2028`:case`\u2029`:return``;case`r`:return`\r`;case`n`:return`
|
|
202
|
-
`;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;case`v`:return`\v`;case`x`:return function(e,t){let n=I(e[t.v]);++t.v;let r=I(e[t.v]);return++t.v,String.fromCodePoint(16*n+r)}(e,t);case`u`:return function(e,t){let n=0;if(e[t.v]===`{`){++t.v;do{if(n=16*n+I(e[t.v]),n>1114111)throw SyntaxError();++t.v}while(e[t.v]!==`}`);++t.v}else for(let r=0;r<4;++r)n=16*n+I(e[t.v]),++t.v;return String.fromCodePoint(n)}(e,t);case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:return function(e,t,n){let r=e<=`3`?2:1,i=+e;do{if((e=t[n.v])<`0`||e>`7`)break;i=8*i+ +e,++n.v,--r}while(r>0);return String.fromCodePoint(i)}(n,e,t);default:return n}}function I(e){if(e>=`0`&&e<=`9`)return+e;if(e>=`a`&&e<=`f`)return e.charCodeAt(0)-87;if(e>=`A`&&e<=`F`)return e.charCodeAt(0)-55;throw SyntaxError()}function Oe(e,t){let n=e.length,r=0;for(;r<n;){let n=e.charCodeAt(r);t[r++]=(255&n)<<8|n>>>8}}function ke(e,t){let n=e.length,r=0;for(;r<n;)t[r]=e.charCodeAt(r++)}function Ae(){let e=`AGFzbQEAAAABXA1gAX8Bf2ACf38AYAABf2AAAGABfwBgBn9/f39/fwF/YAJ/fwF/YAd/f39/f39/AX9gA39/fwF/YAh/f39/f39/fwF/YAV/f39/fwF/YAR/f39/AX9gBH9/f38AAzMyAQEBAwAABAUJBAAEBAMDAAcCAAAICgAFAAAGBQsHBgAAAAAIAAICAgICAgICAgIFDAYEBQFwAQUFBQMBAAEGCAF/AEHQmAILB1wOBm1lbW9yeQIAC19faGVhcF9iYXNlAwACc2EAJAFlACUCZXMAJgJlZQAnA3JlcwAoA3JlZQApAnVzACoCdWUAKwJyZQAsA3JyZQAtAnJ1AC4IcGFyc2VDSlMALwkKAQBBAQsEAAECAwwBAgrJkwEyDgAgACABQcgfQcAfEDALDgAgACABQdQfQcwfEDALDgAgACABQeAfQdgfEDALEgBBzB9BADYCAEHUH0EANgIAC8wBAQN/AkBBvKABKAIAIgNBAmpB5QBB8QBB9QBB6QBB8gBB5QAQEARAQbygASADQQ5qNgIAAkAQEUEoRw0AQbygAUG8oAEoAgBBAmo2AgAQESEBQbygASgCACECIAFBJ0cgAUEiR3ENACABEAxBvKABQbygASgCAEECaiIBNgIAEBFBKUcNAAJAIABBAWsOAgMDAAtBtKABKAIAIAI2AgBBtKABKAIAIAE2AgRBAQ8LQbygASADNgIAC0EADwsgAiABQaAfKAIAEQEAQQELGwAgAEGYHygCAEYEQEEBDwsgAEECay8BABAPC/8CAQV/QZgfKAIAIQQDQAJAIABBAmshASAALwEAIgJBIEcNACAAIARLIAEhAA0BCwsCQCACQT1HDQADQAJAIAFBAmshACABLwEAQSBHDQAgASAESyAAIQENAQsLIABBAmohASAAQQRqIQNBACECA0ACQCABLwEAIgBBgPgDcUGAuANGBEAgAEH/B3EgAUECay8BAEH/B3FBCnRyQYCABGohAAsgAEUgASAETXINACAAQdwARg0CIAAQEkUNACABQX5BfCAAQYCABEkbaiEBIAAQEyECDAELCyACQQFxRQ0AIAEvAQBBIEcNAEG0oAEoAgAiAkGwHygCAEYNACACIAM2AgwgAiABQQJqNgIIA0ACQCABQQJrIQAgAS8BACIDQSBHDQAgASAESyAAIQENAQsLAkACQAJAIANB8gBrDgMAAwEDCyAAQfYAQeEAEBQNAQwCCyAAQewAQeUAEBQNACAAQeMAQe8AQe4AQfMAEBVFDQELQbSgASACQRBqNgIACws7AQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUYhBgsgBgtPAQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUcNACAALwEKIAZHDQAgAC8BDCAHRiEICyAIC7MFAQN/QbygAUG8oAEoAgAiAkEOajYCAAJAAkAQESIBQdsARwRAIAFBPUYNASABQS5HDQJBvKABQbygASgCAEECajYCABARQbygASgCACEBEBZFDQJBvKABKAIAIQAQEUE9Rw0CIAEgAEGcHygCABEBAA8LQbygAUG8oAEoAgBBAmo2AgAQESIAQSdHIABBIkdxDQFBvKABKAIAIAAQDEG8oAFBvKABKAIAQQJqIgA2AgAQEUHdAEcNAUG8oAFBvKABKAIAQQJqNgIAEBFBPUcNASAAQZwfKAIAEQEADAELIABFDQBBqB8oAgARAwBBvKABQbygASgCAEECajYCABARIgBB8gBHBEAgAEH7AEcNAUG8oAEoAgBBAmshAQJAAkADQEG8oAFBvKABKAIAIgBBAmo2AgAgAEHAoAEoAgBPDQIQESEAQbygASgCACECAkAgABAWBEBBvKABKAIAIQMQESIAQTpGBEBBvKABQbygASgCAEECajYCABAREBZFDQRBvKABKAIALwEAIQALIAIgA0GcHygCABEBAAwBCwJAIABBIkcEQCAAQS5GDQEgAEEnRw0EC0G8oAEoAgAgABAMQbygAUG8oAEoAgBBAmoiAzYCABARIgBBOkcNAUG8oAFBvKABKAIAQQJqNgIAEBEQFkUNA0G8oAEoAgAvAQAhACADQZwfKAIAEQEADAELQbygASgCACIALwECQS5HDQIgAC8BBEEuRw0CQbygASAAQQZqNgIAAkACQCAALwEGIgBB8gBGBH9BARAEQbygASgCACEADQEgAC8BAAUgAAtB//8DcRAWRQ0EDAELQbygASAAQQJqNgIACxARIQALIABB//8DcSIAQSxGDQALIABB/QBGDQELQbygASABNgIACw8LQQEQBBoLQbygASAC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IABB6wBHcg0BQbygASgCACIALwECQeUARw0BIAAvAQRB+QBHDQEgAC8BBkHzAEcNASAAQQZqIQJBvKABIABBCGo2AgAQEUEoRw0BQbygAUG8oAEoAgBBAmo2AgAQEUG8oAEoAgAhBhAWRQ0BQbygASgCABARQSlHDQFBvKABQbygASgCACICQQJqNgIAEBFBLkcNAUG8oAFBvKABKAIAQQJqNgIAEBFB5gBHDQFBvKABKAIAIgBBAmpB7wBB8gBBxQBB4QBB4wBB6AAQEEUNAUG8oAEgAEEOajYCABARQbygASgCACIAQQJrIQJBKEcNAUG8oAEgAEECajYCABARQeYARw0BQbygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEAhFDQFBvKABIABBEGo2AgAQEUEoRw0BQbygAUG8oAEoAgBBAmo2AgAQEUG8oAEoAgAhBxAWRQ0BQbygASgCACEBEBFBKUcNAUG8oAFBvKABKAIAQQJqNgIAEBFB+wBHDQFBvKABQbygASgCAEECajYCABARQekARw0BQbygASgCACIALwECQeYARw0BQbygASAAQQRqNgIAEBFBKEcNAUG8oAFBvKABKAIAQQJqNgIAEBEaQbygASgCACIAIAcgASAHayIJECMNASAGayIFQQF1IQRBvKABIAAgCUEBdSIIQQF0ajYCAAJAAkACQBARIgBBIUcEQCAAQT1HDQVBvKABKAIAIgAvAQJBPUcNBSAALwEEQT1HDQVBvKABIABBBmo2AgAQESIBQSdHIAFBIkdxDQVBvKABKAIAIgBBAmpB5ABB5QBB5gBB4QBB9QBB7ABB9AAQCEUNBUG8oAEgAEEQajYCABARIAFHDQVBvKABQbygASgCAEECajYCABARQfwARw0FQbygASgCACIALwECQfwARw0FQbygASAAQQRqNgIAEBEaQbygASgCACIAIAcgCRAjDQVBvKABIAAgCEEBdGo2AgAQEUE9Rw0FQbygASgCACIALwECQT1HDQUgAC8BBEE9Rw0FQbygASAAQQZqNgIAEBEiA0EnRyADQSJHcQ0FQQAhAQJAQbygASgCACIAQQJqIgovAQBB3wBHDQAgCi8BAkHfAEcNACAKLwEEQeUARw0AIAovAQZB8wBHDQAgCi8BCEHNAEcNACAKLwEKQe8ARw0AIAovAQxB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vKABIAAgCEEBdGo2AgAQEUEsRw0DQbygAUG8oAEoAgBBAmo2AgAQEUH7AEcNA0G8oAFBvKABKAIAQQJqNgIAEBFB5QBHDQNBvKABKAIAIgBBAmoQGUUNA0G8oAEgAEEUajYCABARQTpHDQNBvKABQbygASgCAEECajYCABARQbygASgCACEBQfQARwRAIAEvAQJB8gBHDQQgAS8BBEH1AEcNBCABLwEGQeUARw0EC0G8oAEgAUEIajYCABARQSxHDQNBvKABQbygASgCAEECajYCABARQecARw0DQbygASgCACIALwECQeUARw0DIAAvAQRB9ABHDQNBvKABIABBBmo2AgAQESIAQTpGBH9BvKABQbygASgCAEECajYCABARQeYARw0EQbygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEAhFDQRBvKABIABBEGoiATYCABARIgBBKEcEQCABQbygASgCAEYNBSAAEBZFDQULEBEFIAALQShHDQNBvKABQbygASgCAEECajYCABARQSlHDQNBvKABQbygASgCAEECajYCABARQfsARw0DQbygAUG8oAEoAgBBAmo2AgAQEUHyAEcNA0G8oAEoAgAiAEECakHlAEH0AEH1AEHyAEHuABAHRQ0DQbygASAAQQxqNgIAEBEaQbygASgCACIAIAYgBRAjDQNBvKABIAAgBEEBdGo2AgAQEUHbAEcNA0G8oAFBvKABKAIAQQJqNgIAEBEaQbygASgCACIAIAcgCRAjDQNBvKABIAAgCEEBdGo2AgAQEUHdAEcNA0G8oAFBvKABKAIAQQJqNgIAEBEiAEE7RgR/QbygAUG8oAEoAgBBAmo2AgAQEQUgAAtB/QBHDQNBvKABQbygASgCAEECajYCABARIgBBLEYEf0G8oAFBvKABKAIAQQJqNgIAEBEFIAALQf0ARw0DQbygAUG8oAEoAgBBAmo2AgAQEUEpRw0DQbygAUG8oAEoAgBBAmo2AgAQESIAQTtHDQELQbygAUG8oAEoAgBBAmo2AgAQESEACyAAQf0ARw0BQbygAUG8oAEoAgBBAmo2AgAQEUEpRw0BQbSgASgCACEDQYAgIQADQAJAIAAgA0cEQCAEIABBDGooAgAgAEEIaigCACIBa0EBdUcNASAGIAEgBRAjDQEgACgCACAAQQRqKAIAQaAf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`;return typeof Buffer<`u`?Buffer.from(e,`base64`):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}var je;function Me(){return je||=(async()=>{let e=await WebAssembly.compile(Ae()),{exports:t}=await WebAssembly.instantiate(e);P=t})()}var Ne=async({appPath:e,specifier:n})=>{try{let r=A(),a=n===`react/jsx-runtime`,o=await v.build({...r,absWorkingDir:e,plugins:[...i.n(),...(r.plugins??[]).filter(e=>a||e.name!==`jsx-runtime-remote-wrapper`)],entryPoints:[n],write:!1,outfile:`shared-dependency-probe.js`,outExtension:void 0,external:[],sourcemap:!1,metafile:!0}),s=Object.values(o.metafile.outputs).find(e=>t.zt(e.entryPoint));if(!t.zt(s?.entryPoint))throw Error(`Missing dependency entry point.`);let c=new Set(s.exports),l=new Set,u=async n=>{if(l.has(n))return;l.add(n);let i=o.metafile.inputs[n];if(!t.zt(i))return;let a=await(0,m.readFile)((0,h.resolve)(e,n),`utf8`),s;if(i.format===`cjs`){await Me();let e=Ee((await v.transform(a,{define:r.define,minifySyntax:!0,loader:`js`})).code);for(let t of e.exports)t!=="__esModule"&&c.add(t);s=e.reexports}else s=y.default.createSourceFile(n,a,y.default.ScriptTarget.Latest).statements.flatMap(e=>y.default.isExportDeclaration(e)&&!t.zt(e.exportClause)&&t.zt(e.moduleSpecifier)&&y.default.isStringLiteral(e.moduleSpecifier)?[e.moduleSpecifier.text]:[]);for(let e of s){let n=i.imports.find(t=>t.original===e&&!t.external);t.zt(n)&&await u(n.path)}};return a||await u(s.entryPoint),{namedExports:[...c].filter(e=>e!=="default").sort(),hasDefaultExport:c.has(`default`)}}catch(e){throw Error(`Unable to determine the exports of shared dependency "${n}". Check that it is installed and importable from the application.`,{cause:e})}},Pe=e=>[...e].map(([e,t])=>{let n=T(e),r=[...t.namedExports,...t.hasDefaultExport?[`default`]:[]];return[`export * as ${n} from ${JSON.stringify(e)};`,...r.map((t,r)=>`export { ${JSON.stringify(t)} as ${n}_${r} } from ${JSON.stringify(e)};`)].join(`
|
|
861
|
+
`;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;case`v`:return`\v`;case`x`:return function(e,t){let n=I(e[t.v]);++t.v;let r=I(e[t.v]);return++t.v,String.fromCodePoint(16*n+r)}(e,t);case`u`:return function(e,t){let n=0;if(e[t.v]===`{`){++t.v;do{if(n=16*n+I(e[t.v]),n>1114111)throw SyntaxError();++t.v}while(e[t.v]!==`}`);++t.v}else for(let r=0;r<4;++r)n=16*n+I(e[t.v]),++t.v;return String.fromCodePoint(n)}(e,t);case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:return function(e,t,n){let r=e<=`3`?2:1,i=+e;do{if((e=t[n.v])<`0`||e>`7`)break;i=8*i+ +e,++n.v,--r}while(r>0);return String.fromCodePoint(i)}(n,e,t);default:return n}}function I(e){if(e>=`0`&&e<=`9`)return+e;if(e>=`a`&&e<=`f`)return e.charCodeAt(0)-87;if(e>=`A`&&e<=`F`)return e.charCodeAt(0)-55;throw SyntaxError()}function Oe(e,t){let n=e.length,r=0;for(;r<n;){let n=e.charCodeAt(r);t[r++]=(255&n)<<8|n>>>8}}function ke(e,t){let n=e.length,r=0;for(;r<n;)t[r]=e.charCodeAt(r++)}function Ae(){let e=`AGFzbQEAAAABXA1gAX8Bf2ACf38AYAABf2AAAGABfwBgBn9/f39/fwF/YAJ/fwF/YAd/f39/f39/AX9gA39/fwF/YAh/f39/f39/fwF/YAV/f39/fwF/YAR/f39/AX9gBH9/f38AAzMyAQEBAwAABAUJBAAEBAMDAAcCAAAICgAFAAAGBQsHBgAAAAAIAAICAgICAgICAgIFDAYEBQFwAQUFBQMBAAEGCAF/AEHQmAILB1wOBm1lbW9yeQIAC19faGVhcF9iYXNlAwACc2EAJAFlACUCZXMAJgJlZQAnA3JlcwAoA3JlZQApAnVzACoCdWUAKwJyZQAsA3JyZQAtAnJ1AC4IcGFyc2VDSlMALwkKAQBBAQsEAAECAwwBAgrJkwEyDgAgACABQcgfQcAfEDALDgAgACABQdQfQcwfEDALDgAgACABQeAfQdgfEDALEgBBzB9BADYCAEHUH0EANgIAC8wBAQN/AkBBvKABKAIAIgNBAmpB5QBB8QBB9QBB6QBB8gBB5QAQEARAQbygASADQQ5qNgIAAkAQEUEoRw0AQbygAUG8oAEoAgBBAmo2AgAQESEBQbygASgCACECIAFBJ0cgAUEiR3ENACABEAxBvKABQbygASgCAEECaiIBNgIAEBFBKUcNAAJAIABBAWsOAgMDAAtBtKABKAIAIAI2AgBBtKABKAIAIAE2AgRBAQ8LQbygASADNgIAC0EADwsgAiABQaAfKAIAEQEAQQELGwAgAEGYHygCAEYEQEEBDwsgAEECay8BABAPC/8CAQV/QZgfKAIAIQQDQAJAIABBAmshASAALwEAIgJBIEcNACAAIARLIAEhAA0BCwsCQCACQT1HDQADQAJAIAFBAmshACABLwEAQSBHDQAgASAESyAAIQENAQsLIABBAmohASAAQQRqIQNBACECA0ACQCABLwEAIgBBgPgDcUGAuANGBEAgAEH/B3EgAUECay8BAEH/B3FBCnRyQYCABGohAAsgAEUgASAETXINACAAQdwARg0CIAAQEkUNACABQX5BfCAAQYCABEkbaiEBIAAQEyECDAELCyACQQFxRQ0AIAEvAQBBIEcNAEG0oAEoAgAiAkGwHygCAEYNACACIAM2AgwgAiABQQJqNgIIA0ACQCABQQJrIQAgAS8BACIDQSBHDQAgASAESyAAIQENAQsLAkACQAJAIANB8gBrDgMAAwEDCyAAQfYAQeEAEBQNAQwCCyAAQewAQeUAEBQNACAAQeMAQe8AQe4AQfMAEBVFDQELQbSgASACQRBqNgIACws7AQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUYhBgsgBgtPAQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUcNACAALwEKIAZHDQAgAC8BDCAHRiEICyAIC7MFAQN/QbygAUG8oAEoAgAiAkEOajYCAAJAAkAQESIBQdsARwRAIAFBPUYNASABQS5HDQJBvKABQbygASgCAEECajYCABARQbygASgCACEBEBZFDQJBvKABKAIAIQAQEUE9Rw0CIAEgAEGcHygCABEBAA8LQbygAUG8oAEoAgBBAmo2AgAQESIAQSdHIABBIkdxDQFBvKABKAIAIAAQDEG8oAFBvKABKAIAQQJqIgA2AgAQEUHdAEcNAUG8oAFBvKABKAIAQQJqNgIAEBFBPUcNASAAQZwfKAIAEQEADAELIABFDQBBqB8oAgARAwBBvKABQbygASgCAEECajYCABARIgBB8gBHBEAgAEH7AEcNAUG8oAEoAgBBAmshAQJAAkADQEG8oAFBvKABKAIAIgBBAmo2AgAgAEHAoAEoAgBPDQIQESEAQbygASgCACECAkAgABAWBEBBvKABKAIAIQMQESIAQTpGBEBBvKABQbygASgCAEECajYCABAREBZFDQRBvKABKAIALwEAIQALIAIgA0GcHygCABEBAAwBCwJAIABBIkcEQCAAQS5GDQEgAEEnRw0EC0G8oAEoAgAgABAMQbygAUG8oAEoAgBBAmoiAzYCABARIgBBOkcNAUG8oAFBvKABKAIAQQJqNgIAEBEQFkUNA0G8oAEoAgAvAQAhACADQZwfKAIAEQEADAELQbygASgCACIALwECQS5HDQIgAC8BBEEuRw0CQbygASAAQQZqNgIAAkACQCAALwEGIgBB8gBGBH9BARAEQbygASgCACEADQEgAC8BAAUgAAtB//8DcRAWRQ0EDAELQbygASAAQQJqNgIACxARIQALIABB//8DcSIAQSxGDQALIABB/QBGDQELQbygASABNgIACw8LQQEQBBoLQbygASAC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IABB6wBHcg0BQbygASgCACIALwECQeUARw0BIAAvAQRB+QBHDQEgAC8BBkHzAEcNASAAQQZqIQJBvKABIABBCGo2AgAQEUEoRw0BQbygAUG8oAEoAgBBAmo2AgAQEUG8oAEoAgAhBhAWRQ0BQbygASgCABARQSlHDQFBvKABQbygASgCACICQQJqNgIAEBFBLkcNAUG8oAFBvKABKAIAQQJqNgIAEBFB5gBHDQFBvKABKAIAIgBBAmpB7wBB8gBBxQBB4QBB4wBB6AAQEEUNAUG8oAEgAEEOajYCABARQbygASgCACIAQQJrIQJBKEcNAUG8oAEgAEECajYCABARQeYARw0BQbygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEAhFDQFBvKABIABBEGo2AgAQEUEoRw0BQbygAUG8oAEoAgBBAmo2AgAQEUG8oAEoAgAhBxAWRQ0BQbygASgCACEBEBFBKUcNAUG8oAFBvKABKAIAQQJqNgIAEBFB+wBHDQFBvKABQbygASgCAEECajYCABARQekARw0BQbygASgCACIALwECQeYARw0BQbygASAAQQRqNgIAEBFBKEcNAUG8oAFBvKABKAIAQQJqNgIAEBEaQbygASgCACIAIAcgASAHayIJECMNASAGayIFQQF1IQRBvKABIAAgCUEBdSIIQQF0ajYCAAJAAkACQBARIgBBIUcEQCAAQT1HDQVBvKABKAIAIgAvAQJBPUcNBSAALwEEQT1HDQVBvKABIABBBmo2AgAQESIBQSdHIAFBIkdxDQVBvKABKAIAIgBBAmpB5ABB5QBB5gBB4QBB9QBB7ABB9AAQCEUNBUG8oAEgAEEQajYCABARIAFHDQVBvKABQbygASgCAEECajYCABARQfwARw0FQbygASgCACIALwECQfwARw0FQbygASAAQQRqNgIAEBEaQbygASgCACIAIAcgCRAjDQVBvKABIAAgCEEBdGo2AgAQEUE9Rw0FQbygASgCACIALwECQT1HDQUgAC8BBEE9Rw0FQbygASAAQQZqNgIAEBEiA0EnRyADQSJHcQ0FQQAhAQJAQbygASgCACIAQQJqIgovAQBB3wBHDQAgCi8BAkHfAEcNACAKLwEEQeUARw0AIAovAQZB8wBHDQAgCi8BCEHNAEcNACAKLwEKQe8ARw0AIAovAQxB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vKABIAAgCEEBdGo2AgAQEUEsRw0DQbygAUG8oAEoAgBBAmo2AgAQEUH7AEcNA0G8oAFBvKABKAIAQQJqNgIAEBFB5QBHDQNBvKABKAIAIgBBAmoQGUUNA0G8oAEgAEEUajYCABARQTpHDQNBvKABQbygASgCAEECajYCABARQbygASgCACEBQfQARwRAIAEvAQJB8gBHDQQgAS8BBEH1AEcNBCABLwEGQeUARw0EC0G8oAEgAUEIajYCABARQSxHDQNBvKABQbygASgCAEECajYCABARQecARw0DQbygASgCACIALwECQeUARw0DIAAvAQRB9ABHDQNBvKABIABBBmo2AgAQESIAQTpGBH9BvKABQbygASgCAEECajYCABARQeYARw0EQbygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEAhFDQRBvKABIABBEGoiATYCABARIgBBKEcEQCABQbygASgCAEYNBSAAEBZFDQULEBEFIAALQShHDQNBvKABQbygASgCAEECajYCABARQSlHDQNBvKABQbygASgCAEECajYCABARQfsARw0DQbygAUG8oAEoAgBBAmo2AgAQEUHyAEcNA0G8oAEoAgAiAEECakHlAEH0AEH1AEHyAEHuABAHRQ0DQbygASAAQQxqNgIAEBEaQbygASgCACIAIAYgBRAjDQNBvKABIAAgBEEBdGo2AgAQEUHbAEcNA0G8oAFBvKABKAIAQQJqNgIAEBEaQbygASgCACIAIAcgCRAjDQNBvKABIAAgCEEBdGo2AgAQEUHdAEcNA0G8oAFBvKABKAIAQQJqNgIAEBEiAEE7RgR/QbygAUG8oAEoAgBBAmo2AgAQEQUgAAtB/QBHDQNBvKABQbygASgCAEECajYCABARIgBBLEYEf0G8oAFBvKABKAIAQQJqNgIAEBEFIAALQf0ARw0DQbygAUG8oAEoAgBBAmo2AgAQEUEpRw0DQbygAUG8oAEoAgBBAmo2AgAQESIAQTtHDQELQbygAUG8oAEoAgBBAmo2AgAQESEACyAAQf0ARw0BQbygAUG8oAEoAgBBAmo2AgAQEUEpRw0BQbSgASgCACEDQYAgIQADQAJAIAAgA0cEQCAEIABBDGooAgAgAEEIaigCACIBa0EBdUcNASAGIAEgBRAjDQEgACgCACAAQQRqKAIAQaAf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`;return typeof Buffer<`u`?Buffer.from(e,`base64`):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}var je;function Me(){return je||=(async()=>{let e=await WebAssembly.compile(Ae()),{exports:t}=await WebAssembly.instantiate(e);P=t})()}var Ne=async({appPath:e,specifier:n})=>{try{let r=A(),a=n===`react/jsx-runtime`,o=await v.build({...r,absWorkingDir:e,plugins:[...i.n(),...(r.plugins??[]).filter(e=>a||e.name!==`jsx-runtime-remote-wrapper`)],entryPoints:[n],write:!1,outfile:`shared-dependency-probe.js`,outExtension:void 0,external:[],sourcemap:!1,metafile:!0}),s=Object.values(o.metafile.outputs).find(e=>t.Vt(e.entryPoint));if(!t.Vt(s?.entryPoint))throw Error(`Missing dependency entry point.`);let c=new Set(s.exports),l=new Set,u=async n=>{if(l.has(n))return;l.add(n);let i=o.metafile.inputs[n];if(!t.Vt(i))return;let a=await(0,m.readFile)((0,h.resolve)(e,n),`utf8`),s;if(i.format===`cjs`){await Me();let e=Ee((await v.transform(a,{define:r.define,minifySyntax:!0,loader:`js`})).code);for(let t of e.exports)t!=="__esModule"&&c.add(t);s=e.reexports}else s=y.default.createSourceFile(n,a,y.default.ScriptTarget.Latest).statements.flatMap(e=>y.default.isExportDeclaration(e)&&!t.Vt(e.exportClause)&&t.Vt(e.moduleSpecifier)&&y.default.isStringLiteral(e.moduleSpecifier)?[e.moduleSpecifier.text]:[]);for(let e of s){let n=i.imports.find(t=>t.original===e&&!t.external);t.Vt(n)&&await u(n.path)}};return a||await u(s.entryPoint),{namedExports:[...c].filter(e=>e!=="default").sort(),hasDefaultExport:c.has(`default`)}}catch(e){throw Error(`Unable to determine the exports of shared dependency "${n}". Check that it is installed and importable from the application.`,{cause:e})}},Pe=e=>[...e].map(([e,t])=>{let n=T(e),r=[...t.namedExports,...t.hasDefaultExport?[`default`]:[]];return[`export * as ${n} from ${JSON.stringify(e)};`,...r.map((t,r)=>`export { ${JSON.stringify(t)} as ${n}_${r} } from ${JSON.stringify(e)};`)].join(`
|
|
203
862
|
`)}).join(`
|
|
204
|
-
`),Fe=e=>{let t=new Map;for(let n of e){let e=T(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t.values()].filter(e=>e.length>1)},L=e.t(),Ie=async({appPath:e,sharedDependencies:r,outputDir:a=n.o,onFileBuilt:s})=>{let c=Fe(r.dependencies);if((0,L.isNonEmptyArray)(c))throw Error(`Shared dependencies map to the same bundle namespace: ${c.map(e=>e.join(` and `)).join(`, `)}`);let l=new Map(await Promise.all(r.dependencies.map(async t=>[t,await Ne({appPath:e,specifier:t})]))),u=(0,b.join)(a,r.builtPath),d=(0,b.join)(e,u);await o.r((0,b.dirname)(d)),await v.build({...A(),plugins:[...i.n(),...A().plugins??[]],stdin:{contents:Pe(l),resolveDir:e,sourcefile:`twenty-shared-dependencies-entry.js`,loader:`js`},outfile:d,outExtension:void 0,external:[]});let f=await(0,m.readFile)(d),p=x.default.createHash(`sha256`).update(f).digest(`hex`);return await s({fileFolder:t.W.BuiltFrontComponent,builtPath:u,sourcePath:`package.json`,checksum:p}),{exportNamesBySpecifier:l}},Le=async e=>{let t=b.default.join(e,f.n);if(!await o.i(t))return{};let n=(await(0,m.readdir)(t)).filter(e=>e.endsWith(`.json`)),r={};for(let e of n){let n=b.default.basename(e,`.json`);if(n===`en`||!d.t(n))continue;let i=l.n({catalog:await o.o(b.default.join(t,e))??{}});Object.keys(i).length>0&&(r[n]=i)}return r},Re=`__twentySdkFrontComponentTranslations__`,ze=async e=>{let r=e.outputDir??`.twenty/output`,i=(0,b.join)(e.appPath,r);await o.r(i),await o.n(i);let a=new Map,s=e=>{a.set(e.builtPath,{checksum:e.checksum,builtPath:e.builtPath,sourcePath:e.sourcePath,fileFolder:e.fileFolder,usesSdkClient:e.usesSdkClient})},{logicFunctions:c,frontComponents:l}=e.filePaths,u=e.manifest.application.frontComponentSharedDependencies,d=await Le(e.appPath),f=Object.keys(d).length?{js:`globalThis[${JSON.stringify(Re)}]=${JSON.stringify(d)};`}:void 0;await w({appPath:e.appPath,sourcePaths:c,fileFolder:t.W.BuiltLogicFunction,buildOptions:{bundle:!0,splitting:!1,format:`esm`,platform:`node`,outdir:i,outExtension:{".js":`.mjs`},external:ie,tsconfig:(0,b.join)(e.appPath,`tsconfig.json`),sourcemap:!0,metafile:!0,logLevel:`silent`,banner:n.c,plugins:[N(e.appPath)]},onFileBuilt:s});let p=t.zt(u)?await Ie({appPath:e.appPath,outputDir:r,sharedDependencies:u,onFileBuilt:s}):null;await w({appPath:e.appPath,sourcePaths:l,fileFolder:t.W.BuiltFrontComponent,buildOptions:{...A(),outdir:i,tsconfig:(0,b.join)(e.appPath,`tsconfig.json`),jsx:`automatic`,sourcemap:!0,metafile:!0,logLevel:`silent`,...f===void 0?{}:{banner:f},plugins:[...k({getSharedDependenciesBuildContext:()=>p}),N(e.appPath)]},onFileBuilt:s}),await R({appPath:e.appPath,fileFolder:t.W.Source,filePaths:[...new Set([...c,...l])],collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),await R({appPath:e.appPath,fileFolder:t.W.PublicAsset,filePaths:e.filePaths.publicAssets,collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),await R({appPath:e.appPath,fileFolder:t.W.Dependencies,filePaths:[`package.json`,`yarn.lock`].filter(t=>o.a((0,b.join)(e.appPath,t))),collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks});for(let t of e.generatedAssets??[])await Be({appPath:e.appPath,generatedAsset:t,outputDir:r,collectFileBuilt:s});return await te({appPath:e.appPath,relativeOutputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),{builtFileInfos:a}},Be=async({appPath:e,generatedAsset:n,outputDir:r,collectFileBuilt:i})=>{let a=(0,b.join)(r,n.relativePath),s=(0,b.join)(e,a);await o.r((0,b.dirname)(s)),await(0,m.writeFile)(s,n.content);let c=x.default.createHash(`md5`).update(n.content).digest(`hex`);await i({fileFolder:t.W.PublicAsset,builtPath:a,sourcePath:n.relativePath,checksum:c})},R=async({appPath:e,fileFolder:t,filePaths:n,outputDir:r,dereferenceSymlinks:a=!1,collectFileBuilt:s})=>{for(let c of n){let n=(0,b.join)(e,c);if(i.r(n),!await o.i(n))continue;let l=(0,b.join)(r,c),u=(0,b.join)(e,l);await o.r((0,b.dirname)(u)),await S({sourcePath:n,destinationPath:u,dereferenceSymlinks:a});let d=await(0,m.readFile)(u);await s({fileFolder:t,builtPath:l,sourcePath:c,checksum:x.default.createHash(`md5`).update(d).digest(`hex`)})}},Ve=`data:image/png;base64,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`,He=`M6.822 14.174c0-2.435 1.996-4.411 4.456-4.411h8.574c.125 0 .241.075.293.19a.31.31 0 0 1-.056.344l-1.88 2.023c-.326.35-.787.552-1.27.552H11.3c-.738 0-1.338.594-1.338 1.325v3.336a.78.78 0 0 1-.783.777H7.61a.78.78 0 0 1-.783-.777v-3.36zM33.5 25.553c0 2.434-1.996 4.411-4.456 4.411h-3.642c-2.46 0-4.454-1.977-4.454-4.411v-6.315c0-.43.16-.842.456-1.16l2.124-2.285a.33.33 0 0 1 .355-.081.32.32 0 0 1 .205.295v9.527c0 .73.598 1.322 1.337 1.322h3.6a1.33 1.33 0 0 0 1.337-1.322V14.197c0-.73-.599-1.325-1.337-1.325H24.84c-.481 0-.938.201-1.265.547L11.088 26.856h7.503a.78.78 0 0 1 .784.778v1.552a.78.78 0 0 1-.784.778H8.481a1.655 1.655 0 0 1-1.662-1.644v-.824c0-.412.156-.809.44-1.114l13.999-15.06a4.9 4.9 0 0 1 3.594-1.56h4.189c2.46 0 4.454 1.977 4.454 4.412v11.379z`,z=1388,B=858,V=156,H=16,U=351,W=434,G=798,K=z/2,q=B/2,J=19,Y=8,X=`#b3b3b3`,Ue=V/40,We=async({logoBuffer:e,appPath:t})=>{let n=(0,g.createRequire)((0,h.join)(t,`package.json`))(`sharp`),r=`data:image/png;base64,${(await n(e).resize(V,V,{fit:`cover`,position:`centre`}).png().toBuffer()).toString(`base64`)}`,i=[`<svg xmlns="http://www.w3.org/2000/svg" width="${z}" height="${B}" viewBox="0 0 ${z} ${B}">`,`<image href="${Ve}" x="0" y="0" width="${z}" height="${B}" preserveAspectRatio="none" />`,`<defs>`,`<filter id="tileShadow" x="-40%" y="-40%" width="180%" height="180%">`,`<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0b0b0f" flood-opacity="0.14" />`,`</filter>`,`<clipPath id="leftLogoClip"><rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" /></clipPath>`,`</defs>`,`<g filter="url(#tileShadow)">`,`<rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="#ffffff" />`,`<rect x="${G}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="#000000" />`,`</g>`,`<image href="${r}" x="${W}" y="${U}" width="${V}" height="${V}" preserveAspectRatio="xMidYMid slice" clip-path="url(#leftLogoClip)" />`,`<rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="none" stroke="#000000" stroke-opacity="0.08" stroke-width="1" />`,`<g transform="translate(${G} ${U}) scale(${Ue})"><path d="${He}" fill="#ffffff" /></g>`,`<line x1="${K-J}" y1="${q-J}" x2="713" y2="448" stroke="${X}" stroke-width="${Y}" stroke-linecap="round" />`,`<line x1="${K-J}" y1="448" x2="713" y2="${q-J}" stroke="${X}" stroke-width="${Y}" stroke-linecap="round" />`,`</svg>`].join(``);return n(Buffer.from(i)).png().toBuffer()},Z=`${n.i}/cover.generated.png`,Ge=e=>e.startsWith(`http://`)||e.startsWith(`https://`),Q=async({appPath:e,manifest:n})=>{let{logo:r,galleryImages:i}=n.application;if(!t.zt(r)||Ge(r)||(i??[]).length>0)return{manifest:n,generatedAssets:[]};let a=(0,b.join)(e,r);if(!await o.i(a))return{manifest:n,generatedAssets:[]};let s=await We({logoBuffer:await(0,m.readFile)(a),appPath:e}),c={filePath:Z,fileName:(0,b.basename)(Z),fileType:(0,b.extname)(Z).replace(/^\./,``),checksum:null},l=[...n.publicAssets.filter(e=>e.filePath!==Z),c];return{manifest:{...n,application:{...n.application,galleryImages:[Z]},publicAssets:l},generatedAssets:[{relativePath:Z,content:s}]}},Ke=({manifest:e,builtFileInfos:r,outputDir:i=n.o})=>{let a=structuredClone(e);for(let[e,{fileFolder:n,checksum:o}]of r.entries()){let s=(0,b.relative)(i,e);if(n===t.W.BuiltLogicFunction){let e=a.logicFunctions,t=e.findIndex(e=>e.builtHandlerPath===s);if(t===-1)continue;a={...a,logicFunctions:e.map((e,n)=>n===t?{...e,builtHandlerChecksum:o}:e)}}if(n===t.W.PublicAsset){let e=a.publicAssets,t=e.findIndex(e=>e.filePath===s);if(t===-1)continue;a={...a,publicAssets:e.map((e,n)=>n===t?{...e,checksum:o}:e)};continue}if(n===t.W.BuiltFrontComponent){let n=a.application.frontComponentSharedDependencies;if(t.zt(n)&&n.builtPath===s){a={...a,application:{...a.application,frontComponentSharedDependencies:{...n,builtChecksum:o}}};continue}let i=a.frontComponents,c=i.findIndex(e=>e.builtComponentPath===s)??-1;if(c===-1)continue;let l=r.get(e);a={...a,frontComponents:i.map((e,t)=>t===c?{...e,builtComponentChecksum:o,usesSdkClient:l?.usesSdkClient??!1}:e)}}n===t.W.Dependencies&&(s===`package.json`&&(a.application.packageJsonChecksum=o),s===`yarn.lock`&&(a.application.yarnLockChecksum=o))}return a},qe=async({appPath:e,manifest:t,relativeOutputDir:r=n.o})=>{let i=b.default.join(e,r);await o.r(i);let a=b.default.join(i,`manifest.json`);return await o.c(a,t),a},Je=async({appPath:e,outputDir:t=n.o,dereferenceSymlinks:r=!1,onProgress:i,onTranslationWarning:a,signal:o,typecheck:s=c.t})=>{let u=[],d=e=>{u.push({severity:`warning`,code:`BUILD_WARNING`,message:e}),i?.(`⚠ ${e}`)};o?.throwIfAborted(),i?.(`Building manifest...`);let f=await l.r(e);if(!f.success)return{success:!1,error:{code:`MANIFEST_BUILD_FAILED`,message:f.errors.join(`
|
|
205
|
-
`)},diagnostics:f.errors.map(e=>({severity:`error`,code:`MANIFEST_BUILD_FAILED`,message:e}))};f.warnings.forEach(d),o?.throwIfAborted();let{manifest:p,generatedAssets:m}=await Q({appPath:e,manifest:f.manifest}).catch(e=>(d(`Skipped cover image generation: ${e instanceof Error?e.message:String(e)}`),{manifest:f.manifest,generatedAssets:[]}));m.length>0&&i?.(`Generated cover image from logo`);let h=await l.t({appPath:e,onWarning:e=>{a?(u.push({severity:`warning`,code:`BUILD_WARNING`,message:e}),a(e)):d(e)}});o?.throwIfAborted(),i?.(`Building application files...`);let{builtFileInfos:g}=await ze({appPath:e,manifest:p,filePaths:f.filePaths,generatedAssets:m,outputDir:t,dereferenceSymlinks:r});i?.(`Running typecheck...`);let _=await s({appPath:e,signal:o});if(u.push(..._.diagnostics),!_.success)return{..._,diagnostics:u};let v={...Ke({manifest:p,builtFileInfos:g,outputDir:t}),translations:h};return await qe({appPath:e,manifest:v,relativeOutputDir:t}),{success:!0,data:{manifest:v,builtFileInfos:g},diagnostics:u}},Ye={[t.
|
|
206
|
-
`).update(l).digest(`hex`),d=JSON.parse(await(0,m.readFile)((0,h.join)(r,`package.json`),`utf8`));if(!(0,L.isNonEmptyString)(d.name))throw Error(`The app package.json must declare a name.`);return{buildId:n,directory:r,contentHash:u,application:{universalIdentifier:i.application.universalIdentifier,name:d.name,displayName:i.application.displayName},manifestFormat:`twenty-application`,manifest:i,files:c}},$=new Map,Ze=async({appPath:e,signal:n})=>{let i=await r.t(e);if(!i.success)return i;let o,c=[],l=async()=>{if(t.
|
|
863
|
+
`),Fe=e=>{let t=new Map;for(let n of e){let e=T(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t.values()].filter(e=>e.length>1)},L=e.t(),Ie=async({appPath:e,sharedDependencies:r,outputDir:a=n.l,onFileBuilt:s})=>{let c=Fe(r.dependencies);if((0,L.isNonEmptyArray)(c))throw Error(`Shared dependencies map to the same bundle namespace: ${c.map(e=>e.join(` and `)).join(`, `)}`);let l=new Map(await Promise.all(r.dependencies.map(async t=>[t,await Ne({appPath:e,specifier:t})]))),u=(0,b.join)(a,r.builtPath),d=(0,b.join)(e,u);await o.r((0,b.dirname)(d)),await v.build({...A(),plugins:[...i.n(),...A().plugins??[]],stdin:{contents:Pe(l),resolveDir:e,sourcefile:`twenty-shared-dependencies-entry.js`,loader:`js`},outfile:d,outExtension:void 0,external:[]});let f=await(0,m.readFile)(d),p=x.default.createHash(`sha256`).update(f).digest(`hex`);return await s({fileFolder:t.I.BuiltFrontComponent,builtPath:u,sourcePath:`package.json`,checksum:p}),{exportNamesBySpecifier:l}},Le=async e=>{let t=b.default.join(e,d.n);if(!await o.i(t))return{};let n=(await(0,m.readdir)(t)).filter(e=>e.endsWith(`.json`)),r={};for(let e of n){let n=b.default.basename(e,`.json`);if(n===`en`||!f.t(n))continue;let i=l.n({catalog:await o.o(b.default.join(t,e))??{}});Object.keys(i).length>0&&(r[n]=i)}return r},Re=`__twentySdkFrontComponentTranslations__`,ze=async e=>{let r=e.outputDir??`.twenty/output`,i=(0,b.join)(e.appPath,r);await o.r(i),await o.n(i);let a=new Map,s=e=>{a.set(e.builtPath,{checksum:e.checksum,builtPath:e.builtPath,sourcePath:e.sourcePath,fileFolder:e.fileFolder,usesSdkClient:e.usesSdkClient})},{logicFunctions:c,frontComponents:l}=e.filePaths,u=e.manifest.application.frontComponentSharedDependencies,d=await Le(e.appPath),f=Object.keys(d).length?{js:`globalThis[${JSON.stringify(Re)}]=${JSON.stringify(d)};`}:void 0;await C({appPath:e.appPath,sourcePaths:c,fileFolder:t.I.BuiltLogicFunction,buildOptions:{bundle:!0,splitting:!1,format:`esm`,platform:`node`,outdir:i,outExtension:{".js":`.mjs`},external:ae,tsconfig:(0,b.join)(e.appPath,`tsconfig.json`),sourcemap:!0,metafile:!0,logLevel:`silent`,banner:n.s,plugins:[N(e.appPath)]},onFileBuilt:s});let p=t.Vt(u)?await Ie({appPath:e.appPath,outputDir:r,sharedDependencies:u,onFileBuilt:s}):null;await C({appPath:e.appPath,sourcePaths:l,fileFolder:t.I.BuiltFrontComponent,buildOptions:{...A(),outdir:i,tsconfig:(0,b.join)(e.appPath,`tsconfig.json`),jsx:`automatic`,sourcemap:!0,metafile:!0,logLevel:`silent`,...f===void 0?{}:{banner:f},plugins:[...k({getSharedDependenciesBuildContext:()=>p}),N(e.appPath)]},onFileBuilt:s}),await R({appPath:e.appPath,fileFolder:t.I.Source,filePaths:[...new Set([...c,...l])],collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),await R({appPath:e.appPath,fileFolder:t.I.PublicAsset,filePaths:e.filePaths.publicAssets,collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),await R({appPath:e.appPath,fileFolder:t.I.Dependencies,filePaths:[`package.json`,`yarn.lock`].filter(t=>o.a((0,b.join)(e.appPath,t))),collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks});for(let t of e.generatedAssets??[])await Be({appPath:e.appPath,generatedAsset:t,outputDir:r,collectFileBuilt:s});return await ne({appPath:e.appPath,relativeOutputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),{builtFileInfos:a}},Be=async({appPath:e,generatedAsset:n,outputDir:r,collectFileBuilt:i})=>{let a=(0,b.join)(r,n.relativePath),s=(0,b.join)(e,a);await o.r((0,b.dirname)(s)),await(0,m.writeFile)(s,n.content);let c=x.default.createHash(`md5`).update(n.content).digest(`hex`);await i({fileFolder:t.I.PublicAsset,builtPath:a,sourcePath:n.relativePath,checksum:c})},R=async({appPath:e,fileFolder:t,filePaths:n,outputDir:r,dereferenceSymlinks:a=!1,collectFileBuilt:s})=>{for(let c of n){let n=(0,b.join)(e,c);if(i.r(n),!await o.i(n))continue;let l=(0,b.join)(r,c),u=(0,b.join)(e,l);await o.r((0,b.dirname)(u)),await S({sourcePath:n,destinationPath:u,dereferenceSymlinks:a});let d=await(0,m.readFile)(u);await s({fileFolder:t,builtPath:l,sourcePath:c,checksum:x.default.createHash(`md5`).update(d).digest(`hex`)})}},Ve=`data:image/png;base64,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`,He=`M6.822 14.174c0-2.435 1.996-4.411 4.456-4.411h8.574c.125 0 .241.075.293.19a.31.31 0 0 1-.056.344l-1.88 2.023c-.326.35-.787.552-1.27.552H11.3c-.738 0-1.338.594-1.338 1.325v3.336a.78.78 0 0 1-.783.777H7.61a.78.78 0 0 1-.783-.777v-3.36zM33.5 25.553c0 2.434-1.996 4.411-4.456 4.411h-3.642c-2.46 0-4.454-1.977-4.454-4.411v-6.315c0-.43.16-.842.456-1.16l2.124-2.285a.33.33 0 0 1 .355-.081.32.32 0 0 1 .205.295v9.527c0 .73.598 1.322 1.337 1.322h3.6a1.33 1.33 0 0 0 1.337-1.322V14.197c0-.73-.599-1.325-1.337-1.325H24.84c-.481 0-.938.201-1.265.547L11.088 26.856h7.503a.78.78 0 0 1 .784.778v1.552a.78.78 0 0 1-.784.778H8.481a1.655 1.655 0 0 1-1.662-1.644v-.824c0-.412.156-.809.44-1.114l13.999-15.06a4.9 4.9 0 0 1 3.594-1.56h4.189c2.46 0 4.454 1.977 4.454 4.412v11.379z`,z=1388,B=858,V=156,H=16,U=351,W=434,G=798,K=z/2,q=B/2,J=19,Y=8,X=`#b3b3b3`,Ue=V/40,We=async({logoBuffer:e,appPath:t})=>{let n=(0,g.createRequire)((0,h.join)(t,`package.json`))(`sharp`),r=`data:image/png;base64,${(await n(e).resize(V,V,{fit:`cover`,position:`centre`}).png().toBuffer()).toString(`base64`)}`,i=[`<svg xmlns="http://www.w3.org/2000/svg" width="${z}" height="${B}" viewBox="0 0 ${z} ${B}">`,`<image href="${Ve}" x="0" y="0" width="${z}" height="${B}" preserveAspectRatio="none" />`,`<defs>`,`<filter id="tileShadow" x="-40%" y="-40%" width="180%" height="180%">`,`<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0b0b0f" flood-opacity="0.14" />`,`</filter>`,`<clipPath id="leftLogoClip"><rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" /></clipPath>`,`</defs>`,`<g filter="url(#tileShadow)">`,`<rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="#ffffff" />`,`<rect x="${G}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="#000000" />`,`</g>`,`<image href="${r}" x="${W}" y="${U}" width="${V}" height="${V}" preserveAspectRatio="xMidYMid slice" clip-path="url(#leftLogoClip)" />`,`<rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="none" stroke="#000000" stroke-opacity="0.08" stroke-width="1" />`,`<g transform="translate(${G} ${U}) scale(${Ue})"><path d="${He}" fill="#ffffff" /></g>`,`<line x1="${K-J}" y1="${q-J}" x2="713" y2="448" stroke="${X}" stroke-width="${Y}" stroke-linecap="round" />`,`<line x1="${K-J}" y1="448" x2="713" y2="${q-J}" stroke="${X}" stroke-width="${Y}" stroke-linecap="round" />`,`</svg>`].join(``);return n(Buffer.from(i)).png().toBuffer()},Z=`${n.r}/cover.generated.png`,Ge=e=>e.startsWith(`http://`)||e.startsWith(`https://`),Q=async({appPath:e,manifest:n})=>{let{logo:r,galleryImages:i}=n.application;if(!t.Vt(r)||Ge(r)||(i??[]).length>0)return{manifest:n,generatedAssets:[]};let a=(0,b.join)(e,r);if(!await o.i(a))return{manifest:n,generatedAssets:[]};let s=await We({logoBuffer:await(0,m.readFile)(a),appPath:e}),c={filePath:Z,fileName:(0,b.basename)(Z),fileType:(0,b.extname)(Z).replace(/^\./,``),checksum:null},l=[...n.publicAssets.filter(e=>e.filePath!==Z),c];return{manifest:{...n,application:{...n.application,galleryImages:[Z]},publicAssets:l},generatedAssets:[{relativePath:Z,content:s}]}},Ke=({manifest:e,builtFileInfos:r,outputDir:i=n.l})=>{let a=structuredClone(e);for(let[e,{fileFolder:n,checksum:o}]of r.entries()){let s=(0,b.relative)(i,e);if(n===t.I.BuiltLogicFunction){let e=a.logicFunctions,t=e.findIndex(e=>e.builtHandlerPath===s);if(t===-1)continue;a={...a,logicFunctions:e.map((e,n)=>n===t?{...e,builtHandlerChecksum:o}:e)}}if(n===t.I.PublicAsset){let e=a.publicAssets,t=e.findIndex(e=>e.filePath===s);if(t===-1)continue;a={...a,publicAssets:e.map((e,n)=>n===t?{...e,checksum:o}:e)};continue}if(n===t.I.BuiltFrontComponent){let n=a.application.frontComponentSharedDependencies;if(t.Vt(n)&&n.builtPath===s){a={...a,application:{...a.application,frontComponentSharedDependencies:{...n,builtChecksum:o}}};continue}let i=a.frontComponents,c=i.findIndex(e=>e.builtComponentPath===s)??-1;if(c===-1)continue;let l=r.get(e);a={...a,frontComponents:i.map((e,t)=>t===c?{...e,builtComponentChecksum:o,usesSdkClient:l?.usesSdkClient??!1}:e)}}n===t.I.Dependencies&&(s===`package.json`&&(a.application.packageJsonChecksum=o),s===`yarn.lock`&&(a.application.yarnLockChecksum=o))}return a},qe=async({appPath:e,manifest:t,relativeOutputDir:r=n.l})=>{let i=b.default.join(e,r);await o.r(i);let a=b.default.join(i,`manifest.json`);return await o.c(a,t),a},Je=async({appPath:e,outputDir:t=n.l,dereferenceSymlinks:r=!1,onProgress:i,onTranslationWarning:a,signal:o,typecheck:s=c.t})=>{let u=[],d=e=>{u.push({severity:`warning`,code:`BUILD_WARNING`,message:e}),i?.(`⚠ ${e}`)};o?.throwIfAborted(),i?.(`Building manifest...`);let f=await l.r(e);if(!f.success)return{success:!1,error:{code:`MANIFEST_BUILD_FAILED`,message:f.errors.join(`
|
|
864
|
+
`)},diagnostics:f.errors.map(e=>({severity:`error`,code:`MANIFEST_BUILD_FAILED`,message:e}))};f.warnings.forEach(d),o?.throwIfAborted();let{manifest:p,generatedAssets:m}=await Q({appPath:e,manifest:f.manifest}).catch(e=>(d(`Skipped cover image generation: ${e instanceof Error?e.message:String(e)}`),{manifest:f.manifest,generatedAssets:[]}));m.length>0&&i?.(`Generated cover image from logo`);let h=await l.t({appPath:e,onWarning:e=>{a?(u.push({severity:`warning`,code:`BUILD_WARNING`,message:e}),a(e)):d(e)}});o?.throwIfAborted(),i?.(`Building application files...`);let{builtFileInfos:g}=await ze({appPath:e,manifest:p,filePaths:f.filePaths,generatedAssets:m,outputDir:t,dereferenceSymlinks:r});i?.(`Running typecheck...`);let _=await s({appPath:e,signal:o});if(u.push(..._.diagnostics),!_.success)return{..._,diagnostics:u};let v={...Ke({manifest:p,builtFileInfos:g,outputDir:t}),translations:h};return await qe({appPath:e,manifest:v,relativeOutputDir:t}),{success:!0,data:{manifest:v,builtFileInfos:g},diagnostics:u}},Ye={[t.I.BuiltLogicFunction]:`built-logic-function`,[t.I.BuiltFrontComponent]:`built-front-component`,[t.I.Source]:`source`,[t.I.Dependencies]:`dependencies`,[t.I.PublicAsset]:`public-asset`},Xe=async({appPath:e,buildId:n,filesDirectory:r,manifest:i,builtFileInfos:a,signal:o})=>{let s=[];for(let n of a.values()){o?.throwIfAborted();let i=(0,h.join)(e,n.builtPath),a=(0,h.relative)(r,i),c=Ye[n.fileFolder];if(!t.Vt(c)||(0,h.isAbsolute)(a)||a===`..`||a.startsWith(`..${h.sep}`))throw Error(`Invalid snapshot artifact: ${n.builtPath}`);let l=(0,p.createHash)(`sha256`),u=0;for await(let e of(0,_.createReadStream)(i,{signal:o}))l.update(e),u+=e.length;s.push({path:a.split(h.sep).join(`/`),sourcePath:n.sourcePath.split(h.sep).join(`/`),role:c,size:u,sha256:l.digest(`hex`)})}let c=s.sort((e,t)=>e.path<t.path?-1:+(e.path>t.path)),l=await(0,m.readFile)((0,h.join)(r,`manifest.json`)),u=(0,p.createHash)(`sha256`).update(JSON.stringify(c.map(({path:e,role:t,sha256:n})=>({path:e,role:t,sha256:n})))).update(`
|
|
865
|
+
`).update(l).digest(`hex`),d=JSON.parse(await(0,m.readFile)((0,h.join)(r,`package.json`),`utf8`));if(!(0,L.isNonEmptyString)(d.name))throw Error(`The app package.json must declare a name.`);return{buildId:n,directory:r,contentHash:u,application:{universalIdentifier:i.application.universalIdentifier,name:d.name,displayName:i.application.displayName},manifestFormat:`twenty-application`,manifest:i,files:c}},$=new Map,Ze=async({appPath:e,signal:n})=>{let i=await r.t(e);if(!i.success)return i;let o,c=[],l=async()=>{if(t.Vt(o))try{await(0,m.rm)(o,{recursive:!0,force:!0})}catch(e){c.push({severity:`warning`,code:`SNAPSHOT_CLEANUP_FAILED`,message:`Could not remove snapshot ${o}: ${e instanceof Error?e.message:String(e)}`})}};try{n?.throwIfAborted();let t=(0,p.randomUUID)(),r=(0,h.join)(e,`.twenty`,`cli`,`snapshots`);await(0,m.mkdir)(r,{recursive:!0}),o=await(0,m.mkdtemp)((0,h.join)(r,`build-`)),await(0,m.writeFile)((0,h.join)(o,`lease.json`),JSON.stringify({buildId:t,pid:process.pid,createdAt:new Date().toISOString()}),{flag:`wx`});let i=(0,h.join)(o,`files`),a=await Je({appPath:e,outputDir:(0,h.relative)(e,i),dereferenceSymlinks:!0,signal:n});if(c.push(...a.diagnostics),!a.success)return await l(),{...a,diagnostics:c};let s=await Xe({appPath:e,buildId:t,filesDirectory:i,manifest:a.data.manifest,builtFileInfos:a.data.builtFileInfos,signal:n});return n?.throwIfAborted(),$.set(t,o),{success:!0,data:s,diagnostics:c}}catch(e){return await l(),{success:!1,error:{code:n?.aborted?`CANCELLED`:e instanceof a.t?e.code:`BUILD_FAILED`,message:e instanceof Error?e.message:String(e),...s.t(e)},diagnostics:c}}},Qe=async({buildId:e})=>{let n=$.get(e);if(!t.Vt(n))return{success:!1,error:{code:`SNAPSHOT_NOT_FOUND`,message:`This CLI worker does not hold the requested snapshot.`},diagnostics:[]};try{return await(0,m.rm)(n,{recursive:!0,force:!0}),$.delete(e),{success:!0,data:null,diagnostics:[]}}catch(e){return{success:!1,error:{code:`SNAPSHOT_RELEASE_FAILED`,message:e instanceof Error?e.message:String(e)},diagnostics:[]}}},$e=async({appPath:e,signal:t})=>{try{return t.throwIfAborted(),await u.t({appPath:e}),await Ze({appPath:e,signal:t})}catch(e){return{success:!1,error:{code:t.aborted?`CANCELLED`:e instanceof a.t?e.code:`BUILD_FAILED`,message:e instanceof Error?e.message:String(e),...s.t(e)},diagnostics:[]}}finally{await(0,v.stop)()}},et=Qe;exports.buildSourceSnapshot=$e,exports.releaseSourceSnapshot=et;
|