extractia-sdk 1.0.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +986 -37
- package/build.js +20 -15
- package/dist/extractia-sdk.browser.js +210 -14
- package/dist/extractia-sdk.browser.js.map +3 -3
- package/dist/extractia-sdk.cjs.js +270 -14
- package/dist/extractia-sdk.cjs.js.map +3 -3
- package/dist/extractia-sdk.esm.js +270 -14
- package/dist/extractia-sdk.esm.js.map +3 -3
- package/dist/index.d.ts +746 -0
- package/package.json +18 -7
- package/src/analytics.js +46 -0
- package/src/apiClient.js +46 -22
- package/src/auth.js +14 -5
- package/src/browser-entry.js +8 -4
- package/src/documents.js +174 -12
- package/src/errors.js +95 -0
- package/src/index.d.ts +746 -0
- package/src/index.js +24 -8
- package/src/ocrTools.js +84 -0
- package/src/subusers.js +85 -0
- package/src/templates.js +59 -4
|
@@ -73,6 +73,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
73
73
|
// src/auth.js
|
|
74
74
|
var auth_exports = {};
|
|
75
75
|
__export(auth_exports, {
|
|
76
|
+
configure: () => configure,
|
|
76
77
|
getMyProfile: () => getMyProfile,
|
|
77
78
|
setToken: () => setToken,
|
|
78
79
|
updateWebhook: () => updateWebhook
|
|
@@ -2590,22 +2591,93 @@ var {
|
|
|
2590
2591
|
mergeConfig: mergeConfig2
|
|
2591
2592
|
} = axios_default;
|
|
2592
2593
|
|
|
2594
|
+
// src/errors.js
|
|
2595
|
+
var ExtractiaError = class extends Error {
|
|
2596
|
+
/** @param {string} message @param {number} status */
|
|
2597
|
+
constructor(message, status) {
|
|
2598
|
+
super(message);
|
|
2599
|
+
this.name = "ExtractiaError";
|
|
2600
|
+
this.status = status;
|
|
2601
|
+
}
|
|
2602
|
+
};
|
|
2603
|
+
var AuthError = class extends ExtractiaError {
|
|
2604
|
+
constructor(message = "Unauthorized. Check your API token.") {
|
|
2605
|
+
super(message, 401);
|
|
2606
|
+
this.name = "AuthError";
|
|
2607
|
+
}
|
|
2608
|
+
};
|
|
2609
|
+
var ForbiddenError = class extends ExtractiaError {
|
|
2610
|
+
constructor(message = "Forbidden. Insufficient permissions.") {
|
|
2611
|
+
super(message, 403);
|
|
2612
|
+
this.name = "ForbiddenError";
|
|
2613
|
+
}
|
|
2614
|
+
};
|
|
2615
|
+
var TierError = class extends ExtractiaError {
|
|
2616
|
+
constructor(message = "Tier limit reached. Upgrade your plan.", status = 402) {
|
|
2617
|
+
super(message, status);
|
|
2618
|
+
this.name = "TierError";
|
|
2619
|
+
}
|
|
2620
|
+
};
|
|
2621
|
+
var RateLimitError = class extends ExtractiaError {
|
|
2622
|
+
constructor(message = "Too many requests. Please slow down.") {
|
|
2623
|
+
super(message, 429);
|
|
2624
|
+
this.name = "RateLimitError";
|
|
2625
|
+
}
|
|
2626
|
+
};
|
|
2627
|
+
var NotFoundError = class extends ExtractiaError {
|
|
2628
|
+
constructor(message = "Resource not found.") {
|
|
2629
|
+
super(message, 404);
|
|
2630
|
+
this.name = "NotFoundError";
|
|
2631
|
+
}
|
|
2632
|
+
};
|
|
2633
|
+
function mapAxiosError(err) {
|
|
2634
|
+
var _a, _b;
|
|
2635
|
+
const status = (_a = err.response) == null ? void 0 : _a.status;
|
|
2636
|
+
const serverMessage = (_b = err.response) == null ? void 0 : _b.data;
|
|
2637
|
+
const detail = typeof serverMessage === "string" ? serverMessage : void 0;
|
|
2638
|
+
switch (status) {
|
|
2639
|
+
case 401:
|
|
2640
|
+
return new AuthError(detail);
|
|
2641
|
+
case 402:
|
|
2642
|
+
return new TierError(detail);
|
|
2643
|
+
case 403:
|
|
2644
|
+
return new ForbiddenError(detail);
|
|
2645
|
+
case 404:
|
|
2646
|
+
return new NotFoundError(detail);
|
|
2647
|
+
case 429:
|
|
2648
|
+
return new RateLimitError(detail);
|
|
2649
|
+
default:
|
|
2650
|
+
return new ExtractiaError(detail != null ? detail : err.message, status != null ? status : 0);
|
|
2651
|
+
}
|
|
2652
|
+
}
|
|
2653
|
+
|
|
2593
2654
|
// src/apiClient.js
|
|
2594
2655
|
var token = null;
|
|
2656
|
+
var DEFAULT_BASE_URL = "https://api.extractia.info/api/public";
|
|
2595
2657
|
var api = axios_default.create({
|
|
2596
|
-
baseURL:
|
|
2597
|
-
timeout:
|
|
2658
|
+
baseURL: DEFAULT_BASE_URL,
|
|
2659
|
+
timeout: 6e4
|
|
2660
|
+
// 60s — AI processing can take 10–30s
|
|
2598
2661
|
});
|
|
2599
2662
|
api.interceptors.request.use((config) => {
|
|
2600
2663
|
if (!token) {
|
|
2601
|
-
throw new Error(
|
|
2664
|
+
throw new Error(
|
|
2665
|
+
"API token is required. Call setToken(yourApiToken) before making requests."
|
|
2666
|
+
);
|
|
2602
2667
|
}
|
|
2603
2668
|
config.headers.Authorization = `Bearer ${token}`;
|
|
2604
2669
|
return config;
|
|
2605
2670
|
});
|
|
2671
|
+
api.interceptors.response.use(
|
|
2672
|
+
(response) => response,
|
|
2673
|
+
(err) => Promise.reject(mapAxiosError(err))
|
|
2674
|
+
);
|
|
2606
2675
|
function setToken(newToken) {
|
|
2607
2676
|
token = newToken;
|
|
2608
2677
|
}
|
|
2678
|
+
function configure({ baseURL } = {}) {
|
|
2679
|
+
if (baseURL) api.defaults.baseURL = baseURL;
|
|
2680
|
+
}
|
|
2609
2681
|
var apiClient_default = api;
|
|
2610
2682
|
|
|
2611
2683
|
// src/auth.js
|
|
@@ -2629,6 +2701,7 @@ __export(templates_exports, {
|
|
|
2629
2701
|
getTemplateById: () => getTemplateById,
|
|
2630
2702
|
getTemplateByName: () => getTemplateByName,
|
|
2631
2703
|
getTemplates: () => getTemplates,
|
|
2704
|
+
suggestFields: () => suggestFields,
|
|
2632
2705
|
updateTemplate: () => updateTemplate
|
|
2633
2706
|
});
|
|
2634
2707
|
async function getTemplates() {
|
|
@@ -2661,60 +2734,243 @@ async function deleteAllTemplateDocuments(id) {
|
|
|
2661
2734
|
const res = await apiClient_default.delete(`/templates/${id}/documents`);
|
|
2662
2735
|
return res.data;
|
|
2663
2736
|
}
|
|
2737
|
+
async function suggestFields(templateName, extractionContext = "") {
|
|
2738
|
+
const res = await apiClient_default.post("/templates/suggest-fields", {
|
|
2739
|
+
templateName,
|
|
2740
|
+
extractionContext
|
|
2741
|
+
});
|
|
2742
|
+
return res.data;
|
|
2743
|
+
}
|
|
2664
2744
|
|
|
2665
2745
|
// src/documents.js
|
|
2666
2746
|
var documents_exports = {};
|
|
2667
2747
|
__export(documents_exports, {
|
|
2748
|
+
bulkPreconform: () => bulkPreconform,
|
|
2668
2749
|
deleteDocument: () => deleteDocument,
|
|
2750
|
+
exportDocumentsCsv: () => exportDocumentsCsv,
|
|
2751
|
+
exportDocumentsJson: () => exportDocumentsJson,
|
|
2752
|
+
generateDocumentSummary: () => generateDocumentSummary,
|
|
2753
|
+
getDocumentById: () => getDocumentById,
|
|
2669
2754
|
getDocumentsByTemplateId: () => getDocumentsByTemplateId,
|
|
2755
|
+
getRecentDocuments: () => getRecentDocuments,
|
|
2670
2756
|
processImage: () => processImage,
|
|
2671
|
-
processImagesMultipage: () => processImagesMultipage
|
|
2757
|
+
processImagesMultipage: () => processImagesMultipage,
|
|
2758
|
+
updateDocumentData: () => updateDocumentData,
|
|
2759
|
+
updateDocumentNotes: () => updateDocumentNotes,
|
|
2760
|
+
updateDocumentStatus: () => updateDocumentStatus
|
|
2672
2761
|
});
|
|
2673
2762
|
async function getDocumentsByTemplateId(templateId, options = {}) {
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
includeImage: options.includeImage ? 1 : 0
|
|
2680
|
-
};
|
|
2763
|
+
const params = {};
|
|
2764
|
+
if (options.preconformed != null) params.preconformed = options.preconformed;
|
|
2765
|
+
if (options.index != null) params.index = options.index;
|
|
2766
|
+
if (options.sort != null) params.sort = options.sort;
|
|
2767
|
+
params.includeImage = options.includeImage ? 1 : 0;
|
|
2681
2768
|
const res = await apiClient_default.get(`/templates/${templateId}/documents`, { params });
|
|
2682
2769
|
return res.data;
|
|
2683
2770
|
}
|
|
2771
|
+
async function getDocumentById(templateId, docId, options = {}) {
|
|
2772
|
+
const params = { includeImage: options.includeImage ? 1 : 0 };
|
|
2773
|
+
const res = await apiClient_default.get(`/templates/${templateId}/documents/${docId}`, {
|
|
2774
|
+
params
|
|
2775
|
+
});
|
|
2776
|
+
return res.data;
|
|
2777
|
+
}
|
|
2778
|
+
async function getRecentDocuments(size = 10) {
|
|
2779
|
+
const res = await apiClient_default.get("/documents/recent", {
|
|
2780
|
+
params: { size: Math.min(size, 50) }
|
|
2781
|
+
});
|
|
2782
|
+
return res.data;
|
|
2783
|
+
}
|
|
2684
2784
|
async function deleteDocument(documentId) {
|
|
2685
2785
|
const res = await apiClient_default.delete(`/documents/${documentId}`);
|
|
2686
2786
|
return res.data;
|
|
2687
2787
|
}
|
|
2688
2788
|
async function processImage(templateId, base64Image) {
|
|
2689
|
-
const res = await apiClient_default.post(`/
|
|
2789
|
+
const res = await apiClient_default.post(`/templates/${templateId}/process`, {
|
|
2690
2790
|
image: base64Image
|
|
2691
2791
|
});
|
|
2692
2792
|
return res.data;
|
|
2693
2793
|
}
|
|
2694
2794
|
async function processImagesMultipage(templateId, base64ImagesArray) {
|
|
2695
|
-
const res = await apiClient_default.post(`/
|
|
2795
|
+
const res = await apiClient_default.post(`/templates/${templateId}/process-multipage`, {
|
|
2696
2796
|
images: base64ImagesArray
|
|
2697
2797
|
});
|
|
2698
2798
|
return res.data;
|
|
2699
2799
|
}
|
|
2800
|
+
async function generateDocumentSummary(docId) {
|
|
2801
|
+
const res = await apiClient_default.post(`/documents/${docId}/summary`);
|
|
2802
|
+
return res.data;
|
|
2803
|
+
}
|
|
2804
|
+
async function updateDocumentStatus(docId, status) {
|
|
2805
|
+
const res = await apiClient_default.put(`/documents/${docId}/status`, { status });
|
|
2806
|
+
return res.data;
|
|
2807
|
+
}
|
|
2808
|
+
async function updateDocumentNotes(docId, notes) {
|
|
2809
|
+
const res = await apiClient_default.put(`/documents/${docId}/notes`, { notes });
|
|
2810
|
+
return res.data;
|
|
2811
|
+
}
|
|
2812
|
+
async function updateDocumentData(docId, data, options = {}) {
|
|
2813
|
+
var _a;
|
|
2814
|
+
const res = await apiClient_default.put(`/documents/${docId}/data`, {
|
|
2815
|
+
data,
|
|
2816
|
+
preconformed: (_a = options.preconformed) != null ? _a : false
|
|
2817
|
+
});
|
|
2818
|
+
return res.data;
|
|
2819
|
+
}
|
|
2820
|
+
async function bulkPreconform(ids) {
|
|
2821
|
+
const res = await apiClient_default.post("/documents/bulk-preconform", { ids });
|
|
2822
|
+
return res.data;
|
|
2823
|
+
}
|
|
2824
|
+
async function exportDocumentsCsv(templateId, options = {}) {
|
|
2825
|
+
const params = {};
|
|
2826
|
+
if (options.fields && options.fields.length > 0)
|
|
2827
|
+
params.fields = options.fields.join(",");
|
|
2828
|
+
const res = await apiClient_default.get(`/templates/${templateId}/documents/export/csv`, {
|
|
2829
|
+
params,
|
|
2830
|
+
responseType: "text"
|
|
2831
|
+
});
|
|
2832
|
+
return res.data;
|
|
2833
|
+
}
|
|
2834
|
+
async function exportDocumentsJson(templateId) {
|
|
2835
|
+
const res = await apiClient_default.get(`/templates/${templateId}/documents/export/json`);
|
|
2836
|
+
return res.data;
|
|
2837
|
+
}
|
|
2838
|
+
|
|
2839
|
+
// src/analytics.js
|
|
2840
|
+
var analytics_exports = {};
|
|
2841
|
+
__export(analytics_exports, {
|
|
2842
|
+
getCreditsBalance: () => getCreditsBalance,
|
|
2843
|
+
getCreditsHistory: () => getCreditsHistory,
|
|
2844
|
+
getDocumentHistory: () => getDocumentHistory
|
|
2845
|
+
});
|
|
2846
|
+
async function getCreditsBalance() {
|
|
2847
|
+
const res = await apiClient_default.get("/me/credits");
|
|
2848
|
+
return res.data;
|
|
2849
|
+
}
|
|
2850
|
+
async function getCreditsHistory({ page = 0, size = 20 } = {}) {
|
|
2851
|
+
const res = await apiClient_default.get("/me/credits/history", {
|
|
2852
|
+
params: { page, size: Math.min(size, 100) }
|
|
2853
|
+
});
|
|
2854
|
+
return res.data;
|
|
2855
|
+
}
|
|
2856
|
+
async function getDocumentHistory({ page = 0, size = 20 } = {}) {
|
|
2857
|
+
const res = await apiClient_default.get("/me/documents/history", {
|
|
2858
|
+
params: { page, size: Math.min(size, 100) }
|
|
2859
|
+
});
|
|
2860
|
+
return res.data;
|
|
2861
|
+
}
|
|
2862
|
+
|
|
2863
|
+
// src/ocrTools.js
|
|
2864
|
+
var ocrTools_exports = {};
|
|
2865
|
+
__export(ocrTools_exports, {
|
|
2866
|
+
createOcrTool: () => createOcrTool,
|
|
2867
|
+
deleteOcrTool: () => deleteOcrTool,
|
|
2868
|
+
getOcrTools: () => getOcrTools,
|
|
2869
|
+
runOcrTool: () => runOcrTool,
|
|
2870
|
+
updateOcrTool: () => updateOcrTool
|
|
2871
|
+
});
|
|
2872
|
+
async function getOcrTools() {
|
|
2873
|
+
const res = await apiClient_default.get("/ocr-tools");
|
|
2874
|
+
return res.data;
|
|
2875
|
+
}
|
|
2876
|
+
async function createOcrTool(config) {
|
|
2877
|
+
const res = await apiClient_default.post("/ocr-tools", config);
|
|
2878
|
+
return res.data;
|
|
2879
|
+
}
|
|
2880
|
+
async function updateOcrTool(id, config) {
|
|
2881
|
+
const res = await apiClient_default.put(`/ocr-tools/${id}`, config);
|
|
2882
|
+
return res.data;
|
|
2883
|
+
}
|
|
2884
|
+
async function deleteOcrTool(id) {
|
|
2885
|
+
const res = await apiClient_default.delete(`/ocr-tools/${id}`);
|
|
2886
|
+
return res.data;
|
|
2887
|
+
}
|
|
2888
|
+
async function runOcrTool(id, base64Image, options = {}) {
|
|
2889
|
+
const body = { image: base64Image };
|
|
2890
|
+
if (options.params && Object.keys(options.params).length > 0) {
|
|
2891
|
+
body.params = options.params;
|
|
2892
|
+
}
|
|
2893
|
+
const res = await apiClient_default.post(`/ocr-tools/${id}/run`, body);
|
|
2894
|
+
return res.data;
|
|
2895
|
+
}
|
|
2896
|
+
|
|
2897
|
+
// src/subusers.js
|
|
2898
|
+
var subusers_exports = {};
|
|
2899
|
+
__export(subusers_exports, {
|
|
2900
|
+
createSubUser: () => createSubUser,
|
|
2901
|
+
deleteSubUser: () => deleteSubUser,
|
|
2902
|
+
getSubUsers: () => getSubUsers,
|
|
2903
|
+
toggleSuspendSubUser: () => toggleSuspendSubUser,
|
|
2904
|
+
updateSubUser: () => updateSubUser
|
|
2905
|
+
});
|
|
2906
|
+
async function getSubUsers() {
|
|
2907
|
+
const res = await apiClient_default.get("/me/subusers");
|
|
2908
|
+
return res.data;
|
|
2909
|
+
}
|
|
2910
|
+
async function createSubUser({ username, password, permissions }) {
|
|
2911
|
+
const res = await apiClient_default.post("/me/subusers", { username, password, permissions });
|
|
2912
|
+
return res.data;
|
|
2913
|
+
}
|
|
2914
|
+
async function deleteSubUser(username) {
|
|
2915
|
+
const res = await apiClient_default.delete(`/me/subusers/${encodeURIComponent(username)}`);
|
|
2916
|
+
return res.data;
|
|
2917
|
+
}
|
|
2918
|
+
async function updateSubUser(username, updates = {}) {
|
|
2919
|
+
const res = await apiClient_default.put(`/me/subusers/${encodeURIComponent(username)}`, updates);
|
|
2920
|
+
return res.data;
|
|
2921
|
+
}
|
|
2922
|
+
async function toggleSuspendSubUser(username) {
|
|
2923
|
+
const res = await apiClient_default.put(`/me/subusers/${encodeURIComponent(username)}/suspend`);
|
|
2924
|
+
return res.data;
|
|
2925
|
+
}
|
|
2700
2926
|
|
|
2701
2927
|
// src/index.js
|
|
2702
|
-
var extractia = __spreadValues(__spreadValues(__spreadValues({}, auth_exports), templates_exports), documents_exports);
|
|
2928
|
+
var extractia = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, auth_exports), templates_exports), documents_exports), analytics_exports), ocrTools_exports), subusers_exports);
|
|
2703
2929
|
var index_default = extractia;
|
|
2704
2930
|
export {
|
|
2931
|
+
AuthError,
|
|
2932
|
+
ExtractiaError,
|
|
2933
|
+
ForbiddenError,
|
|
2934
|
+
NotFoundError,
|
|
2935
|
+
RateLimitError,
|
|
2936
|
+
TierError,
|
|
2937
|
+
bulkPreconform,
|
|
2938
|
+
configure,
|
|
2939
|
+
createOcrTool,
|
|
2940
|
+
createSubUser,
|
|
2705
2941
|
createTemplate,
|
|
2706
2942
|
index_default as default,
|
|
2707
2943
|
deleteAllTemplateDocuments,
|
|
2708
2944
|
deleteDocument,
|
|
2945
|
+
deleteOcrTool,
|
|
2946
|
+
deleteSubUser,
|
|
2709
2947
|
deleteTemplate,
|
|
2948
|
+
exportDocumentsCsv,
|
|
2949
|
+
exportDocumentsJson,
|
|
2950
|
+
generateDocumentSummary,
|
|
2951
|
+
getCreditsBalance,
|
|
2952
|
+
getCreditsHistory,
|
|
2953
|
+
getDocumentById,
|
|
2954
|
+
getDocumentHistory,
|
|
2710
2955
|
getDocumentsByTemplateId,
|
|
2711
2956
|
getMyProfile,
|
|
2957
|
+
getOcrTools,
|
|
2958
|
+
getRecentDocuments,
|
|
2959
|
+
getSubUsers,
|
|
2712
2960
|
getTemplateById,
|
|
2713
2961
|
getTemplateByName,
|
|
2714
2962
|
getTemplates,
|
|
2715
2963
|
processImage,
|
|
2716
2964
|
processImagesMultipage,
|
|
2965
|
+
runOcrTool,
|
|
2717
2966
|
setToken,
|
|
2967
|
+
suggestFields,
|
|
2968
|
+
toggleSuspendSubUser,
|
|
2969
|
+
updateDocumentData,
|
|
2970
|
+
updateDocumentNotes,
|
|
2971
|
+
updateDocumentStatus,
|
|
2972
|
+
updateOcrTool,
|
|
2973
|
+
updateSubUser,
|
|
2718
2974
|
updateTemplate,
|
|
2719
2975
|
updateWebhook
|
|
2720
2976
|
};
|