martmull-app-to-remove 0.1.3 → 0.1.4
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/manifest.json +19 -12
- package/package.json +1 -1
- package/src/front-components/hello-world.mjs +10 -10
- package/src/logic-functions/create-hello-world-company.mjs +88 -88
- package/src/logic-functions/hello-world.mjs +87 -87
- package/src/logic-functions/post-install.mjs +91 -88
- package/src/logic-functions/post-install.mjs.map +2 -2
- package/src/logic-functions/pre-install.mjs +87 -87
- package/public/marketplace/icon.jpg +0 -0
- package/public/marketplace/logo.png +0 -0
- package/public/marketplace/screenshots/53401261f1f98a236d218bd81d38eaed496e0857.jpg +0 -0
- package/public/marketplace/screenshots/bf551525a1d764057a874905e06ff3e0cf347c91.jpg +0 -0
package/manifest.json
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
"universalIdentifier": "c76bc4ff-bac4-4fee-9c33-877b9aea05aa",
|
|
4
4
|
"displayName": "Toto",
|
|
5
5
|
"description": "Testing application developped by martmull",
|
|
6
|
-
"aboutDescription": "
|
|
6
|
+
"aboutDescription": "## Documentation\n\nSee Twenty application documentation https://docs.twenty.com/developers/extend/capabilities/apps\n\n## Prerequisites\n\n- Node.js 24+ (recommended) and Yarn 4\n- Docker (for the local Twenty dev server)\n\n## Quick start\n\n```bash\n# Scaffold a new app — the CLI will offer to start a local Twenty server\nnpx create-twenty-app@latest my-twenty-app\ncd my-twenty-app\n\n# The scaffolder can automatically:\n# 1. Start a local Twenty server (Docker)\n# 2. Open the browser to log in (tim@apple.dev / tim@apple.dev)\n# 3. Authenticate your app via OAuth\n\n# Or do it manually:\nyarn twenty server start # Start local Twenty server\nyarn twenty remote add --local # Authenticate via OAuth\n\n# Start dev mode: watches, builds, and syncs local changes to your workspace\n# (also auto-generates typed CoreApiClient — MetadataApiClient ships pre-built — both available via `twenty-client-sdk`)\nyarn twenty dev\n\n# Watch your application's function logs\nyarn twenty logs\n\n# Execute a function with a JSON payload\nyarn twenty exec -n my-function -p '{\"key\": \"value\"}'\n\n# Execute the pre-install function\nyarn twenty exec --preInstall\n\n# Execute the post-install function\nyarn twenty exec --postInstall\n\n# Build the app for distribution\nyarn twenty build\n\n# Publish the app to npm or directly to a Twenty server\nyarn twenty publish\n\n# Uninstall the application from the current workspace\nyarn twenty uninstall\n```\n\n## Scaffolding modes\n\nControl which example files are included when creating a new app:\n\n| Flag | Behavior |\n| ------------------ | ----------------------------------------------------------------------- |\n| `-e, --exhaustive` | **(default)** Creates all example files |\n| `-m, --minimal` | Creates only core files (`application-config.ts` and `default-role.ts`) |\n\n```bash\n# Default: all examples included\nnpx create-twenty-app@latest my-app\n\n# Minimal: only core files\nnpx create-twenty-app@latest my-app -m\n```\n\n## What gets scaffolded\n\n**Core files (always created):**\n\n- `application-config.ts` — Application metadata configuration\n- `roles/default-role.ts` — Default role for logic functions\n- `logic-functions/pre-install.ts` — Pre-install logic function (runs before app installation)\n- `logic-functions/post-install.ts` — Post-install logic function (runs after app installation)\n- TypeScript configuration, Oxlint, package.json, .gitignore\n- A prewired `twenty` script that delegates to the `twenty` CLI from twenty-sdk\n\n**Example files (controlled by scaffolding mode):**\n\n- `objects/example-object.ts` — Example custom object with a text field\n- `fields/example-field.ts` — Example standalone field extending the example object\n- `logic-functions/hello-world.ts` — Example logic function with HTTP trigger\n- `front-components/hello-world.tsx` — Example front component\n- `views/example-view.ts` — Example saved view for the example object\n- `navigation-menu-items/example-navigation-menu-item.ts` — Example sidebar navigation link\n- `skills/example-skill.ts` — Example AI agent skill definition\n- `__tests__/app-install.integration-test.ts` — Integration test that builds, installs, and verifies the app (includes `vitest.config.ts`, `tsconfig.spec.json`, and a setup file)\n\n## Local server\n\nThe scaffolder can start a local Twenty dev server for you (all-in-one Docker image with PostgreSQL, Redis, server, and worker). You can also manage it manually:\n\n```bash\nyarn twenty server start # Start (pulls image if needed)\nyarn twenty server status # Check if it's healthy\nyarn twenty server logs # Stream logs\nyarn twenty server stop # Stop (data is preserved)\nyarn twenty server reset # Wipe all data and start fresh\n```\n\nThe server is pre-seeded with a workspace and user (`tim@apple.dev` / `tim@apple.dev`).\n\n### How to use a local Twenty instance\n\nIf you're already running a local Twenty instance, you can connect to it instead of using Docker. Pass the port your local server is listening on (default: `3000`):\n\n```bash\nnpx create-twenty-app@latest my-app --port 3000\n```\n\n## Next steps\n\n- Run `yarn twenty help` to see all available commands.\n- Use `yarn twenty remote add --local` to authenticate with your Twenty workspace via OAuth.\n- Explore the generated project and add your first entity with `yarn twenty add` (logic functions, front components, objects, roles, views, navigation menu items, skills).\n- Use `yarn twenty dev` while you iterate — it watches, builds, and syncs changes to your workspace in real time.\n- `CoreApiClient` is auto-generated by `yarn twenty dev`. `MetadataApiClient` (for workspace configuration and file uploads via `/metadata`) ships pre-built with the SDK. Both are available via `import { CoreApiClient } from 'twenty-client-sdk/core'` and `import { MetadataApiClient } from 'twenty-client-sdk/metadata'`.\n\n## Build and publish your application\n\nOnce your app is ready, build and publish it using the CLI:\n\n```bash\n# Build the app (output goes to .twenty/output/)\nyarn twenty build\n\n# Build and create a tarball (.tgz) for distribution\nyarn twenty build --tarball\n\n# Publish to npm (requires npm login)\nyarn twenty publish\n\n# Publish with a dist-tag (e.g. beta, next)\nyarn twenty publish --tag beta\n\n# Deploy directly to a Twenty server (builds, uploads, and installs in one step)\nyarn twenty deploy\n```\n\n### Publish to the Twenty marketplace\n\nYou can also contribute your application to the curated marketplace:\n\n```bash\ngit clone https://github.com/twentyhq/twenty.git\ncd twenty\ngit checkout -b feature/my-awesome-app\n```\n\n- Copy your app folder into `twenty/packages/twenty-apps`.\n- Commit your changes and open a pull request on https://github.com/twentyhq/twenty\n\nOur team reviews contributions for quality, security, and reusability before merging.\n\n## Troubleshooting\n\n- Server not starting: check Docker is running (`docker info`), then try `yarn twenty server logs`.\n- Auth not working: make sure you're logged in to Twenty in the browser first, then run `yarn twenty remote add --local`.\n- Types not generated: ensure `yarn twenty dev` is running — it auto-generates the typed client.\n\n## Contributing\n\n- See our [GitHub](https://github.com/twentyhq/twenty)\n- Join our [Discord](https://discord.gg/cx5n4Jzs57)\n",
|
|
7
|
+
"providers": [
|
|
8
|
+
"Google",
|
|
9
|
+
"Facebook"
|
|
10
|
+
],
|
|
7
11
|
"defaultRoleUniversalIdentifier": "6d795208-5d44-4ccf-aa09-ebfbd2c3c11c",
|
|
8
12
|
"icon": "IconWorld",
|
|
9
13
|
"logoUrl": "public/marketplace/logo.png",
|
|
@@ -16,7 +20,7 @@
|
|
|
16
20
|
"category": "test",
|
|
17
21
|
"termsUrl": "https://github.com/twentyhq/twenty?tab=License-1-ov-file#readme",
|
|
18
22
|
"yarnLockChecksum": "571a69353b7b7584ed2353573f8bdbbf",
|
|
19
|
-
"packageJsonChecksum": "
|
|
23
|
+
"packageJsonChecksum": "8d3257276684bd28dc2625fb7aba8f76",
|
|
20
24
|
"preInstallLogicFunctionUniversalIdentifier": "eacd675e-24c3-424d-b8af-88838ba9ae60",
|
|
21
25
|
"postInstallLogicFunctionUniversalIdentifier": "4acd1989-62f7-443d-a8ca-9b910993f229"
|
|
22
26
|
},
|
|
@@ -305,7 +309,10 @@
|
|
|
305
309
|
"canReadAllObjectRecords": true,
|
|
306
310
|
"canUpdateAllObjectRecords": true,
|
|
307
311
|
"canSoftDeleteAllObjectRecords": true,
|
|
308
|
-
"canDestroyAllObjectRecords": false
|
|
312
|
+
"canDestroyAllObjectRecords": false,
|
|
313
|
+
"permissionFlags": [
|
|
314
|
+
"WORKSPACE_MEMBERS"
|
|
315
|
+
]
|
|
309
316
|
}
|
|
310
317
|
],
|
|
311
318
|
"skills": [
|
|
@@ -341,7 +348,7 @@
|
|
|
341
348
|
"handlerName": "default.config.handler",
|
|
342
349
|
"sourceHandlerPath": "src/logic-functions/post-install.ts",
|
|
343
350
|
"builtHandlerPath": "src/logic-functions/post-install.mjs",
|
|
344
|
-
"builtHandlerChecksum": "
|
|
351
|
+
"builtHandlerChecksum": "4c431b8c58ded0fc39f443592614f126"
|
|
345
352
|
},
|
|
346
353
|
{
|
|
347
354
|
"universalIdentifier": "9e85ad11-caa7-4840-8fca-9e5c4d930c89",
|
|
@@ -360,7 +367,7 @@
|
|
|
360
367
|
"handlerName": "default.config.handler",
|
|
361
368
|
"sourceHandlerPath": "src/logic-functions/create-hello-world-company.ts",
|
|
362
369
|
"builtHandlerPath": "src/logic-functions/create-hello-world-company.mjs",
|
|
363
|
-
"builtHandlerChecksum": "
|
|
370
|
+
"builtHandlerChecksum": "2409cc89c10f3a323b38787617dd26ef"
|
|
364
371
|
},
|
|
365
372
|
{
|
|
366
373
|
"universalIdentifier": "e654d5fd-1cf6-4473-a109-23faebd63294",
|
|
@@ -379,7 +386,7 @@
|
|
|
379
386
|
"handlerName": "default.config.handler",
|
|
380
387
|
"sourceHandlerPath": "src/logic-functions/hello-world.ts",
|
|
381
388
|
"builtHandlerPath": "src/logic-functions/hello-world.mjs",
|
|
382
|
-
"builtHandlerChecksum": "
|
|
389
|
+
"builtHandlerChecksum": "a0b329a175eacdb5beac1fb021664b98"
|
|
383
390
|
},
|
|
384
391
|
{
|
|
385
392
|
"universalIdentifier": "eacd675e-24c3-424d-b8af-88838ba9ae60",
|
|
@@ -393,7 +400,7 @@
|
|
|
393
400
|
"handlerName": "default.config.handler",
|
|
394
401
|
"sourceHandlerPath": "src/logic-functions/pre-install.ts",
|
|
395
402
|
"builtHandlerPath": "src/logic-functions/pre-install.mjs",
|
|
396
|
-
"builtHandlerChecksum": "
|
|
403
|
+
"builtHandlerChecksum": "a81d18fd43f3ea2453110507108cb7d2"
|
|
397
404
|
}
|
|
398
405
|
],
|
|
399
406
|
"frontComponents": [
|
|
@@ -404,7 +411,7 @@
|
|
|
404
411
|
"componentName": "HelloWorld",
|
|
405
412
|
"sourceComponentPath": "src/front-components/hello-world.tsx",
|
|
406
413
|
"builtComponentPath": "src/front-components/hello-world.mjs",
|
|
407
|
-
"builtComponentChecksum": "
|
|
414
|
+
"builtComponentChecksum": "49679b270e577b116c5690473c8a4028",
|
|
408
415
|
"isHeadless": false,
|
|
409
416
|
"usesSdkClient": true
|
|
410
417
|
}
|
|
@@ -414,25 +421,25 @@
|
|
|
414
421
|
"filePath": "public/marketplace/icon.jpg",
|
|
415
422
|
"fileName": "icon.jpg",
|
|
416
423
|
"fileType": "jpg",
|
|
417
|
-
"checksum":
|
|
424
|
+
"checksum": null
|
|
418
425
|
},
|
|
419
426
|
{
|
|
420
427
|
"filePath": "public/marketplace/logo.png",
|
|
421
428
|
"fileName": "logo.png",
|
|
422
429
|
"fileType": "png",
|
|
423
|
-
"checksum":
|
|
430
|
+
"checksum": null
|
|
424
431
|
},
|
|
425
432
|
{
|
|
426
433
|
"filePath": "public/marketplace/screenshots/53401261f1f98a236d218bd81d38eaed496e0857.jpg",
|
|
427
434
|
"fileName": "53401261f1f98a236d218bd81d38eaed496e0857.jpg",
|
|
428
435
|
"fileType": "jpg",
|
|
429
|
-
"checksum":
|
|
436
|
+
"checksum": null
|
|
430
437
|
},
|
|
431
438
|
{
|
|
432
439
|
"filePath": "public/marketplace/screenshots/bf551525a1d764057a874905e06ff3e0cf347c91.jpg",
|
|
433
440
|
"fileName": "bf551525a1d764057a874905e06ff3e0cf347c91.jpg",
|
|
434
441
|
"fileType": "jpg",
|
|
435
|
-
"checksum":
|
|
442
|
+
"checksum": null
|
|
436
443
|
}
|
|
437
444
|
],
|
|
438
445
|
"views": [
|
package/package.json
CHANGED
|
@@ -34,7 +34,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
34
34
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
35
|
|
|
36
36
|
var require_scheduler_development = __commonJS({
|
|
37
|
-
"node_modules/scheduler/cjs/scheduler.development.js"(exports) {
|
|
37
|
+
"../twenty-apps/toto/node_modules/scheduler/cjs/scheduler.development.js"(exports) {
|
|
38
38
|
"use strict";
|
|
39
39
|
(function() {
|
|
40
40
|
function performWorkUntilDeadline() {
|
|
@@ -292,7 +292,7 @@ var require_scheduler_development = __commonJS({
|
|
|
292
292
|
});
|
|
293
293
|
|
|
294
294
|
var require_scheduler = __commonJS({
|
|
295
|
-
"node_modules/scheduler/index.js"(exports, module) {
|
|
295
|
+
"../twenty-apps/toto/node_modules/scheduler/index.js"(exports, module) {
|
|
296
296
|
"use strict";
|
|
297
297
|
if (false) {
|
|
298
298
|
module.exports = null;
|
|
@@ -303,7 +303,7 @@ var require_scheduler = __commonJS({
|
|
|
303
303
|
});
|
|
304
304
|
|
|
305
305
|
var require_react_development = __commonJS({
|
|
306
|
-
"node_modules/react/cjs/react.development.js"(exports, module) {
|
|
306
|
+
"../twenty-apps/toto/node_modules/react/cjs/react.development.js"(exports, module) {
|
|
307
307
|
"use strict";
|
|
308
308
|
(function() {
|
|
309
309
|
function defineDeprecationWarning(methodName, info) {
|
|
@@ -1274,7 +1274,7 @@ var require_react_development = __commonJS({
|
|
|
1274
1274
|
});
|
|
1275
1275
|
|
|
1276
1276
|
var require_react = __commonJS({
|
|
1277
|
-
"node_modules/react/index.js"(exports, module) {
|
|
1277
|
+
"../twenty-apps/toto/node_modules/react/index.js"(exports, module) {
|
|
1278
1278
|
"use strict";
|
|
1279
1279
|
if (false) {
|
|
1280
1280
|
module.exports = null;
|
|
@@ -1401,7 +1401,7 @@ var init_react = __esm({
|
|
|
1401
1401
|
});
|
|
1402
1402
|
|
|
1403
1403
|
var require_react_dom_development = __commonJS({
|
|
1404
|
-
"node_modules/react-dom/cjs/react-dom.development.js"(exports) {
|
|
1404
|
+
"../twenty-apps/toto/node_modules/react-dom/cjs/react-dom.development.js"(exports) {
|
|
1405
1405
|
"use strict";
|
|
1406
1406
|
(function() {
|
|
1407
1407
|
function noop() {
|
|
@@ -1644,7 +1644,7 @@ var require_react_dom_development = __commonJS({
|
|
|
1644
1644
|
});
|
|
1645
1645
|
|
|
1646
1646
|
var require_react_dom = __commonJS({
|
|
1647
|
-
"node_modules/react-dom/index.js"(exports, module) {
|
|
1647
|
+
"../twenty-apps/toto/node_modules/react-dom/index.js"(exports, module) {
|
|
1648
1648
|
"use strict";
|
|
1649
1649
|
if (false) {
|
|
1650
1650
|
checkDCE();
|
|
@@ -1656,7 +1656,7 @@ var require_react_dom = __commonJS({
|
|
|
1656
1656
|
});
|
|
1657
1657
|
|
|
1658
1658
|
var require_react_dom_client_development = __commonJS({
|
|
1659
|
-
"node_modules/react-dom/cjs/react-dom-client.development.js"(exports) {
|
|
1659
|
+
"../twenty-apps/toto/node_modules/react-dom/cjs/react-dom-client.development.js"(exports) {
|
|
1660
1660
|
"use strict";
|
|
1661
1661
|
(function() {
|
|
1662
1662
|
function findHook(fiber, id) {
|
|
@@ -21554,7 +21554,7 @@ var require_react_dom_client_development = __commonJS({
|
|
|
21554
21554
|
});
|
|
21555
21555
|
|
|
21556
21556
|
var require_client = __commonJS({
|
|
21557
|
-
"node_modules/react-dom/client.js"(exports, module) {
|
|
21557
|
+
"../twenty-apps/toto/node_modules/react-dom/client.js"(exports, module) {
|
|
21558
21558
|
"use strict";
|
|
21559
21559
|
if (false) {
|
|
21560
21560
|
checkDCE();
|
|
@@ -21566,7 +21566,7 @@ var require_client = __commonJS({
|
|
|
21566
21566
|
});
|
|
21567
21567
|
|
|
21568
21568
|
var require_react_jsx_runtime_development = __commonJS({
|
|
21569
|
-
"node_modules/react/cjs/react-jsx-runtime.development.js"(exports) {
|
|
21569
|
+
"../twenty-apps/toto/node_modules/react/cjs/react-jsx-runtime.development.js"(exports) {
|
|
21570
21570
|
"use strict";
|
|
21571
21571
|
(function() {
|
|
21572
21572
|
function getComponentNameFromType(type) {
|
|
@@ -21822,7 +21822,7 @@ var require_react_jsx_runtime_development = __commonJS({
|
|
|
21822
21822
|
});
|
|
21823
21823
|
|
|
21824
21824
|
var require_jsx_runtime = __commonJS({
|
|
21825
|
-
"node_modules/react/jsx-runtime.js"(exports, module) {
|
|
21825
|
+
"../twenty-apps/toto/node_modules/react/jsx-runtime.js"(exports, module) {
|
|
21826
21826
|
"use strict";
|
|
21827
21827
|
if (false) {
|
|
21828
21828
|
module.exports = null;
|