@transloadit/node 4.1.9 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -1
- package/dist/Transloadit.d.ts +36 -5
- package/dist/Transloadit.d.ts.map +1 -1
- package/dist/Transloadit.js +228 -39
- package/dist/Transloadit.js.map +1 -1
- package/dist/alphalib/assembly-linter.d.ts +123 -0
- package/dist/alphalib/assembly-linter.d.ts.map +1 -0
- package/dist/alphalib/assembly-linter.js +1142 -0
- package/dist/alphalib/assembly-linter.js.map +1 -0
- package/dist/alphalib/assembly-linter.lang.en.d.ts +87 -0
- package/dist/alphalib/assembly-linter.lang.en.d.ts.map +1 -0
- package/dist/alphalib/assembly-linter.lang.en.js +326 -0
- package/dist/alphalib/assembly-linter.lang.en.js.map +1 -0
- package/dist/alphalib/mcache.d.ts.map +1 -1
- package/dist/alphalib/mcache.js +22 -7
- package/dist/alphalib/mcache.js.map +1 -1
- package/dist/alphalib/object.d.ts +20 -0
- package/dist/alphalib/object.d.ts.map +1 -0
- package/dist/alphalib/object.js +23 -0
- package/dist/alphalib/object.js.map +1 -0
- package/dist/alphalib/stepParsing.d.ts +93 -0
- package/dist/alphalib/stepParsing.d.ts.map +1 -0
- package/dist/alphalib/stepParsing.js +1154 -0
- package/dist/alphalib/stepParsing.js.map +1 -0
- package/dist/alphalib/templateMerge.d.ts +4 -0
- package/dist/alphalib/templateMerge.d.ts.map +1 -0
- package/dist/alphalib/templateMerge.js +22 -0
- package/dist/alphalib/templateMerge.js.map +1 -0
- package/dist/alphalib/types/assemblyReplay.d.ts +56 -0
- package/dist/alphalib/types/assemblyReplay.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyReplayNotification.d.ts +56 -0
- package/dist/alphalib/types/assemblyReplayNotification.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyStatus.d.ts +63 -57
- package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyStatus.js +9 -1
- package/dist/alphalib/types/assemblyStatus.js.map +1 -1
- package/dist/alphalib/types/assemblyUrls.d.ts +1 -1
- package/dist/alphalib/types/assemblyUrls.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyUrls.js.map +1 -1
- package/dist/alphalib/types/robots/_index.d.ts +608 -81
- package/dist/alphalib/types/robots/_index.d.ts.map +1 -1
- package/dist/alphalib/types/robots/_index.js +4 -0
- package/dist/alphalib/types/robots/_index.js.map +1 -1
- package/dist/alphalib/types/robots/_instructions-primitives.d.ts +4 -4
- package/dist/alphalib/types/robots/_instructions-primitives.d.ts.map +1 -1
- package/dist/alphalib/types/robots/_instructions-primitives.js +1 -0
- package/dist/alphalib/types/robots/_instructions-primitives.js.map +1 -1
- package/dist/alphalib/types/robots/document-optimize.d.ts +489 -0
- package/dist/alphalib/types/robots/document-optimize.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-optimize.js +151 -0
- package/dist/alphalib/types/robots/document-optimize.js.map +1 -0
- package/dist/alphalib/types/template.d.ts +1050 -174
- package/dist/alphalib/types/template.d.ts.map +1 -1
- package/dist/cli/commands/assemblies.d.ts +20 -1
- package/dist/cli/commands/assemblies.d.ts.map +1 -1
- package/dist/cli/commands/assemblies.js +137 -2
- package/dist/cli/commands/assemblies.js.map +1 -1
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +19 -19
- 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 +2 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/docs/assemblyLintingExamples.d.ts +2 -0
- package/dist/cli/docs/assemblyLintingExamples.d.ts.map +1 -0
- package/dist/cli/docs/assemblyLintingExamples.js +10 -0
- package/dist/cli/docs/assemblyLintingExamples.js.map +1 -0
- package/dist/cli/helpers.d.ts +11 -0
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +29 -0
- package/dist/cli/helpers.js.map +1 -1
- package/dist/lintAssemblyInput.d.ts +10 -0
- package/dist/lintAssemblyInput.d.ts.map +1 -0
- package/dist/lintAssemblyInput.js +73 -0
- package/dist/lintAssemblyInput.js.map +1 -0
- package/dist/lintAssemblyInstructions.d.ts +29 -0
- package/dist/lintAssemblyInstructions.d.ts.map +1 -0
- package/dist/lintAssemblyInstructions.js +33 -0
- package/dist/lintAssemblyInstructions.js.map +1 -0
- package/dist/tus.d.ts +2 -1
- package/dist/tus.d.ts.map +1 -1
- package/dist/tus.js +2 -1
- package/dist/tus.js.map +1 -1
- package/package.json +5 -2
- package/src/Transloadit.ts +318 -49
- package/src/alphalib/assembly-linter.lang.en.ts +393 -0
- package/src/alphalib/assembly-linter.ts +1475 -0
- package/src/alphalib/mcache.ts +26 -7
- package/src/alphalib/object.ts +27 -0
- package/src/alphalib/stepParsing.ts +1465 -0
- package/src/alphalib/templateMerge.ts +32 -0
- package/src/alphalib/types/assemblyStatus.ts +9 -1
- package/src/alphalib/types/assemblyUrls.ts +2 -5
- package/src/alphalib/types/robots/_index.ts +14 -0
- package/src/alphalib/types/robots/_instructions-primitives.ts +1 -0
- package/src/alphalib/types/robots/document-optimize.ts +180 -0
- package/src/alphalib/typings/json-to-ast.d.ts +34 -0
- package/src/cli/commands/assemblies.ts +161 -2
- package/src/cli/commands/auth.ts +19 -22
- package/src/cli/commands/index.ts +2 -0
- package/src/cli/docs/assemblyLintingExamples.ts +9 -0
- package/src/cli/helpers.ts +50 -0
- package/src/lintAssemblyInput.ts +89 -0
- package/src/lintAssemblyInstructions.ts +72 -0
- package/src/tus.ts +3 -0
package/src/alphalib/mcache.ts
CHANGED
|
@@ -37,11 +37,13 @@ interface CacheEntry<T> {
|
|
|
37
37
|
*/
|
|
38
38
|
export class Mcache<T> {
|
|
39
39
|
#cache: Map<string, CacheEntry<T>>
|
|
40
|
+
#pending: Map<string, Promise<T>>
|
|
40
41
|
#opts: Required<Omit<McacheOpts, 'logger' | 'zodSchema' | 'keyFn'>> &
|
|
41
42
|
Pick<McacheOpts, 'logger' | 'zodSchema' | 'keyFn'>
|
|
42
43
|
|
|
43
44
|
constructor(opts: McacheOpts = {}) {
|
|
44
45
|
this.#cache = new Map()
|
|
46
|
+
this.#pending = new Map()
|
|
45
47
|
this.#opts = {
|
|
46
48
|
ttlMs: opts.ttlMs ?? Number.POSITIVE_INFINITY,
|
|
47
49
|
maxSize: opts.maxSize ?? 10_000,
|
|
@@ -56,6 +58,8 @@ export class Mcache<T> {
|
|
|
56
58
|
* The cache key is generated from the args using JSON.stringify by default,
|
|
57
59
|
* or using the custom keyFn if provided.
|
|
58
60
|
*/
|
|
61
|
+
|
|
62
|
+
// biome-ignore lint/suspicious/useAwait: @TODO check this out later
|
|
59
63
|
async get(producer: () => Promise<T> | T, ...args: unknown[]): Promise<T> {
|
|
60
64
|
const key = this.#opts.keyFn ? this.#opts.keyFn(...args) : JSON.stringify(args)
|
|
61
65
|
const cached = this.#cache.get(key)
|
|
@@ -73,16 +77,31 @@ export class Mcache<T> {
|
|
|
73
77
|
this.#cache.delete(key)
|
|
74
78
|
}
|
|
75
79
|
|
|
80
|
+
const pending = this.#pending.get(key)
|
|
81
|
+
if (pending) {
|
|
82
|
+
this.#opts.logger?.debug(`Cache miss for key ${key}, waiting for pending request`)
|
|
83
|
+
return pending
|
|
84
|
+
}
|
|
85
|
+
|
|
76
86
|
this.#opts.logger?.debug(`Cache miss for key ${key}, computing value`)
|
|
77
|
-
const value = await producer()
|
|
78
87
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
this.#opts.zodSchema.parse(value)
|
|
82
|
-
}
|
|
88
|
+
const promise = Promise.resolve().then(async () => {
|
|
89
|
+
const value = await producer()
|
|
83
90
|
|
|
84
|
-
|
|
85
|
-
|
|
91
|
+
// Validate if schema provided
|
|
92
|
+
if (this.#opts.zodSchema) {
|
|
93
|
+
this.#opts.zodSchema.parse(value)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
this.#set(key, value)
|
|
97
|
+
return value
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
this.#pending.set(key, promise)
|
|
101
|
+
void promise.finally(() => {
|
|
102
|
+
this.#pending.delete(key)
|
|
103
|
+
})
|
|
104
|
+
return promise
|
|
86
105
|
}
|
|
87
106
|
|
|
88
107
|
/**
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Entries } from 'type-fest'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* See https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208 for
|
|
5
|
+
* some background on why this exists and why this isn't in TypeScript by default.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Returns properly typed entries of an object
|
|
10
|
+
*/
|
|
11
|
+
export function entries<T extends { [K in keyof T]: T[K] }>(object: T): Entries<T> {
|
|
12
|
+
return Object.entries(object) as Entries<T>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Returns properly typed values of an object
|
|
17
|
+
*/
|
|
18
|
+
export function values<T extends object>(object: T): T[keyof T][] {
|
|
19
|
+
return Object.values(object)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Returns properly typed keys of an object
|
|
24
|
+
*/
|
|
25
|
+
export function keys<T extends object>(object: T): (keyof T)[] {
|
|
26
|
+
return Object.keys(object) as (keyof T)[]
|
|
27
|
+
}
|