transloadit 4.7.3 → 4.7.6
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 +897 -5
- package/dist/Transloadit.d.ts +13 -3
- package/dist/Transloadit.d.ts.map +1 -1
- package/dist/Transloadit.js +22 -2
- package/dist/Transloadit.js.map +1 -1
- package/dist/alphalib/types/assembliesGet.d.ts +5 -0
- package/dist/alphalib/types/assembliesGet.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyReplay.d.ts +5 -0
- package/dist/alphalib/types/assemblyReplay.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyReplayNotification.d.ts +5 -0
- package/dist/alphalib/types/assemblyReplayNotification.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyStatus.d.ts +25 -25
- package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyStatus.js +4 -1
- package/dist/alphalib/types/assemblyStatus.js.map +1 -1
- package/dist/alphalib/types/bill.d.ts +5 -0
- package/dist/alphalib/types/bill.d.ts.map +1 -1
- package/dist/alphalib/types/builtinTemplates.d.ts +83 -0
- package/dist/alphalib/types/builtinTemplates.d.ts.map +1 -0
- package/dist/alphalib/types/builtinTemplates.js +19 -0
- package/dist/alphalib/types/builtinTemplates.js.map +1 -0
- package/dist/alphalib/types/robots/ai-chat.d.ts.map +1 -1
- package/dist/alphalib/types/robots/ai-chat.js +1 -0
- package/dist/alphalib/types/robots/ai-chat.js.map +1 -1
- package/dist/alphalib/types/skillFrontmatter.d.ts +29 -0
- package/dist/alphalib/types/skillFrontmatter.d.ts.map +1 -0
- package/dist/alphalib/types/skillFrontmatter.js +19 -0
- package/dist/alphalib/types/skillFrontmatter.js.map +1 -0
- package/dist/alphalib/types/template.d.ts +36 -0
- package/dist/alphalib/types/template.d.ts.map +1 -1
- package/dist/alphalib/types/template.js +10 -0
- package/dist/alphalib/types/template.js.map +1 -1
- package/dist/alphalib/types/templateCredential.d.ts +10 -0
- package/dist/alphalib/types/templateCredential.d.ts.map +1 -1
- package/dist/bearerToken.d.ts +31 -0
- package/dist/bearerToken.d.ts.map +1 -0
- package/dist/bearerToken.js +158 -0
- package/dist/bearerToken.js.map +1 -0
- package/dist/cli/commands/assemblies.d.ts +8 -2
- package/dist/cli/commands/assemblies.d.ts.map +1 -1
- package/dist/cli/commands/assemblies.js +566 -411
- package/dist/cli/commands/assemblies.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +1 -4
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +7 -123
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +5 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/templates.d.ts.map +1 -1
- package/dist/cli/commands/templates.js +4 -14
- package/dist/cli/commands/templates.js.map +1 -1
- package/dist/cli/fileProcessingOptions.d.ts +35 -0
- package/dist/cli/fileProcessingOptions.d.ts.map +1 -0
- package/dist/cli/fileProcessingOptions.js +182 -0
- package/dist/cli/fileProcessingOptions.js.map +1 -0
- package/dist/cli/generateIntentDocs.d.ts +2 -0
- package/dist/cli/generateIntentDocs.d.ts.map +1 -0
- package/dist/cli/generateIntentDocs.js +321 -0
- package/dist/cli/generateIntentDocs.js.map +1 -0
- package/dist/cli/intentCommandSpecs.d.ts +36 -0
- package/dist/cli/intentCommandSpecs.d.ts.map +1 -0
- package/dist/cli/intentCommandSpecs.js +181 -0
- package/dist/cli/intentCommandSpecs.js.map +1 -0
- package/dist/cli/intentCommands.d.ts +13 -0
- package/dist/cli/intentCommands.d.ts.map +1 -0
- package/dist/cli/intentCommands.js +368 -0
- package/dist/cli/intentCommands.js.map +1 -0
- package/dist/cli/intentFields.d.ts +25 -0
- package/dist/cli/intentFields.d.ts.map +1 -0
- package/dist/cli/intentFields.js +298 -0
- package/dist/cli/intentFields.js.map +1 -0
- package/dist/cli/intentInputPolicy.d.ts +10 -0
- package/dist/cli/intentInputPolicy.d.ts.map +1 -0
- package/dist/cli/intentInputPolicy.js +2 -0
- package/dist/cli/intentInputPolicy.js.map +1 -0
- package/dist/cli/intentRuntime.d.ts +114 -0
- package/dist/cli/intentRuntime.d.ts.map +1 -0
- package/dist/cli/intentRuntime.js +464 -0
- package/dist/cli/intentRuntime.js.map +1 -0
- package/dist/cli/resultFiles.d.ts +19 -0
- package/dist/cli/resultFiles.d.ts.map +1 -0
- package/dist/cli/resultFiles.js +66 -0
- package/dist/cli/resultFiles.js.map +1 -0
- package/dist/cli/resultUrls.d.ts +19 -0
- package/dist/cli/resultUrls.d.ts.map +1 -0
- package/dist/cli/resultUrls.js +36 -0
- package/dist/cli/resultUrls.js.map +1 -0
- package/dist/cli/semanticIntents/imageDescribe.d.ts +43 -0
- package/dist/cli/semanticIntents/imageDescribe.d.ts.map +1 -0
- package/dist/cli/semanticIntents/imageDescribe.js +188 -0
- package/dist/cli/semanticIntents/imageDescribe.js.map +1 -0
- package/dist/cli/semanticIntents/index.d.ts +18 -0
- package/dist/cli/semanticIntents/index.d.ts.map +1 -0
- package/dist/cli/semanticIntents/index.js +18 -0
- package/dist/cli/semanticIntents/index.js.map +1 -0
- package/dist/cli/semanticIntents/markdownPdf.d.ts +4 -0
- package/dist/cli/semanticIntents/markdownPdf.d.ts.map +1 -0
- package/dist/cli/semanticIntents/markdownPdf.js +93 -0
- package/dist/cli/semanticIntents/markdownPdf.js.map +1 -0
- package/dist/cli/semanticIntents/parsing.d.ts +11 -0
- package/dist/cli/semanticIntents/parsing.d.ts.map +1 -0
- package/dist/cli/semanticIntents/parsing.js +29 -0
- package/dist/cli/semanticIntents/parsing.js.map +1 -0
- package/dist/cli/stepsInput.d.ts +4 -0
- package/dist/cli/stepsInput.d.ts.map +1 -0
- package/dist/cli/stepsInput.js +23 -0
- package/dist/cli/stepsInput.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -4
- package/dist/cli.js.map +1 -1
- package/dist/ensureUniqueCounter.d.ts +8 -0
- package/dist/ensureUniqueCounter.d.ts.map +1 -0
- package/dist/ensureUniqueCounter.js +48 -0
- package/dist/ensureUniqueCounter.js.map +1 -0
- package/dist/inputFiles.d.ts +9 -0
- package/dist/inputFiles.d.ts.map +1 -1
- package/dist/inputFiles.js +177 -26
- package/dist/inputFiles.js.map +1 -1
- package/dist/robots.js +1 -1
- package/dist/robots.js.map +1 -1
- package/package.json +9 -7
- package/src/Transloadit.ts +35 -3
- package/src/alphalib/types/assemblyStatus.ts +4 -1
- package/src/alphalib/types/builtinTemplates.ts +24 -0
- package/src/alphalib/types/robots/ai-chat.ts +1 -0
- package/src/alphalib/types/skillFrontmatter.ts +24 -0
- package/src/alphalib/types/template.ts +14 -0
- package/src/bearerToken.ts +208 -0
- package/src/cli/commands/assemblies.ts +825 -505
- package/src/cli/commands/auth.ts +9 -151
- package/src/cli/commands/index.ts +6 -3
- package/src/cli/commands/templates.ts +6 -17
- package/src/cli/fileProcessingOptions.ts +294 -0
- package/src/cli/generateIntentDocs.ts +419 -0
- package/src/cli/intentCommandSpecs.ts +282 -0
- package/src/cli/intentCommands.ts +525 -0
- package/src/cli/intentFields.ts +403 -0
- package/src/cli/intentInputPolicy.ts +11 -0
- package/src/cli/intentRuntime.ts +734 -0
- package/src/cli/resultFiles.ts +105 -0
- package/src/cli/resultUrls.ts +72 -0
- package/src/cli/semanticIntents/imageDescribe.ts +254 -0
- package/src/cli/semanticIntents/index.ts +48 -0
- package/src/cli/semanticIntents/markdownPdf.ts +120 -0
- package/src/cli/semanticIntents/parsing.ts +56 -0
- package/src/cli/stepsInput.ts +32 -0
- package/src/cli.ts +5 -4
- package/src/ensureUniqueCounter.ts +75 -0
- package/src/inputFiles.ts +277 -26
- package/src/robots.ts +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
declare function createImageDescribeStep(rawValues: Record<string, unknown>): Record<string, unknown>;
|
|
2
|
+
export declare const imageDescribeSemanticIntentDescriptor: {
|
|
3
|
+
readonly createStep: typeof createImageDescribeStep;
|
|
4
|
+
readonly execution: {
|
|
5
|
+
kind: "dynamic-step";
|
|
6
|
+
handler: string;
|
|
7
|
+
resultStepName: string;
|
|
8
|
+
fields: readonly [{
|
|
9
|
+
readonly name: "fields";
|
|
10
|
+
readonly kind: "string-array";
|
|
11
|
+
readonly propertyName: "fields";
|
|
12
|
+
readonly optionFlags: "--fields";
|
|
13
|
+
readonly description: "Describe output fields to generate, for example labels or altText,title,caption,description";
|
|
14
|
+
readonly required: false;
|
|
15
|
+
}, {
|
|
16
|
+
readonly name: "forProfile";
|
|
17
|
+
readonly kind: "string";
|
|
18
|
+
readonly propertyName: "forProfile";
|
|
19
|
+
readonly optionFlags: "--for";
|
|
20
|
+
readonly description: "Use a named output profile, currently: wordpress";
|
|
21
|
+
readonly required: false;
|
|
22
|
+
}, {
|
|
23
|
+
readonly name: "model";
|
|
24
|
+
readonly kind: "string";
|
|
25
|
+
readonly propertyName: "model";
|
|
26
|
+
readonly optionFlags: "--model";
|
|
27
|
+
readonly description: "Model to use for generated text fields (default: anthropic/claude-4-sonnet-20250514)";
|
|
28
|
+
readonly required: false;
|
|
29
|
+
}];
|
|
30
|
+
};
|
|
31
|
+
readonly inputPolicy: {
|
|
32
|
+
readonly kind: "required";
|
|
33
|
+
};
|
|
34
|
+
readonly outputDescription: "Write the JSON result to this path or directory";
|
|
35
|
+
readonly presentation: {
|
|
36
|
+
readonly description: "Describe images as labels or publishable text fields";
|
|
37
|
+
readonly details: "Generates image labels through `/image/describe`, or structured altText/title/caption/description through `/ai/chat`, then writes the JSON result to `--out`.";
|
|
38
|
+
readonly examples: Array<[string, string]>;
|
|
39
|
+
};
|
|
40
|
+
readonly runnerKind: "watchable";
|
|
41
|
+
};
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=imageDescribe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageDescribe.d.ts","sourceRoot":"","sources":["../../../src/cli/semanticIntents/imageDescribe.ts"],"names":[],"mappings":"AAsNA,iBAAS,uBAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8B5F;AAED,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAxK3C,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;;CA+Ke,CAAA"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { parseStringArrayValue } from "../intentFields.js";
|
|
2
|
+
import { parseOptionalEnumValue, parseUniqueEnumArray } from "./parsing.js";
|
|
3
|
+
const imageDescribeFields = ['labels', 'altText', 'title', 'caption', 'description'];
|
|
4
|
+
const wordpressDescribeFields = [
|
|
5
|
+
'altText',
|
|
6
|
+
'title',
|
|
7
|
+
'caption',
|
|
8
|
+
'description',
|
|
9
|
+
];
|
|
10
|
+
const defaultDescribeModel = 'anthropic/claude-4-sonnet-20250514';
|
|
11
|
+
const describeFieldDescriptions = {
|
|
12
|
+
altText: 'A concise accessibility-focused alt text that objectively describes the image',
|
|
13
|
+
title: 'A concise publishable title for the image',
|
|
14
|
+
caption: 'A short caption suitable for displaying below the image',
|
|
15
|
+
description: 'A richer description of the image suitable for CMS usage',
|
|
16
|
+
};
|
|
17
|
+
const imageDescribeExecutionDefinition = {
|
|
18
|
+
kind: 'dynamic-step',
|
|
19
|
+
handler: 'image-describe',
|
|
20
|
+
resultStepName: 'describe',
|
|
21
|
+
fields: [
|
|
22
|
+
{
|
|
23
|
+
name: 'fields',
|
|
24
|
+
kind: 'string-array',
|
|
25
|
+
propertyName: 'fields',
|
|
26
|
+
optionFlags: '--fields',
|
|
27
|
+
description: 'Describe output fields to generate, for example labels or altText,title,caption,description',
|
|
28
|
+
required: false,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'forProfile',
|
|
32
|
+
kind: 'string',
|
|
33
|
+
propertyName: 'forProfile',
|
|
34
|
+
optionFlags: '--for',
|
|
35
|
+
description: 'Use a named output profile, currently: wordpress',
|
|
36
|
+
required: false,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'model',
|
|
40
|
+
kind: 'string',
|
|
41
|
+
propertyName: 'model',
|
|
42
|
+
optionFlags: '--model',
|
|
43
|
+
description: 'Model to use for generated text fields (default: anthropic/claude-4-sonnet-20250514)',
|
|
44
|
+
required: false,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
const imageDescribeCommandPresentation = {
|
|
49
|
+
description: 'Describe images as labels or publishable text fields',
|
|
50
|
+
details: 'Generates image labels through `/image/describe`, or structured altText/title/caption/description through `/ai/chat`, then writes the JSON result to `--out`.',
|
|
51
|
+
examples: [
|
|
52
|
+
[
|
|
53
|
+
'Describe an image as labels',
|
|
54
|
+
'transloadit image describe --input hero.jpg --out labels.json',
|
|
55
|
+
],
|
|
56
|
+
[
|
|
57
|
+
'Generate WordPress-ready fields',
|
|
58
|
+
'transloadit image describe --input hero.jpg --for wordpress --out fields.json',
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
'Request a custom field set',
|
|
62
|
+
'transloadit image describe --input hero.jpg --fields altText,title,caption --out fields.json',
|
|
63
|
+
],
|
|
64
|
+
],
|
|
65
|
+
};
|
|
66
|
+
function parseDescribeFields(value) {
|
|
67
|
+
const rawFields = parseStringArrayValue(value ?? []);
|
|
68
|
+
return parseUniqueEnumArray({
|
|
69
|
+
flagName: '--fields',
|
|
70
|
+
supportedValues: imageDescribeFields,
|
|
71
|
+
values: rawFields,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function resolveDescribeProfile(profile) {
|
|
75
|
+
return parseOptionalEnumValue({
|
|
76
|
+
flagName: '--for',
|
|
77
|
+
supportedValues: ['wordpress'],
|
|
78
|
+
value: profile,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function resolveRequestedDescribeFields({ explicitFields, profile, }) {
|
|
82
|
+
if (explicitFields.length > 0) {
|
|
83
|
+
return explicitFields;
|
|
84
|
+
}
|
|
85
|
+
if (profile === 'wordpress') {
|
|
86
|
+
return [...wordpressDescribeFields];
|
|
87
|
+
}
|
|
88
|
+
return ['labels'];
|
|
89
|
+
}
|
|
90
|
+
function validateDescribeFields({ fields, model, profile, }) {
|
|
91
|
+
const includesLabels = fields.includes('labels');
|
|
92
|
+
if (includesLabels && fields.length > 1) {
|
|
93
|
+
throw new Error('The labels field cannot be combined with altText, title, caption, or description');
|
|
94
|
+
}
|
|
95
|
+
if (includesLabels && profile != null) {
|
|
96
|
+
throw new Error('--for cannot be combined with --fields labels');
|
|
97
|
+
}
|
|
98
|
+
if (includesLabels && model !== defaultDescribeModel) {
|
|
99
|
+
throw new Error('--model is only supported when generating altText, title, caption, or description');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function resolveImageDescribeRequest(rawValues) {
|
|
103
|
+
const explicitFields = parseDescribeFields(rawValues.fields);
|
|
104
|
+
const profile = resolveDescribeProfile(rawValues.forProfile);
|
|
105
|
+
const fields = resolveRequestedDescribeFields({ explicitFields, profile });
|
|
106
|
+
validateDescribeFields({
|
|
107
|
+
fields,
|
|
108
|
+
model: String(rawValues.model ?? defaultDescribeModel),
|
|
109
|
+
profile,
|
|
110
|
+
});
|
|
111
|
+
return { fields, profile };
|
|
112
|
+
}
|
|
113
|
+
function buildDescribeAiChatSchema(fields) {
|
|
114
|
+
const properties = Object.fromEntries(fields.map((field) => {
|
|
115
|
+
return [
|
|
116
|
+
field,
|
|
117
|
+
{
|
|
118
|
+
type: 'string',
|
|
119
|
+
description: describeFieldDescriptions[field],
|
|
120
|
+
},
|
|
121
|
+
];
|
|
122
|
+
}));
|
|
123
|
+
return {
|
|
124
|
+
type: 'object',
|
|
125
|
+
additionalProperties: false,
|
|
126
|
+
required: [...fields],
|
|
127
|
+
properties,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function buildDescribeAiChatMessages({ fields, profile, }) {
|
|
131
|
+
const requestedFields = fields.join(', ');
|
|
132
|
+
const profileHint = profile === 'wordpress'
|
|
133
|
+
? 'The output is for the WordPress media library.'
|
|
134
|
+
: 'The output is for a publishing workflow.';
|
|
135
|
+
return {
|
|
136
|
+
systemMessage: [
|
|
137
|
+
'You generate accurate image copy for publishing workflows.',
|
|
138
|
+
profileHint,
|
|
139
|
+
'Return only the schema fields requested.',
|
|
140
|
+
'Be concrete, concise, and faithful to what is visibly present in the image.',
|
|
141
|
+
'Do not invent facts, brands, locations, or identities that are not clearly visible.',
|
|
142
|
+
'Avoid keyword stuffing, hype, and mentions of SEO or accessibility in the output itself.',
|
|
143
|
+
'For altText, write one objective sentence focused on what matters to someone who cannot see the image.',
|
|
144
|
+
'For title, keep it short and natural.',
|
|
145
|
+
'For caption, write one short sentence suitable for publication.',
|
|
146
|
+
'For description, write one or two sentences with slightly more context than the caption.',
|
|
147
|
+
].join(' '),
|
|
148
|
+
messages: `Analyze the attached image and fill these fields: ${requestedFields}.`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function createImageDescribeStep(rawValues) {
|
|
152
|
+
const { fields, profile } = resolveImageDescribeRequest(rawValues);
|
|
153
|
+
if (fields.length === 1 && fields[0] === 'labels') {
|
|
154
|
+
return {
|
|
155
|
+
robot: '/image/describe',
|
|
156
|
+
use: ':original',
|
|
157
|
+
result: true,
|
|
158
|
+
provider: 'aws',
|
|
159
|
+
format: 'json',
|
|
160
|
+
granularity: 'list',
|
|
161
|
+
explicit_descriptions: false,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const { messages, systemMessage } = buildDescribeAiChatMessages({ fields, profile });
|
|
165
|
+
return {
|
|
166
|
+
robot: '/ai/chat',
|
|
167
|
+
use: ':original',
|
|
168
|
+
result: true,
|
|
169
|
+
model: String(rawValues.model ?? defaultDescribeModel),
|
|
170
|
+
format: 'json',
|
|
171
|
+
return_messages: 'last',
|
|
172
|
+
test_credentials: true,
|
|
173
|
+
schema: JSON.stringify(buildDescribeAiChatSchema(fields)),
|
|
174
|
+
messages,
|
|
175
|
+
system_message: systemMessage,
|
|
176
|
+
// @TODO Move these inline /ai/chat instructions into a builtin template in api2 and
|
|
177
|
+
// switch this command to call that builtin instead of shipping prompt logic in the CLI.
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
export const imageDescribeSemanticIntentDescriptor = {
|
|
181
|
+
createStep: createImageDescribeStep,
|
|
182
|
+
execution: imageDescribeExecutionDefinition,
|
|
183
|
+
inputPolicy: { kind: 'required' },
|
|
184
|
+
outputDescription: 'Write the JSON result to this path or directory',
|
|
185
|
+
presentation: imageDescribeCommandPresentation,
|
|
186
|
+
runnerKind: 'watchable',
|
|
187
|
+
};
|
|
188
|
+
//# sourceMappingURL=imageDescribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageDescribe.js","sourceRoot":"","sources":["../../../src/cli/semanticIntents/imageDescribe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IntentInputPolicy } from '../intentInputPolicy.ts';
|
|
2
|
+
import type { IntentDynamicStepExecutionDefinition, IntentRunnerKind, PreparedIntentInputs } from '../intentRuntime.ts';
|
|
3
|
+
export interface SemanticIntentPresentation {
|
|
4
|
+
description: string;
|
|
5
|
+
details: string;
|
|
6
|
+
examples: Array<[string, string]>;
|
|
7
|
+
}
|
|
8
|
+
export interface SemanticIntentDescriptor {
|
|
9
|
+
createStep: (rawValues: Record<string, unknown>) => Record<string, unknown>;
|
|
10
|
+
execution: IntentDynamicStepExecutionDefinition;
|
|
11
|
+
inputPolicy: IntentInputPolicy;
|
|
12
|
+
outputDescription: string;
|
|
13
|
+
prepareInputs?: (preparedInputs: PreparedIntentInputs, rawValues: Record<string, unknown>) => Promise<PreparedIntentInputs>;
|
|
14
|
+
presentation: SemanticIntentPresentation;
|
|
15
|
+
runnerKind: IntentRunnerKind;
|
|
16
|
+
}
|
|
17
|
+
export declare function getSemanticIntentDescriptor(name: string): SemanticIntentDescriptor;
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/semanticIntents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EACV,oCAAoC,EACpC,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAO5B,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3E,SAAS,EAAE,oCAAoC,CAAA;IAC/C,WAAW,EAAE,iBAAiB,CAAA;IAC9B,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,CACd,cAAc,EAAE,oBAAoB,EACpC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAClC,YAAY,EAAE,0BAA0B,CAAA;IACxC,UAAU,EAAE,gBAAgB,CAAA;CAC7B;AAYD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAMlF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { imageDescribeSemanticIntentDescriptor } from "./imageDescribe.js";
|
|
2
|
+
import { markdownDocxSemanticIntentDescriptor, markdownPdfSemanticIntentDescriptor, } from "./markdownPdf.js";
|
|
3
|
+
const semanticIntentDescriptors = {
|
|
4
|
+
'image-describe': imageDescribeSemanticIntentDescriptor,
|
|
5
|
+
'markdown-pdf': {
|
|
6
|
+
...markdownPdfSemanticIntentDescriptor,
|
|
7
|
+
},
|
|
8
|
+
'markdown-docx': {
|
|
9
|
+
...markdownDocxSemanticIntentDescriptor,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
export function getSemanticIntentDescriptor(name) {
|
|
13
|
+
if (!(name in semanticIntentDescriptors)) {
|
|
14
|
+
throw new Error(`Semantic intent descriptor does not exist for "${name}"`);
|
|
15
|
+
}
|
|
16
|
+
return semanticIntentDescriptors[name];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/semanticIntents/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qCAAqC,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EACL,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,kBAAkB,CAAA;AAqBzB,MAAM,yBAAyB,GAA6C;IAC1E,gBAAgB,EAAE,qCAAqC;IACvD,cAAc,EAAE;QACd,GAAG,mCAAmC;KACvC;IACD,eAAe,EAAE;QACf,GAAG,oCAAoC;KACxC;CACF,CAAA;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,IAAI,CAAC,CAAC,IAAI,IAAI,yBAAyB,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,GAAG,CAAC,CAAA;IAC5E,CAAC;IAED,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SemanticIntentDescriptor } from './index.ts';
|
|
2
|
+
export declare const markdownPdfSemanticIntentDescriptor: SemanticIntentDescriptor;
|
|
3
|
+
export declare const markdownDocxSemanticIntentDescriptor: SemanticIntentDescriptor;
|
|
4
|
+
//# sourceMappingURL=markdownPdf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdownPdf.d.ts","sourceRoot":"","sources":["../../../src/cli/semanticIntents/markdownPdf.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAA8B,MAAM,YAAY,CAAA;AAsGtF,eAAO,MAAM,mCAAmC,0BAO9C,CAAA;AAEF,eAAO,MAAM,oCAAoC,0BAO/C,CAAA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { parseOptionalEnumValue } from "./parsing.js";
|
|
2
|
+
const defaultMarkdownFormat = 'gfm';
|
|
3
|
+
const defaultMarkdownTheme = 'github';
|
|
4
|
+
const markdownFormats = ['commonmark', 'gfm'];
|
|
5
|
+
const markdownThemes = ['bare', 'github'];
|
|
6
|
+
function resolveMarkdownFormat(value) {
|
|
7
|
+
return (parseOptionalEnumValue({
|
|
8
|
+
flagName: '--markdown-format',
|
|
9
|
+
supportedValues: markdownFormats,
|
|
10
|
+
value,
|
|
11
|
+
}) ?? defaultMarkdownFormat);
|
|
12
|
+
}
|
|
13
|
+
function resolveMarkdownTheme(value) {
|
|
14
|
+
return (parseOptionalEnumValue({
|
|
15
|
+
flagName: '--markdown-theme',
|
|
16
|
+
supportedValues: markdownThemes,
|
|
17
|
+
value,
|
|
18
|
+
}) ?? defaultMarkdownTheme);
|
|
19
|
+
}
|
|
20
|
+
const markdownOptionDefinitions = [
|
|
21
|
+
{
|
|
22
|
+
name: 'markdownFormat',
|
|
23
|
+
kind: 'string',
|
|
24
|
+
propertyName: 'markdownFormat',
|
|
25
|
+
optionFlags: '--markdown-format',
|
|
26
|
+
description: 'Markdown variant to parse, either commonmark or gfm',
|
|
27
|
+
required: false,
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'markdownTheme',
|
|
31
|
+
kind: 'string',
|
|
32
|
+
propertyName: 'markdownTheme',
|
|
33
|
+
optionFlags: '--markdown-theme',
|
|
34
|
+
description: 'Markdown theme to render, either github or bare',
|
|
35
|
+
required: false,
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
function createMarkdownConvertSemanticIntent({ description, details, exampleOutput, format, handler, }) {
|
|
39
|
+
const formatLabel = format.toUpperCase();
|
|
40
|
+
const presentation = {
|
|
41
|
+
description,
|
|
42
|
+
details,
|
|
43
|
+
examples: [
|
|
44
|
+
[
|
|
45
|
+
`Render a Markdown file as a ${formatLabel} file`,
|
|
46
|
+
`transloadit markdown ${format} --input README.md --out ${exampleOutput}`,
|
|
47
|
+
],
|
|
48
|
+
[
|
|
49
|
+
'Print a temporary result URL without downloading locally',
|
|
50
|
+
`transloadit markdown ${format} --input README.md --print-urls`,
|
|
51
|
+
],
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
createStep(rawValues) {
|
|
56
|
+
return {
|
|
57
|
+
robot: '/document/convert',
|
|
58
|
+
use: ':original',
|
|
59
|
+
result: true,
|
|
60
|
+
format,
|
|
61
|
+
markdown_format: resolveMarkdownFormat(rawValues.markdownFormat),
|
|
62
|
+
markdown_theme: resolveMarkdownTheme(rawValues.markdownTheme),
|
|
63
|
+
// @TODO Replace this semantic CLI alias with a builtin/api2-owned command surface if we later
|
|
64
|
+
// want richer Markdown conversion semantics beyond `/document/convert`.
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
execution: {
|
|
68
|
+
kind: 'dynamic-step',
|
|
69
|
+
handler,
|
|
70
|
+
resultStepName: 'convert',
|
|
71
|
+
fields: markdownOptionDefinitions,
|
|
72
|
+
},
|
|
73
|
+
inputPolicy: { kind: 'required' },
|
|
74
|
+
outputDescription: `Write the rendered ${formatLabel} to this path or directory`,
|
|
75
|
+
presentation,
|
|
76
|
+
runnerKind: 'watchable',
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export const markdownPdfSemanticIntentDescriptor = createMarkdownConvertSemanticIntent({
|
|
80
|
+
description: 'Render Markdown files as PDFs',
|
|
81
|
+
details: 'Runs `/document/convert` with `format: pdf`, letting the backend render Markdown and preserve features such as internal heading links in the generated PDF.',
|
|
82
|
+
exampleOutput: 'README.pdf',
|
|
83
|
+
format: 'pdf',
|
|
84
|
+
handler: 'markdown-pdf',
|
|
85
|
+
});
|
|
86
|
+
export const markdownDocxSemanticIntentDescriptor = createMarkdownConvertSemanticIntent({
|
|
87
|
+
description: 'Render Markdown files as DOCX documents',
|
|
88
|
+
details: 'Runs `/document/convert` with `format: docx`, letting the backend render Markdown and convert it into a Word document.',
|
|
89
|
+
exampleOutput: 'README.docx',
|
|
90
|
+
format: 'docx',
|
|
91
|
+
handler: 'markdown-docx',
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=markdownPdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdownPdf.js","sourceRoot":"","sources":["../../../src/cli/semanticIntents/markdownPdf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,MAAM,qBAAqB,GAAG,KAAK,CAAA;AACnC,MAAM,oBAAoB,GAAG,QAAQ,CAAA;AACrC,MAAM,eAAe,GAAG,CAAC,YAAY,EAAE,KAAK,CAAU,CAAA;AACtD,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAA;AAElD,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,CACL,sBAAsB,CAAC;QACrB,QAAQ,EAAE,mBAAmB;QAC7B,eAAe,EAAE,eAAe;QAChC,KAAK;KACN,CAAC,IAAI,qBAAqB,CAC5B,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,CACL,sBAAsB,CAAC;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,eAAe,EAAE,cAAc;QAC/B,KAAK;KACN,CAAC,IAAI,oBAAoB,CAC3B,CAAA;AACH,CAAC;AAED,MAAM,yBAAyB,GAAG;IAChC;QACE,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,qDAAqD;QAClE,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,iDAAiD;QAC9D,QAAQ,EAAE,KAAK;KAChB;CACmD,CAAA;AAEtD,SAAS,mCAAmC,CAAC,EAC3C,WAAW,EACX,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,GAOR;IACC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IACxC,MAAM,YAAY,GAAG;QACnB,WAAW;QACX,OAAO;QACP,QAAQ,EAAE;YACR;gBACE,+BAA+B,WAAW,OAAO;gBACjD,wBAAwB,MAAM,4BAA4B,aAAa,EAAE;aAC1E;YACD;gBACE,0DAA0D;gBAC1D,wBAAwB,MAAM,iCAAiC;aAChE;SACF;KACmC,CAAA;IAEtC,OAAO;QACL,UAAU,CAAC,SAAS;YAClB,OAAO;gBACL,KAAK,EAAE,mBAAmB;gBAC1B,GAAG,EAAE,WAAW;gBAChB,MAAM,EAAE,IAAI;gBACZ,MAAM;gBACN,eAAe,EAAE,qBAAqB,CAAC,SAAS,CAAC,cAAc,CAAC;gBAChE,cAAc,EAAE,oBAAoB,CAAC,SAAS,CAAC,aAAa,CAAC;gBAC7D,8FAA8F;gBAC9F,wEAAwE;aACzE,CAAA;QACH,CAAC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,cAAc;YACpB,OAAO;YACP,cAAc,EAAE,SAAS;YACzB,MAAM,EAAE,yBAAyB;SAClC;QACD,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QACjC,iBAAiB,EAAE,sBAAsB,WAAW,4BAA4B;QAChF,YAAY;QACZ,UAAU,EAAE,WAAW;KACxB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,mCAAmC,GAAG,mCAAmC,CAAC;IACrF,WAAW,EAAE,+BAA+B;IAC5C,OAAO,EACL,6JAA6J;IAC/J,aAAa,EAAE,YAAY;IAC3B,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,cAAc;CACxB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,mCAAmC,CAAC;IACtF,WAAW,EAAE,yCAAyC;IACtD,OAAO,EACL,wHAAwH;IAC1H,aAAa,EAAE,aAAa;IAC5B,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function parseOptionalEnumValue<TValue extends string>({ flagName, supportedValues, value, }: {
|
|
2
|
+
flagName: string;
|
|
3
|
+
supportedValues: readonly TValue[];
|
|
4
|
+
value: unknown;
|
|
5
|
+
}): TValue | null;
|
|
6
|
+
export declare function parseUniqueEnumArray<TValue extends string>({ flagName, supportedValues, values, }: {
|
|
7
|
+
flagName: string;
|
|
8
|
+
supportedValues: readonly TValue[];
|
|
9
|
+
values: readonly string[];
|
|
10
|
+
}): TValue[];
|
|
11
|
+
//# sourceMappingURL=parsing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../../src/cli/semanticIntents/parsing.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,MAAM,EAAE,EAC5D,QAAQ,EACR,eAAe,EACf,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,KAAK,EAAE,OAAO,CAAA;CACf,GAAG,MAAM,GAAG,IAAI,CAYhB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,MAAM,EAAE,EAC1D,QAAQ,EACR,eAAe,EACf,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1B,GAAG,MAAM,EAAE,CAyBX"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function parseOptionalEnumValue({ flagName, supportedValues, value, }) {
|
|
2
|
+
if (value == null || value === '') {
|
|
3
|
+
return null;
|
|
4
|
+
}
|
|
5
|
+
if (typeof value === 'string' && supportedValues.includes(value)) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
throw new Error(`Unsupported ${flagName} value "${String(value)}". Supported values: ${supportedValues.join(', ')}`);
|
|
9
|
+
}
|
|
10
|
+
export function parseUniqueEnumArray({ flagName, supportedValues, values, }) {
|
|
11
|
+
if (values.length === 0) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const parsedValues = [];
|
|
15
|
+
const seen = new Set();
|
|
16
|
+
for (const value of values) {
|
|
17
|
+
if (!supportedValues.includes(value)) {
|
|
18
|
+
throw new Error(`Unsupported ${flagName} value "${value}". Supported values: ${supportedValues.join(', ')}`);
|
|
19
|
+
}
|
|
20
|
+
const parsedValue = value;
|
|
21
|
+
if (seen.has(parsedValue)) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
seen.add(parsedValue);
|
|
25
|
+
parsedValues.push(parsedValue);
|
|
26
|
+
}
|
|
27
|
+
return parsedValues;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=parsing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.js","sourceRoot":"","sources":["../../../src/cli/semanticIntents/parsing.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAwB,EAC5D,QAAQ,EACR,eAAe,EACf,KAAK,GAKN;IACC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAe,CAAC,EAAE,CAAC;QAC3E,OAAO,KAAe,CAAA;IACxB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,eAAe,QAAQ,WAAW,MAAM,CAAC,KAAK,CAAC,wBAAwB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpG,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAwB,EAC1D,QAAQ,EACR,eAAe,EACf,MAAM,GAKP;IACC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAe,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,eAAe,QAAQ,WAAW,KAAK,wBAAwB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5F,CAAA;QACH,CAAC;QAED,MAAM,WAAW,GAAG,KAAe,CAAA;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACrB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepsInput.d.ts","sourceRoot":"","sources":["../../src/cli/stepsInput.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAG/D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAqB/D;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAG9E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import fsp from 'node:fs/promises';
|
|
2
|
+
import { stepsSchema } from "../alphalib/types/template.js";
|
|
3
|
+
export function parseStepsInputJson(content) {
|
|
4
|
+
const parsed = JSON.parse(content);
|
|
5
|
+
const validated = stepsSchema.safeParse(parsed);
|
|
6
|
+
if (!validated.success) {
|
|
7
|
+
throw new Error(`Invalid steps format: ${validated.error.message}`);
|
|
8
|
+
}
|
|
9
|
+
const parsedSteps = parsed;
|
|
10
|
+
const validatedSteps = validated.data;
|
|
11
|
+
return Object.fromEntries(Object.entries(parsedSteps).map(([stepName, stepInput]) => {
|
|
12
|
+
const normalizedStep = validatedSteps[stepName] ?? {};
|
|
13
|
+
return [
|
|
14
|
+
stepName,
|
|
15
|
+
Object.fromEntries(Object.keys(stepInput).map((key) => [key, normalizedStep[key] ?? stepInput[key]])),
|
|
16
|
+
];
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
export async function readStepsInputFile(filePath) {
|
|
20
|
+
const content = await fsp.readFile(filePath, 'utf8');
|
|
21
|
+
return parseStepsInputJson(content);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=stepsInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepsInput.js","sourceRoot":"","sources":["../../src/cli/stepsInput.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,kBAAkB,CAAA;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,MAAM,WAAW,GAAG,MAAiD,CAAA;IACrE,MAAM,cAAc,GAAG,SAAS,CAAC,IAA+C,CAAA;IAEhF,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE;QACxD,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QACrD,OAAO;YACL,QAAQ;YACR,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAClF;SACF,CAAA;IACH,CAAC,CAAC,CACW,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACpD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import 'dotenv/config';
|
|
3
3
|
export declare function shouldRunCli(invoked?: string): boolean;
|
|
4
4
|
export declare function main(args?: string[]): Promise<void>;
|
|
5
|
-
export declare function runCliWhenExecuted(): void
|
|
5
|
+
export declare function runCliWhenExecuted(): Promise<void>;
|
|
6
6
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAMA,OAAO,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAMA,OAAO,eAAe,CAAA;AAetB,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAItD;AAED,wBAAsB,IAAI,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtE;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOxD"}
|
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,7 @@ import process from 'node:process';
|
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
6
|
import 'dotenv/config';
|
|
7
7
|
import { createCli } from "./cli/commands/index.js";
|
|
8
|
+
import { ensureError } from "./cli/types.js";
|
|
8
9
|
const currentFile = realpathSync(fileURLToPath(import.meta.url));
|
|
9
10
|
function resolveInvokedPath(invoked) {
|
|
10
11
|
if (invoked == null)
|
|
@@ -29,13 +30,13 @@ export async function main(args = process.argv.slice(2)) {
|
|
|
29
30
|
process.exitCode = exitCode;
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
export function runCliWhenExecuted() {
|
|
33
|
+
export async function runCliWhenExecuted() {
|
|
33
34
|
if (!shouldRunCli(process.argv[1]))
|
|
34
35
|
return;
|
|
35
|
-
|
|
36
|
-
console.error(error.message);
|
|
36
|
+
await main().catch((error) => {
|
|
37
|
+
console.error(ensureError(error).message);
|
|
37
38
|
process.exitCode = 1;
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
|
-
runCliWhenExecuted();
|
|
41
|
+
await runCliWhenExecuted();
|
|
41
42
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEhE,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAChC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,KAAK,CAAA;IAClC,OAAO,QAAQ,KAAK,WAAW,CAAA;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,OAAM;IAE1C,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,kBAAkB,EAAE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function ensureUniqueCounterValue<T>({ initialValue, isTaken, reserve, nextValue, scope, }: {
|
|
2
|
+
initialValue: T;
|
|
3
|
+
isTaken: (candidate: T) => Promise<boolean> | boolean;
|
|
4
|
+
reserve: (candidate: T) => void;
|
|
5
|
+
nextValue: (counter: number) => T;
|
|
6
|
+
scope?: object;
|
|
7
|
+
}): Promise<T>;
|
|
8
|
+
//# sourceMappingURL=ensureUniqueCounter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensureUniqueCounter.d.ts","sourceRoot":"","sources":["../src/ensureUniqueCounter.ts"],"names":[],"mappings":"AAyBA,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,EAChD,YAAY,EACZ,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE;IACD,YAAY,EAAE,CAAC,CAAA;IACf,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IACrD,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAA;IAC/B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,CAAC,CAAC,CAqCb"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const uniqueCounterScopes = new WeakMap();
|
|
2
|
+
async function runEnsureUniqueCounterValue({ initialValue, isTaken, reserve, nextValue, }) {
|
|
3
|
+
let candidate = initialValue;
|
|
4
|
+
let counter = 1;
|
|
5
|
+
while (await isTaken(candidate)) {
|
|
6
|
+
candidate = nextValue(counter);
|
|
7
|
+
counter += 1;
|
|
8
|
+
}
|
|
9
|
+
reserve(candidate);
|
|
10
|
+
return candidate;
|
|
11
|
+
}
|
|
12
|
+
export async function ensureUniqueCounterValue({ initialValue, isTaken, reserve, nextValue, scope, }) {
|
|
13
|
+
if (scope == null) {
|
|
14
|
+
return await runEnsureUniqueCounterValue({
|
|
15
|
+
initialValue,
|
|
16
|
+
isTaken,
|
|
17
|
+
reserve,
|
|
18
|
+
nextValue,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
const previous = uniqueCounterScopes.get(scope) ?? Promise.resolve();
|
|
22
|
+
let releaseScope;
|
|
23
|
+
const pendingScope = new Promise((resolve) => {
|
|
24
|
+
releaseScope = resolve;
|
|
25
|
+
});
|
|
26
|
+
const currentScope = previous
|
|
27
|
+
.catch(() => undefined)
|
|
28
|
+
.then(async () => {
|
|
29
|
+
await pendingScope;
|
|
30
|
+
});
|
|
31
|
+
uniqueCounterScopes.set(scope, currentScope);
|
|
32
|
+
await previous.catch(() => undefined);
|
|
33
|
+
try {
|
|
34
|
+
return await runEnsureUniqueCounterValue({
|
|
35
|
+
initialValue,
|
|
36
|
+
isTaken,
|
|
37
|
+
reserve,
|
|
38
|
+
nextValue,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
releaseScope?.();
|
|
43
|
+
if (uniqueCounterScopes.get(scope) === currentScope) {
|
|
44
|
+
uniqueCounterScopes.delete(scope);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ensureUniqueCounter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensureUniqueCounter.js","sourceRoot":"","sources":["../src/ensureUniqueCounter.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAyB,CAAA;AAEhE,KAAK,UAAU,2BAA2B,CAAI,EAC5C,YAAY,EACZ,OAAO,EACP,OAAO,EACP,SAAS,GAMV;IACC,IAAI,SAAS,GAAG,YAAY,CAAA;IAC5B,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,CAAA;IACd,CAAC;IAED,OAAO,CAAC,SAAS,CAAC,CAAA;IAClB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAI,EAChD,YAAY,EACZ,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,GAON;IACC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,MAAM,2BAA2B,CAAC;YACvC,YAAY;YACZ,OAAO;YACP,OAAO;YACP,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;IACpE,IAAI,YAAsC,CAAA;IAC1C,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjD,YAAY,GAAG,OAAO,CAAA;IACxB,CAAC,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,QAAQ;SAC1B,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACtB,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,YAAY,CAAA;IACpB,CAAC,CAAC,CAAA;IACJ,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAE5C,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAErC,IAAI,CAAC;QACH,OAAO,MAAM,2BAA2B,CAAC;YACvC,YAAY;YACZ,OAAO;YACP,OAAO;YACP,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,EAAE,EAAE,CAAA;QAChB,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,YAAY,EAAE,CAAC;YACpD,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/inputFiles.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
|
+
import type CacheableLookup from 'cacheable-lookup';
|
|
2
3
|
import type { Input as IntoStreamInput } from 'into-stream';
|
|
3
4
|
import type { CreateAssemblyParams } from './apiTypes.ts';
|
|
4
5
|
export type InputFile = {
|
|
@@ -37,5 +38,13 @@ export type PrepareInputFilesResult = {
|
|
|
37
38
|
uploads: Record<string, UploadInput>;
|
|
38
39
|
cleanup: Array<() => Promise<void>>;
|
|
39
40
|
};
|
|
41
|
+
export declare const resolvePublicDownloadAddresses: (value: string) => Promise<Array<{
|
|
42
|
+
address: string;
|
|
43
|
+
family: 4 | 6;
|
|
44
|
+
}>>;
|
|
45
|
+
export declare function createPinnedDnsLookup(validatedAddresses: Array<{
|
|
46
|
+
address: string;
|
|
47
|
+
family: 4 | 6;
|
|
48
|
+
}>): CacheableLookup['lookup'];
|
|
40
49
|
export declare const prepareInputFiles: (options?: PrepareInputFilesOptions) => Promise<PrepareInputFilesResult>;
|
|
41
50
|
//# sourceMappingURL=inputFiles.d.ts.map
|