attio 0.0.1-experimental.20240905 → 0.0.1-experimental.20240911.2
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/attio.js +1 -0
- package/client.d.ts +1 -0
- package/global.d.ts +19 -0
- package/lib/api/add-connection-definition.js +0 -1
- package/lib/api/complete-bundle-upload.js +0 -1
- package/lib/api/complete-prod-bundle-upload.js +0 -1
- package/lib/api/create-app.js +0 -1
- package/lib/api/create-dev-version.js +0 -1
- package/lib/api/create-developer-account.js +0 -1
- package/lib/api/create-version.js +0 -1
- package/lib/api/fetch-versions.js +4 -1
- package/lib/api/generate-invite-link.js +16 -0
- package/lib/api/handle-error.js +0 -1
- package/lib/api/is-app-slug-valid.js +0 -1
- package/lib/api/make-headers.js +0 -1
- package/lib/api/publish-version.js +0 -1
- package/lib/api/remove-connection-definition.js +0 -1
- package/lib/api/start-upload.js +0 -1
- package/lib/attio.js +0 -1
- package/lib/build/client/create-client-build-config.js +0 -1
- package/lib/build/client/generate-client-entry.js +0 -1
- package/lib/build/get-module-hash.js +0 -1
- package/lib/build/proxy-server-modules-plugin.js +0 -1
- package/lib/build/server/create-server-build-config.js +0 -1
- package/lib/build/server/generate-server-entry.js +0 -1
- package/lib/build.js +0 -1
- package/lib/client/components/action.d.ts +10 -0
- package/lib/client/components/combobox.d.ts +9 -0
- package/lib/client/components/dialog.d.ts +10 -0
- package/lib/client/components/index.d.ts +6 -0
- package/lib/client/components/multistep.d.ts +17 -0
- package/lib/client/components/section.d.ts +8 -0
- package/lib/client/components/text-block.d.ts +8 -0
- package/lib/client/forms/array.d.ts +12 -0
- package/lib/client/forms/build.d.ts +48 -0
- package/lib/client/forms/index.d.ts +4 -0
- package/lib/client/forms/number.d.ts +14 -0
- package/lib/client/forms/path.d.ts +34 -0
- package/lib/client/forms/string.d.ts +15 -0
- package/lib/client/hooks/index.d.ts +4 -0
- package/lib/client/hooks/use-graphql.d.ts +4 -0
- package/lib/client/hooks/use-loader.d.ts +13 -0
- package/lib/client/hooks/use-query.d.ts +5 -0
- package/lib/client/hooks/use-record.d.ts +9 -0
- package/lib/client/index.d.ts +8 -0
- package/lib/client/object-slug.d.ts +3 -0
- package/lib/client/util/prettify.d.ts +3 -0
- package/lib/commands/build.js +0 -1
- package/lib/commands/connection/add.js +0 -1
- package/lib/commands/connection/index.js +0 -1
- package/lib/commands/connection/remove.js +0 -1
- package/lib/commands/create.js +0 -1
- package/lib/commands/dev.js +0 -1
- package/lib/commands/version/create.js +1 -2
- package/lib/commands/version/index.js +0 -1
- package/lib/commands/version/invite.js +92 -0
- package/lib/commands/version/list.js +0 -1
- package/lib/commands/version/publish.js +8 -6
- package/lib/components/BuildError.js +0 -1
- package/lib/components/BuildLog.js +0 -1
- package/lib/components/Disclaimer.js +0 -1
- package/lib/components/InitialInstructions.js +0 -1
- package/lib/components/Logo.js +0 -1
- package/lib/components/MultiSelect.js +0 -1
- package/lib/components/ScrollBox.js +0 -1
- package/lib/components/ScrollBox.store.js +0 -1
- package/lib/components/ScrollBox.util.js +0 -1
- package/lib/components/Select.js +0 -1
- package/lib/components/Table.js +0 -1
- package/lib/components/TypeScriptErrors.js +0 -1
- package/lib/env.js +0 -1
- package/lib/hooks/useFullScreen.js +0 -1
- package/lib/hooks/useTerminalTitle.js +0 -1
- package/lib/machines/actors.js +0 -1
- package/lib/machines/add-connection-machine.js +0 -1
- package/lib/machines/build-machine.js +0 -1
- package/lib/machines/build-orchestrator.js +0 -1
- package/lib/machines/create-machine.js +0 -1
- package/lib/machines/create-version-machine.js +0 -1
- package/lib/machines/dev-machine.js +0 -1
- package/lib/machines/generate-invite-machine.js +200 -0
- package/lib/machines/js-machine.js +0 -1
- package/lib/machines/list-versions-machine.js +0 -1
- package/lib/machines/publish-version-machine.js +0 -1
- package/lib/machines/remove-connection-machine.js +0 -1
- package/lib/machines/ts-machine.js +0 -1
- package/lib/schema.js +0 -1
- package/lib/server/index.d.ts +1 -0
- package/lib/templates/javascript/package.json +0 -1
- package/lib/templates/javascript/src/app/record/counter-action.jsx +1 -1
- package/lib/templates/typescript/package.json +0 -1
- package/lib/templates/typescript/src/app/record/counter-action.tsx +1 -1
- package/lib/templates/typescript/tsconfig.json +2 -2
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/util/app-config.js +0 -1
- package/lib/util/copy-with-replace.js +0 -1
- package/lib/util/create-directory.js +0 -1
- package/lib/util/load-developer-config.js +0 -1
- package/lib/util/load-env.js +0 -1
- package/lib/util/slugify-extension.js +0 -1
- package/lib/util/typescript.js +0 -1
- package/lib/util/validate-slug.js +0 -1
- package/package.json +9 -63
- package/server.d.ts +1 -0
- package/lib/api/add-connection-definition.d.ts +0 -26
- package/lib/api/add-connection-definition.d.ts.map +0 -1
- package/lib/api/add-connection-definition.js.map +0 -1
- package/lib/api/complete-bundle-upload.d.ts +0 -8
- package/lib/api/complete-bundle-upload.d.ts.map +0 -1
- package/lib/api/complete-bundle-upload.js.map +0 -1
- package/lib/api/complete-prod-bundle-upload.d.ts +0 -9
- package/lib/api/complete-prod-bundle-upload.d.ts.map +0 -1
- package/lib/api/complete-prod-bundle-upload.js.map +0 -1
- package/lib/api/create-app.d.ts +0 -14
- package/lib/api/create-app.d.ts.map +0 -1
- package/lib/api/create-app.js.map +0 -1
- package/lib/api/create-dev-version.d.ts +0 -28
- package/lib/api/create-dev-version.d.ts.map +0 -1
- package/lib/api/create-dev-version.js.map +0 -1
- package/lib/api/create-developer-account.d.ts +0 -12
- package/lib/api/create-developer-account.d.ts.map +0 -1
- package/lib/api/create-developer-account.js.map +0 -1
- package/lib/api/create-version.d.ts +0 -33
- package/lib/api/create-version.d.ts.map +0 -1
- package/lib/api/create-version.js.map +0 -1
- package/lib/api/fetch-versions.d.ts +0 -42
- package/lib/api/fetch-versions.d.ts.map +0 -1
- package/lib/api/fetch-versions.js.map +0 -1
- package/lib/api/handle-error.d.ts +0 -3
- package/lib/api/handle-error.d.ts.map +0 -1
- package/lib/api/handle-error.js.map +0 -1
- package/lib/api/is-app-slug-valid.d.ts +0 -6
- package/lib/api/is-app-slug-valid.d.ts.map +0 -1
- package/lib/api/is-app-slug-valid.js.map +0 -1
- package/lib/api/make-headers.d.ts +0 -6
- package/lib/api/make-headers.d.ts.map +0 -1
- package/lib/api/make-headers.js.map +0 -1
- package/lib/api/publish-version.d.ts +0 -18
- package/lib/api/publish-version.d.ts.map +0 -1
- package/lib/api/publish-version.js.map +0 -1
- package/lib/api/remove-connection-definition.d.ts +0 -6
- package/lib/api/remove-connection-definition.d.ts.map +0 -1
- package/lib/api/remove-connection-definition.js.map +0 -1
- package/lib/api/start-upload.d.ts +0 -12
- package/lib/api/start-upload.d.ts.map +0 -1
- package/lib/api/start-upload.js.map +0 -1
- package/lib/attio.d.ts +0 -3
- package/lib/attio.d.ts.map +0 -1
- package/lib/attio.js.map +0 -1
- package/lib/build/client/create-client-build-config.d.ts +0 -6
- package/lib/build/client/create-client-build-config.d.ts.map +0 -1
- package/lib/build/client/create-client-build-config.js.map +0 -1
- package/lib/build/client/generate-client-entry.d.ts +0 -6
- package/lib/build/client/generate-client-entry.d.ts.map +0 -1
- package/lib/build/client/generate-client-entry.js.map +0 -1
- package/lib/build/get-module-hash.d.ts +0 -2
- package/lib/build/get-module-hash.d.ts.map +0 -1
- package/lib/build/get-module-hash.js.map +0 -1
- package/lib/build/proxy-server-modules-plugin.d.ts +0 -5
- package/lib/build/proxy-server-modules-plugin.d.ts.map +0 -1
- package/lib/build/proxy-server-modules-plugin.js.map +0 -1
- package/lib/build/server/create-server-build-config.d.ts +0 -3
- package/lib/build/server/create-server-build-config.d.ts.map +0 -1
- package/lib/build/server/create-server-build-config.js.map +0 -1
- package/lib/build/server/generate-server-entry.d.ts +0 -5
- package/lib/build/server/generate-server-entry.d.ts.map +0 -1
- package/lib/build/server/generate-server-entry.js.map +0 -1
- package/lib/build.d.ts +0 -156
- package/lib/build.d.ts.map +0 -1
- package/lib/build.js.map +0 -1
- package/lib/commands/build.d.ts +0 -4
- package/lib/commands/build.d.ts.map +0 -1
- package/lib/commands/build.js.map +0 -1
- package/lib/commands/connection/add.d.ts +0 -37
- package/lib/commands/connection/add.d.ts.map +0 -1
- package/lib/commands/connection/add.js.map +0 -1
- package/lib/commands/connection/index.d.ts +0 -2
- package/lib/commands/connection/index.d.ts.map +0 -1
- package/lib/commands/connection/index.js.map +0 -1
- package/lib/commands/connection/remove.d.ts +0 -16
- package/lib/commands/connection/remove.d.ts.map +0 -1
- package/lib/commands/connection/remove.js.map +0 -1
- package/lib/commands/create.d.ts +0 -31
- package/lib/commands/create.d.ts.map +0 -1
- package/lib/commands/create.js.map +0 -1
- package/lib/commands/dev.d.ts +0 -16
- package/lib/commands/dev.d.ts.map +0 -1
- package/lib/commands/dev.js.map +0 -1
- package/lib/commands/version/create.d.ts +0 -16
- package/lib/commands/version/create.d.ts.map +0 -1
- package/lib/commands/version/create.js.map +0 -1
- package/lib/commands/version/index.d.ts +0 -2
- package/lib/commands/version/index.d.ts.map +0 -1
- package/lib/commands/version/index.js.map +0 -1
- package/lib/commands/version/list.d.ts +0 -17
- package/lib/commands/version/list.d.ts.map +0 -1
- package/lib/commands/version/list.js.map +0 -1
- package/lib/commands/version/publish.d.ts +0 -19
- package/lib/commands/version/publish.d.ts.map +0 -1
- package/lib/commands/version/publish.js.map +0 -1
- package/lib/components/BuildError.d.ts +0 -4
- package/lib/components/BuildError.d.ts.map +0 -1
- package/lib/components/BuildError.js.map +0 -1
- package/lib/components/BuildLog.d.ts +0 -7
- package/lib/components/BuildLog.d.ts.map +0 -1
- package/lib/components/BuildLog.js.map +0 -1
- package/lib/components/Disclaimer.d.ts +0 -3
- package/lib/components/Disclaimer.d.ts.map +0 -1
- package/lib/components/Disclaimer.js.map +0 -1
- package/lib/components/InitialInstructions.d.ts +0 -5
- package/lib/components/InitialInstructions.d.ts.map +0 -1
- package/lib/components/InitialInstructions.js.map +0 -1
- package/lib/components/Logo.d.ts +0 -3
- package/lib/components/Logo.d.ts.map +0 -1
- package/lib/components/Logo.js.map +0 -1
- package/lib/components/MultiSelect.d.ts +0 -13
- package/lib/components/MultiSelect.d.ts.map +0 -1
- package/lib/components/MultiSelect.js.map +0 -1
- package/lib/components/ScrollBox.d.ts +0 -4
- package/lib/components/ScrollBox.d.ts.map +0 -1
- package/lib/components/ScrollBox.js.map +0 -1
- package/lib/components/ScrollBox.store.d.ts +0 -15
- package/lib/components/ScrollBox.store.d.ts.map +0 -1
- package/lib/components/ScrollBox.store.js.map +0 -1
- package/lib/components/ScrollBox.util.d.ts +0 -4
- package/lib/components/ScrollBox.util.d.ts.map +0 -1
- package/lib/components/ScrollBox.util.js.map +0 -1
- package/lib/components/Select.d.ts +0 -13
- package/lib/components/Select.d.ts.map +0 -1
- package/lib/components/Select.js.map +0 -1
- package/lib/components/Table.d.ts +0 -5
- package/lib/components/Table.d.ts.map +0 -1
- package/lib/components/Table.js.map +0 -1
- package/lib/components/TypeScriptErrors.d.ts +0 -4
- package/lib/components/TypeScriptErrors.d.ts.map +0 -1
- package/lib/components/TypeScriptErrors.js.map +0 -1
- package/lib/env.d.ts +0 -5
- package/lib/env.d.ts.map +0 -1
- package/lib/env.js.map +0 -1
- package/lib/hooks/useFullScreen.d.ts +0 -3
- package/lib/hooks/useFullScreen.d.ts.map +0 -1
- package/lib/hooks/useFullScreen.js.map +0 -1
- package/lib/hooks/useTerminalTitle.d.ts +0 -2
- package/lib/hooks/useTerminalTitle.d.ts.map +0 -1
- package/lib/hooks/useTerminalTitle.js.map +0 -1
- package/lib/machines/actors.d.ts +0 -3
- package/lib/machines/actors.d.ts.map +0 -1
- package/lib/machines/actors.js.map +0 -1
- package/lib/machines/add-connection-machine.d.ts +0 -290
- package/lib/machines/add-connection-machine.d.ts.map +0 -1
- package/lib/machines/add-connection-machine.js.map +0 -1
- package/lib/machines/build-machine.d.ts +0 -673
- package/lib/machines/build-machine.d.ts.map +0 -1
- package/lib/machines/build-machine.js.map +0 -1
- package/lib/machines/build-orchestrator.d.ts +0 -16
- package/lib/machines/build-orchestrator.d.ts.map +0 -1
- package/lib/machines/build-orchestrator.js.map +0 -1
- package/lib/machines/create-machine.d.ts +0 -240
- package/lib/machines/create-machine.d.ts.map +0 -1
- package/lib/machines/create-machine.js.map +0 -1
- package/lib/machines/create-version-machine.d.ts +0 -872
- package/lib/machines/create-version-machine.d.ts.map +0 -1
- package/lib/machines/create-version-machine.js.map +0 -1
- package/lib/machines/dev-machine.d.ts +0 -971
- package/lib/machines/dev-machine.d.ts.map +0 -1
- package/lib/machines/dev-machine.js.map +0 -1
- package/lib/machines/js-machine.d.ts +0 -142
- package/lib/machines/js-machine.d.ts.map +0 -1
- package/lib/machines/js-machine.js.map +0 -1
- package/lib/machines/list-versions-machine.d.ts +0 -119
- package/lib/machines/list-versions-machine.d.ts.map +0 -1
- package/lib/machines/list-versions-machine.js.map +0 -1
- package/lib/machines/publish-version-machine.d.ts +0 -171
- package/lib/machines/publish-version-machine.d.ts.map +0 -1
- package/lib/machines/publish-version-machine.js.map +0 -1
- package/lib/machines/remove-connection-machine.d.ts +0 -103
- package/lib/machines/remove-connection-machine.d.ts.map +0 -1
- package/lib/machines/remove-connection-machine.js.map +0 -1
- package/lib/machines/ts-machine.d.ts +0 -81
- package/lib/machines/ts-machine.d.ts.map +0 -1
- package/lib/machines/ts-machine.js.map +0 -1
- package/lib/schema.d.ts +0 -46
- package/lib/schema.d.ts.map +0 -1
- package/lib/schema.js.map +0 -1
- package/lib/util/app-config.d.ts +0 -11
- package/lib/util/app-config.d.ts.map +0 -1
- package/lib/util/app-config.js.map +0 -1
- package/lib/util/copy-with-replace.d.ts +0 -2
- package/lib/util/copy-with-replace.d.ts.map +0 -1
- package/lib/util/copy-with-replace.js.map +0 -1
- package/lib/util/create-directory.d.ts +0 -2
- package/lib/util/create-directory.d.ts.map +0 -1
- package/lib/util/create-directory.js.map +0 -1
- package/lib/util/load-developer-config.d.ts +0 -41
- package/lib/util/load-developer-config.d.ts.map +0 -1
- package/lib/util/load-developer-config.js.map +0 -1
- package/lib/util/load-env.d.ts +0 -3
- package/lib/util/load-env.d.ts.map +0 -1
- package/lib/util/load-env.js.map +0 -1
- package/lib/util/slugify-extension.d.ts +0 -2
- package/lib/util/slugify-extension.d.ts.map +0 -1
- package/lib/util/slugify-extension.js.map +0 -1
- package/lib/util/typescript.d.ts +0 -41
- package/lib/util/typescript.d.ts.map +0 -1
- package/lib/util/typescript.js.map +0 -1
- package/lib/util/validate-slug.d.ts +0 -3
- package/lib/util/validate-slug.d.ts.map +0 -1
- package/lib/util/validate-slug.js.map +0 -1
package/attio.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("./lib/attio.js")
|
package/client.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib/client"
|
package/global.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export {}
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
// Ignoring React because this is consumed as a peerDependency in extensions
|
|
5
|
+
|
|
6
|
+
function setTimeout(fn: () => void, ms: number): unknown
|
|
7
|
+
|
|
8
|
+
function clearTimeout(timeout: ReturnType<typeof setTimeout>): void
|
|
9
|
+
|
|
10
|
+
function setInterval(fn: () => void, ms: number): unknown
|
|
11
|
+
|
|
12
|
+
function clearInterval(interval: ReturnType<typeof setInterval>): void
|
|
13
|
+
|
|
14
|
+
function queueMicrotask(callback: () => void): void
|
|
15
|
+
|
|
16
|
+
const window: {
|
|
17
|
+
open(url?: string, target?: string, features?: string): void
|
|
18
|
+
}
|
|
19
|
+
}
|
package/lib/api/create-app.js
CHANGED
|
@@ -43,4 +43,7 @@ export async function fetchPublishableVersions({ token, devSlug, appId, }) {
|
|
|
43
43
|
const versions = await fetchVersions({ token, devSlug, appId });
|
|
44
44
|
return onlyPublishableVersions(versions);
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
export async function fetchUnpublishedVersions({ token, devSlug, appId, }) {
|
|
47
|
+
const versions = await fetchVersions({ token, devSlug, appId });
|
|
48
|
+
return versions.filter((v) => !v.is_published);
|
|
49
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { API } from "../env.js";
|
|
3
|
+
import { handleError } from "./handle-error.js";
|
|
4
|
+
import { makeHeaders } from "./make-headers.js";
|
|
5
|
+
const generateInviteLinkSchema = z.object({
|
|
6
|
+
invite_link: z.string(),
|
|
7
|
+
});
|
|
8
|
+
export async function generateInviteLink({ token, devSlug, appId, major, minor, }) {
|
|
9
|
+
const response = await fetch(`${API}/developer-portal/accounts/${devSlug}/apps/${appId}/prod-versions/${major}/${minor}/invite-link`, {
|
|
10
|
+
method: "GET",
|
|
11
|
+
headers: makeHeaders(token),
|
|
12
|
+
});
|
|
13
|
+
await handleError(response);
|
|
14
|
+
const json = await response.json();
|
|
15
|
+
return generateInviteLinkSchema.parse(json).invite_link;
|
|
16
|
+
}
|
package/lib/api/handle-error.js
CHANGED
package/lib/api/make-headers.js
CHANGED
package/lib/api/start-upload.js
CHANGED
package/lib/attio.js
CHANGED
package/lib/build.js
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ComboboxOption {
|
|
2
|
+
value: string;
|
|
3
|
+
label: string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ComboboxOptionsProvider {
|
|
7
|
+
getOption: (value: string) => Promise<Omit<ComboboxOption, "value">>;
|
|
8
|
+
search: (query: string) => Promise<Array<ComboboxOption>>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { Action } from "./action.js";
|
|
2
|
+
export { ComboboxOption, ComboboxOptionsProvider } from "./combobox.js";
|
|
3
|
+
export { Dialog } from "./dialog.js";
|
|
4
|
+
export { Multistep, Step } from "./multistep.js";
|
|
5
|
+
export { Section } from "./section.js";
|
|
6
|
+
export { TextBlock } from "./text-block.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface Step {
|
|
3
|
+
title: string;
|
|
4
|
+
content: React.ReactNode;
|
|
5
|
+
isValid?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A multi-step component
|
|
9
|
+
*/
|
|
10
|
+
export declare function Multistep(props: {
|
|
11
|
+
initialStep?: number;
|
|
12
|
+
steps: ReadonlyArray<Step>;
|
|
13
|
+
onDone: () => void;
|
|
14
|
+
nextLabel?: string;
|
|
15
|
+
previousLabel?: string;
|
|
16
|
+
doneLabel?: string;
|
|
17
|
+
}): React.JSX.Element;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ComboboxOption, ComboboxOptionsProvider } from "../components";
|
|
2
|
+
import { ValueOf, PathTo } from "./path";
|
|
3
|
+
export interface Form<TSchema> {
|
|
4
|
+
Provider: (props: {
|
|
5
|
+
initialValues: ValueOf<TSchema>;
|
|
6
|
+
onSubmit: (data: ValueOf<TSchema>) => void;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}) => JSX.Element;
|
|
9
|
+
WithSubmit: (props: {
|
|
10
|
+
children: (submit: () => void) => React.ReactNode;
|
|
11
|
+
}) => JSX.Element;
|
|
12
|
+
WithValues: (props: {
|
|
13
|
+
children: (values: ValueOf<TSchema>) => React.ReactNode;
|
|
14
|
+
}) => JSX.Element;
|
|
15
|
+
Input: React.FC<{
|
|
16
|
+
label: string;
|
|
17
|
+
data: PathTo<TSchema, "string" | "number">;
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
Combobox: React.FC<{
|
|
22
|
+
label: string;
|
|
23
|
+
data: PathTo<TSchema, "string">;
|
|
24
|
+
options: Array<ComboboxOption> | ComboboxOptionsProvider;
|
|
25
|
+
placeholder?: string;
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
Collection: <TPath extends PathTo<TSchema, "array">>(props: {
|
|
29
|
+
label: string;
|
|
30
|
+
data: TPath;
|
|
31
|
+
children: (args: {
|
|
32
|
+
path: `${TPath}.${number}`;
|
|
33
|
+
index: number;
|
|
34
|
+
}) => React.ReactNode;
|
|
35
|
+
}) => React.ReactElement;
|
|
36
|
+
CollectionItem: React.FC<{
|
|
37
|
+
label: string;
|
|
38
|
+
children: React.ReactNode;
|
|
39
|
+
}>;
|
|
40
|
+
SubmitButton: React.FC<{
|
|
41
|
+
label: string;
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Build a new form from a schema.
|
|
47
|
+
*/
|
|
48
|
+
export declare function build<TSchema>(schema: TSchema): Form<TSchema>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A number form value.
|
|
3
|
+
*/
|
|
4
|
+
export interface FormNumber {
|
|
5
|
+
type: "number";
|
|
6
|
+
isOptional: boolean;
|
|
7
|
+
default(value: number): FormNumber;
|
|
8
|
+
max(max: number): FormNumber;
|
|
9
|
+
min(min: number): FormNumber;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a new number form value.
|
|
13
|
+
*/
|
|
14
|
+
export declare function number(): FormNumber;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Prettify } from "../util/prettify";
|
|
2
|
+
import { FormArray } from "./array";
|
|
3
|
+
import { FormNumber } from "./number";
|
|
4
|
+
import { FormString } from "./string";
|
|
5
|
+
type Assert<TCat, TAnimal> = TCat extends TAnimal ? TCat : never;
|
|
6
|
+
type Join<A extends string | number | null, B extends string | number> = A extends null ? B : `${A}.${B}`;
|
|
7
|
+
export type ValueType = "string" | "number" | "array";
|
|
8
|
+
export type SchemaNode = FormString | FormNumber | FormArray<any> | {
|
|
9
|
+
type: "object";
|
|
10
|
+
};
|
|
11
|
+
type PathWithTypeRecursive<TState, TRoot extends string | number | null> = TState extends FormString ? {
|
|
12
|
+
path: TRoot;
|
|
13
|
+
type: "string";
|
|
14
|
+
} : TState extends FormNumber ? {
|
|
15
|
+
path: TRoot;
|
|
16
|
+
type: "number";
|
|
17
|
+
} : TState extends FormArray<infer TElement> ? {
|
|
18
|
+
path: TRoot;
|
|
19
|
+
type: "array";
|
|
20
|
+
} | PathWithTypeRecursive<TElement, Join<TRoot, number>> : {
|
|
21
|
+
[K in keyof TState]: K extends string ? PathWithTypeRecursive<TState[K], Join<TRoot, K>> : never;
|
|
22
|
+
}[keyof TState];
|
|
23
|
+
type PathWithType<TState> = Assert<Prettify<PathWithTypeRecursive<TState, null>>, {
|
|
24
|
+
path: string;
|
|
25
|
+
type: ValueType;
|
|
26
|
+
}>;
|
|
27
|
+
export type Path<TState> = PathWithType<TState>["path"];
|
|
28
|
+
export type PathTo<TState, TType extends ValueType> = Extract<PathWithType<TState>, {
|
|
29
|
+
type: TType;
|
|
30
|
+
}>["path"];
|
|
31
|
+
export type ValueOf<TState> = TState extends FormString ? string : TState extends FormNumber ? number : TState extends FormArray<infer TElement> ? Array<ValueOf<TElement>> : {
|
|
32
|
+
[K in keyof TState]: K extends string ? ValueOf<TState[K]> : never;
|
|
33
|
+
};
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A string form value.
|
|
3
|
+
*/
|
|
4
|
+
export interface FormString {
|
|
5
|
+
type: "string";
|
|
6
|
+
isMultiline: boolean;
|
|
7
|
+
isOptional: boolean;
|
|
8
|
+
default(value: string): FormString;
|
|
9
|
+
multiline(): FormString;
|
|
10
|
+
optional(): FormString;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create a new string form value.
|
|
14
|
+
*/
|
|
15
|
+
export declare function string(): FormString;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An async function that loads data.
|
|
3
|
+
*/
|
|
4
|
+
export type Loader<Input extends Array<any>, Output> = (...args: Input) => Promise<Output>;
|
|
5
|
+
/**
|
|
6
|
+
* A hook that returns the result of calling a loader.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useLoader<Input extends Array<any>, Output>(
|
|
9
|
+
/** A unique name for this function for caching */
|
|
10
|
+
name: string, loader: Loader<Input, Output>, ...args: Input): {
|
|
11
|
+
value: Output;
|
|
12
|
+
invalidate: () => void;
|
|
13
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./hooks/index.js";
|
|
2
|
+
export * from "./components/index.js";
|
|
3
|
+
export * as Forms from "./forms/index.js";
|
|
4
|
+
export { FormArray } from "./forms/array.js";
|
|
5
|
+
export { FormNumber } from "./forms/number.js";
|
|
6
|
+
export { FormString } from "./forms/string.js";
|
|
7
|
+
export * from "./forms/path.js";
|
|
8
|
+
export { Form } from "./forms/build.js";
|
package/lib/commands/build.js
CHANGED
|
@@ -113,4 +113,3 @@ export default function AddConnection({ options: { type: connectionType, audienc
|
|
|
113
113
|
snapshot.context.error && (React.createElement(Box, { marginTop: 1 },
|
|
114
114
|
React.createElement(Text, { color: "red" }, snapshot.context.error))))));
|
|
115
115
|
}
|
|
116
|
-
//# sourceMappingURL=add.js.map
|
package/lib/commands/create.js
CHANGED
package/lib/commands/dev.js
CHANGED
|
@@ -8,7 +8,7 @@ import { renderBuildErrors } from "../../components/BuildError.js";
|
|
|
8
8
|
import { InitialInstructions } from "../../components/InitialInstructions.js";
|
|
9
9
|
import { Logo } from "../../components/Logo.js";
|
|
10
10
|
import { createVersionMachine } from "../../machines/create-version-machine.js";
|
|
11
|
-
export const description = "Create a new production
|
|
11
|
+
export const description = "Create a new unpublished production version of your Attio app";
|
|
12
12
|
export const options = z.object({
|
|
13
13
|
dev: z
|
|
14
14
|
.boolean()
|
|
@@ -69,4 +69,3 @@ export default function CreateVersion({ options: { dev } }) {
|
|
|
69
69
|
snapshot.context.error && (React.createElement(Box, { marginTop: 1 },
|
|
70
70
|
React.createElement(Text, { color: "red" }, snapshot.context.error))))));
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { useMachine } from "@xstate/react";
|
|
2
|
+
import { Box, Text, useStdout } from "ink";
|
|
3
|
+
import Spinner from "ink-spinner";
|
|
4
|
+
import { argument, option } from "pastel";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { InitialInstructions } from "../../components/InitialInstructions.js";
|
|
8
|
+
import { Logo } from "../../components/Logo.js";
|
|
9
|
+
import { Select } from "../../components/Select.js";
|
|
10
|
+
import { generateInviteMachine } from "../../machines/generate-invite-machine.js";
|
|
11
|
+
export const description = "Generates an invite link to an unpublished production version of your Attio app";
|
|
12
|
+
export const args = z.tuple([
|
|
13
|
+
z
|
|
14
|
+
.string()
|
|
15
|
+
.regex(/^\d+\.\d+$/, 'Version must be in the format "major.minor" (e.g., "1.0")')
|
|
16
|
+
.optional()
|
|
17
|
+
.describe(argument({
|
|
18
|
+
name: "version",
|
|
19
|
+
description: `The version to invite someone to (e.g: "1.0"). If you don't specify a version, you will be prompted to choose.`,
|
|
20
|
+
})),
|
|
21
|
+
]);
|
|
22
|
+
export const options = z.object({
|
|
23
|
+
dev: z
|
|
24
|
+
.boolean()
|
|
25
|
+
.default(false)
|
|
26
|
+
.describe(option({ description: "Run in development mode (additional debugging info)" })),
|
|
27
|
+
});
|
|
28
|
+
export default function GenerateInvite({ args: [version = ""], options: { dev } }) {
|
|
29
|
+
const [snapshot, send] = useMachine(generateInviteMachine, {
|
|
30
|
+
input: {
|
|
31
|
+
major: version ? Number(version.split(".")[0]) : undefined,
|
|
32
|
+
minor: version ? Number(version.split(".")[1]) : undefined,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
const { major, minor } = snapshot.context;
|
|
36
|
+
const stdout = useStdout();
|
|
37
|
+
React.useEffect(() => {
|
|
38
|
+
if (version) {
|
|
39
|
+
if (snapshot.matches("Error")) {
|
|
40
|
+
stdout.write(snapshot.context.error ?? "Unknown error");
|
|
41
|
+
}
|
|
42
|
+
else if (snapshot.matches("No unpublished versions")) {
|
|
43
|
+
stdout.write("No unpublished versions found.");
|
|
44
|
+
}
|
|
45
|
+
else if (snapshot.matches("Display Invite Link") && snapshot.context.inviteLink) {
|
|
46
|
+
stdout.write(snapshot.context.inviteLink);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}, [version, snapshot, stdout]);
|
|
50
|
+
if (version)
|
|
51
|
+
return null;
|
|
52
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
53
|
+
dev && (React.createElement(Box, null,
|
|
54
|
+
React.createElement(Text, null, JSON.stringify(snapshot.value, null, 2)))),
|
|
55
|
+
React.createElement(Logo, null),
|
|
56
|
+
React.createElement(Box, { flexDirection: "column" },
|
|
57
|
+
snapshot.matches("Show config instructions") && (React.createElement(InitialInstructions, { reason: snapshot.context.configError })),
|
|
58
|
+
snapshot.matches("Ask for version") && (React.createElement(Box, { flexDirection: "column" },
|
|
59
|
+
React.createElement(Box, null,
|
|
60
|
+
React.createElement(Text, null, "Select an unpublished version to invite someone to:")),
|
|
61
|
+
React.createElement(Box, null,
|
|
62
|
+
React.createElement(Select, { items: snapshot.context.versions.map((version) => ({
|
|
63
|
+
label: `${version.major}.${version.minor}`,
|
|
64
|
+
value: version,
|
|
65
|
+
})), onSelect: (version) => send({ type: "Select Version", version }) })))),
|
|
66
|
+
snapshot.matches("No unpublished versions") && (React.createElement(Box, null,
|
|
67
|
+
React.createElement(Text, null, "No unpublished versions found."))),
|
|
68
|
+
snapshot.matches("Generating Invite Link") && (React.createElement(Box, null,
|
|
69
|
+
React.createElement(Text, null,
|
|
70
|
+
"\u231B\uFE0F Generating invite link for version ",
|
|
71
|
+
major,
|
|
72
|
+
".",
|
|
73
|
+
minor,
|
|
74
|
+
"...",
|
|
75
|
+
" ",
|
|
76
|
+
React.createElement(Text, { color: "green" },
|
|
77
|
+
React.createElement(Spinner, { type: "dots" }))))),
|
|
78
|
+
snapshot.matches("Display Invite Link") && (React.createElement(React.Fragment, null,
|
|
79
|
+
React.createElement(Box, null,
|
|
80
|
+
React.createElement(Text, { color: "green" }, "SUCCESS!! \uD83C\uDF89"),
|
|
81
|
+
React.createElement(Text, null,
|
|
82
|
+
" ",
|
|
83
|
+
"Invite link for version ",
|
|
84
|
+
major,
|
|
85
|
+
".",
|
|
86
|
+
minor,
|
|
87
|
+
" successfully generated. It will expire in 24 hours.")),
|
|
88
|
+
React.createElement(Box, { marginTop: 1 },
|
|
89
|
+
React.createElement(Text, { color: "blue" }, snapshot.context.inviteLink)))),
|
|
90
|
+
snapshot.context.error && (React.createElement(Box, { marginTop: 1 },
|
|
91
|
+
React.createElement(Text, { color: "red" }, snapshot.context.error))))));
|
|
92
|
+
}
|