@howells/stow-server 0.6.0 → 0.7.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/dist/index.d.mts +49 -3
- package/dist/index.d.ts +49 -3
- package/dist/index.js +24 -0
- package/dist/index.mjs +24 -0
- package/package.json +10 -10
- package/LICENSE +0 -21
package/dist/index.d.mts
CHANGED
|
@@ -389,6 +389,8 @@ type FileIncludeField = "tags" | "taxonomies";
|
|
|
389
389
|
/** Input payload for text-based semantic search. */
|
|
390
390
|
interface TextSearchRequest {
|
|
391
391
|
bucket?: string;
|
|
392
|
+
/** File keys to exclude from results (e.g. already-seen items). Max 500. */
|
|
393
|
+
excludeKeys?: string[];
|
|
392
394
|
filters?: SearchFilters;
|
|
393
395
|
include?: SearchIncludeField[];
|
|
394
396
|
limit?: number;
|
|
@@ -457,7 +459,7 @@ interface SimilarSearchRequest {
|
|
|
457
459
|
clusterId?: string;
|
|
458
460
|
/** Blend multiple cluster centroids as query vector. Requires profileId. */
|
|
459
461
|
clusterIds?: string[];
|
|
460
|
-
/** File keys to exclude from results (e.g. already-seen items). Max
|
|
462
|
+
/** File keys to exclude from results (e.g. already-seen items). Max 500. */
|
|
461
463
|
excludeKeys?: string[];
|
|
462
464
|
/** Find files similar to this file key */
|
|
463
465
|
fileKey?: string;
|
|
@@ -480,7 +482,7 @@ interface DiverseSearchRequest {
|
|
|
480
482
|
clusterId?: string;
|
|
481
483
|
/** Blend multiple cluster centroids as query vector. Requires profileId. */
|
|
482
484
|
clusterIds?: string[];
|
|
483
|
-
/** File keys to exclude from results (e.g. already-seen items). Max
|
|
485
|
+
/** File keys to exclude from results (e.g. already-seen items). Max 500. */
|
|
484
486
|
excludeKeys?: string[];
|
|
485
487
|
/** Find diverse files seeded by this file key */
|
|
486
488
|
fileKey?: string;
|
|
@@ -525,8 +527,18 @@ interface SearchResultItem {
|
|
|
525
527
|
}>;
|
|
526
528
|
width?: number | null;
|
|
527
529
|
}
|
|
530
|
+
/** Which filter categories were active in the request. */
|
|
531
|
+
interface AppliedFilters {
|
|
532
|
+
color?: string[];
|
|
533
|
+
contentType?: string[];
|
|
534
|
+
metadata?: string[];
|
|
535
|
+
tags?: string[];
|
|
536
|
+
taxonomies?: string[];
|
|
537
|
+
taxonomyGroups?: string[];
|
|
538
|
+
}
|
|
528
539
|
/** Metadata describing server-side filter pruning. */
|
|
529
540
|
interface FilteredMetadata {
|
|
541
|
+
appliedFilters: AppliedFilters;
|
|
530
542
|
candidatesScanned: number;
|
|
531
543
|
requested: number;
|
|
532
544
|
returned: number;
|
|
@@ -542,6 +554,8 @@ interface ColorSearchRequest {
|
|
|
542
554
|
bucket?: string;
|
|
543
555
|
/** Only search the dominant (first) color per file */
|
|
544
556
|
dominantOnly?: boolean;
|
|
557
|
+
/** File keys to exclude from results (e.g. already-seen items). Max 500. */
|
|
558
|
+
excludeKeys?: string[];
|
|
545
559
|
/** Target color as hex (e.g. "#FF0000") */
|
|
546
560
|
hex?: string;
|
|
547
561
|
/** Max results (default 10, max 50) */
|
|
@@ -561,6 +575,7 @@ interface ColorSearchResultItem {
|
|
|
561
575
|
colorDistance: number;
|
|
562
576
|
contentType: string;
|
|
563
577
|
createdAt: string;
|
|
578
|
+
height: number | null;
|
|
564
579
|
id: string;
|
|
565
580
|
key: string;
|
|
566
581
|
matchedColor: {
|
|
@@ -573,11 +588,27 @@ interface ColorSearchResultItem {
|
|
|
573
588
|
position: number;
|
|
574
589
|
proportion: number;
|
|
575
590
|
};
|
|
591
|
+
width: number | null;
|
|
576
592
|
}
|
|
577
593
|
/** Result payload for color similarity search. */
|
|
578
594
|
interface ColorSearchResult {
|
|
579
595
|
results: ColorSearchResultItem[];
|
|
580
596
|
}
|
|
597
|
+
/** A taxonomy term within a group. */
|
|
598
|
+
interface TaxonomyTerm {
|
|
599
|
+
name: string;
|
|
600
|
+
slug: string;
|
|
601
|
+
}
|
|
602
|
+
/** A taxonomy group with its terms. */
|
|
603
|
+
interface TaxonomyGroup {
|
|
604
|
+
name: string;
|
|
605
|
+
slug: string;
|
|
606
|
+
taxonomies: TaxonomyTerm[];
|
|
607
|
+
}
|
|
608
|
+
/** Result payload for taxonomy listing. */
|
|
609
|
+
interface TaxonomyListResult {
|
|
610
|
+
groups: TaxonomyGroup[];
|
|
611
|
+
}
|
|
581
612
|
/** Server-side SDK client for Stow's API. */
|
|
582
613
|
declare class StowServer {
|
|
583
614
|
private readonly apiKey;
|
|
@@ -850,6 +881,21 @@ declare class StowServer {
|
|
|
850
881
|
removeTag(key: string, tagId: string, options?: {
|
|
851
882
|
bucket?: string;
|
|
852
883
|
}): Promise<void>;
|
|
884
|
+
/**
|
|
885
|
+
* Taxonomies namespace for discovering available taxonomy terms.
|
|
886
|
+
*
|
|
887
|
+
* @example
|
|
888
|
+
* ```typescript
|
|
889
|
+
* const { groups } = await stow.taxonomies.list();
|
|
890
|
+
* for (const group of groups) {
|
|
891
|
+
* console.log(group.slug, group.taxonomies.map(t => t.slug));
|
|
892
|
+
* }
|
|
893
|
+
* ```
|
|
894
|
+
*/
|
|
895
|
+
get taxonomies(): {
|
|
896
|
+
list: () => Promise<TaxonomyListResult>;
|
|
897
|
+
};
|
|
898
|
+
private listTaxonomies;
|
|
853
899
|
/**
|
|
854
900
|
* Search namespace for vector similarity search
|
|
855
901
|
*/
|
|
@@ -918,4 +964,4 @@ declare class StowServer {
|
|
|
918
964
|
private renameProfileCluster;
|
|
919
965
|
}
|
|
920
966
|
|
|
921
|
-
export { type BucketResult, type ColorSearchRequest, type ColorSearchResult, type ColorSearchResultItem, type ConfirmUploadRequest, type CreateBucketRequest, type DeleteProfileSignalsResult, type DiverseSearchRequest, type Drop, type DropResult, type FileColor, type FileColorProfile, type FileIncludeField, type FileResult, type FileTag, type FileTaxonomy, type FilteredMetadata, type ListBucketsResult, type ListDropsResult, type ListFilesItem, type ListFilesResult, type PresignDedupeResult, type PresignNewResult, type PresignRequest, type PresignResult, type ProfileClusterResult, type ProfileCreateRequest, type ProfileFilesResult, type ProfileResult, type ProfileSignalInput, type ProfileSignalResult, type ProfileSignalType, type ProfileSignalsResponse, type QueuedResult, type ReclusterRequest, type ReclusterResult, type RenameClusterRequest, type ReplaceResult, type SearchFilters, type SearchIncludeField, type SearchResultItem, type SimilarSearchRequest, type SimilarSearchResult, StowError, StowServer, type StowServerConfig, type TaskTriggerResult, type TextSearchRequest, type TransformOptions, type UpdateBucketRequest, type UploadResult, type WhoamiResult };
|
|
967
|
+
export { type AppliedFilters, type BucketResult, type ColorSearchRequest, type ColorSearchResult, type ColorSearchResultItem, type ConfirmUploadRequest, type CreateBucketRequest, type DeleteProfileSignalsResult, type DiverseSearchRequest, type Drop, type DropResult, type FileColor, type FileColorProfile, type FileIncludeField, type FileResult, type FileTag, type FileTaxonomy, type FilteredMetadata, type ListBucketsResult, type ListDropsResult, type ListFilesItem, type ListFilesResult, type PresignDedupeResult, type PresignNewResult, type PresignRequest, type PresignResult, type ProfileClusterResult, type ProfileCreateRequest, type ProfileFilesResult, type ProfileResult, type ProfileSignalInput, type ProfileSignalResult, type ProfileSignalType, type ProfileSignalsResponse, type QueuedResult, type ReclusterRequest, type ReclusterResult, type RenameClusterRequest, type ReplaceResult, type SearchFilters, type SearchIncludeField, type SearchResultItem, type SimilarSearchRequest, type SimilarSearchResult, StowError, StowServer, type StowServerConfig, type TaskTriggerResult, type TaxonomyGroup, type TaxonomyListResult, type TaxonomyTerm, type TextSearchRequest, type TransformOptions, type UpdateBucketRequest, type UploadResult, type WhoamiResult };
|
package/dist/index.d.ts
CHANGED
|
@@ -389,6 +389,8 @@ type FileIncludeField = "tags" | "taxonomies";
|
|
|
389
389
|
/** Input payload for text-based semantic search. */
|
|
390
390
|
interface TextSearchRequest {
|
|
391
391
|
bucket?: string;
|
|
392
|
+
/** File keys to exclude from results (e.g. already-seen items). Max 500. */
|
|
393
|
+
excludeKeys?: string[];
|
|
392
394
|
filters?: SearchFilters;
|
|
393
395
|
include?: SearchIncludeField[];
|
|
394
396
|
limit?: number;
|
|
@@ -457,7 +459,7 @@ interface SimilarSearchRequest {
|
|
|
457
459
|
clusterId?: string;
|
|
458
460
|
/** Blend multiple cluster centroids as query vector. Requires profileId. */
|
|
459
461
|
clusterIds?: string[];
|
|
460
|
-
/** File keys to exclude from results (e.g. already-seen items). Max
|
|
462
|
+
/** File keys to exclude from results (e.g. already-seen items). Max 500. */
|
|
461
463
|
excludeKeys?: string[];
|
|
462
464
|
/** Find files similar to this file key */
|
|
463
465
|
fileKey?: string;
|
|
@@ -480,7 +482,7 @@ interface DiverseSearchRequest {
|
|
|
480
482
|
clusterId?: string;
|
|
481
483
|
/** Blend multiple cluster centroids as query vector. Requires profileId. */
|
|
482
484
|
clusterIds?: string[];
|
|
483
|
-
/** File keys to exclude from results (e.g. already-seen items). Max
|
|
485
|
+
/** File keys to exclude from results (e.g. already-seen items). Max 500. */
|
|
484
486
|
excludeKeys?: string[];
|
|
485
487
|
/** Find diverse files seeded by this file key */
|
|
486
488
|
fileKey?: string;
|
|
@@ -525,8 +527,18 @@ interface SearchResultItem {
|
|
|
525
527
|
}>;
|
|
526
528
|
width?: number | null;
|
|
527
529
|
}
|
|
530
|
+
/** Which filter categories were active in the request. */
|
|
531
|
+
interface AppliedFilters {
|
|
532
|
+
color?: string[];
|
|
533
|
+
contentType?: string[];
|
|
534
|
+
metadata?: string[];
|
|
535
|
+
tags?: string[];
|
|
536
|
+
taxonomies?: string[];
|
|
537
|
+
taxonomyGroups?: string[];
|
|
538
|
+
}
|
|
528
539
|
/** Metadata describing server-side filter pruning. */
|
|
529
540
|
interface FilteredMetadata {
|
|
541
|
+
appliedFilters: AppliedFilters;
|
|
530
542
|
candidatesScanned: number;
|
|
531
543
|
requested: number;
|
|
532
544
|
returned: number;
|
|
@@ -542,6 +554,8 @@ interface ColorSearchRequest {
|
|
|
542
554
|
bucket?: string;
|
|
543
555
|
/** Only search the dominant (first) color per file */
|
|
544
556
|
dominantOnly?: boolean;
|
|
557
|
+
/** File keys to exclude from results (e.g. already-seen items). Max 500. */
|
|
558
|
+
excludeKeys?: string[];
|
|
545
559
|
/** Target color as hex (e.g. "#FF0000") */
|
|
546
560
|
hex?: string;
|
|
547
561
|
/** Max results (default 10, max 50) */
|
|
@@ -561,6 +575,7 @@ interface ColorSearchResultItem {
|
|
|
561
575
|
colorDistance: number;
|
|
562
576
|
contentType: string;
|
|
563
577
|
createdAt: string;
|
|
578
|
+
height: number | null;
|
|
564
579
|
id: string;
|
|
565
580
|
key: string;
|
|
566
581
|
matchedColor: {
|
|
@@ -573,11 +588,27 @@ interface ColorSearchResultItem {
|
|
|
573
588
|
position: number;
|
|
574
589
|
proportion: number;
|
|
575
590
|
};
|
|
591
|
+
width: number | null;
|
|
576
592
|
}
|
|
577
593
|
/** Result payload for color similarity search. */
|
|
578
594
|
interface ColorSearchResult {
|
|
579
595
|
results: ColorSearchResultItem[];
|
|
580
596
|
}
|
|
597
|
+
/** A taxonomy term within a group. */
|
|
598
|
+
interface TaxonomyTerm {
|
|
599
|
+
name: string;
|
|
600
|
+
slug: string;
|
|
601
|
+
}
|
|
602
|
+
/** A taxonomy group with its terms. */
|
|
603
|
+
interface TaxonomyGroup {
|
|
604
|
+
name: string;
|
|
605
|
+
slug: string;
|
|
606
|
+
taxonomies: TaxonomyTerm[];
|
|
607
|
+
}
|
|
608
|
+
/** Result payload for taxonomy listing. */
|
|
609
|
+
interface TaxonomyListResult {
|
|
610
|
+
groups: TaxonomyGroup[];
|
|
611
|
+
}
|
|
581
612
|
/** Server-side SDK client for Stow's API. */
|
|
582
613
|
declare class StowServer {
|
|
583
614
|
private readonly apiKey;
|
|
@@ -850,6 +881,21 @@ declare class StowServer {
|
|
|
850
881
|
removeTag(key: string, tagId: string, options?: {
|
|
851
882
|
bucket?: string;
|
|
852
883
|
}): Promise<void>;
|
|
884
|
+
/**
|
|
885
|
+
* Taxonomies namespace for discovering available taxonomy terms.
|
|
886
|
+
*
|
|
887
|
+
* @example
|
|
888
|
+
* ```typescript
|
|
889
|
+
* const { groups } = await stow.taxonomies.list();
|
|
890
|
+
* for (const group of groups) {
|
|
891
|
+
* console.log(group.slug, group.taxonomies.map(t => t.slug));
|
|
892
|
+
* }
|
|
893
|
+
* ```
|
|
894
|
+
*/
|
|
895
|
+
get taxonomies(): {
|
|
896
|
+
list: () => Promise<TaxonomyListResult>;
|
|
897
|
+
};
|
|
898
|
+
private listTaxonomies;
|
|
853
899
|
/**
|
|
854
900
|
* Search namespace for vector similarity search
|
|
855
901
|
*/
|
|
@@ -918,4 +964,4 @@ declare class StowServer {
|
|
|
918
964
|
private renameProfileCluster;
|
|
919
965
|
}
|
|
920
966
|
|
|
921
|
-
export { type BucketResult, type ColorSearchRequest, type ColorSearchResult, type ColorSearchResultItem, type ConfirmUploadRequest, type CreateBucketRequest, type DeleteProfileSignalsResult, type DiverseSearchRequest, type Drop, type DropResult, type FileColor, type FileColorProfile, type FileIncludeField, type FileResult, type FileTag, type FileTaxonomy, type FilteredMetadata, type ListBucketsResult, type ListDropsResult, type ListFilesItem, type ListFilesResult, type PresignDedupeResult, type PresignNewResult, type PresignRequest, type PresignResult, type ProfileClusterResult, type ProfileCreateRequest, type ProfileFilesResult, type ProfileResult, type ProfileSignalInput, type ProfileSignalResult, type ProfileSignalType, type ProfileSignalsResponse, type QueuedResult, type ReclusterRequest, type ReclusterResult, type RenameClusterRequest, type ReplaceResult, type SearchFilters, type SearchIncludeField, type SearchResultItem, type SimilarSearchRequest, type SimilarSearchResult, StowError, StowServer, type StowServerConfig, type TaskTriggerResult, type TextSearchRequest, type TransformOptions, type UpdateBucketRequest, type UploadResult, type WhoamiResult };
|
|
967
|
+
export { type AppliedFilters, type BucketResult, type ColorSearchRequest, type ColorSearchResult, type ColorSearchResultItem, type ConfirmUploadRequest, type CreateBucketRequest, type DeleteProfileSignalsResult, type DiverseSearchRequest, type Drop, type DropResult, type FileColor, type FileColorProfile, type FileIncludeField, type FileResult, type FileTag, type FileTaxonomy, type FilteredMetadata, type ListBucketsResult, type ListDropsResult, type ListFilesItem, type ListFilesResult, type PresignDedupeResult, type PresignNewResult, type PresignRequest, type PresignResult, type ProfileClusterResult, type ProfileCreateRequest, type ProfileFilesResult, type ProfileResult, type ProfileSignalInput, type ProfileSignalResult, type ProfileSignalType, type ProfileSignalsResponse, type QueuedResult, type ReclusterRequest, type ReclusterResult, type RenameClusterRequest, type ReplaceResult, type SearchFilters, type SearchIncludeField, type SearchResultItem, type SimilarSearchRequest, type SimilarSearchResult, StowError, StowServer, type StowServerConfig, type TaskTriggerResult, type TaxonomyGroup, type TaxonomyListResult, type TaxonomyTerm, type TextSearchRequest, type TransformOptions, type UpdateBucketRequest, type UploadResult, type WhoamiResult };
|
package/dist/index.js
CHANGED
|
@@ -908,6 +908,28 @@ var StowServer = class {
|
|
|
908
908
|
});
|
|
909
909
|
}
|
|
910
910
|
// ============================================================
|
|
911
|
+
// TAXONOMIES - Discover taxonomy groups and terms
|
|
912
|
+
// ============================================================
|
|
913
|
+
/**
|
|
914
|
+
* Taxonomies namespace for discovering available taxonomy terms.
|
|
915
|
+
*
|
|
916
|
+
* @example
|
|
917
|
+
* ```typescript
|
|
918
|
+
* const { groups } = await stow.taxonomies.list();
|
|
919
|
+
* for (const group of groups) {
|
|
920
|
+
* console.log(group.slug, group.taxonomies.map(t => t.slug));
|
|
921
|
+
* }
|
|
922
|
+
* ```
|
|
923
|
+
*/
|
|
924
|
+
get taxonomies() {
|
|
925
|
+
return {
|
|
926
|
+
list: () => this.listTaxonomies()
|
|
927
|
+
};
|
|
928
|
+
}
|
|
929
|
+
listTaxonomies() {
|
|
930
|
+
return this.request("/api/taxonomies", { method: "GET" });
|
|
931
|
+
}
|
|
932
|
+
// ============================================================
|
|
911
933
|
// SEARCH - Vector similarity search
|
|
912
934
|
// ============================================================
|
|
913
935
|
/**
|
|
@@ -969,6 +991,7 @@ var StowServer = class {
|
|
|
969
991
|
query: params.query,
|
|
970
992
|
...bucket ? { bucket } : {},
|
|
971
993
|
...params.limit ? { limit: params.limit } : {},
|
|
994
|
+
...params.excludeKeys?.length ? { excludeKeys: params.excludeKeys } : {},
|
|
972
995
|
...params.filters ? { filters: params.filters } : {},
|
|
973
996
|
...params.include?.length ? { include: params.include } : {}
|
|
974
997
|
})
|
|
@@ -984,6 +1007,7 @@ var StowServer = class {
|
|
|
984
1007
|
...params.oklab ? { oklab: params.oklab } : {},
|
|
985
1008
|
...bucket ? { bucket } : {},
|
|
986
1009
|
...params.limit ? { limit: params.limit } : {},
|
|
1010
|
+
...params.excludeKeys?.length ? { excludeKeys: params.excludeKeys } : {},
|
|
987
1011
|
...params.minProportion !== void 0 ? { minProportion: params.minProportion } : {},
|
|
988
1012
|
...params.dominantOnly ? { dominantOnly: params.dominantOnly } : {}
|
|
989
1013
|
})
|
package/dist/index.mjs
CHANGED
|
@@ -883,6 +883,28 @@ var StowServer = class {
|
|
|
883
883
|
});
|
|
884
884
|
}
|
|
885
885
|
// ============================================================
|
|
886
|
+
// TAXONOMIES - Discover taxonomy groups and terms
|
|
887
|
+
// ============================================================
|
|
888
|
+
/**
|
|
889
|
+
* Taxonomies namespace for discovering available taxonomy terms.
|
|
890
|
+
*
|
|
891
|
+
* @example
|
|
892
|
+
* ```typescript
|
|
893
|
+
* const { groups } = await stow.taxonomies.list();
|
|
894
|
+
* for (const group of groups) {
|
|
895
|
+
* console.log(group.slug, group.taxonomies.map(t => t.slug));
|
|
896
|
+
* }
|
|
897
|
+
* ```
|
|
898
|
+
*/
|
|
899
|
+
get taxonomies() {
|
|
900
|
+
return {
|
|
901
|
+
list: () => this.listTaxonomies()
|
|
902
|
+
};
|
|
903
|
+
}
|
|
904
|
+
listTaxonomies() {
|
|
905
|
+
return this.request("/api/taxonomies", { method: "GET" });
|
|
906
|
+
}
|
|
907
|
+
// ============================================================
|
|
886
908
|
// SEARCH - Vector similarity search
|
|
887
909
|
// ============================================================
|
|
888
910
|
/**
|
|
@@ -944,6 +966,7 @@ var StowServer = class {
|
|
|
944
966
|
query: params.query,
|
|
945
967
|
...bucket ? { bucket } : {},
|
|
946
968
|
...params.limit ? { limit: params.limit } : {},
|
|
969
|
+
...params.excludeKeys?.length ? { excludeKeys: params.excludeKeys } : {},
|
|
947
970
|
...params.filters ? { filters: params.filters } : {},
|
|
948
971
|
...params.include?.length ? { include: params.include } : {}
|
|
949
972
|
})
|
|
@@ -959,6 +982,7 @@ var StowServer = class {
|
|
|
959
982
|
...params.oklab ? { oklab: params.oklab } : {},
|
|
960
983
|
...bucket ? { bucket } : {},
|
|
961
984
|
...params.limit ? { limit: params.limit } : {},
|
|
985
|
+
...params.excludeKeys?.length ? { excludeKeys: params.excludeKeys } : {},
|
|
962
986
|
...params.minProportion !== void 0 ? { minProportion: params.minProportion } : {},
|
|
963
987
|
...params.dominantOnly ? { dominantOnly: params.dominantOnly } : {}
|
|
964
988
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@howells/stow-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Server-side SDK for Stow file storage",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,21 +29,21 @@
|
|
|
29
29
|
"files": [
|
|
30
30
|
"dist"
|
|
31
31
|
],
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "tsup src/index.ts --format cjs,esm --dts",
|
|
34
|
+
"dev": "tsup src/index.ts --format cjs,esm --dts --watch",
|
|
35
|
+
"test": "vitest run",
|
|
36
|
+
"test:watch": "vitest"
|
|
37
|
+
},
|
|
32
38
|
"peerDependencies": {
|
|
33
39
|
"zod": "^3.0.0 || ^4.0.0"
|
|
34
40
|
},
|
|
35
41
|
"devDependencies": {
|
|
42
|
+
"@stow/typescript-config": "workspace:*",
|
|
36
43
|
"@types/node": "^25.3.0",
|
|
37
44
|
"tsup": "^8.5.1",
|
|
38
45
|
"typescript": "^5.9.3",
|
|
39
46
|
"vitest": "^4.0.18",
|
|
40
|
-
"zod": "^4.3.6"
|
|
41
|
-
"@stow/typescript-config": "0.0.0"
|
|
42
|
-
},
|
|
43
|
-
"scripts": {
|
|
44
|
-
"build": "tsup src/index.ts --format cjs,esm --dts",
|
|
45
|
-
"dev": "tsup src/index.ts --format cjs,esm --dts --watch",
|
|
46
|
-
"test": "vitest run",
|
|
47
|
-
"test:watch": "vitest"
|
|
47
|
+
"zod": "^4.3.6"
|
|
48
48
|
}
|
|
49
|
-
}
|
|
49
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Stow
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|