n8n-nodes-substack 1.7.3 → 3.0.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.
Files changed (38) hide show
  1. package/README.md +33 -73
  2. package/dist/credentials/SubstackApi.credentials.js +1 -1
  3. package/dist/credentials/SubstackApi.credentials.js.map +1 -1
  4. package/dist/nodes/Substack/Comment.fields.js +14 -0
  5. package/dist/nodes/Substack/Comment.fields.js.map +1 -1
  6. package/dist/nodes/Substack/Comment.operations.d.ts +2 -1
  7. package/dist/nodes/Substack/Comment.operations.js +29 -2
  8. package/dist/nodes/Substack/Comment.operations.js.map +1 -1
  9. package/dist/nodes/Substack/MarkdownParser.d.ts +11 -0
  10. package/dist/nodes/Substack/MarkdownParser.js +228 -0
  11. package/dist/nodes/Substack/MarkdownParser.js.map +1 -0
  12. package/dist/nodes/Substack/Note.fields.js +57 -2
  13. package/dist/nodes/Substack/Note.fields.js.map +1 -1
  14. package/dist/nodes/Substack/Note.operations.d.ts +1 -0
  15. package/dist/nodes/Substack/Note.operations.js +107 -9
  16. package/dist/nodes/Substack/Note.operations.js.map +1 -1
  17. package/dist/nodes/Substack/Post.fields.js +30 -0
  18. package/dist/nodes/Substack/Post.fields.js.map +1 -1
  19. package/dist/nodes/Substack/Post.operations.d.ts +1 -0
  20. package/dist/nodes/Substack/Post.operations.js +32 -2
  21. package/dist/nodes/Substack/Post.operations.js.map +1 -1
  22. package/dist/nodes/Substack/Profile.fields.js +14 -0
  23. package/dist/nodes/Substack/Profile.fields.js.map +1 -1
  24. package/dist/nodes/Substack/Profile.operations.d.ts +1 -0
  25. package/dist/nodes/Substack/Profile.operations.js +30 -1
  26. package/dist/nodes/Substack/Profile.operations.js.map +1 -1
  27. package/dist/nodes/Substack/SubstackUtils.d.ts +8 -0
  28. package/dist/nodes/Substack/SubstackUtils.js +31 -1
  29. package/dist/nodes/Substack/SubstackUtils.js.map +1 -1
  30. package/dist/nodes/Substack/shared/DataFormatters.js +38 -20
  31. package/dist/nodes/Substack/shared/DataFormatters.js.map +1 -1
  32. package/dist/nodes/Substack/shared/ResourceOperations.d.ts +25 -0
  33. package/dist/nodes/Substack/shared/ResourceOperations.js +59 -0
  34. package/dist/nodes/Substack/shared/ResourceOperations.js.map +1 -0
  35. package/dist/nodes/Substack/types.d.ts +18 -3
  36. package/dist/package.json +9 -5
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +9 -5
package/README.md CHANGED
@@ -1,100 +1,60 @@
1
+ > [!WARNING]
2
+ > This package is superseded by [n8n-nodes-substack-new](https://github.com/jakub-k-slys/n8n-nodes-substack-new),
3
+ > which connects to [Substack Gateway OSS](https://github.com/jakub-k-slys/substack-gateway-oss)
4
+ > and supports full read and write operations. This package remains
5
+ > available but is no longer actively developed.
6
+
1
7
  # n8n-nodes-substack
2
8
 
3
9
  [![npm version](https://badge.fury.io/js/n8n-nodes-substack.svg)](https://badge.fury.io/js/n8n-nodes-substack)
4
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
11
  [![Tests](https://github.com/jakub-k-slys/n8n-nodes-substack/actions/workflows/test.yaml/badge.svg)](https://github.com/jakub-k-slys/n8n-nodes-substack/actions/workflows/test.yaml)
6
12
 
7
- This n8n community node provides read-only access to the Substack API, enabling you to automate content discovery and analytics workflows with Substack publications.
8
-
9
- [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
13
+ Read-only n8n community node for Substack. Enables content discovery and
14
+ analytics workflows against Substack publications.
10
15
 
11
16
  ## Features
12
17
 
13
- - **Profile Operations**: Get profile information, followees, and publication data
14
- - **Post Operations**: Retrieve posts with pagination support
15
- - **Note Operations**: Access notes from publications and create new notes programmatically with optional title and body content, supporting both simple text and advanced JSON formatting
16
- - **Comment Operations**: Get comments for posts
17
- - **Secure Authentication**: API key authentication with publication address
18
- - **Powered by substack-api**: Uses the robust [substack-api](https://www.npmjs.com/package/substack-api) library for reliable API interactions
19
-
20
- ## Quick Start
21
-
22
- ### Get Your Profile Information
23
-
24
- ```json
25
- {
26
- "nodes": [
27
- {
28
- "name": "Get My Profile",
29
- "type": "n8n-nodes-substack.substack",
30
- "parameters": {
31
- "resource": "profile",
32
- "operation": "getOwnProfile"
33
- },
34
- "credentials": {
35
- "substackApi": "your-credential-id"
36
- }
37
- }
38
- ]
39
- }
40
- ```
41
-
42
- ### Retrieve Recent Posts
43
-
44
- ```json
45
- {
46
- "nodes": [
47
- {
48
- "name": "Get Recent Posts",
49
- "type": "n8n-nodes-substack.substack",
50
- "parameters": {
51
- "resource": "post",
52
- "operation": "getAll",
53
- "limit": 10
54
- },
55
- "credentials": {
56
- "substackApi": "your-credential-id"
57
- }
58
- }
59
- ]
60
- }
61
- ```
18
+ - Profile operations: get profile information and publication data
19
+ - Post operations: retrieve posts with pagination
20
+ - Note operations: read and create notes
21
+ - Comment operations: get comments for posts
62
22
 
63
23
  ## Installation
64
24
 
65
- ### n8n Cloud
66
-
67
- 1. Go to **Settings** > **Community Nodes**
68
- 2. Click **Install a community node**
69
- 3. Enter `n8n-nodes-substack`
70
- 4. Click **Install**
71
-
72
25
  ### Self-hosted n8n
73
26
 
74
- Install the node in your n8n installation directory:
75
-
76
27
  ```bash
77
28
  npm install n8n-nodes-substack
78
29
  ```
79
30
 
80
- Then restart your n8n instance.
31
+ Restart n8n after installation.
81
32
 
82
- ### Credentials Setup
33
+ ### Credentials
83
34
 
84
- 1. Add the Substack node to your workflow
85
- 2. Create new credentials with:
86
- - **Publication Address**: Your Substack domain (e.g., `myblog.substack.com`)
87
- - **API Key**: Your Substack API key
35
+ Add credentials with:
36
+ - **Publication Address**: your Substack domain (e.g. `myblog.substack.com`)
37
+ - **API Key**: your Substack API key
88
38
 
89
39
  ## Documentation
90
40
 
91
- 📖 **[Complete Documentation](docs/)** - Comprehensive guides for all operations
41
+ - [Resource Guides](docs/resources/)
42
+ - [Development Guide](docs/contributing.md)
43
+ - [Testing Guide](docs/testing.md)
44
+ - [Architecture](docs/design.md)
45
+
46
+ ## Author
47
+
48
+ Built by [Jakub Slys](https://iam.slys.dev) — Backend Engineer building
49
+ distributed systems for telecoms, running a self-hosted Kubernetes homelab,
50
+ and building AI automation pipelines with n8n, MCP, and Claude.
51
+
52
+ I write about building this kind of tooling — n8n workflows, self-hosted AI
53
+ automation, and the engineering decisions behind them — at
54
+ [iam.slys.dev](https://iam.slys.dev).
92
55
 
93
- - **[Resource Guides](docs/resources/)** - Detailed documentation for Profile, Post, Note, and Comment operations
94
- - **[Development Guide](docs/contributing.md)** - Contributing to the project
95
- - **[Testing Guide](docs/testing.md)** - Testing practices and procedures
96
- - **[Architecture](docs/design.md)** - Design decisions and project structure
56
+ [iam.slys.dev](https://iam.slys.dev)
97
57
 
98
58
  ## License
99
59
 
100
- [MIT](LICENSE.md)
60
+ MIT
@@ -25,7 +25,7 @@ class SubstackApi {
25
25
  typeOptions: {
26
26
  password: true,
27
27
  },
28
- description: 'The substack.sid cookie value used for authentication',
28
+ description: 'The private API token for authentication',
29
29
  required: true,
30
30
  },
31
31
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"SubstackApi.credentials.js","sourceRoot":"","sources":["../../credentials/SubstackApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAAW;IAAxB;QACC,SAAI,GAAG,aAAa,CAAC;QACrB,gBAAW,GAAG,cAAc,CAAC;QAC7B,qBAAgB,GAAG,qCAAqC,CAAC;QACzD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,qBAAqB;gBAClC,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,6BAA6B;gBAC1C,WAAW,EAAE,8EAA8E;gBAC3F,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,KAAK;aACnB;YACD;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,WAAW,EAAE,uDAAuD;gBACpE,QAAQ,EAAE,IAAI;aACd;SACD,CAAC;QAIF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,MAAM,EAAE,uCAAuC;iBAC/C;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,8CAA8C;gBACvD,GAAG,EAAE,sBAAsB;gBAC3B,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACR,MAAM,EAAE,uCAAuC;iBAC/C;aACD;SACD,CAAC;IACH,CAAC;CAAA;AAjDD,kCAiDC"}
1
+ {"version":3,"file":"SubstackApi.credentials.js","sourceRoot":"","sources":["../../credentials/SubstackApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAAW;IAAxB;QACC,SAAI,GAAG,aAAa,CAAC;QACrB,gBAAW,GAAG,cAAc,CAAC;QAC7B,qBAAgB,GAAG,qCAAqC,CAAC;QACzD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,qBAAqB;gBAClC,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,6BAA6B;gBAC1C,WAAW,EAAE,8EAA8E;gBAC3F,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,KAAK;aACnB;YACD;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,WAAW,EAAE,0CAA0C;gBACvD,QAAQ,EAAE,IAAI;aACd;SACD,CAAC;QAIF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,MAAM,EAAE,uCAAuC;iBAC/C;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,8CAA8C;gBACvD,GAAG,EAAE,sBAAsB;gBAC3B,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACR,MAAM,EAAE,uCAAuC;iBAC/C;aACD;SACD,CAAC;IACH,CAAC;CAAA;AAjDD,kCAiDC"}
@@ -32,5 +32,19 @@ exports.commentFields = [
32
32
  minValue: 1,
33
33
  },
34
34
  },
35
+ {
36
+ displayName: 'Comment ID',
37
+ name: 'commentId',
38
+ type: 'string',
39
+ default: '',
40
+ description: 'The ID of the comment to retrieve',
41
+ displayOptions: {
42
+ show: {
43
+ resource: ['comment'],
44
+ operation: ['getCommentById'],
45
+ },
46
+ },
47
+ required: true,
48
+ },
35
49
  ];
36
50
  //# sourceMappingURL=Comment.fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Comment.fields.js","sourceRoot":"","sources":["../../../nodes/Substack/Comment.fields.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAsB;IAI/C;QACC,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,wCAAwC;QACrD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,SAAS,CAAC;gBACrB,SAAS,EAAE,CAAC,QAAQ,CAAC;aACrB;SACD;QACD,QAAQ,EAAE,IAAI;KACd;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,SAAS,CAAC;gBACrB,SAAS,EAAE,CAAC,QAAQ,CAAC;aACrB;SACD;QACD,WAAW,EAAE;YACZ,QAAQ,EAAE,CAAC;SACX;KACD;CACD,CAAC"}
1
+ {"version":3,"file":"Comment.fields.js","sourceRoot":"","sources":["../../../nodes/Substack/Comment.fields.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAsB;IAI/C;QACC,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,wCAAwC;QACrD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,SAAS,CAAC;gBACrB,SAAS,EAAE,CAAC,QAAQ,CAAC;aACrB;SACD;QACD,QAAQ,EAAE,IAAI;KACd;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,SAAS,CAAC;gBACrB,SAAS,EAAE,CAAC,QAAQ,CAAC;aACrB;SACD;QACD,WAAW,EAAE;YACZ,QAAQ,EAAE,CAAC;SACX;KACD;IAID;QACC,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,mCAAmC;QAChD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,SAAS,CAAC;gBACrB,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;QACD,QAAQ,EAAE,IAAI;KACd;CACD,CAAC"}
@@ -2,7 +2,8 @@ import { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
2
2
  import { SubstackClient } from 'substack-api';
3
3
  import { IStandardResponse } from './types';
4
4
  export declare enum CommentOperation {
5
- GetAll = "getAll"
5
+ GetAll = "getAll",
6
+ GetCommentById = "getCommentById"
6
7
  }
7
8
  export declare const commentOperations: INodeProperties[];
8
9
  export declare const commentOperationHandlers: Record<CommentOperation, (executeFunctions: IExecuteFunctions, client: SubstackClient, publicationAddress: string, itemIndex: number) => Promise<IStandardResponse>>;
@@ -7,6 +7,7 @@ const SubstackUtils_1 = require("./SubstackUtils");
7
7
  var CommentOperation;
8
8
  (function (CommentOperation) {
9
9
  CommentOperation["GetAll"] = "getAll";
10
+ CommentOperation["GetCommentById"] = "getCommentById";
10
11
  })(CommentOperation || (exports.CommentOperation = CommentOperation = {}));
11
12
  exports.commentOperations = [
12
13
  {
@@ -27,6 +28,12 @@ exports.commentOperations = [
27
28
  description: 'Get all comments for a specific post',
28
29
  action: 'Get all comments',
29
30
  },
31
+ {
32
+ name: 'Get Comment by ID',
33
+ value: CommentOperation.GetCommentById,
34
+ description: 'Get a specific comment by its ID',
35
+ action: 'Get comment by ID',
36
+ },
30
37
  ],
31
38
  },
32
39
  ];
@@ -36,8 +43,8 @@ async function getAll(executeFunctions, client, publicationAddress, itemIndex) {
36
43
  const limitParam = executeFunctions.getNodeParameter('limit', itemIndex, '');
37
44
  const limit = OperationUtils_1.OperationUtils.parseLimit(limitParam);
38
45
  const post = await client.postForId(postId);
39
- const commentsIterable = post.comments();
40
- const results = await OperationUtils_1.OperationUtils.executeAsyncIterable(commentsIterable, limit, (comment) => DataFormatters_1.DataFormatters.formatComment(comment, postId), publicationAddress);
46
+ const commentsIterable = await post.comments();
47
+ const results = await OperationUtils_1.OperationUtils.executeAsyncIterable(commentsIterable, limit, (comment, publicationAddress) => DataFormatters_1.DataFormatters.formatComment(comment, postId), publicationAddress);
41
48
  return {
42
49
  success: true,
43
50
  data: results,
@@ -52,7 +59,27 @@ async function getAll(executeFunctions, client, publicationAddress, itemIndex) {
52
59
  });
53
60
  }
54
61
  }
62
+ async function getCommentById(executeFunctions, client, publicationAddress, itemIndex) {
63
+ try {
64
+ const commentId = OperationUtils_1.OperationUtils.parseNumericParam(executeFunctions.getNodeParameter('commentId', itemIndex), 'commentId');
65
+ const comment = await client.commentForId(commentId);
66
+ const result = DataFormatters_1.DataFormatters.formatComment(comment);
67
+ return {
68
+ success: true,
69
+ data: result,
70
+ metadata: { status: 'success' },
71
+ };
72
+ }
73
+ catch (error) {
74
+ return SubstackUtils_1.SubstackUtils.formatErrorResponse({
75
+ message: error.message,
76
+ node: executeFunctions.getNode(),
77
+ itemIndex,
78
+ });
79
+ }
80
+ }
55
81
  exports.commentOperationHandlers = {
56
82
  [CommentOperation.GetAll]: getAll,
83
+ [CommentOperation.GetCommentById]: getCommentById,
57
84
  };
58
85
  //# sourceMappingURL=Comment.operations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Comment.operations.js","sourceRoot":"","sources":["../../../nodes/Substack/Comment.operations.ts"],"names":[],"mappings":";;;AAGA,4DAAyD;AACzD,4DAAyD;AACzD,mDAAgD;AAEhD,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC3B,qCAAiB,CAAA;AAClB,CAAC,EAFW,gBAAgB,gCAAhB,gBAAgB,QAE3B;AAEY,QAAA,iBAAiB,GAAsB;IACnD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;QACjB,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,SAAS,CAAC;aACrB;SACD;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,gBAAgB,CAAC,MAAM;gBAC9B,WAAW,EAAE,sCAAsC;gBACnD,MAAM,EAAE,kBAAkB;aAC1B;SACD;KACD;CACD,CAAC;AAEF,KAAK,UAAU,MAAM,CACpB,gBAAmC,EACnC,MAAsB,EACtB,kBAA0B,EAC1B,SAAiB;IAEjB,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,+BAAc,CAAC,iBAAiB,CAC9C,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,EACtD,QAAQ,CACR,CAAC;QACF,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,+BAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,+BAAc,CAAC,oBAAoB,CACxD,gBAAgB,EAChB,KAAK,EACL,CAAC,OAAY,EAAE,EAAE,CAAC,+BAAc,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAC/D,kBAAkB,CAClB,CAAC;QAEF,OAAO;YACN,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SAC/B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,6BAAa,CAAC,mBAAmB,CAAC;YACxC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE;YAChC,SAAS;SACT,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAEY,QAAA,wBAAwB,GAQjC;IACH,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM;CACjC,CAAC"}
1
+ {"version":3,"file":"Comment.operations.js","sourceRoot":"","sources":["../../../nodes/Substack/Comment.operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { OwnProfile } from 'substack-api';
2
+ export declare class MarkdownParser {
3
+ static parseMarkdownToNoteStructured(markdown: string, noteBuilder: ReturnType<OwnProfile['newNote']>): ReturnType<ReturnType<OwnProfile['newNote']>['paragraph']>;
4
+ static parseMarkdownToNote(markdown: string, noteBuilder: ReturnType<OwnProfile['newNote']>): ReturnType<ReturnType<OwnProfile['newNote']>['paragraph']>;
5
+ private static preprocessMarkdown;
6
+ private static processTokensStructured;
7
+ private static processHeadingStructured;
8
+ private static processParagraphStructured;
9
+ private static processListStructured;
10
+ private static processInlineTokensStructured;
11
+ }
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarkdownParser = void 0;
4
+ const marked_1 = require("marked");
5
+ marked_1.marked.setOptions({
6
+ gfm: true,
7
+ breaks: false,
8
+ });
9
+ function decodeHtmlEntities(text) {
10
+ const entityMap = {
11
+ '&#39;': "'",
12
+ '&quot;': '"',
13
+ '&amp;': '&',
14
+ '&lt;': '<',
15
+ '&gt;': '>',
16
+ '&nbsp;': ' ',
17
+ };
18
+ return text.replace(/&#?\w+;/g, (entity) => entityMap[entity] || entity);
19
+ }
20
+ class MarkdownParser {
21
+ static parseMarkdownToNoteStructured(markdown, noteBuilder) {
22
+ if (!markdown.trim()) {
23
+ throw new Error('Note body cannot be empty - at least one paragraph with content is required');
24
+ }
25
+ const processedMarkdown = this.preprocessMarkdown(markdown);
26
+ const tokens = marked_1.marked.lexer(processedMarkdown);
27
+ const meaningfulTokens = tokens.filter((token) => token.type === 'paragraph' || token.type === 'heading' || token.type === 'list');
28
+ if (meaningfulTokens.length === 0) {
29
+ throw new Error('Note must contain at least one paragraph with actual content');
30
+ }
31
+ const contentTracker = { meaningfulNodesCreated: 0 };
32
+ let currentBuilder = null;
33
+ currentBuilder = this.processTokensStructured(tokens, noteBuilder, contentTracker);
34
+ if (contentTracker.meaningfulNodesCreated === 0) {
35
+ throw new Error('Note must contain at least one paragraph with actual content');
36
+ }
37
+ if (!currentBuilder) {
38
+ throw new Error('Failed to create note content');
39
+ }
40
+ return currentBuilder;
41
+ }
42
+ static parseMarkdownToNote(markdown, noteBuilder) {
43
+ return this.parseMarkdownToNoteStructured(markdown, noteBuilder);
44
+ }
45
+ static preprocessMarkdown(markdown) {
46
+ return markdown.replace(/\\n/g, '\n');
47
+ }
48
+ static processTokensStructured(tokens, noteBuilder, contentTracker) {
49
+ let currentBuilder = null;
50
+ for (const token of tokens) {
51
+ let newBuilder = null;
52
+ switch (token.type) {
53
+ case 'heading':
54
+ newBuilder = this.processHeadingStructured(token, noteBuilder, currentBuilder, contentTracker);
55
+ break;
56
+ case 'paragraph':
57
+ newBuilder = this.processParagraphStructured(token, noteBuilder, currentBuilder, contentTracker);
58
+ break;
59
+ case 'list':
60
+ newBuilder = this.processListStructured(token, noteBuilder, currentBuilder, contentTracker);
61
+ break;
62
+ case 'space':
63
+ break;
64
+ default:
65
+ if (token.text) {
66
+ const decodedText = decodeHtmlEntities(token.text);
67
+ if (currentBuilder) {
68
+ newBuilder = currentBuilder.paragraph().text(decodedText);
69
+ }
70
+ else {
71
+ newBuilder = noteBuilder.paragraph().text(decodedText);
72
+ }
73
+ contentTracker.meaningfulNodesCreated++;
74
+ }
75
+ break;
76
+ }
77
+ if (newBuilder) {
78
+ currentBuilder = newBuilder;
79
+ }
80
+ }
81
+ return currentBuilder;
82
+ }
83
+ static processHeadingStructured(token, noteBuilder, currentBuilder, contentTracker) {
84
+ const hasContent = (token.tokens && token.tokens.some((t) => t.text && t.text.trim())) ||
85
+ (token.text && token.text.trim());
86
+ if (!hasContent) {
87
+ return currentBuilder;
88
+ }
89
+ let paragraphBuilder = currentBuilder ? currentBuilder.paragraph() : noteBuilder.paragraph();
90
+ if (token.tokens && token.tokens.length > 0) {
91
+ paragraphBuilder = this.processInlineTokensStructured(token.tokens, paragraphBuilder, true);
92
+ }
93
+ else if (token.text) {
94
+ paragraphBuilder = paragraphBuilder.bold(decodeHtmlEntities(token.text));
95
+ }
96
+ contentTracker.meaningfulNodesCreated++;
97
+ return paragraphBuilder;
98
+ }
99
+ static processParagraphStructured(token, noteBuilder, currentBuilder, contentTracker) {
100
+ const hasContent = (token.tokens && token.tokens.some((t) => t.text && t.text.trim())) ||
101
+ (token.text && token.text.trim());
102
+ if (!hasContent) {
103
+ return currentBuilder;
104
+ }
105
+ const text = token.text ? token.text.trim() : '';
106
+ const normalizedText = text.replace(/\s+/g, ' ').trim();
107
+ const isOnlyListMarkers = /^([-*+]|(\d+\.))+(\s*([-*+]|(\d+\.)))*$/.test(normalizedText);
108
+ const isEmptyListMarkers = normalizedText === '- * 1.' || /^[-*+\d.\s]+$/.test(normalizedText);
109
+ if (isOnlyListMarkers || isEmptyListMarkers) {
110
+ return currentBuilder;
111
+ }
112
+ let paragraphBuilder = currentBuilder ? currentBuilder.paragraph() : noteBuilder.paragraph();
113
+ if (token.tokens && token.tokens.length > 0) {
114
+ paragraphBuilder = this.processInlineTokensStructured(token.tokens, paragraphBuilder);
115
+ }
116
+ else if (token.text) {
117
+ paragraphBuilder = paragraphBuilder.text(decodeHtmlEntities(token.text));
118
+ }
119
+ contentTracker.meaningfulNodesCreated++;
120
+ return paragraphBuilder;
121
+ }
122
+ static processListStructured(token, noteBuilder, currentBuilder, contentTracker) {
123
+ if (!token.items)
124
+ return currentBuilder;
125
+ let finalBuilder = currentBuilder;
126
+ let listItemNumber = 1;
127
+ token.items.forEach((item, index) => {
128
+ const hasContent = (item.tokens && item.tokens.some((t) => t.text && t.text.trim())) ||
129
+ (item.text && item.text.trim());
130
+ if (!hasContent) {
131
+ return;
132
+ }
133
+ let actualContent = '';
134
+ if (item.tokens && item.tokens.length > 0) {
135
+ const firstToken = item.tokens[0];
136
+ if (firstToken && firstToken.tokens) {
137
+ const meaningfulInlineTokens = firstToken.tokens.filter((t) => t.text && t.text.trim());
138
+ if (meaningfulInlineTokens.length > 0) {
139
+ actualContent = meaningfulInlineTokens.map((t) => t.text.trim()).join('');
140
+ }
141
+ }
142
+ else if (firstToken && firstToken.text && firstToken.text.trim()) {
143
+ actualContent = firstToken.text.trim();
144
+ }
145
+ }
146
+ else if (item.text && item.text.trim()) {
147
+ actualContent = item.text.trim();
148
+ }
149
+ if (!actualContent) {
150
+ return;
151
+ }
152
+ let paragraphBuilder = finalBuilder ? finalBuilder.paragraph() : noteBuilder.paragraph();
153
+ if (token.ordered) {
154
+ paragraphBuilder = paragraphBuilder.text(`${listItemNumber}. `);
155
+ listItemNumber++;
156
+ }
157
+ else {
158
+ paragraphBuilder = paragraphBuilder.text('• ');
159
+ }
160
+ if (item.tokens && item.tokens.length > 0) {
161
+ const firstToken = item.tokens[0];
162
+ if (firstToken && firstToken.tokens) {
163
+ paragraphBuilder = this.processInlineTokensStructured(firstToken.tokens, paragraphBuilder);
164
+ }
165
+ else if (firstToken && firstToken.text) {
166
+ paragraphBuilder = paragraphBuilder.text(decodeHtmlEntities(firstToken.text));
167
+ }
168
+ }
169
+ else if (item.text) {
170
+ paragraphBuilder = paragraphBuilder.text(decodeHtmlEntities(item.text));
171
+ }
172
+ contentTracker.meaningfulNodesCreated++;
173
+ finalBuilder = paragraphBuilder;
174
+ });
175
+ return finalBuilder;
176
+ }
177
+ static processInlineTokensStructured(tokens, paragraphBuilder, isHeading = false) {
178
+ let currentBuilder = paragraphBuilder;
179
+ for (const token of tokens) {
180
+ if (!token.text || !token.text.trim()) {
181
+ continue;
182
+ }
183
+ switch (token.type) {
184
+ case 'text':
185
+ const decodedText = decodeHtmlEntities(token.text);
186
+ if (isHeading) {
187
+ currentBuilder = currentBuilder.bold(decodedText);
188
+ }
189
+ else {
190
+ currentBuilder = currentBuilder.text(decodedText);
191
+ }
192
+ break;
193
+ case 'strong':
194
+ currentBuilder = currentBuilder.bold(decodeHtmlEntities(token.text));
195
+ break;
196
+ case 'em':
197
+ currentBuilder = currentBuilder.italic(decodeHtmlEntities(token.text));
198
+ break;
199
+ case 'codespan':
200
+ currentBuilder = currentBuilder.code(decodeHtmlEntities(token.text));
201
+ break;
202
+ case 'link':
203
+ if (token.text) {
204
+ const decodedLinkText = decodeHtmlEntities(token.text);
205
+ currentBuilder = currentBuilder.text(`${decodedLinkText} (${token.href})`);
206
+ }
207
+ else {
208
+ currentBuilder = currentBuilder.text(token.href);
209
+ }
210
+ break;
211
+ default:
212
+ if (token.text) {
213
+ const decodedFallbackText = decodeHtmlEntities(token.text);
214
+ if (isHeading) {
215
+ currentBuilder = currentBuilder.bold(decodedFallbackText);
216
+ }
217
+ else {
218
+ currentBuilder = currentBuilder.text(decodedFallbackText);
219
+ }
220
+ }
221
+ break;
222
+ }
223
+ }
224
+ return currentBuilder;
225
+ }
226
+ }
227
+ exports.MarkdownParser = MarkdownParser;
228
+ //# sourceMappingURL=MarkdownParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownParser.js","sourceRoot":"","sources":["../../../nodes/Substack/MarkdownParser.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ exports.noteFields = [
7
7
  name: 'body',
8
8
  type: 'string',
9
9
  default: '',
10
- description: 'The content of the note. Supports Markdown formatting.',
10
+ description: 'The content of the note. Must contain at least one paragraph with actual content. Markdown formatting is supported in Advanced mode.',
11
11
  displayOptions: {
12
12
  show: {
13
13
  resource: ['note'],
@@ -18,7 +18,32 @@ exports.noteFields = [
18
18
  typeOptions: {
19
19
  rows: 4,
20
20
  },
21
- placeholder: 'Write your note content here... (Supports Markdown: **bold**, *italic*, # headings, [links](url), - lists)',
21
+ placeholder: 'Write your note content here... (Advanced mode supports Markdown: **bold**, *italic*, # headings, [links](url), - lists)',
22
+ },
23
+ {
24
+ displayName: 'Content Type',
25
+ name: 'contentType',
26
+ type: 'options',
27
+ default: 'simple',
28
+ description: 'Choose how to format the content',
29
+ displayOptions: {
30
+ show: {
31
+ resource: ['note'],
32
+ operation: ['create'],
33
+ },
34
+ },
35
+ options: [
36
+ {
37
+ name: 'Simple Text',
38
+ value: 'simple',
39
+ description: 'Plain text content with structured validation',
40
+ },
41
+ {
42
+ name: 'Advanced (Markdown)',
43
+ value: 'advanced',
44
+ description: 'Supports Markdown formatting: **bold**, *italic*, # headings, - lists, [links](URL). Builder prevents invalid notes.',
45
+ },
46
+ ],
22
47
  },
23
48
  {
24
49
  displayName: 'Visibility',
@@ -132,6 +157,36 @@ exports.noteFields = [
132
157
  minValue: 1,
133
158
  },
134
159
  },
160
+ {
161
+ displayName: 'User ID',
162
+ name: 'userId',
163
+ type: 'number',
164
+ default: 0,
165
+ description: 'The user ID to get notes for',
166
+ displayOptions: {
167
+ show: {
168
+ resource: ['note'],
169
+ operation: ['getNotesById'],
170
+ },
171
+ },
172
+ required: true,
173
+ },
174
+ {
175
+ displayName: 'Limit',
176
+ name: 'limit',
177
+ type: 'number',
178
+ default: 50,
179
+ description: 'Max number of results to return',
180
+ displayOptions: {
181
+ show: {
182
+ resource: ['note'],
183
+ operation: ['getNotesById'],
184
+ },
185
+ },
186
+ typeOptions: {
187
+ minValue: 1,
188
+ },
189
+ },
135
190
  {
136
191
  displayName: 'Note ID',
137
192
  name: 'noteId',
@@ -1 +1 @@
1
- {"version":3,"file":"Note.fields.js","sourceRoot":"","sources":["../../../nodes/Substack/Note.fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Note.fields.js","sourceRoot":"","sources":["../../../nodes/Substack/Note.fields.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare enum NoteOperation {
5
5
  Create = "create",
6
6
  Get = "get",
7
7
  GetNotesBySlug = "getNotesBySlug",
8
+ GetNotesById = "getNotesById",
8
9
  GetNoteById = "getNoteById"
9
10
  }
10
11
  export declare const noteOperations: INodeProperties[];