@dinilmusick/gutts 0.1.3 → 1.1.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.
Files changed (112) hide show
  1. package/.krusbl-release-attestation.json +3 -3
  2. package/README.md +15 -6
  3. package/dist/api/api-registry.d.ts +4 -0
  4. package/dist/api/api-registry.d.ts.map +1 -0
  5. package/dist/api/api-registry.js +26 -0
  6. package/dist/api/api-registry.js.map +1 -0
  7. package/dist/api/api-types.d.ts +37 -0
  8. package/dist/api/api-types.d.ts.map +1 -0
  9. package/dist/api/api-types.js +2 -0
  10. package/dist/api/api-types.js.map +1 -0
  11. package/dist/api/array-apis.d.ts +3 -0
  12. package/dist/api/array-apis.d.ts.map +1 -0
  13. package/dist/api/array-apis.js +11 -0
  14. package/dist/api/array-apis.js.map +1 -0
  15. package/dist/api/define-api.d.ts +3 -0
  16. package/dist/api/define-api.d.ts.map +1 -0
  17. package/dist/api/define-api.js +22 -0
  18. package/dist/api/define-api.js.map +1 -0
  19. package/dist/api/fod-node-provider.d.ts +27 -0
  20. package/dist/api/fod-node-provider.d.ts.map +1 -0
  21. package/dist/api/fod-node-provider.js +13 -0
  22. package/dist/api/fod-node-provider.js.map +1 -0
  23. package/dist/api/fod-node-provider.test.d.ts +2 -0
  24. package/dist/api/fod-node-provider.test.d.ts.map +1 -0
  25. package/dist/api/fod-node-provider.test.js +14 -0
  26. package/dist/api/fod-node-provider.test.js.map +1 -0
  27. package/dist/api/fod-runtime.d.ts +2 -0
  28. package/dist/api/fod-runtime.d.ts.map +1 -0
  29. package/dist/api/fod-runtime.js +28 -0
  30. package/dist/api/fod-runtime.js.map +1 -0
  31. package/dist/api/index.d.ts +6 -0
  32. package/dist/api/index.d.ts.map +1 -0
  33. package/dist/api/index.js +5 -0
  34. package/dist/api/index.js.map +1 -0
  35. package/dist/api/json-apis.d.ts +3 -0
  36. package/dist/api/json-apis.d.ts.map +1 -0
  37. package/dist/api/json-apis.js +9 -0
  38. package/dist/api/json-apis.js.map +1 -0
  39. package/dist/api/number-apis.d.ts +3 -0
  40. package/dist/api/number-apis.d.ts.map +1 -0
  41. package/dist/api/number-apis.js +9 -0
  42. package/dist/api/number-apis.js.map +1 -0
  43. package/dist/api/object-apis.d.ts +3 -0
  44. package/dist/api/object-apis.d.ts.map +1 -0
  45. package/dist/api/object-apis.js +8 -0
  46. package/dist/api/object-apis.js.map +1 -0
  47. package/dist/api/string-apis.d.ts +3 -0
  48. package/dist/api/string-apis.d.ts.map +1 -0
  49. package/dist/api/string-apis.js +16 -0
  50. package/dist/api/string-apis.js.map +1 -0
  51. package/dist/api/url-apis.d.ts +3 -0
  52. package/dist/api/url-apis.d.ts.map +1 -0
  53. package/dist/api/url-apis.js +9 -0
  54. package/dist/api/url-apis.js.map +1 -0
  55. package/dist/index.d.ts +2 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +2 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/models/ettin/index.d.ts +115 -0
  60. package/dist/models/ettin/index.d.ts.map +1 -0
  61. package/dist/models/ettin/index.js +62 -0
  62. package/dist/models/ettin/index.js.map +1 -0
  63. package/dist/models/index.d.ts +10 -0
  64. package/dist/models/index.d.ts.map +1 -0
  65. package/dist/models/index.js +9 -0
  66. package/dist/models/index.js.map +1 -0
  67. package/dist/models/minilm/index.d.ts +39 -0
  68. package/dist/models/minilm/index.d.ts.map +1 -0
  69. package/dist/models/minilm/index.js +41 -0
  70. package/dist/models/minilm/index.js.map +1 -0
  71. package/dist/models/model-library.d.ts +10 -0
  72. package/dist/models/model-library.d.ts.map +1 -0
  73. package/dist/models/model-library.js +14 -0
  74. package/dist/models/model-library.js.map +1 -0
  75. package/dist/models/model-registry.d.ts +4 -0
  76. package/dist/models/model-registry.d.ts.map +1 -0
  77. package/dist/models/model-registry.js +17 -0
  78. package/dist/models/model-registry.js.map +1 -0
  79. package/dist/models/model-residency.d.ts +11 -0
  80. package/dist/models/model-residency.d.ts.map +1 -0
  81. package/dist/models/model-residency.js +49 -0
  82. package/dist/models/model-residency.js.map +1 -0
  83. package/dist/models/model-types.d.ts +45 -0
  84. package/dist/models/model-types.d.ts.map +1 -0
  85. package/dist/models/model-types.js +2 -0
  86. package/dist/models/model-types.js.map +1 -0
  87. package/dist/models/needle3/index.d.ts +43 -0
  88. package/dist/models/needle3/index.d.ts.map +1 -0
  89. package/dist/models/needle3/index.js +44 -0
  90. package/dist/models/needle3/index.js.map +1 -0
  91. package/dist/models/runtimes/cactus.d.ts +6 -0
  92. package/dist/models/runtimes/cactus.d.ts.map +1 -0
  93. package/dist/models/runtimes/cactus.js +41 -0
  94. package/dist/models/runtimes/cactus.js.map +1 -0
  95. package/dist/models/runtimes/ettin-head.d.ts +13 -0
  96. package/dist/models/runtimes/ettin-head.d.ts.map +1 -0
  97. package/dist/models/runtimes/ettin-head.js +88 -0
  98. package/dist/models/runtimes/ettin-head.js.map +1 -0
  99. package/dist/models/runtimes/transformers.d.ts +8 -0
  100. package/dist/models/runtimes/transformers.d.ts.map +1 -0
  101. package/dist/models/runtimes/transformers.js +141 -0
  102. package/dist/models/runtimes/transformers.js.map +1 -0
  103. package/dist/models/smollm2/index.d.ts +39 -0
  104. package/dist/models/smollm2/index.d.ts.map +1 -0
  105. package/dist/models/smollm2/index.js +42 -0
  106. package/dist/models/smollm2/index.js.map +1 -0
  107. package/dist/models/whistle/index.d.ts +38 -0
  108. package/dist/models/whistle/index.d.ts.map +1 -0
  109. package/dist/models/whistle/index.js +40 -0
  110. package/dist/models/whistle/index.js.map +1 -0
  111. package/gutts.manifest.json +7 -3
  112. package/package.json +15 -2
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema": 1,
3
3
  "packageName": "@dinilmusick/gutts",
4
- "version": "0.1.3",
5
- "sourceCommit": "fb764da79b3f26ace25790dd4bd1552b386364e4",
4
+ "version": "1.1.0",
5
+ "sourceCommit": "25fe2f36405852cc7344365cdbdf458f9f788168",
6
6
  "releaseWorkflow": "npm Release",
7
- "workflowRunId": "39788971878"
7
+ "workflowRunId": "40941611934"
8
8
  }
package/README.md CHANGED
@@ -4,23 +4,32 @@ Gut stands for Global Utilities. Gut is the aggregate library for the very basic
4
4
 
5
5
  ## Structure
6
6
 
7
- Each category is a directory with a `<category>-concepts.ts` facade. The facade re-exports small implementation files containing focused functions and category-owned shared types.
7
+ Each category is a directory with a stable facade. GutTS contains both deterministic utilities and narrowly scoped model-backed libraries.
8
8
 
9
- Current categories: JSON, strings, arrays, objects, numbers, and URLs.
9
+ Current categories: JSON, strings, arrays, objects, numbers, URLs, API definitions, and model libraries.
10
+
11
+ ## Model libraries
12
+
13
+ Every model is a named library with its own metadata, semantic API definitions, and runtime lifecycle.
14
+
15
+ Models include SmolLM2-135M-Instruct for general text generation, Needle 3 for tool selection and extraction, Whistle for speech-to-text, Ettin Reranker for candidate ranking, and MiniLM for semantic similarity.
16
+
17
+ Model weights are not bundled into the GutTS npm package. A model runtime acquires them when an operation needs the model and may cache the artifact on disk. ModelResidency keeps the model in RAM only while operations are active, shares one loaded instance for concurrent calls in the same process, and unloads it when the final operation completes.
18
+
19
+ GutTS does not contain a resolver, intelligence specification, or application-level routing system. Model metadata describes when a model is appropriate; selecting among models remains the responsibility of higher-level application logic.
10
20
 
11
21
  ## Library policy
12
22
 
13
23
  GutTS is an aggregation layer, not a collection of reimplemented utility algorithms.
14
24
 
15
25
  - Prefer mature, widely adopted, well-maintained libraries when they provide the required primitive.
16
- - Current third-party utility dependencies are Lodash ES modules for general-purpose collections/string/number/object operations and Validator for email validation.
17
- - JSON and URL operations use the platform's native implementations because `JSON` and `URL` are established runtime primitives rather than functionality that benefits from another abstraction.
18
- - Keep GutTS wrappers small and stable; do not duplicate the implementation of the underlying library.
26
+ - Keep wrappers small and stable.
19
27
  - Keep application/domain-specific behavior out of GutTS.
28
+ - Model runtimes are adapters: model artifacts and execution engines remain replaceable without changing the named model API.
20
29
 
21
30
  ## Design rules
22
31
 
23
32
  - Prefer small, composable functions.
24
33
  - Keep category facades stable.
25
34
  - Keep shared types beside the category that owns them.
26
- - Add regression tests for every public utility family.
35
+ - Add regression tests for every public utility family and model lifecycle guarantee.
@@ -0,0 +1,4 @@
1
+ import type { ApiDefinition } from "./api-types.js";
2
+ export declare const guttsApiDefinitions: readonly ApiDefinition[];
3
+ export declare const guttsApiById: Readonly<Record<string, ApiDefinition>>;
4
+ //# sourceMappingURL=api-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-registry.d.ts","sourceRoot":"","sources":["../../src/api/api-registry.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,mBAAmB,EAAE,SAAS,aAAa,EAYtD,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAEhE,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { arrayApis } from "./array-apis.js";
2
+ import { jsonApis } from "./json-apis.js";
3
+ import { numberApis } from "./number-apis.js";
4
+ import { objectApis } from "./object-apis.js";
5
+ import { stringApis } from "./string-apis.js";
6
+ import { urlApis } from "./url-apis.js";
7
+ import { needle3CompleteApi } from "../models/needle3/index.js";
8
+ import { smolLM2GenerateApi } from "../models/smollm2/index.js";
9
+ import { whistleTranscribeApi } from "../models/whistle/index.js";
10
+ import { ettinRerankApi } from "../models/ettin/index.js";
11
+ import { miniLMSimilarityApi } from "../models/minilm/index.js";
12
+ export const guttsApiDefinitions = Object.freeze([
13
+ ...arrayApis,
14
+ ...jsonApis,
15
+ ...numberApis,
16
+ ...objectApis,
17
+ ...stringApis,
18
+ ...urlApis,
19
+ smolLM2GenerateApi,
20
+ needle3CompleteApi,
21
+ whistleTranscribeApi,
22
+ ettinRerankApi,
23
+ miniLMSimilarityApi,
24
+ ]);
25
+ export const guttsApiById = Object.freeze(Object.fromEntries(guttsApiDefinitions.map((api) => [api.id, api])));
26
+ //# sourceMappingURL=api-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-registry.js","sourceRoot":"","sources":["../../src/api/api-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;AAG9D,MAAM,CAAC,MAAM,mBAAmB,GAA6B,MAAM,CAAC,MAAM,CAAC;IACzE,GAAG,SAAS;IACZ,GAAG,QAAQ;IACX,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,OAAO;IACV,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAA4C,MAAM,CAAC,MAAM,CAChF,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CACpE,CAAC"}
@@ -0,0 +1,37 @@
1
+ export type JsonSchema = {
2
+ type?: string;
3
+ description?: string;
4
+ properties?: Record<string, JsonSchema>;
5
+ items?: JsonSchema;
6
+ required?: string[];
7
+ additionalProperties?: boolean;
8
+ enum?: readonly (string | number | boolean | null)[];
9
+ };
10
+ export type ApiParameter = {
11
+ name: string;
12
+ description: string;
13
+ required: boolean;
14
+ schema: JsonSchema;
15
+ };
16
+ export type ApiSemantics = {
17
+ deterministic: boolean;
18
+ pure: boolean;
19
+ sideEffects: boolean;
20
+ };
21
+ export type ApiExample = {
22
+ input: Record<string, unknown>;
23
+ output: unknown;
24
+ };
25
+ export type ApiDefinition = {
26
+ id: string;
27
+ name: string;
28
+ category: string;
29
+ description: string;
30
+ parameters: readonly ApiParameter[];
31
+ output: JsonSchema;
32
+ semantics: ApiSemantics;
33
+ errors?: readonly string[];
34
+ examples?: readonly ApiExample[];
35
+ inputSchema: JsonSchema;
36
+ };
37
+ //# sourceMappingURL=api-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../src/api/api-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACjC,WAAW,EAAE,UAAU,CAAC;CACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-types.js","sourceRoot":"","sources":["../../src/api/api-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefinition } from "./api-types.js";
2
+ export declare const arrayApis: readonly ApiDefinition[];
3
+ //# sourceMappingURL=array-apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-apis.d.ts","sourceRoot":"","sources":["../../src/api/array-apis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAKlD,eAAO,MAAM,SAAS,EAAE,SAAS,aAAa,EAM7C,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { defineApi } from "./define-api.js";
2
+ const array = { type: "array" };
3
+ const integer = { type: "integer" };
4
+ export const arrayApis = [
5
+ defineApi({ id: "gutts.arrays.compact", name: "compact", category: "arrays", description: "Removes null and undefined values from an array while preserving the remaining values and their order.", parameters: [{ name: "values", description: "The array whose nullish elements should be removed.", required: true, schema: array }], output: { type: "array", description: "The array without null or undefined elements." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
6
+ defineApi({ id: "gutts.arrays.unique", name: "unique", category: "arrays", description: "Removes duplicate values from an array while preserving the first occurrence of each value.", parameters: [{ name: "values", description: "The array from which duplicate values should be removed.", required: true, schema: array }], output: { type: "array", description: "The array containing only the first occurrence of each value." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
7
+ defineApi({ id: "gutts.arrays.chunk", name: "chunk", category: "arrays", description: "Splits an array into consecutive subarrays of the requested maximum size.", parameters: [{ name: "values", description: "The array to split into chunks.", required: true, schema: array }, { name: "size", description: "The positive integer maximum number of elements in each chunk.", required: true, schema: integer }], output: { type: "array", items: array, description: "An array of consecutive subarrays." }, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws RangeError when size is not a positive integer."] }),
8
+ defineApi({ id: "gutts.arrays.flatten", name: "flatten", category: "arrays", description: "Flattens one level of nested arrays into a single array.", parameters: [{ name: "values", description: "The array containing values or one-level nested arrays.", required: true, schema: array }], output: { type: "array", description: "The flattened array." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
9
+ defineApi({ id: "gutts.arrays.last", name: "last", category: "arrays", description: "Returns the final element of an array, or undefined when the array is empty.", parameters: [{ name: "values", description: "The array whose final element should be returned.", required: true, schema: array }], output: { description: "The final array element, or undefined for an empty array." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
10
+ ];
11
+ //# sourceMappingURL=array-apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-apis.js","sourceRoot":"","sources":["../../src/api/array-apis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefinition } from "./api-types.js";
2
+ export declare function defineApi(definition: Omit<ApiDefinition, "inputSchema">): ApiDefinition;
3
+ //# sourceMappingURL=define-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-api.d.ts","sourceRoot":"","sources":["../../src/api/define-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAEhE,wBAAgB,SAAS,CACvB,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAC7C,aAAa,CAuBf"}
@@ -0,0 +1,22 @@
1
+ export function defineApi(definition) {
2
+ const properties = Object.fromEntries(definition.parameters.map((parameter) => [
3
+ parameter.name,
4
+ {
5
+ ...parameter.schema,
6
+ description: parameter.description,
7
+ },
8
+ ]));
9
+ return Object.freeze({
10
+ ...definition,
11
+ inputSchema: {
12
+ type: "object",
13
+ description: `Arguments for ${definition.name}.`,
14
+ properties,
15
+ required: definition.parameters
16
+ .filter((parameter) => parameter.required)
17
+ .map((parameter) => parameter.name),
18
+ additionalProperties: false,
19
+ },
20
+ });
21
+ }
22
+ //# sourceMappingURL=define-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-api.js","sourceRoot":"","sources":["../../src/api/define-api.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,UAA8C;IAE9C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;QACvC,SAAS,CAAC,IAAI;QACd;YACE,GAAG,SAAS,CAAC,MAAM;YACnB,WAAW,EAAE,SAAS,CAAC,WAAW;SACnC;KACF,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,UAAU;QACb,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iBAAiB,UAAU,CAAC,IAAI,GAAG;YAChD,UAAU;YACV,QAAQ,EAAE,UAAU,CAAC,UAAU;iBAC5B,MAAM,CAAC,CAAC,SAAuB,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;iBACvD,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;YACrC,oBAAoB,EAAE,KAAK;SAC5B;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { ApiDefinition, JsonSchema } from './api-types.js';
2
+ export interface GuttsFodPort {
3
+ id: string;
4
+ name: string;
5
+ direction: 'input' | 'output';
6
+ dataType: string;
7
+ required?: boolean;
8
+ description?: string;
9
+ schema?: JsonSchema;
10
+ }
11
+ export interface GuttsFodNodeDefinition {
12
+ type: string;
13
+ label: string;
14
+ description: string;
15
+ category: 'gutts';
16
+ group: string;
17
+ inputs: GuttsFodPort[];
18
+ outputs: GuttsFodPort[];
19
+ metadata: {
20
+ apiId: string;
21
+ package: string;
22
+ semantics: ApiDefinition['semantics'];
23
+ };
24
+ }
25
+ export declare function guttsApiToFodNode(api: ApiDefinition): GuttsFodNodeDefinition;
26
+ export declare const guttsFodNodeDefinitions: readonly GuttsFodNodeDefinition[];
27
+ //# sourceMappingURL=fod-node-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fod-node-provider.d.ts","sourceRoot":"","sources":["../../src/api/fod-node-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,YAAY;IAAE,EAAE,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,OAAO,GAAC,QAAQ,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,EAAC,OAAO,CAAC;IAAA,WAAW,CAAC,EAAC,MAAM,CAAC;IAAA,MAAM,CAAC,EAAC,UAAU,CAAC;CAAC;AAC1J,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,MAAM,CAAC;IAAA,WAAW,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,OAAO,CAAC;IAAA,KAAK,EAAC,MAAM,CAAC;IAC1E,MAAM,EAAC,YAAY,EAAE,CAAC;IAAA,OAAO,EAAC,YAAY,EAAE,CAAC;IAC7C,QAAQ,EAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,aAAa,CAAC,WAAW,CAAC,CAAA;KAAC,CAAC;CAC7E;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAC,aAAa,GAAE,sBAAsB,CAQ1E;AAED,eAAO,MAAM,uBAAuB,EAAC,SAAS,sBAAsB,EAA4D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { guttsApiDefinitions } from './api-registry.js';
2
+ const schemaType = (schema) => String(schema?.type ?? 'any');
3
+ export function guttsApiToFodNode(api) {
4
+ return {
5
+ type: `gutts/${api.id}`, label: api.name, description: api.description, category: 'gutts',
6
+ group: api.category,
7
+ inputs: api.parameters.map(parameter => ({ id: parameter.name, name: parameter.name, direction: 'input', dataType: schemaType(parameter.schema), required: parameter.required, description: parameter.description, schema: parameter.schema })),
8
+ outputs: [{ id: 'result', name: 'result', direction: 'output', dataType: schemaType(api.output), ...(api.output.description ? { description: api.output.description } : {}), schema: api.output }],
9
+ metadata: { apiId: api.id, package: '@dinilmusick/gutts', semantics: api.semantics }
10
+ };
11
+ }
12
+ export const guttsFodNodeDefinitions = Object.freeze(guttsApiDefinitions.map(guttsApiToFodNode));
13
+ //# sourceMappingURL=fod-node-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fod-node-provider.js","sourceRoot":"","sources":["../../src/api/fod-node-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAUtD,MAAM,UAAU,GAAC,CAAC,MAA2B,EAAC,EAAE,CAAA,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC;AAE9E,MAAM,UAAU,iBAAiB,CAAC,GAAiB;IACjD,OAAO;QACL,IAAI,EAAC,SAAS,GAAG,CAAC,EAAE,EAAE,EAAC,KAAK,EAAC,GAAG,CAAC,IAAI,EAAC,WAAW,EAAC,GAAG,CAAC,WAAW,EAAC,QAAQ,EAAC,OAAO;QAClF,KAAK,EAAC,GAAG,CAAC,QAAQ;QAClB,MAAM,EAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAA,EAAE,CAAA,CAAC,EAAC,EAAE,EAAC,SAAS,CAAC,IAAI,EAAC,IAAI,EAAC,SAAS,CAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAC,SAAS,CAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,CAAC,WAAW,EAAC,MAAM,EAAC,SAAS,CAAC,MAAM,EAAC,CAAC,CAAC;QAC7N,OAAO,EAAC,CAAC,EAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAC,WAAW,EAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,MAAM,EAAC,GAAG,CAAC,MAAM,EAAC,CAAC;QAClL,QAAQ,EAAC,EAAC,KAAK,EAAC,GAAG,CAAC,EAAE,EAAC,OAAO,EAAC,oBAAoB,EAAC,SAAS,EAAC,GAAG,CAAC,SAAS,EAAC;KAC7E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAmC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fod-node-provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fod-node-provider.test.d.ts","sourceRoot":"","sources":["../../src/api/fod-node-provider.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { guttsFodNodeDefinitions } from './fod-node-provider.js';
3
+ import { executeGuttsApi } from './fod-runtime.js';
4
+ describe('GutTS FOD node provider', () => {
5
+ it('exposes every published API definition as a grouped node', () => {
6
+ expect(guttsFodNodeDefinitions.length).toBeGreaterThan(20);
7
+ expect(new Set(guttsFodNodeDefinitions.map(node => node.group))).toEqual(new Set(['arrays', 'json', 'numbers', 'objects', 'strings', 'urls', 'models']));
8
+ });
9
+ it('executes deterministic utility APIs through the same registry IDs', async () => {
10
+ await expect(executeGuttsApi('gutts.numbers.sum', { values: [1, 2, 3] })).resolves.toBe(6);
11
+ await expect(executeGuttsApi('gutts.strings.camelCase', { value: 'hello world' })).resolves.toBe('helloWorld');
12
+ });
13
+ });
14
+ //# sourceMappingURL=fod-node-provider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fod-node-provider.test.js","sourceRoot":"","sources":["../../src/api/fod-node-provider.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,QAAQ,CAAC,yBAAyB,EAAC,GAAE,EAAE;IACrC,EAAE,CAAC,0DAA0D,EAAC,GAAE,EAAE;QAChE,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mEAAmE,EAAC,KAAK,IAAE,EAAE;QAC9E,MAAM,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAC,EAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,CAAC,eAAe,CAAC,yBAAyB,EAAC,EAAC,KAAK,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function executeGuttsApi(apiId: string, input: Record<string, unknown>): Promise<unknown>;
2
+ //# sourceMappingURL=fod-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fod-runtime.d.ts","sourceRoot":"","sources":["../../src/api/fod-runtime.ts"],"names":[],"mappings":"AAoBA,wBAAsB,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,GAAE,OAAO,CAAC,OAAO,CAAC,CAMhG"}
@@ -0,0 +1,28 @@
1
+ import { guttsApiById } from './api-registry.js';
2
+ import { compact, unique, chunk, flatten, last } from '../arrays/array-operations.js';
3
+ import { isJsonValue, parseJson, tryParseJson, stringifyJson } from '../json/json-concepts.js';
4
+ import { clamp, inRange, roundTo, isFiniteNumber, sum } from '../numbers/number-operations.js';
5
+ import { hasOwn, pick, omit, isPlainObject } from '../objects/object-operations.js';
6
+ import { isBlank, isNonBlank, isEmail, startsWithAny, endsWithAny } from '../strings/string-predicates.js';
7
+ import { capitalize, camelCase, kebabCase, snakeCase, truncate } from '../strings/string-transform.js';
8
+ import { truncateWords } from '../strings/string-truncate-words.js';
9
+ import { isUrl, joinUrl, getQueryParam, setQueryParam } from '../urls/url-operations.js';
10
+ const utilityFunctions = {
11
+ compact: i => compact(i.values), unique: i => unique(i.values), chunk: i => chunk(i.values, i.size), flatten: i => flatten(i.values), last: i => last(i.values),
12
+ isJsonValue: i => isJsonValue(i.value), parseJson: i => parseJson(i.text), tryParseJson: i => tryParseJson(i.text), stringifyJson: i => stringifyJson(i.value, i.space),
13
+ clamp: i => clamp(i.value, i.min, i.max), inRange: i => inRange(i.value, i.min, i.max), roundTo: i => roundTo(i.value, i.decimals), isFiniteNumber: i => isFiniteNumber(i.value), sum: i => sum(i.values),
14
+ hasOwn: i => hasOwn(i.value, i.key), pick: i => pick(i.value, i.keys), omit: i => omit(i.value, i.keys), isPlainObject: i => isPlainObject(i.value),
15
+ isBlank: i => isBlank(i.value), isNonBlank: i => isNonBlank(i.value), isEmail: i => isEmail(i.value), startsWithAny: i => startsWithAny(i.value, i.prefixes), endsWithAny: i => endsWithAny(i.value, i.suffixes),
16
+ capitalize: i => capitalize(i.value), camelCase: i => camelCase(i.value), kebabCase: i => kebabCase(i.value), snakeCase: i => snakeCase(i.value), truncate: i => truncate(i.value, i.maxLength, i.suffix), truncateWords: i => truncateWords(i.value, i.maxWords, i.suffix),
17
+ isUrl: i => isUrl(i.value), joinUrl: i => joinUrl(i.base, ...i.parts), getQueryParam: i => getQueryParam(i.url, i.key), setQueryParam: i => setQueryParam(i.url, i.key, i.value)
18
+ };
19
+ export async function executeGuttsApi(apiId, input) {
20
+ const api = guttsApiById[apiId];
21
+ if (!api)
22
+ throw new Error(`Unknown GutTS API '${apiId}'.`);
23
+ const fn = utilityFunctions[api.name];
24
+ if (!fn)
25
+ throw new Error(`GutTS API '${apiId}' has metadata but no embedded runtime adapter.`);
26
+ return await fn(input);
27
+ }
28
+ //# sourceMappingURL=fod-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fod-runtime.js","sourceRoot":"","sources":["../../src/api/fod-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type { ApiDefinition, ApiExample, ApiParameter, ApiSemantics, JsonSchema } from "./api-types.js";
2
+ export { defineApi } from "./define-api.js";
3
+ export { guttsApiDefinitions, guttsApiById } from "./api-registry.js";
4
+ export { guttsFodNodeDefinitions, guttsApiToFodNode } from './fod-node-provider.js';
5
+ export { executeGuttsApi } from './fod-runtime.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,mBAAmB,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAC,uBAAuB,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { defineApi } from "./define-api.js";
2
+ export { guttsApiDefinitions, guttsApiById } from "./api-registry.js";
3
+ export { guttsFodNodeDefinitions, guttsApiToFodNode } from './fod-node-provider.js';
4
+ export { executeGuttsApi } from './fod-runtime.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,mBAAmB,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAC,uBAAuB,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefinition } from "./api-types.js";
2
+ export declare const jsonApis: readonly ApiDefinition[];
3
+ //# sourceMappingURL=json-apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-apis.d.ts","sourceRoot":"","sources":["../../src/api/json-apis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAIlD,eAAO,MAAM,QAAQ,EAAE,SAAS,aAAa,EAK5C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { defineApi } from "./define-api.js";
2
+ const json = { type: "object", description: "A JSON-compatible value." };
3
+ export const jsonApis = [
4
+ defineApi({ id: "gutts.json.isJsonValue", name: "isJsonValue", category: "json", description: "Checks whether an unknown value can be represented as a finite JSON value.", parameters: [{ name: "value", description: "The value to validate as JSON-compatible data.", required: true, schema: {} }], output: { type: "boolean", description: "True when the value is a valid JSON value." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
5
+ defineApi({ id: "gutts.json.parseJson", name: "parseJson", category: "json", description: "Parses a JSON text string into a JSON-compatible value.", parameters: [{ name: "text", description: "The JSON document to parse.", required: true, schema: { type: "string" } }], output: json, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws SyntaxError when text is not valid JSON."] }),
6
+ defineApi({ id: "gutts.json.tryParseJson", name: "tryParseJson", category: "json", description: "Attempts to parse JSON text and returns undefined instead of throwing when parsing fails.", parameters: [{ name: "text", description: "The JSON document to parse.", required: true, schema: { type: "string" } }], output: { description: "The parsed JSON value, or undefined when parsing fails." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
7
+ defineApi({ id: "gutts.json.stringifyJson", name: "stringifyJson", category: "json", description: "Serializes a JSON-compatible value into JSON text, optionally using indentation.", parameters: [{ name: "value", description: "The JSON-compatible value to serialize.", required: true, schema: {} }, { name: "space", description: "Optional number of indentation spaces to use in the serialized output.", required: false, schema: { type: "number" } }], output: { type: "string", description: "The serialized JSON text." }, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws TypeError when the value cannot be serialized as JSON."] }),
8
+ ];
9
+ //# sourceMappingURL=json-apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-apis.js","sourceRoot":"","sources":["../../src/api/json-apis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,MAAM,IAAI,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAA6B;IAChD,SAAS,CAAC,EAAC,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,4EAA4E,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,gDAAgD,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4CAA4C,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;IAC7b,SAAS,CAAC,EAAC,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,yDAAyD,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAE,MAAM,EAAE,CAAC,iDAAiD,CAAC,EAAC,CAAC;IACrZ,SAAS,CAAC,EAAC,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,2FAA2F,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,WAAW,EAAE,yDAAyD,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;IACpc,SAAS,CAAC,EAAC,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,kFAAkF,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yCAAyC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,wEAAwE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAE,MAAM,EAAE,CAAC,+DAA+D,CAAC,EAAC,CAAC;CAC7oB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefinition } from "./api-types.js";
2
+ export declare const numberApis: readonly ApiDefinition[];
3
+ //# sourceMappingURL=number-apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-apis.d.ts","sourceRoot":"","sources":["../../src/api/number-apis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,UAAU,EAAE,SAAS,aAAa,EAM9C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { defineApi } from "./define-api.js";
2
+ export const numberApis = [
3
+ defineApi({ id: "gutts.numbers.clamp", name: "clamp", category: "numbers", description: "Restricts a numeric value to an inclusive minimum and maximum range.", parameters: [{ name: "value", description: "The numeric value to constrain.", required: true, schema: { type: "number" } }, { name: "min", description: "The inclusive lower bound.", required: true, schema: { type: "number" } }, { name: "max", description: "The inclusive upper bound.", required: true, schema: { type: "number" } }], output: { type: "number", description: "The value constrained to the inclusive range." }, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws RangeError when min exceeds max."] }),
4
+ defineApi({ id: "gutts.numbers.inRange", name: "inRange", category: "numbers", description: "Checks whether a numeric value falls within the configured range.", parameters: [{ name: "value", description: "The numeric value to test.", required: true, schema: { type: "number" } }, { name: "min", description: "The lower range boundary.", required: true, schema: { type: "number" } }, { name: "max", description: "The upper range boundary.", required: true, schema: { type: "number" } }], output: { type: "boolean", description: "Whether the value is inside the range." }, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws RangeError when min exceeds max."] }),
5
+ defineApi({ id: "gutts.numbers.roundTo", name: "roundTo", category: "numbers", description: "Rounds a number to a specified non-negative number of decimal places.", parameters: [{ name: "value", description: "The number to round.", required: true, schema: { type: "number" } }, { name: "decimals", description: "The non-negative integer number of decimal places.", required: false, schema: { type: "integer" } }], output: { type: "number", description: "The rounded number." }, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws RangeError when decimals is negative or not an integer."] }),
6
+ defineApi({ id: "gutts.numbers.isFiniteNumber", name: "isFiniteNumber", category: "numbers", description: "Checks whether a value is a JavaScript number and is finite.", parameters: [{ name: "value", description: "The value to test.", required: true, schema: {} }], output: { type: "boolean", description: "True only for finite JavaScript numbers." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
7
+ defineApi({ id: "gutts.numbers.sum", name: "sum", category: "numbers", description: "Adds all numbers in an array and returns their total.", parameters: [{ name: "values", description: "The numeric values to add.", required: true, schema: { type: "array", items: { type: "number" } } }], output: { type: "number", description: "The sum of all input numbers." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
8
+ ];
9
+ //# sourceMappingURL=number-apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-apis.js","sourceRoot":"","sources":["../../src/api/number-apis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefinition } from "./api-types.js";
2
+ export declare const objectApis: readonly ApiDefinition[];
3
+ //# sourceMappingURL=object-apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-apis.d.ts","sourceRoot":"","sources":["../../src/api/object-apis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,UAAU,EAAE,SAAS,aAAa,EAK9C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { defineApi } from "./define-api.js";
2
+ export const objectApis = [
3
+ defineApi({ id: "gutts.objects.hasOwn", name: "hasOwn", category: "objects", description: "Checks whether an object contains a requested property.", parameters: [{ name: "value", description: "The object to inspect.", required: true, schema: { type: "object" } }, { name: "key", description: "The property key to look for.", required: true, schema: { type: "string" } }], output: { type: "boolean" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
4
+ defineApi({ id: "gutts.objects.pick", name: "pick", category: "objects", description: "Creates an object containing only requested properties.", parameters: [{ name: "value", description: "The source object.", required: true, schema: { type: "object" } }, { name: "keys", description: "The property keys to retain.", required: true, schema: { type: "array", items: { type: "string" } } }], output: { type: "object" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
5
+ defineApi({ id: "gutts.objects.omit", name: "omit", category: "objects", description: "Creates an object without requested properties.", parameters: [{ name: "value", description: "The source object.", required: true, schema: { type: "object" } }, { name: "keys", description: "The property keys to remove.", required: true, schema: { type: "array", items: { type: "string" } } }], output: { type: "object" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
6
+ defineApi({ id: "gutts.objects.isPlainObject", name: "isPlainObject", category: "objects", description: "Checks whether a value is a plain JavaScript object.", parameters: [{ name: "value", description: "The value to classify.", required: true, schema: {} }], output: { type: "boolean" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
7
+ ];
8
+ //# sourceMappingURL=object-apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-apis.js","sourceRoot":"","sources":["../../src/api/object-apis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,SAAS,CAAC,EAAC,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,yDAAyD,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;IACxc,SAAS,CAAC,EAAC,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,yDAAyD,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;IACvd,SAAS,CAAC,EAAC,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;IAC/c,SAAS,CAAC,EAAC,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,sDAAsD,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;CAC/V,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefinition } from "./api-types.js";
2
+ export declare const stringApis: readonly ApiDefinition[];
3
+ //# sourceMappingURL=string-apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-apis.d.ts","sourceRoot":"","sources":["../../src/api/string-apis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAIlD,eAAO,MAAM,UAAU,EAAE,SAAS,aAAa,EAY9C,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { defineApi } from "./define-api.js";
2
+ const string = { type: "string" };
3
+ export const stringApis = [
4
+ defineApi({ id: "gutts.strings.isBlank", name: "isBlank", category: "strings", description: "Checks whether a string contains no non-whitespace characters.", parameters: [{ name: "value", description: "The string to inspect.", required: true, schema: string }], output: { type: "boolean" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
5
+ defineApi({ id: "gutts.strings.isNonBlank", name: "isNonBlank", category: "strings", description: "Checks whether a string contains at least one non-whitespace character.", parameters: [{ name: "value", description: "The string to inspect.", required: true, schema: string }], output: { type: "boolean" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
6
+ defineApi({ id: "gutts.strings.isEmail", name: "isEmail", category: "strings", description: "Checks whether a string conforms to the email-address validation rules used by GutTS.", parameters: [{ name: "value", description: "The string to validate as an email address.", required: true, schema: string }], output: { type: "boolean" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
7
+ defineApi({ id: "gutts.strings.startsWithAny", name: "startsWithAny", category: "strings", description: "Checks whether a string starts with at least one supplied prefix.", parameters: [{ name: "value", description: "The string to inspect.", required: true, schema: string }, { name: "prefixes", description: "The prefixes to test.", required: true, schema: { type: "array", items: string } }], output: { type: "boolean" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
8
+ defineApi({ id: "gutts.strings.endsWithAny", name: "endsWithAny", category: "strings", description: "Checks whether a string ends with at least one supplied suffix.", parameters: [{ name: "value", description: "The string to inspect.", required: true, schema: string }, { name: "suffixes", description: "The suffixes to test.", required: true, schema: { type: "array", items: string } }], output: { type: "boolean" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
9
+ defineApi({ id: "gutts.strings.capitalize", name: "capitalize", category: "strings", description: "Capitalizes a string using the library's existing capitalization behavior.", parameters: [{ name: "value", description: "The string to capitalize.", required: true, schema: string }], output: { type: "string" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
10
+ defineApi({ id: "gutts.strings.camelCase", name: "camelCase", category: "strings", description: "Converts a string into lower camel case.", parameters: [{ name: "value", description: "The string to convert.", required: true, schema: string }], output: { type: "string" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
11
+ defineApi({ id: "gutts.strings.kebabCase", name: "kebabCase", category: "strings", description: "Converts a string into lower kebab case.", parameters: [{ name: "value", description: "The string to convert.", required: true, schema: string }], output: { type: "string" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
12
+ defineApi({ id: "gutts.strings.snakeCase", name: "snakeCase", category: "strings", description: "Converts a string into lower snake case.", parameters: [{ name: "value", description: "The string to convert.", required: true, schema: string }], output: { type: "string" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
13
+ defineApi({ id: "gutts.strings.truncate", name: "truncate", category: "strings", description: "Shortens a string to a maximum length and appends a suffix when truncation is required.", parameters: [{ name: "value", description: "The string to shorten.", required: true, schema: string }, { name: "maxLength", description: "The non-negative maximum output length.", required: true, schema: { type: "number" } }, { name: "suffix", description: "The suffix used when truncation occurs.", required: false, schema: string }], output: { type: "string" }, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws RangeError when maxLength is negative."] }),
14
+ defineApi({ id: "gutts.strings.truncateWords", name: "truncateWords", category: "strings", description: "Shortens a string to a maximum number of words and appends a suffix when truncation is required.", parameters: [{ name: "value", description: "The string to shorten.", required: true, schema: string }, { name: "maxWords", description: "The non-negative maximum number of words.", required: true, schema: { type: "number" } }, { name: "suffix", description: "The suffix used when truncation occurs.", required: false, schema: string }], output: { type: "string" }, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws RangeError when maxWords is negative."] }),
15
+ ];
16
+ //# sourceMappingURL=string-apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-apis.js","sourceRoot":"","sources":["../../src/api/string-apis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefinition } from "./api-types.js";
2
+ export declare const urlApis: readonly ApiDefinition[];
3
+ //# sourceMappingURL=url-apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-apis.d.ts","sourceRoot":"","sources":["../../src/api/url-apis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAIlD,eAAO,MAAM,OAAO,EAAE,SAAS,aAAa,EAK3C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { defineApi } from "./define-api.js";
2
+ const string = { type: "string" };
3
+ export const urlApis = [
4
+ defineApi({ id: "gutts.urls.isUrl", name: "isUrl", category: "urls", description: "Checks whether a string can be parsed as a URL by the standard URL constructor.", parameters: [{ name: "value", description: "The string to validate.", required: true, schema: string }], output: { type: "boolean" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
5
+ defineApi({ id: "gutts.urls.joinUrl", name: "joinUrl", category: "urls", description: "Joins a base URL-like string and path segments using single separators.", parameters: [{ name: "base", description: "The base URL or path.", required: true, schema: string }, { name: "parts", description: "The path segments to append.", required: true, schema: { type: "array", items: string } }], output: { type: "string" }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
6
+ defineApi({ id: "gutts.urls.getQueryParam", name: "getQueryParam", category: "urls", description: "Reads one query-string parameter from a URL.", parameters: [{ name: "url", description: "The URL to inspect.", required: true, schema: string }, { name: "key", description: "The query parameter name.", required: true, schema: string }], output: { type: "string", description: "The value, or null when absent." }, semantics: { deterministic: true, pure: true, sideEffects: false } }),
7
+ defineApi({ id: "gutts.urls.setQueryParam", name: "setQueryParam", category: "urls", description: "Returns a URL with one query-string parameter set to the supplied value.", parameters: [{ name: "url", description: "The URL to modify.", required: true, schema: string }, { name: "key", description: "The query parameter name.", required: true, schema: string }, { name: "value", description: "The query parameter value.", required: true, schema: string }], output: { type: "string" }, semantics: { deterministic: true, pure: true, sideEffects: false }, errors: ["Throws when url cannot be parsed as a URL."] }),
8
+ ];
9
+ //# sourceMappingURL=url-apis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-apis.js","sourceRoot":"","sources":["../../src/api/url-apis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,MAAM,MAAM,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,OAAO,GAA6B;IAC/C,SAAS,CAAC,EAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iFAAiF,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;IACxW,SAAS,CAAC,EAAC,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,yEAAyE,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAC,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;IACtd,SAAS,CAAC,EAAC,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,8CAA8C,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAC,CAAC;IACvd,SAAS,CAAC,EAAC,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,0EAA0E,EAAE,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,SAAS,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAC,EAAE,MAAM,EAAE,CAAC,4CAA4C,CAAC,EAAC,CAAC;CACvlB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,6 @@ export * from "./arrays/array-concepts.js";
4
4
  export * from "./objects/object-concepts.js";
5
5
  export * from "./numbers/number-concepts.js";
6
6
  export * from "./urls/url-concepts.js";
7
+ export * from "./api/index.js";
8
+ export * from "./models/index.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -4,4 +4,6 @@ export * from "./arrays/array-concepts.js";
4
4
  export * from "./objects/object-concepts.js";
5
5
  export * from "./numbers/number-concepts.js";
6
6
  export * from "./urls/url-concepts.js";
7
+ export * from "./api/index.js";
8
+ export * from "./models/index.js";
7
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}