@cldmv/slothlet 3.3.0 → 3.4.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 +9 -10
- package/REFERENCE.md +23 -0
- package/dist/lib/builders/api-assignment.mjs +1 -589
- package/dist/lib/builders/api_builder.mjs +1 -1385
- package/dist/lib/builders/builder.mjs +1 -78
- package/dist/lib/builders/modes-processor.mjs +1 -1800
- package/dist/lib/errors.mjs +9 -211
- package/dist/lib/factories/component-base.mjs +1 -80
- package/dist/lib/factories/context.mjs +1 -22
- package/dist/lib/handlers/api-cache-manager.mjs +1 -200
- package/dist/lib/handlers/api-manager.mjs +1 -2536
- package/dist/lib/handlers/context-async.mjs +1 -172
- package/dist/lib/handlers/context-live.mjs +1 -173
- package/dist/lib/handlers/hook-manager.mjs +1 -667
- package/dist/lib/handlers/lifecycle-token.mjs +1 -28
- package/dist/lib/handlers/lifecycle.mjs +1 -115
- package/dist/lib/handlers/materialize-manager.mjs +1 -48
- package/dist/lib/handlers/metadata.mjs +1 -501
- package/dist/lib/handlers/ownership.mjs +1 -322
- package/dist/lib/handlers/permission-manager.mjs +1 -392
- package/dist/lib/handlers/unified-wrapper.mjs +1 -3110
- package/dist/lib/handlers/version-manager.mjs +1 -885
- package/dist/lib/helpers/class-instance-wrapper.mjs +1 -109
- package/dist/lib/helpers/config.mjs +1 -439
- package/dist/lib/helpers/eventemitter-context.mjs +1 -349
- package/dist/lib/helpers/hint-detector.mjs +1 -47
- package/dist/lib/helpers/modes-utils.mjs +1 -37
- package/dist/lib/helpers/pattern-matcher.mjs +1 -125
- package/dist/lib/helpers/resolve-from-caller.mjs +1 -169
- package/dist/lib/helpers/sanitize.mjs +1 -340
- package/dist/lib/helpers/utilities.mjs +1 -70
- package/dist/lib/i18n/languages/de-de.json +1 -0
- package/dist/lib/i18n/languages/en-gb.json +1 -0
- package/dist/lib/i18n/languages/en-us.json +1 -0
- package/dist/lib/i18n/languages/es-es.json +412 -0
- package/dist/lib/i18n/languages/es-mx.json +1 -0
- package/dist/lib/i18n/languages/fr-fr.json +1 -0
- package/dist/lib/i18n/languages/hi-in.json +2 -1
- package/dist/lib/i18n/languages/ja-jp.json +1 -0
- package/dist/lib/i18n/languages/ko-kr.json +1 -0
- package/dist/lib/i18n/languages/pt-br.json +21 -20
- package/dist/lib/i18n/languages/ru-ru.json +2 -1
- package/dist/lib/i18n/languages/zh-cn.json +6 -5
- package/dist/lib/i18n/translations.mjs +1 -126
- package/dist/lib/modes/eager.mjs +1 -59
- package/dist/lib/modes/lazy.mjs +1 -81
- package/dist/lib/processors/flatten.mjs +1 -437
- package/dist/lib/processors/loader.mjs +1 -339
- package/dist/lib/processors/type-generator.mjs +1 -275
- package/dist/lib/processors/typescript.mjs +1 -172
- package/dist/lib/runtime/runtime-asynclocalstorage.mjs +1 -113
- package/dist/lib/runtime/runtime-livebindings.mjs +1 -78
- package/dist/lib/runtime/runtime.mjs +1 -102
- package/dist/slothlet.mjs +1 -817
- package/package.json +35 -31
- package/types/dist/lib/builders/api-assignment.d.mts +3 -92
- package/types/dist/lib/builders/api-assignment.d.mts.map +1 -1
- package/types/dist/lib/builders/api_builder.d.mts +102 -91
- package/types/dist/lib/builders/api_builder.d.mts.map +1 -1
- package/types/dist/lib/builders/builder.d.mts +1 -55
- package/types/dist/lib/builders/builder.d.mts.map +1 -1
- package/types/dist/lib/builders/modes-processor.d.mts +3 -27
- package/types/dist/lib/builders/modes-processor.d.mts.map +1 -1
- package/types/dist/lib/errors.d.mts +19 -109
- package/types/dist/lib/errors.d.mts.map +1 -1
- package/types/dist/lib/factories/component-base.d.mts +7 -177
- package/types/dist/lib/factories/component-base.d.mts.map +1 -1
- package/types/dist/lib/factories/context.d.mts +4 -22
- package/types/dist/lib/factories/context.d.mts.map +1 -1
- package/types/dist/lib/handlers/api-cache-manager.d.mts +20 -203
- package/types/dist/lib/handlers/api-cache-manager.d.mts.map +1 -1
- package/types/dist/lib/handlers/api-manager.d.mts +34 -408
- package/types/dist/lib/handlers/api-manager.d.mts.map +1 -1
- package/types/dist/lib/handlers/context-async.d.mts +23 -61
- package/types/dist/lib/handlers/context-async.d.mts.map +1 -1
- package/types/dist/lib/handlers/context-live.d.mts +22 -59
- package/types/dist/lib/handlers/context-live.d.mts.map +1 -1
- package/types/dist/lib/handlers/hook-manager.d.mts +46 -185
- package/types/dist/lib/handlers/hook-manager.d.mts.map +1 -1
- package/types/dist/lib/handlers/lifecycle-token.d.mts +3 -48
- package/types/dist/lib/handlers/lifecycle-token.d.mts.map +1 -1
- package/types/dist/lib/handlers/lifecycle.d.mts +5 -82
- package/types/dist/lib/handlers/lifecycle.d.mts.map +1 -1
- package/types/dist/lib/handlers/materialize-manager.d.mts +8 -70
- package/types/dist/lib/handlers/materialize-manager.d.mts.map +1 -1
- package/types/dist/lib/handlers/metadata.d.mts +17 -221
- package/types/dist/lib/handlers/metadata.d.mts.map +1 -1
- package/types/dist/lib/handlers/ownership.d.mts +44 -160
- package/types/dist/lib/handlers/ownership.d.mts.map +1 -1
- package/types/dist/lib/handlers/permission-manager.d.mts +40 -141
- package/types/dist/lib/handlers/permission-manager.d.mts.map +1 -1
- package/types/dist/lib/handlers/unified-wrapper.d.mts +26 -239
- package/types/dist/lib/handlers/unified-wrapper.d.mts.map +1 -1
- package/types/dist/lib/handlers/version-manager.d.mts +28 -225
- package/types/dist/lib/handlers/version-manager.d.mts.map +1 -1
- package/types/dist/lib/helpers/class-instance-wrapper.d.mts +2 -52
- package/types/dist/lib/helpers/class-instance-wrapper.d.mts.map +1 -1
- package/types/dist/lib/helpers/config.d.mts +125 -139
- package/types/dist/lib/helpers/config.d.mts.map +1 -1
- package/types/dist/lib/helpers/eventemitter-context.d.mts +3 -29
- package/types/dist/lib/helpers/eventemitter-context.d.mts.map +1 -1
- package/types/dist/lib/helpers/hint-detector.d.mts +2 -15
- package/types/dist/lib/helpers/hint-detector.d.mts.map +1 -1
- package/types/dist/lib/helpers/modes-utils.d.mts +3 -30
- package/types/dist/lib/helpers/modes-utils.d.mts.map +1 -1
- package/types/dist/lib/helpers/pattern-matcher.d.mts +3 -43
- package/types/dist/lib/helpers/pattern-matcher.d.mts.map +1 -1
- package/types/dist/lib/helpers/resolve-from-caller.d.mts +3 -27
- package/types/dist/lib/helpers/resolve-from-caller.d.mts.map +1 -1
- package/types/dist/lib/helpers/sanitize.d.mts +4 -92
- package/types/dist/lib/helpers/sanitize.d.mts.map +1 -1
- package/types/dist/lib/helpers/utilities.d.mts +4 -52
- package/types/dist/lib/helpers/utilities.d.mts.map +1 -1
- package/types/dist/lib/i18n/translations.d.mts +4 -37
- package/types/dist/lib/i18n/translations.d.mts.map +1 -1
- package/types/dist/lib/modes/eager.d.mts +8 -30
- package/types/dist/lib/modes/eager.d.mts.map +1 -1
- package/types/dist/lib/modes/lazy.d.mts +10 -43
- package/types/dist/lib/modes/lazy.d.mts.map +1 -1
- package/types/dist/lib/processors/flatten.d.mts +56 -107
- package/types/dist/lib/processors/flatten.d.mts.map +1 -1
- package/types/dist/lib/processors/loader.d.mts +6 -41
- package/types/dist/lib/processors/loader.d.mts.map +1 -1
- package/types/dist/lib/processors/type-generator.d.mts +2 -16
- package/types/dist/lib/processors/type-generator.d.mts.map +1 -1
- package/types/dist/lib/processors/typescript.d.mts +6 -53
- package/types/dist/lib/processors/typescript.d.mts.map +1 -1
- package/types/dist/lib/runtime/runtime-asynclocalstorage.d.mts +3 -71
- package/types/dist/lib/runtime/runtime-asynclocalstorage.d.mts.map +1 -1
- package/types/dist/lib/runtime/runtime-livebindings.d.mts +2 -37
- package/types/dist/lib/runtime/runtime-livebindings.d.mts.map +1 -1
- package/types/dist/lib/runtime/runtime.d.mts +3 -39
- package/types/dist/lib/runtime/runtime.d.mts.map +1 -1
- package/types/dist/slothlet.d.mts +3 -249
- package/types/dist/slothlet.d.mts.map +1 -1
- package/types/index.d.mts +36 -16
- package/types/index.d.mts.map +1 -0
- package/AGENT-USAGE.md +0 -736
- package/docs/API-RULES.md +0 -712
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cldmv/slothlet",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"moduleVersions": {
|
|
5
5
|
"lazy": "3.0.0",
|
|
6
6
|
"eager": "3.0.0",
|
|
@@ -140,16 +140,19 @@
|
|
|
140
140
|
"lint": "eslint --config .configs/eslint.config.mjs .",
|
|
141
141
|
"inspect": "node tools/dev/inspect-api-structure.mjs",
|
|
142
142
|
"check:node-versions": "node tools/dev/check-node-versions.mjs",
|
|
143
|
+
"check:engines": "node tools/dev/check-engines.mjs",
|
|
144
|
+
"audit": "npm run analyze",
|
|
143
145
|
"analyze": "node tools/dev/analyze-errors.mjs",
|
|
144
146
|
"fix:headers": "node tools/dev/fix-headers.mjs",
|
|
145
147
|
"build": "npm run build:dev",
|
|
146
|
-
"build:ci": "npm run build:cleanup && npm run build:dist && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license && npm run ci:cleanup-src",
|
|
147
|
-
"build:dev": "npm run build:cleanup && npm run build:dist && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license",
|
|
148
|
-
"build:dev:test": "npm run build:cleanup && npm run build:dist && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license && npm run build:cleanup",
|
|
149
|
-
"build:unsafe": "npm run build:cleanup && npm run build:dist && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license",
|
|
148
|
+
"build:ci": "npm run build:cleanup && npm run build:dist && npm run build:minify && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license && npm run ci:cleanup-src",
|
|
149
|
+
"build:dev": "npm run build:cleanup && npm run build:dist && npm run build:minify && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license",
|
|
150
|
+
"build:dev:test": "npm run build:cleanup && npm run build:dist && npm run build:minify && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license && npm run build:cleanup",
|
|
151
|
+
"build:unsafe": "npm run build:cleanup && npm run build:dist && npm run build:minify && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license",
|
|
150
152
|
"ci:cleanup-src": "node tools/ci/ci-cleanup-src.mjs",
|
|
151
153
|
"build:cleanup": "shx rm -rf types && shx rm -rf dist",
|
|
152
154
|
"build:dist": "shx mkdir -p dist && node tools/build/build-dist.mjs && shx rm -rf dist/**/*.backup",
|
|
155
|
+
"build:minify": "node tools/build/minify-dist.mjs",
|
|
153
156
|
"build:types": "npx tsc -p .configs/tsconfig.dts.jsonc",
|
|
154
157
|
"build:exports": "node tools/build/build-exports.mjs",
|
|
155
158
|
"build:prepend-license": "node tools/build/prepend-license.mjs dist",
|
|
@@ -228,7 +231,7 @@
|
|
|
228
231
|
"zero-dependencies"
|
|
229
232
|
],
|
|
230
233
|
"engines": {
|
|
231
|
-
"node": ">=
|
|
234
|
+
"node": ">=20.19.0"
|
|
232
235
|
},
|
|
233
236
|
"author": {
|
|
234
237
|
"name": "Shinrai",
|
|
@@ -249,8 +252,8 @@
|
|
|
249
252
|
},
|
|
250
253
|
"type": "module",
|
|
251
254
|
"peerDependencies": {
|
|
252
|
-
"esbuild": "^0.
|
|
253
|
-
"typescript": "^
|
|
255
|
+
"esbuild": "^0.28.0",
|
|
256
|
+
"typescript": "^6.0.3"
|
|
254
257
|
},
|
|
255
258
|
"peerDependenciesMeta": {
|
|
256
259
|
"esbuild": {
|
|
@@ -261,36 +264,39 @@
|
|
|
261
264
|
}
|
|
262
265
|
},
|
|
263
266
|
"devDependencies": {
|
|
264
|
-
"@cldmv/fix-headers": "^1.2.
|
|
265
|
-
"@cldmv/vitest-runner": "^1.0
|
|
266
|
-
"@eslint/css": "^
|
|
267
|
-
"@eslint/js": "^
|
|
268
|
-
"@eslint/json": "^
|
|
269
|
-
"@eslint/markdown": "^
|
|
270
|
-
"@html-eslint/parser": "^0.
|
|
271
|
-
"@types/node": "^
|
|
272
|
-
"@vitest/coverage-v8": "^4.
|
|
267
|
+
"@cldmv/fix-headers": "^1.2.2",
|
|
268
|
+
"@cldmv/vitest-runner": "^1.1.0",
|
|
269
|
+
"@eslint/css": "^1.1.0",
|
|
270
|
+
"@eslint/js": "^10.0.1",
|
|
271
|
+
"@eslint/json": "^1.2.0",
|
|
272
|
+
"@eslint/markdown": "^8.0.1",
|
|
273
|
+
"@html-eslint/parser": "^0.59.0",
|
|
274
|
+
"@types/node": "^25.6.0",
|
|
275
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
273
276
|
"acorn": "^8.16.0",
|
|
274
|
-
"chalk": "^5.6.
|
|
277
|
+
"chalk": "^5.6.2",
|
|
275
278
|
"chokidar": "^5.0.0",
|
|
276
279
|
"dmd": "^7.1.1",
|
|
277
|
-
"esbuild": "^0.
|
|
278
|
-
"eslint": "^10.
|
|
280
|
+
"esbuild": "^0.28.0",
|
|
281
|
+
"eslint": "^10.2.1",
|
|
279
282
|
"estree-walker": "^3.0.3",
|
|
280
|
-
"globals": "^17.
|
|
281
|
-
"jsdoc": "^4.0.
|
|
282
|
-
"jsdoc-to-markdown": "^9.1.
|
|
283
|
+
"globals": "^17.5.0",
|
|
284
|
+
"jsdoc": "^4.0.5",
|
|
285
|
+
"jsdoc-to-markdown": "^9.1.3",
|
|
283
286
|
"jsdoc2md": "^1.0.0",
|
|
284
287
|
"jsonc-parser": "^3.3.1",
|
|
285
|
-
"prettier": "^3.
|
|
288
|
+
"prettier": "^3.8.3",
|
|
286
289
|
"shx": "^0.4.0",
|
|
287
|
-
"typescript": "^
|
|
288
|
-
"
|
|
289
|
-
|
|
290
|
+
"typescript": "^6.0.3",
|
|
291
|
+
"vitest": "^4.1.5"
|
|
292
|
+
},
|
|
293
|
+
"optionalDependencies": {
|
|
294
|
+
"@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17"
|
|
290
295
|
},
|
|
291
296
|
"overrides": {
|
|
292
297
|
"minimatch": "^10.2.3",
|
|
293
|
-
"rollup": "^4.59.0"
|
|
298
|
+
"rollup": "^4.59.0",
|
|
299
|
+
"rolldown": "1.0.0-rc.17"
|
|
294
300
|
},
|
|
295
301
|
"repository": {
|
|
296
302
|
"type": "git",
|
|
@@ -308,10 +314,8 @@
|
|
|
308
314
|
"index.mjs",
|
|
309
315
|
"index.cjs",
|
|
310
316
|
"README.md",
|
|
317
|
+
"REFERENCE.md",
|
|
311
318
|
"LICENSE",
|
|
312
|
-
"docs/API-RULES.md",
|
|
313
|
-
"docs/API-RULES-CONDITIONS.md",
|
|
314
|
-
"AGENT-USAGE.md",
|
|
315
319
|
"types/dist/",
|
|
316
320
|
"types/index.d.mts",
|
|
317
321
|
"types/index.d.mts.map",
|
|
@@ -1,97 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Manages unified API assignment logic
|
|
3
|
-
* @class ApiAssignment
|
|
4
|
-
* @extends ComponentBase
|
|
5
|
-
* @package
|
|
6
|
-
*
|
|
7
|
-
* @description
|
|
8
|
-
* Class-based utility for assigning values to API paths with collision detection,
|
|
9
|
-
* wrapper sync, and merge operations. Extends ComponentBase for Slothlet property access.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* const assignment = new ApiAssignment(slothlet);
|
|
13
|
-
* assignment.assignToApiPath(api, "math", mathWrapper, {});
|
|
14
|
-
*/
|
|
15
1
|
export class ApiAssignment extends ComponentBase {
|
|
16
2
|
static slothletProperty: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* @returns {boolean} True if value is a wrapper proxy
|
|
21
|
-
* @private
|
|
22
|
-
*/
|
|
23
|
-
private isWrapperProxy;
|
|
24
|
-
/**
|
|
25
|
-
* Assign a value to an API object at a given property key.
|
|
26
|
-
* Handles wrapper sync, collision detection, and proper proxy preservation.
|
|
27
|
-
*
|
|
28
|
-
* @param {Object} targetApi - Target object to assign to (may be a UnifiedWrapper proxy)
|
|
29
|
-
* @param {string|symbol} key - Property name to assign
|
|
30
|
-
* @param {unknown} value - Value to assign (may be UnifiedWrapper proxy, raw value, etc.)
|
|
31
|
-
* @param {Object} options - Assignment options
|
|
32
|
-
* @param {boolean} [options.allowOverwrite=false] - Allow overwriting existing non-wrapper values
|
|
33
|
-
* @param {boolean} [options.mutateExisting=false] - Sync existing wrappers instead of replacing
|
|
34
|
-
* @param {boolean} [options.useCollisionDetection=false] - Enable collision detection using config.collision mode
|
|
35
|
-
* @param {Object} [options.config] - Slothlet config (uses config.collision.initial or config.collision.api)
|
|
36
|
-
* @param {string} [options.collisionContext="initial"] - Collision context: "initial" or "api"
|
|
37
|
-
* @param {Function} [options.syncWrapper] - Function to sync two wrapper proxies
|
|
38
|
-
* @returns {boolean} True if assignment succeeded, false if blocked by collision or other constraint
|
|
39
|
-
*
|
|
40
|
-
* @description
|
|
41
|
-
* This function encapsulates all assignment patterns from processFiles:
|
|
42
|
-
* - Direct assignment when no collision
|
|
43
|
-
* - Wrapper sync when both existing and new are wrappers
|
|
44
|
-
* - Collision detection using config.collision[context] mode (merge/replace/error/skip/warn)
|
|
45
|
-
* - Proper handling of UnifiedWrapper proxies (preserves them, doesn't unwrap)
|
|
46
|
-
*
|
|
47
|
-
* @example
|
|
48
|
-
* // Direct assignment
|
|
49
|
-
* assignment.assignToApiPath(api, "math", mathWrapper, {});
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* // Sync existing wrapper with new data
|
|
53
|
-
* assignment.assignToApiPath(api, "config", newConfigWrapper, { mutateExisting: true, syncWrapper });
|
|
54
|
-
*
|
|
55
|
-
* @example
|
|
56
|
-
* // With collision detection
|
|
57
|
-
* assignment.assignToApiPath(api.math, "add", addFunction, {
|
|
58
|
-
* useCollisionDetection: true,
|
|
59
|
-
* config,
|
|
60
|
-
* collisionContext: "initial"
|
|
61
|
-
* });
|
|
62
|
-
*/
|
|
63
|
-
assignToApiPath(targetApi: any, key: string | symbol, value: unknown, options?: {
|
|
64
|
-
allowOverwrite?: boolean;
|
|
65
|
-
mutateExisting?: boolean;
|
|
66
|
-
useCollisionDetection?: boolean;
|
|
67
|
-
config?: any;
|
|
68
|
-
collisionContext?: string;
|
|
69
|
-
syncWrapper?: Function;
|
|
70
|
-
}): boolean;
|
|
71
|
-
/**
|
|
72
|
-
* Recursively merge a source object into a target object using assignToApiPath logic.
|
|
73
|
-
*
|
|
74
|
-
* @param {Object} targetApi - Target object
|
|
75
|
-
* @param {Object} sourceApi - Source object to merge from
|
|
76
|
-
* @param {Object} options - Assignment options (passed to assignToApiPath)
|
|
77
|
-
* @param {boolean} [options.removeMissing=false] - Remove keys from target that don't exist in source
|
|
78
|
-
* @returns {Promise<void>}
|
|
79
|
-
*
|
|
80
|
-
* @description
|
|
81
|
-
* Recursively walks the source object and assigns each value to the target using
|
|
82
|
-
* assignToApiPath. This provides consistent merge behavior for both initial build
|
|
83
|
-
* and hot reload operations.
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* await assignment.mergeApiObjects(api.config, newConfigApi, {
|
|
87
|
-
* mutateExisting: true,
|
|
88
|
-
* syncWrapper,
|
|
89
|
-
* removeMissing: false
|
|
90
|
-
* });
|
|
91
|
-
*/
|
|
92
|
-
mergeApiObjects(targetApi: any, sourceApi: any, options?: {
|
|
93
|
-
removeMissing?: boolean;
|
|
94
|
-
}): Promise<void>;
|
|
3
|
+
isWrapperProxy(value: any): boolean;
|
|
4
|
+
assignToApiPath(targetApi: any, key: any, value: any, options?: {}): boolean;
|
|
5
|
+
mergeApiObjects(targetApi: any, sourceApi: any, options?: {}): Promise<void>;
|
|
95
6
|
}
|
|
96
7
|
import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
|
|
97
8
|
//# sourceMappingURL=api-assignment.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-assignment.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api-assignment.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-assignment.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api-assignment.mjs"],"names":[],"mappings":"AAAyI;IAA0C,gCAAwC;IAAsC,oCAA6D;IAAA,6EAA+nV;IAAA,6EAA6iD;CAAC;8BAAl9Y,0CAA0C"}
|
|
@@ -1,96 +1,107 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builds final API with built-in methods attached
|
|
3
|
-
* @class ApiBuilder
|
|
4
|
-
* @extends ComponentBase
|
|
5
|
-
* @package
|
|
6
|
-
*
|
|
7
|
-
* @description
|
|
8
|
-
* Class-based builder for final API construction with built-in namespace attachment.
|
|
9
|
-
* Extends ComponentBase for common Slothlet property access.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* const builder = new ApiBuilder(slothlet);
|
|
13
|
-
* const api = await builder.buildFinalAPI(userApi);
|
|
14
|
-
*/
|
|
15
1
|
export class ApiBuilder extends ComponentBase {
|
|
16
2
|
static slothletProperty: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
3
|
+
buildFinalAPI(userApi: any): Promise<any>;
|
|
4
|
+
createSlothletNamespace(userApi: any): Promise<{
|
|
5
|
+
i18n: {
|
|
6
|
+
setLanguage: typeof setLanguage;
|
|
7
|
+
getLanguage: typeof getLanguage;
|
|
8
|
+
translate: typeof translate;
|
|
9
|
+
t: typeof translate;
|
|
10
|
+
initI18n: typeof initI18n;
|
|
11
|
+
};
|
|
12
|
+
version: string;
|
|
13
|
+
instanceID: any;
|
|
14
|
+
types: {
|
|
15
|
+
UNMATERIALIZED: symbol;
|
|
16
|
+
IN_FLIGHT: symbol;
|
|
17
|
+
};
|
|
18
|
+
api: {
|
|
19
|
+
add: (apiPath: any, folderPath: any, options?: {}, versionConfig?: null) => Promise<any>;
|
|
20
|
+
remove: (pathOrModuleId: any) => Promise<any>;
|
|
21
|
+
reload: (pathOrModuleId: any, options: any) => Promise<any>;
|
|
22
|
+
};
|
|
23
|
+
sanitize: (str: any) => any;
|
|
24
|
+
context: {
|
|
25
|
+
get: (key: any) => any;
|
|
26
|
+
diagnostics: () => {
|
|
27
|
+
instanceID: any;
|
|
28
|
+
managerType: any;
|
|
29
|
+
instancesMapSize: any;
|
|
30
|
+
instancesMapKeys: any[];
|
|
31
|
+
baseContext: any;
|
|
32
|
+
} | undefined;
|
|
33
|
+
run: (contextData: any, callback: any, ...args: any[]) => Promise<any>;
|
|
34
|
+
scope: (options: any) => Promise<any>;
|
|
35
|
+
};
|
|
36
|
+
hook: {
|
|
37
|
+
on: (typePattern: any, handler: any, options?: {}) => any;
|
|
38
|
+
remove: (filter?: {}) => any;
|
|
39
|
+
clear: (filter?: {}) => any;
|
|
40
|
+
off: (idOrFilter: any) => any;
|
|
41
|
+
enable: (filter?: {}) => any;
|
|
42
|
+
disable: (filter?: {}) => any;
|
|
43
|
+
list: (filter?: {}) => any;
|
|
44
|
+
};
|
|
45
|
+
metadata: {
|
|
46
|
+
setGlobal: (key: any, value: any) => any;
|
|
47
|
+
set: (fn: any, key: any, value: any) => any;
|
|
48
|
+
remove: (fn: any, key: any) => any;
|
|
49
|
+
setFor: (pathOrModuleId: any, keyOrObj: any, value: any) => any;
|
|
50
|
+
removeFor: (pathOrModuleId: any, key: any) => any;
|
|
51
|
+
setForVersion: (logicalPath: any, versionTag: any, keyOrObj: any, value: any) => any;
|
|
52
|
+
getForVersion: (logicalPath: any, versionTag: any) => any;
|
|
53
|
+
};
|
|
54
|
+
scope: (options: any) => Promise<any>;
|
|
55
|
+
run: (contextData: any, callback: any, ...args: any[]) => Promise<any>;
|
|
56
|
+
reload: (options?: {}) => Promise<any>;
|
|
57
|
+
shutdown: () => Promise<any>;
|
|
58
|
+
owner: {
|
|
59
|
+
get: (apiPath: any) => any;
|
|
60
|
+
};
|
|
61
|
+
materialize: Readonly<{
|
|
62
|
+
readonly materialized: any;
|
|
63
|
+
get: any;
|
|
64
|
+
wait: any;
|
|
65
|
+
}>;
|
|
66
|
+
lifecycle: {
|
|
67
|
+
on: any;
|
|
68
|
+
off: any;
|
|
69
|
+
};
|
|
70
|
+
env: any;
|
|
71
|
+
versioning: {
|
|
72
|
+
list: (logicalPath: any) => any;
|
|
73
|
+
setDefault: (logicalPath: any, versionTag: any) => any;
|
|
74
|
+
unregister: (logicalPath: any, versionTag: any) => Promise<boolean>;
|
|
75
|
+
getVersionMetadata: (logicalPath: any, versionTag: any) => any;
|
|
76
|
+
setVersionMetadata: (logicalPath: any, versionTag: any, patch: any) => any;
|
|
77
|
+
};
|
|
78
|
+
permissions: {
|
|
79
|
+
addRule: (rule: any) => any;
|
|
80
|
+
removeRule: (ruleId: any) => any;
|
|
81
|
+
self: {
|
|
82
|
+
access: (target: any) => any;
|
|
83
|
+
rules: () => any;
|
|
84
|
+
};
|
|
85
|
+
global: {
|
|
86
|
+
checkAccess: (caller: any, target: any) => any;
|
|
87
|
+
rulesForPath: (path: any) => any;
|
|
88
|
+
rulesByModule: (moduleID: any) => any;
|
|
89
|
+
};
|
|
90
|
+
control: {
|
|
91
|
+
enable: () => void;
|
|
92
|
+
disable: () => void;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
}>;
|
|
96
|
+
createShutdownFunction(): () => Promise<any>;
|
|
97
|
+
createRunFunction(): (contextData: any, callback: any, ...args: any[]) => Promise<any>;
|
|
98
|
+
createScopeFunction(): (options: any) => Promise<any>;
|
|
99
|
+
createDestroyFunction(api: any): () => Promise<void>;
|
|
100
|
+
attachBuiltins(userApi: any, builtins: any): void;
|
|
69
101
|
}
|
|
70
|
-
/**
|
|
71
|
-
* i18n translation helpers exposed on every Slothlet namespace.
|
|
72
|
-
*/
|
|
73
|
-
export type I18nNamespace = {
|
|
74
|
-
/**
|
|
75
|
-
* - Set the active locale (e.g. "en-us").
|
|
76
|
-
*/
|
|
77
|
-
setLanguage: Function;
|
|
78
|
-
/**
|
|
79
|
-
* - Return the current active locale string.
|
|
80
|
-
*/
|
|
81
|
-
getLanguage: Function;
|
|
82
|
-
/**
|
|
83
|
-
* - Translate an error code with optional params.
|
|
84
|
-
*/
|
|
85
|
-
translate: Function;
|
|
86
|
-
/**
|
|
87
|
-
* - Alias for translate.
|
|
88
|
-
*/
|
|
89
|
-
t: Function;
|
|
90
|
-
/**
|
|
91
|
-
* - Initialise the i18n system with options.
|
|
92
|
-
*/
|
|
93
|
-
initI18n: Function;
|
|
94
|
-
};
|
|
95
102
|
import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
|
|
103
|
+
import { setLanguage } from "@cldmv/slothlet/i18n";
|
|
104
|
+
import { getLanguage } from "@cldmv/slothlet/i18n";
|
|
105
|
+
import { translate } from "@cldmv/slothlet/i18n";
|
|
106
|
+
import { initI18n } from "@cldmv/slothlet/i18n";
|
|
96
107
|
//# sourceMappingURL=api_builder.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api_builder.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api_builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api_builder.mjs"],"names":[],"mappings":"AAAghB;IAAuC,gCAAqC;IAAsC,0CAA66C;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAgkkB;IAAA,6CAAqR;IAAA,uFAA0vB;IAAA,sDAAw+I;IAAA,qDAAmkB;IAAA,kDAA2Z;CAAC;8BAA5i1B,0CAA0C;4BAA2H,sBAAsB;4BAAtB,sBAAsB;0BAAtB,sBAAsB;yBAAtB,sBAAsB"}
|
|
@@ -1,60 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API builder class for orchestrating mode-based API construction.
|
|
3
|
-
* @class Builder
|
|
4
|
-
* @extends ComponentBase
|
|
5
|
-
* @package
|
|
6
|
-
*
|
|
7
|
-
* @description
|
|
8
|
-
* Orchestrates API building by delegating to mode-specific builders (eager/lazy).
|
|
9
|
-
* Extends ComponentBase for access to Slothlet configuration and error classes.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* const builder = new Builder(slothlet);
|
|
13
|
-
* const api = await builder.buildAPI({ dir: "./api" });
|
|
14
|
-
*/
|
|
15
1
|
export class Builder extends ComponentBase {
|
|
16
2
|
static slothletProperty: string;
|
|
17
|
-
|
|
18
|
-
* Build API from directory or file.
|
|
19
|
-
* @param {Object} options - Build options
|
|
20
|
-
* @param {string} options.dir - Directory or file to build from
|
|
21
|
-
* @param {string} [options.mode="eager"] - Loading mode (eager or lazy)
|
|
22
|
-
* @param {Object} [options.ownership] - Ownership manager (uses slothlet's if not provided)
|
|
23
|
-
* @param {Object} [options.contextManager] - Context manager (uses slothlet's if not provided)
|
|
24
|
-
* @param {string} [options.instanceID] - Instance ID (uses slothlet's if not provided)
|
|
25
|
-
* @param {Object} [options.config] - Configuration (uses slothlet's if not provided)
|
|
26
|
-
* @param {string} [options.apiPathPrefix=""] - Prefix for API paths (for api.add support)
|
|
27
|
-
* @param {string} [options.collisionContext="initial"] - Collision context
|
|
28
|
-
* @param {Function|null} [options.fileFilter=null] - Optional filter function (fileName) => boolean to load specific files only
|
|
29
|
-
* @returns {Promise<Object>} Raw API object (unwrapped)
|
|
30
|
-
* @public
|
|
31
|
-
*
|
|
32
|
-
* @description
|
|
33
|
-
* Validates inputs and delegates to mode-specific builder (buildEagerAPI or buildLazyAPI).
|
|
34
|
-
* When fileFilter is provided, only files matching the filter are loaded.
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* const api = await builder.buildAPI({ dir: "./api_tests/api_test", mode: "eager" });
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* // Load specific file only
|
|
41
|
-
* const api = await builder.buildAPI({
|
|
42
|
-
* dir: "./api_tests/api_test",
|
|
43
|
-
* mode: "eager",
|
|
44
|
-
* fileFilter: (fileName) => fileName === "math.mjs"
|
|
45
|
-
* });
|
|
46
|
-
*/
|
|
47
|
-
public buildAPI(options: {
|
|
48
|
-
dir: string;
|
|
49
|
-
mode?: string;
|
|
50
|
-
ownership?: any;
|
|
51
|
-
contextManager?: any;
|
|
52
|
-
instanceID?: string;
|
|
53
|
-
config?: any;
|
|
54
|
-
apiPathPrefix?: string;
|
|
55
|
-
collisionContext?: string;
|
|
56
|
-
fileFilter?: Function | null;
|
|
57
|
-
}): Promise<any>;
|
|
3
|
+
buildAPI(options: any): Promise<any>;
|
|
58
4
|
}
|
|
59
5
|
import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
|
|
60
6
|
//# sourceMappingURL=builder.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/builder.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/builder.mjs"],"names":[],"mappings":"AAAoE;IAAoC,gCAAkC;IAAsC,qCAAuxB;CAAC;8BAA/6B,0CAA0C"}
|
|
@@ -1,32 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ModesProcessor - Handles mode-specific file and directory processing.
|
|
3
|
-
*
|
|
4
|
-
* @class
|
|
5
|
-
* @extends ComponentBase
|
|
6
|
-
* @package
|
|
7
|
-
*/
|
|
8
1
|
export class ModesProcessor extends ComponentBase {
|
|
9
2
|
static slothletProperty: string;
|
|
10
|
-
processFiles(api: any, files: any, directory: any, currentDepth: any, mode: any, isRoot: any, recursive: any, populateDirectly?: boolean, apiPathPrefix?: string, collisionContext?: string, moduleID?:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* @param {Object} dir - Directory structure
|
|
14
|
-
* @param {string} apiPath - Current API path
|
|
15
|
-
* @param {Object} config - Configuration
|
|
16
|
-
* @returns {Proxy} Lazy unified wrapper
|
|
17
|
-
* @public
|
|
18
|
-
*/
|
|
19
|
-
public createLazySubdirectoryWrapper(dir: any, apiPath: string, moduleID?: any, sourceFolder?: any, cacheBust?: any, fileFolderCollisionImpl?: any, collisionMode?: string): ProxyConstructor;
|
|
20
|
-
/**
|
|
21
|
-
* Apply root contributor pattern - merge API into root function
|
|
22
|
-
* @param {Object} api - API object with properties
|
|
23
|
-
* @param {Function|null} rootFunction - Root contributor function
|
|
24
|
-
* @param {Object} config - Configuration
|
|
25
|
-
* @param {string} mode - Mode name for debug messages
|
|
26
|
-
* @returns {Promise<Object|Function>} Final API (function if root contributor, object otherwise)
|
|
27
|
-
* @public
|
|
28
|
-
*/
|
|
29
|
-
public applyRootContributor(api: any, rootFunction: Function | null, mode: string): Promise<any | Function>;
|
|
3
|
+
processFiles(api: any, files: any, directory: any, currentDepth: any, mode: any, isRoot: any, recursive: any, populateDirectly?: boolean, apiPathPrefix?: string, collisionContext?: string, moduleID?: null, sourceFolder?: null, cacheBust?: null, collisionModeOverride?: null): Promise<any>;
|
|
4
|
+
createLazySubdirectoryWrapper(dir: any, apiPath: any, moduleID?: null, sourceFolder?: null, cacheBust?: null, fileFolderCollisionImpl?: null, collisionMode?: string): any;
|
|
5
|
+
applyRootContributor(api: any, rootFunction: any, mode: any): Promise<any>;
|
|
30
6
|
}
|
|
31
7
|
import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
|
|
32
8
|
//# sourceMappingURL=modes-processor.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modes-processor.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/modes-processor.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"modes-processor.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/modes-processor.mjs"],"names":[],"mappings":"AAAmQ;IAA2C,gCAAyC;IAAsC,iSAA665B;IAAA,2KAAq3M;IAAA,2EAAwS;CAAC;8BAA/6nC,0CAA0C"}
|