@pdfvector/instance-contract 0.0.20 → 0.0.22
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/.tsc/lib/router/free/bank-statement-parse.d.ts +15 -0
- package/.tsc/lib/router/free/bank-statement-parse.js +94 -0
- package/.tsc/lib/router/free/generate-schema.d.ts +7 -0
- package/.tsc/lib/router/free/generate-schema.js +110 -0
- package/.tsc/lib/router/free/index.d.ts +4 -0
- package/.tsc/lib/router/free/index.js +4 -0
- package/.tsc/lib/router/free/publication-pdf-url.d.ts +11 -0
- package/.tsc/lib/router/free/publication-pdf-url.js +86 -0
- package/.tsc/lib/router/free/rate-limit-status.d.ts +18 -0
- package/.tsc/lib/router/free/rate-limit-status.js +36 -0
- package/.tsc/lib/router/index.d.ts +1 -0
- package/.tsc/lib/router/index.js +1 -0
- package/CHANGELOG.md +14 -0
- package/package.json +20 -2
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const bankStatementParse: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
3
|
+
url: z.ZodOptional<z.ZodURL>;
|
|
4
|
+
file: z.ZodOptional<z.ZodFile>;
|
|
5
|
+
base64: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
7
|
+
markdown: z.ZodString;
|
|
8
|
+
pageCount: z.ZodNumber;
|
|
9
|
+
model: z.ZodEnum<{
|
|
10
|
+
pro: "pro";
|
|
11
|
+
max: "max";
|
|
12
|
+
}>;
|
|
13
|
+
requestId: z.ZodNumber;
|
|
14
|
+
html: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { oc } from "@orpc/contract";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const inputSchema = z.object({
|
|
4
|
+
url: z
|
|
5
|
+
.url()
|
|
6
|
+
.optional()
|
|
7
|
+
.describe("URL of the bank statement file to fetch and parse"),
|
|
8
|
+
file: z
|
|
9
|
+
.file()
|
|
10
|
+
.mime([
|
|
11
|
+
"application/pdf",
|
|
12
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
13
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
14
|
+
"text/csv",
|
|
15
|
+
"application/csv",
|
|
16
|
+
"image/png",
|
|
17
|
+
"image/jpeg",
|
|
18
|
+
])
|
|
19
|
+
.optional()
|
|
20
|
+
.describe("Bank statement file upload via multipart form-data (PDF, DOCX, XLSX, CSV, PNG, JPG)"),
|
|
21
|
+
base64: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Base64-encoded bank statement file content"),
|
|
25
|
+
});
|
|
26
|
+
const outputSchema = z.object({
|
|
27
|
+
markdown: z
|
|
28
|
+
.string()
|
|
29
|
+
.describe("Extracted text content from the bank statement"),
|
|
30
|
+
pageCount: z.number().int().describe("Total number of pages in the document"),
|
|
31
|
+
model: z
|
|
32
|
+
.enum(["pro", "max"])
|
|
33
|
+
.describe("Model tier used to parse the bank statement"),
|
|
34
|
+
requestId: z
|
|
35
|
+
.number()
|
|
36
|
+
.int()
|
|
37
|
+
.describe("Unique request identifier for this API call"),
|
|
38
|
+
html: z
|
|
39
|
+
.string()
|
|
40
|
+
.optional()
|
|
41
|
+
.describe("Full HTML representation of the document content"),
|
|
42
|
+
});
|
|
43
|
+
const requestExamples = {
|
|
44
|
+
"Parse from URL": {
|
|
45
|
+
summary: "Parse from URL",
|
|
46
|
+
value: {
|
|
47
|
+
url: "https://raw.githubusercontent.com/aws-samples/textract-bank-statement-processor/main/Statement20230428.pdf",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
"Parse from base64": {
|
|
51
|
+
summary: "Parse from base64",
|
|
52
|
+
value: {
|
|
53
|
+
base64: "JVBERi0xLjAKMSAwIG9iajw8L1R5cGUvQ2F0YWxvZy9QYWdlcyAyIDAgUj4+ZW5kb2JqIDIgMCBvYmo8PC9UeXBlL1BhZ2VzL0tpZHNbMyAwIFJdL0NvdW50IDE+PmVuZG9iaiAzIDAgb2JqPDwvVHlwZS9QYWdlL01lZGlhQm94WzAgMCAzIDNdL1BhcmVudCAyIDAgUj4+ZW5kb2JqCnhyZWYKMCA0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDU4IDAwMDAwIG4gCjAwMDAwMDAxMTUgMDAwMDAgbiAKdHJhaWxlcjw8L1NpemUgNC9Sb290IDEgMCBSPj4Kc3RhcnR4cmVmCjE5MAolJUVPRg==",
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
"Parse from file upload": {
|
|
57
|
+
summary: "Parse from file upload",
|
|
58
|
+
value: {
|
|
59
|
+
file: "(binary)",
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
const responseExample = {
|
|
64
|
+
markdown: "## Bank Statement\n\n### Account Information\n\n| Field | Value |\n|-------|-------|\n| Bank Name | Example Bank |\n| Account Number | ****1234 |\n| Statement Start Date | 2023-03-01 |\n| Statement End Date | 2023-03-31 |\n| Beginning Balance | $5,432.10 |\n| Ending Balance | $4,891.55 |\n\n### Transactions\n\n| Date | Description | Deposit Amount | Withdrawal Amount |\n| --- | --- | --- | --- |\n| 2023-03-05 | Direct Deposit - Payroll | $3,200.00 | |\n| 2023-03-08 | Online Transfer Out | | $500.00 |\n| 2023-03-15 | Grocery Store | | $142.35 |",
|
|
65
|
+
pageCount: 2,
|
|
66
|
+
model: "max",
|
|
67
|
+
requestId: 42,
|
|
68
|
+
html: "<p>Full HTML content...</p>",
|
|
69
|
+
};
|
|
70
|
+
export const bankStatementParse = oc
|
|
71
|
+
.route({
|
|
72
|
+
summary: "Free: Parse a bank statement",
|
|
73
|
+
description: "Extract text and structured data from a bank statement. Supports PDF, Word, Excel, CSV, and Image files. Free tier: max 5 pages, max 5 MB. Rate limited to 5 requests per IP per day.",
|
|
74
|
+
tags: ["Free"],
|
|
75
|
+
spec: (op) => {
|
|
76
|
+
op.security = [];
|
|
77
|
+
const reqBody = op.requestBody;
|
|
78
|
+
if (reqBody?.content) {
|
|
79
|
+
for (const mediaType of Object.values(reqBody.content)) {
|
|
80
|
+
mediaType.examples = requestExamples;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const responses = op.responses;
|
|
84
|
+
const okResponse = responses?.["200"];
|
|
85
|
+
if (okResponse?.content) {
|
|
86
|
+
for (const mediaType of Object.values(okResponse.content)) {
|
|
87
|
+
mediaType.example = responseExample;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return op;
|
|
91
|
+
},
|
|
92
|
+
})
|
|
93
|
+
.input(inputSchema)
|
|
94
|
+
.output(outputSchema);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const generateSchema: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
3
|
+
instruction: z.ZodString;
|
|
4
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
5
|
+
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
6
|
+
requestId: z.ZodNumber;
|
|
7
|
+
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { oc } from "@orpc/contract";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const inputSchema = z.object({
|
|
4
|
+
instruction: z
|
|
5
|
+
.string()
|
|
6
|
+
.min(10, "Instruction must be at least 10 characters")
|
|
7
|
+
.max(2000, "Instruction must be at most 2000 characters")
|
|
8
|
+
.describe("Describe the data you want to extract, e.g. 'Extract vendor name, total amount, and line items from an invoice'"),
|
|
9
|
+
});
|
|
10
|
+
const outputSchema = z.object({
|
|
11
|
+
schema: z
|
|
12
|
+
.record(z.string(), z.unknown())
|
|
13
|
+
.describe("Generated JSON Schema for structured data extraction"),
|
|
14
|
+
requestId: z
|
|
15
|
+
.number()
|
|
16
|
+
.int()
|
|
17
|
+
.describe("Unique request identifier for this API call"),
|
|
18
|
+
});
|
|
19
|
+
const requestExamples = {
|
|
20
|
+
"Invoice extraction": {
|
|
21
|
+
summary: "Generate schema for invoice extraction",
|
|
22
|
+
value: {
|
|
23
|
+
instruction: "Extract vendor name, total amount, invoice date, and line items from an invoice",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
"Resume parsing": {
|
|
27
|
+
summary: "Generate schema for resume parsing",
|
|
28
|
+
value: {
|
|
29
|
+
instruction: "Extract name, email, phone number, work experience, and education from a resume",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
"Receipt data": {
|
|
33
|
+
summary: "Generate schema for receipt data",
|
|
34
|
+
value: {
|
|
35
|
+
instruction: "Extract store name, date, items purchased with prices, subtotal, tax, and total from a receipt",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const responseExample = {
|
|
40
|
+
schema: {
|
|
41
|
+
type: "object",
|
|
42
|
+
description: "Extracted data from an invoice document.",
|
|
43
|
+
properties: {
|
|
44
|
+
vendor_name: {
|
|
45
|
+
type: "string",
|
|
46
|
+
description: "The name of the vendor or supplier.",
|
|
47
|
+
},
|
|
48
|
+
total_amount: {
|
|
49
|
+
type: "number",
|
|
50
|
+
description: "The total amount due on the invoice.",
|
|
51
|
+
},
|
|
52
|
+
invoice_date: {
|
|
53
|
+
type: "string",
|
|
54
|
+
description: "The date the invoice was issued (YYYY-MM-DD).",
|
|
55
|
+
},
|
|
56
|
+
line_items: {
|
|
57
|
+
type: "array",
|
|
58
|
+
description: "Individual items listed on the invoice.",
|
|
59
|
+
items: {
|
|
60
|
+
type: "object",
|
|
61
|
+
properties: {
|
|
62
|
+
description: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "Description of the item.",
|
|
65
|
+
},
|
|
66
|
+
quantity: { type: "number", description: "Quantity ordered." },
|
|
67
|
+
unit_price: {
|
|
68
|
+
type: "number",
|
|
69
|
+
description: "Price per unit.",
|
|
70
|
+
},
|
|
71
|
+
total: {
|
|
72
|
+
type: "number",
|
|
73
|
+
description: "Total price for this line item.",
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
required: ["description", "quantity", "unit_price", "total"],
|
|
77
|
+
additionalProperties: false,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
required: ["vendor_name", "total_amount", "invoice_date", "line_items"],
|
|
82
|
+
additionalProperties: false,
|
|
83
|
+
},
|
|
84
|
+
requestId: 42,
|
|
85
|
+
};
|
|
86
|
+
export const generateSchema = oc
|
|
87
|
+
.route({
|
|
88
|
+
summary: "Free: Generate a JSON Schema",
|
|
89
|
+
description: "Generate a JSON Schema from a natural language instruction. Use the resulting schema with the /extract endpoints to pull structured data from documents. Rate limited to 10 requests per IP per day.",
|
|
90
|
+
tags: ["Free"],
|
|
91
|
+
spec: (op) => {
|
|
92
|
+
op.security = [];
|
|
93
|
+
const reqBody = op.requestBody;
|
|
94
|
+
if (reqBody?.content) {
|
|
95
|
+
for (const mediaType of Object.values(reqBody.content)) {
|
|
96
|
+
mediaType.examples = requestExamples;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const responses = op.responses;
|
|
100
|
+
const okResponse = responses?.["200"];
|
|
101
|
+
if (okResponse?.content) {
|
|
102
|
+
for (const mediaType of Object.values(okResponse.content)) {
|
|
103
|
+
mediaType.example = responseExample;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return op;
|
|
107
|
+
},
|
|
108
|
+
})
|
|
109
|
+
.input(inputSchema)
|
|
110
|
+
.output(outputSchema);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const publicationPdfUrl: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
3
|
+
ids: z.ZodArray<z.ZodString>;
|
|
4
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
5
|
+
results: z.ZodArray<z.ZodObject<{
|
|
6
|
+
id: z.ZodString;
|
|
7
|
+
pdfUrl: z.ZodOptional<z.ZodString>;
|
|
8
|
+
title: z.ZodOptional<z.ZodString>;
|
|
9
|
+
}, z.core.$strip>>;
|
|
10
|
+
requestId: z.ZodNumber;
|
|
11
|
+
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { oc } from "@orpc/contract";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const inputSchema = z.object({
|
|
4
|
+
ids: z
|
|
5
|
+
.array(z.string().min(1, "Each ID must be a non-empty string"), {
|
|
6
|
+
message: "ids is required and must be an array of strings",
|
|
7
|
+
})
|
|
8
|
+
.min(1, "ids must contain at least 1 identifier")
|
|
9
|
+
.max(20, "ids must contain at most 20 identifiers")
|
|
10
|
+
.describe("Publication identifiers: DOI (e.g. 10.1371/journal.pone.0185809), PubMed ID (e.g. 33116299), ArXiv ID (e.g. 1706.03762), or other supported format"),
|
|
11
|
+
});
|
|
12
|
+
const resultSchema = z.object({
|
|
13
|
+
id: z.string().describe("The input publication identifier"),
|
|
14
|
+
pdfUrl: z
|
|
15
|
+
.string()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe("Direct URL to the publication PDF, if available"),
|
|
18
|
+
title: z.string().optional().describe("Title of the publication"),
|
|
19
|
+
});
|
|
20
|
+
const outputSchema = z.object({
|
|
21
|
+
results: z.array(resultSchema).describe("Results for each input ID"),
|
|
22
|
+
requestId: z
|
|
23
|
+
.number()
|
|
24
|
+
.int()
|
|
25
|
+
.describe("Unique request identifier for this API call"),
|
|
26
|
+
});
|
|
27
|
+
const requestExamples = {
|
|
28
|
+
"Single ArXiv ID": {
|
|
29
|
+
summary: "Get PDF URL for an ArXiv paper",
|
|
30
|
+
value: {
|
|
31
|
+
ids: ["1706.03762"],
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
"Multiple IDs": {
|
|
35
|
+
summary: "Batch lookup with mixed identifier types",
|
|
36
|
+
value: {
|
|
37
|
+
ids: ["1706.03762", "33116299", "10.1371/journal.pone.0185809"],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
"Single PubMed ID": {
|
|
41
|
+
summary: "Get PDF URL for a PubMed paper",
|
|
42
|
+
value: {
|
|
43
|
+
ids: ["33116299"],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
const responseExample = {
|
|
48
|
+
results: [
|
|
49
|
+
{
|
|
50
|
+
id: "1706.03762",
|
|
51
|
+
pdfUrl: "https://arxiv.org/pdf/1706.03762v7",
|
|
52
|
+
title: "Attention Is All You Need",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "33116299",
|
|
56
|
+
pdfUrl: "https://www.nature.com/articles/s41586-020-2901-9.pdf",
|
|
57
|
+
title: "Identification of SARS-CoV-2 inhibitors using lung and colonic organoids",
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
requestId: 42,
|
|
61
|
+
};
|
|
62
|
+
export const publicationPdfUrl = oc
|
|
63
|
+
.route({
|
|
64
|
+
summary: "Free: Get publication PDF URL",
|
|
65
|
+
description: "Look up publications by DOI, PubMed ID, ArXiv ID, or other identifiers and return their PDF URLs if available. Accepts up to 20 IDs per request. Rate limited to 20 requests per IP per day.",
|
|
66
|
+
tags: ["Free"],
|
|
67
|
+
spec: (op) => {
|
|
68
|
+
op.security = [];
|
|
69
|
+
const reqBody = op.requestBody;
|
|
70
|
+
if (reqBody?.content) {
|
|
71
|
+
for (const mediaType of Object.values(reqBody.content)) {
|
|
72
|
+
mediaType.examples = requestExamples;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const responses = op.responses;
|
|
76
|
+
const okResponse = responses?.["200"];
|
|
77
|
+
if (okResponse?.content) {
|
|
78
|
+
for (const mediaType of Object.values(okResponse.content)) {
|
|
79
|
+
mediaType.example = responseExample;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return op;
|
|
83
|
+
},
|
|
84
|
+
})
|
|
85
|
+
.input(inputSchema)
|
|
86
|
+
.output(outputSchema);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const rateLimitStatus: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, z.ZodObject<{
|
|
3
|
+
bankStatementParse: z.ZodObject<{
|
|
4
|
+
limit: z.ZodNumber;
|
|
5
|
+
used: z.ZodNumber;
|
|
6
|
+
remaining: z.ZodNumber;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
generateSchema: z.ZodObject<{
|
|
9
|
+
limit: z.ZodNumber;
|
|
10
|
+
used: z.ZodNumber;
|
|
11
|
+
remaining: z.ZodNumber;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
publicationPdfUrl: z.ZodObject<{
|
|
14
|
+
limit: z.ZodNumber;
|
|
15
|
+
used: z.ZodNumber;
|
|
16
|
+
remaining: z.ZodNumber;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { oc } from "@orpc/contract";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const limitSchema = z.object({
|
|
4
|
+
limit: z.number().int().describe("Maximum requests allowed per day"),
|
|
5
|
+
used: z.number().int().describe("Requests used today"),
|
|
6
|
+
remaining: z.number().int().describe("Requests remaining today"),
|
|
7
|
+
});
|
|
8
|
+
const outputSchema = z.object({
|
|
9
|
+
bankStatementParse: limitSchema.describe("Bank statement parse limits"),
|
|
10
|
+
generateSchema: limitSchema.describe("JSON schema generator limits"),
|
|
11
|
+
publicationPdfUrl: limitSchema.describe("Publication PDF URL lookup limits"),
|
|
12
|
+
});
|
|
13
|
+
const responseExample = {
|
|
14
|
+
bankStatementParse: { limit: 5, used: 2, remaining: 3 },
|
|
15
|
+
generateSchema: { limit: 10, used: 0, remaining: 10 },
|
|
16
|
+
publicationPdfUrl: { limit: 20, used: 5, remaining: 15 },
|
|
17
|
+
};
|
|
18
|
+
export const rateLimitStatus = oc
|
|
19
|
+
.route({
|
|
20
|
+
method: "GET",
|
|
21
|
+
summary: "Free: Get rate limit status",
|
|
22
|
+
description: "Check the remaining rate limit for all free API endpoints. Limits are per IP and reset daily at midnight UTC.",
|
|
23
|
+
tags: ["Free"],
|
|
24
|
+
spec: (op) => {
|
|
25
|
+
op.security = [];
|
|
26
|
+
const responses = op.responses;
|
|
27
|
+
const okResponse = responses?.["200"];
|
|
28
|
+
if (okResponse?.content) {
|
|
29
|
+
for (const mediaType of Object.values(okResponse.content)) {
|
|
30
|
+
mediaType.example = responseExample;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return op;
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
.output(outputSchema);
|
|
@@ -3,5 +3,6 @@ export * as admin from "./admin";
|
|
|
3
3
|
export * as authenticate from "./authenticate";
|
|
4
4
|
export * as bankStatement from "./bankStatement";
|
|
5
5
|
export * as document from "./document";
|
|
6
|
+
export * as free from "./free";
|
|
6
7
|
export * as identity from "./identity";
|
|
7
8
|
export * as invoice from "./invoice";
|
package/.tsc/lib/router/index.js
CHANGED
|
@@ -3,5 +3,6 @@ export * as admin from "./admin";
|
|
|
3
3
|
export * as authenticate from "./authenticate";
|
|
4
4
|
export * as bankStatement from "./bankStatement";
|
|
5
5
|
export * as document from "./document";
|
|
6
|
+
export * as free from "./free";
|
|
6
7
|
export * as identity from "./identity";
|
|
7
8
|
export * as invoice from "./invoice";
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @pdfvector/instance-contract
|
|
2
2
|
|
|
3
|
+
## 0.0.22
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
- [#126](https://github.com/phuctm97/pdfvector/pull/126) [`9f3db7d`](https://github.com/phuctm97/pdfvector/commit/9f3db7d4114169d2dff0f83cad7bf87e054e9206) Thanks [@khanhduyvt0101](https://github.com/khanhduyvt0101)! - Enhance instance client as publishable PDFVector SDK
|
|
9
|
+
|
|
10
|
+
## 0.0.21
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
- [#125](https://github.com/phuctm97/pdfvector/pull/125) [`0eac9b7`](https://github.com/phuctm97/pdfvector/commit/0eac9b7afdbe9b8a41933fd1f92e48da51fb4480) Thanks [@khanhduyvt0101](https://github.com/khanhduyvt0101)! - Add free public APIs with IP rate limiting and interactive tool pages
|
|
16
|
+
|
|
3
17
|
## 0.0.20
|
|
4
18
|
### Patch Changes
|
|
5
19
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pdfvector/instance-contract",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"description": "API contract definitions for PDFVector instance server",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/phuctm97/pdfvector",
|
|
10
|
+
"directory": "packages/instance-contract"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"pdfvector",
|
|
14
|
+
"api",
|
|
15
|
+
"contract",
|
|
16
|
+
"orpc"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
5
21
|
"main": ".tsc/lib/index.js",
|
|
6
22
|
"dependencies": {
|
|
7
|
-
"@orpc/contract": "^1.13.13"
|
|
23
|
+
"@orpc/contract": "^1.13.13"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
8
26
|
"zod": "^4.3.6"
|
|
9
27
|
},
|
|
10
28
|
"files": [
|