@_linked/cli 1.46.2 → 1.47.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 (167) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/README.md +48 -36
  3. package/hooks/drift.cjs +169 -0
  4. package/hooks/git-hook.cjs +170 -0
  5. package/hooks/hook-shim.cjs +63 -0
  6. package/hooks/lock-at-rest.cjs +268 -0
  7. package/hooks/manifests.cjs +216 -0
  8. package/hooks/platform.cjs +25 -0
  9. package/lib/esm/app-release/build-backend.d.ts.map +1 -1
  10. package/lib/esm/app-release/build-backend.js +2 -1
  11. package/lib/esm/app-release/build-backend.js.map +1 -1
  12. package/lib/esm/cli-methods.d.ts.map +1 -1
  13. package/lib/esm/cli-methods.js +166 -150
  14. package/lib/esm/cli-methods.js.map +1 -1
  15. package/lib/esm/cli.js +20 -22
  16. package/lib/esm/cli.js.map +1 -1
  17. package/lib/esm/commands/build-app.d.ts.map +1 -1
  18. package/lib/esm/commands/build-app.js +2 -1
  19. package/lib/esm/commands/build-app.js.map +1 -1
  20. package/lib/esm/commands/build-package.d.ts.map +1 -1
  21. package/lib/esm/commands/build-package.js +6 -2
  22. package/lib/esm/commands/build-package.js.map +1 -1
  23. package/lib/esm/commands/localize.d.ts +9 -15
  24. package/lib/esm/commands/localize.d.ts.map +1 -1
  25. package/lib/esm/commands/localize.js +43 -74
  26. package/lib/esm/commands/localize.js.map +1 -1
  27. package/lib/esm/commands/setup-publish.d.ts.map +1 -1
  28. package/lib/esm/commands/setup-publish.js +22 -15
  29. package/lib/esm/commands/setup-publish.js.map +1 -1
  30. package/lib/esm/commands/start.d.ts +8 -0
  31. package/lib/esm/commands/start.d.ts.map +1 -1
  32. package/lib/esm/commands/start.js +20 -8
  33. package/lib/esm/commands/start.js.map +1 -1
  34. package/lib/esm/installed-packages.d.ts +5 -13
  35. package/lib/esm/installed-packages.d.ts.map +1 -1
  36. package/lib/esm/installed-packages.js +5 -38
  37. package/lib/esm/installed-packages.js.map +1 -1
  38. package/lib/esm/lifecycle.d.ts +35 -22
  39. package/lib/esm/lifecycle.d.ts.map +1 -1
  40. package/lib/esm/lifecycle.js +62 -36
  41. package/lib/esm/lifecycle.js.map +1 -1
  42. package/lib/esm/localize/adopt.d.ts +5 -5
  43. package/lib/esm/localize/adopt.d.ts.map +1 -1
  44. package/lib/esm/localize/adopt.js +46 -55
  45. package/lib/esm/localize/adopt.js.map +1 -1
  46. package/lib/esm/localize/app-root.d.ts +16 -0
  47. package/lib/esm/localize/app-root.d.ts.map +1 -0
  48. package/lib/esm/localize/app-root.js +94 -0
  49. package/lib/esm/localize/app-root.js.map +1 -0
  50. package/lib/esm/localize/app-setup.d.ts +21 -0
  51. package/lib/esm/localize/app-setup.d.ts.map +1 -0
  52. package/lib/esm/localize/app-setup.js +178 -0
  53. package/lib/esm/localize/app-setup.js.map +1 -0
  54. package/lib/esm/localize/delocalize.d.ts.map +1 -1
  55. package/lib/esm/localize/delocalize.js +169 -104
  56. package/lib/esm/localize/delocalize.js.map +1 -1
  57. package/lib/esm/localize/drift-hook.d.ts +18 -0
  58. package/lib/esm/localize/drift-hook.d.ts.map +1 -0
  59. package/lib/esm/localize/drift-hook.js +37 -0
  60. package/lib/esm/localize/drift-hook.js.map +1 -0
  61. package/lib/esm/localize/drift.d.ts +36 -0
  62. package/lib/esm/localize/drift.d.ts.map +1 -0
  63. package/lib/esm/localize/drift.js +34 -0
  64. package/lib/esm/localize/drift.js.map +1 -0
  65. package/lib/esm/localize/errors.d.ts +14 -8
  66. package/lib/esm/localize/errors.d.ts.map +1 -1
  67. package/lib/esm/localize/errors.js +14 -8
  68. package/lib/esm/localize/errors.js.map +1 -1
  69. package/lib/esm/localize/fsops.d.ts +11 -27
  70. package/lib/esm/localize/fsops.d.ts.map +1 -1
  71. package/lib/esm/localize/fsops.js +40 -115
  72. package/lib/esm/localize/fsops.js.map +1 -1
  73. package/lib/esm/localize/git-hooks.d.ts +33 -0
  74. package/lib/esm/localize/git-hooks.d.ts.map +1 -0
  75. package/lib/esm/localize/git-hooks.js +146 -0
  76. package/lib/esm/localize/git-hooks.js.map +1 -0
  77. package/lib/esm/localize/hook-module.d.ts +6 -0
  78. package/lib/esm/localize/hook-module.d.ts.map +1 -0
  79. package/lib/esm/localize/hook-module.js +37 -0
  80. package/lib/esm/localize/hook-module.js.map +1 -0
  81. package/lib/esm/localize/index.d.ts +14 -15
  82. package/lib/esm/localize/index.d.ts.map +1 -1
  83. package/lib/esm/localize/index.js +8 -9
  84. package/lib/esm/localize/index.js.map +1 -1
  85. package/lib/esm/localize/list.d.ts +6 -10
  86. package/lib/esm/localize/list.d.ts.map +1 -1
  87. package/lib/esm/localize/list.js +49 -189
  88. package/lib/esm/localize/list.js.map +1 -1
  89. package/lib/esm/localize/localize.d.ts +46 -62
  90. package/lib/esm/localize/localize.d.ts.map +1 -1
  91. package/lib/esm/localize/localize.js +411 -285
  92. package/lib/esm/localize/localize.js.map +1 -1
  93. package/lib/esm/localize/members.d.ts +13 -0
  94. package/lib/esm/localize/members.d.ts.map +1 -0
  95. package/lib/esm/localize/members.js +46 -0
  96. package/lib/esm/localize/members.js.map +1 -0
  97. package/lib/esm/localize/resolve.d.ts +1 -2
  98. package/lib/esm/localize/resolve.d.ts.map +1 -1
  99. package/lib/esm/localize/resolve.js +3 -5
  100. package/lib/esm/localize/resolve.js.map +1 -1
  101. package/lib/esm/localize/run.d.ts +1 -0
  102. package/lib/esm/localize/run.d.ts.map +1 -1
  103. package/lib/esm/localize/run.js +11 -6
  104. package/lib/esm/localize/run.js.map +1 -1
  105. package/lib/esm/localize/setup-lockfile.d.ts +13 -0
  106. package/lib/esm/localize/setup-lockfile.d.ts.map +1 -0
  107. package/lib/esm/localize/setup-lockfile.js +80 -0
  108. package/lib/esm/localize/setup-lockfile.js.map +1 -0
  109. package/lib/esm/utils/createPackageLocation.d.ts +4 -13
  110. package/lib/esm/utils/createPackageLocation.d.ts.map +1 -1
  111. package/lib/esm/utils/createPackageLocation.js +12 -21
  112. package/lib/esm/utils/createPackageLocation.js.map +1 -1
  113. package/lib/esm/utils/packageSetup.d.ts +5 -2
  114. package/lib/esm/utils/packageSetup.d.ts.map +1 -1
  115. package/lib/esm/utils/packageSetup.js +9 -3
  116. package/lib/esm/utils/packageSetup.js.map +1 -1
  117. package/lib/esm/utils/platform.d.ts +24 -0
  118. package/lib/esm/utils/platform.d.ts.map +1 -0
  119. package/lib/esm/utils/platform.js +62 -0
  120. package/lib/esm/utils/platform.js.map +1 -0
  121. package/lib/esm/utils/shapeReferences.d.ts.map +1 -1
  122. package/lib/esm/utils/shapeReferences.js +3 -2
  123. package/lib/esm/utils/shapeReferences.js.map +1 -1
  124. package/lib/esm/utils/spawn.d.ts +65 -0
  125. package/lib/esm/utils/spawn.d.ts.map +1 -0
  126. package/lib/esm/utils/spawn.js +181 -0
  127. package/lib/esm/utils/spawn.js.map +1 -0
  128. package/lib/esm/utils.d.ts.map +1 -1
  129. package/lib/esm/utils.js +19 -5
  130. package/lib/esm/utils.js.map +1 -1
  131. package/lib/esm/vite-config.d.ts +5 -12
  132. package/lib/esm/vite-config.d.ts.map +1 -1
  133. package/lib/esm/vite-config.js +41 -33
  134. package/lib/esm/vite-config.js.map +1 -1
  135. package/package.json +4 -3
  136. package/lib/esm/localize/ensure.d.ts +0 -44
  137. package/lib/esm/localize/ensure.d.ts.map +0 -1
  138. package/lib/esm/localize/ensure.js +0 -151
  139. package/lib/esm/localize/ensure.js.map +0 -1
  140. package/lib/esm/localize/manifest.d.ts +0 -63
  141. package/lib/esm/localize/manifest.d.ts.map +0 -1
  142. package/lib/esm/localize/manifest.js +0 -133
  143. package/lib/esm/localize/manifest.js.map +0 -1
  144. package/lib/esm/localize/one-copy-hook.d.ts +0 -16
  145. package/lib/esm/localize/one-copy-hook.d.ts.map +0 -1
  146. package/lib/esm/localize/one-copy-hook.js +0 -20
  147. package/lib/esm/localize/one-copy-hook.js.map +0 -1
  148. package/lib/esm/localize/provided.d.ts +0 -28
  149. package/lib/esm/localize/provided.d.ts.map +0 -1
  150. package/lib/esm/localize/provided.js +0 -89
  151. package/lib/esm/localize/provided.js.map +0 -1
  152. package/lib/esm/localize/prune.d.ts +0 -182
  153. package/lib/esm/localize/prune.d.ts.map +0 -1
  154. package/lib/esm/localize/prune.js +0 -703
  155. package/lib/esm/localize/prune.js.map +0 -1
  156. package/lib/esm/localize/relink.d.ts +0 -13
  157. package/lib/esm/localize/relink.d.ts.map +0 -1
  158. package/lib/esm/localize/relink.js +0 -181
  159. package/lib/esm/localize/relink.js.map +0 -1
  160. package/lib/esm/localized-dedupe.d.ts +0 -26
  161. package/lib/esm/localized-dedupe.d.ts.map +0 -1
  162. package/lib/esm/localized-dedupe.js +0 -139
  163. package/lib/esm/localized-dedupe.js.map +0 -1
  164. package/lib/esm/utils/relinkHooks.d.ts +0 -19
  165. package/lib/esm/utils/relinkHooks.d.ts.map +0 -1
  166. package/lib/esm/utils/relinkHooks.js +0 -74
  167. package/lib/esm/utils/relinkHooks.js.map +0 -1
@@ -1,182 +0,0 @@
1
- import type { ProvidedSkip } from './provided.js';
2
- import type { ManifestEntry } from './manifest.js';
3
- import type { Deps } from './run.js';
4
- /** What pruning reads from a command's options. */
5
- export interface PruneOptions {
6
- /** On unless explicitly false. */
7
- prune?: boolean;
8
- }
9
- /** Limit a prune to some checkouts and/or some dependency names. */
10
- export interface PruneScope {
11
- /** Only these localized packages' checkouts. */
12
- owners?: string[];
13
- /** Only these dependency names (the first pass; later passes take every candidate of `owners`). */
14
- deps?: string[];
15
- }
16
- /** The rule's names (every localized sibling among them) and what the rule skipped. */
17
- export interface Candidates {
18
- names: Set<string>;
19
- skipped: Map<string, ProvidedSkip>;
20
- }
21
- /** The rule (`providedPackages`, provided.ts) over `entries`, plus every entry (sibling). */
22
- export declare function candidatesFor(entries: Record<string, ManifestEntry>, deps: Pick<Deps, 'appRoot'>): Candidates;
23
- /**
24
- * Does the app's installed `version` satisfy `range`? `null` means "cannot
25
- * tell" -- a dist-tag, `file:`, `npm:`, `workspace:`, a git URL, or a version
26
- * that is not one -- and every caller then keeps the copy. The failure mode is
27
- * therefore always the safe one: a copy kept that could have gone, never a
28
- * copy removed that was needed.
29
- *
30
- * npm's own `semver` decides, so prereleases follow npm's rule: `1.3.0-beta.1`
31
- * satisfies a range only when one of its comparators names a prerelease on
32
- * the same `major.minor.patch`.
33
- */
34
- export declare function satisfies(version: string, range: string): boolean | null;
35
- /** Pruning is on unless a caller says `{prune: false}`. */
36
- export declare function shouldPrune(opts?: PruneOptions): boolean;
37
- /** Is pruning on for this recorded checkout? `--no-prune` at localize/adopt records `prune: false`. */
38
- export declare function prunesEntry(entry: Pick<ManifestEntry, 'prune'>): boolean;
39
- /** prune repeats until a pass removes nothing, at most this many passes. */
40
- export declare const MAX_PRUNE_PASSES = 5;
41
- /** A range that resolves to a copy: who asks, and what. */
42
- interface Ask {
43
- from: string;
44
- range: string;
45
- }
46
- /** One copy in a checkout's `node_modules`, and what pruning decides about it. */
47
- export interface PruneDecision {
48
- /** The localized package whose checkout holds the copy. */
49
- ownerName: string;
50
- /** Its checkout, relative to the app root. */
51
- owner: string;
52
- dep: string;
53
- /** `<nm>/<dep>`, absolute. */
54
- dir: string;
55
- /** `dir` relative to the app root. */
56
- where: string;
57
- nm: string;
58
- version: string;
59
- /** The app's version. */
60
- app: string;
61
- sibling: boolean;
62
- action: 'remove' | 'keep';
63
- /**
64
- * Why a copy stays: `range` -- a range that loads it is one the app's
65
- * version misses (or one that cannot be read); `context` -- removing it
66
- * would change what its own dependencies resolve to; `types` -- the copy
67
- * ships its own types and removing it would hand TypeScript the checkout's
68
- * `@types/` stub for it instead (`staleTypes`).
69
- */
70
- reason?: 'range' | 'context' | 'types';
71
- /** The ranges the app's version does not satisfy (`range`), or a sibling's drift (`remove`). */
72
- unmet: Ask[];
73
- /** `context`: the dependency that would resolve elsewhere, and both versions. */
74
- context?: {
75
- dep: string;
76
- here: string;
77
- app: string | null;
78
- };
79
- /** `types`: the `@types/` stub TypeScript would take instead, and its version. */
80
- types?: {
81
- name: string;
82
- version: string;
83
- };
84
- }
85
- /** What a plan found, without touching anything. */
86
- export interface PrunePlan {
87
- remove: PruneDecision[];
88
- keep: PruneDecision[];
89
- /** Checkouts left alone because they are not under the app root. */
90
- outside: {
91
- name: string;
92
- path: string;
93
- }[];
94
- }
95
- /**
96
- * Per-call caches: a requirement index per `node_modules` (built once, see
97
- * `RequirementIndex`) and the package.json files read along the way.
98
- */
99
- export interface PruneCache {
100
- indexes: Map<string, RequirementIndex>;
101
- /** How many indexes were built -- each is one read of a whole tree. */
102
- builds: number;
103
- }
104
- export declare function newPruneCache(): PruneCache;
105
- /**
106
- * Decide, for every recorded checkout and every candidate copy in its
107
- * `node_modules`, whether pruning removes it -- without removing anything.
108
- * `pruneProvided` applies it; the run-time check (`checkOneCopy`) and
109
- * `--list` call it on its own, which is why it has to be cheap: a copy whose
110
- * checkout's own range rules it out is decided from that `package.json`
111
- * alone, and every other range comes from one requirement index per
112
- * `node_modules`, built at most once per call.
113
- *
114
- * Candidates are PER OWNER: a copy is a candidate in checkout O when the rule
115
- * provides it AND it is a localized sibling, `react`/`react-dom`, or one of
116
- * O's own runtime dependencies (`dependencies`, `peerDependencies`,
117
- * `optionalDependencies`). O's devDependencies are O's tooling, whatever
118
- * another checkout declares at runtime.
119
- */
120
- export declare function planPrune(entries: Record<string, ManifestEntry>, deps: Pick<Deps, 'appRoot'>, scope?: PruneScope, cache?: PruneCache, candidates?: Candidates): PrunePlan;
121
- /**
122
- * @param entries the localized packages: every one counts as a sibling
123
- * @param opts unused beyond `prune`, which callers check with `shouldPrune`
124
- * @param deps `{appRoot, log, warn}`
125
- * @param scope prune only some checkouts / names (the run-time check)
126
- *
127
- * A removal can make another copy removable -- the copy that went was the one
128
- * asking a range the app misses, or the one a sibling copy's dependency
129
- * resolved to -- so it plans and removes again until a pass removes nothing
130
- * (at most `MAX_PRUNE_PASSES`): one call converges. A checkout recorded with
131
- * `prune: false` is never touched.
132
- */
133
- export declare function pruneProvided(entries: Record<string, ManifestEntry>, opts: PruneOptions, deps: Pick<Deps, 'appRoot' | 'log' | 'warn'>, scope?: PruneScope, cache?: PruneCache): {
134
- removed: PruneDecision[];
135
- kept: PruneDecision[];
136
- };
137
- /**
138
- * Is `dep` -- declared by a checkout at `range` -- something the app provides,
139
- * so that its absence from the checkout's own `node_modules` is not a
140
- * dependency gone missing? `--relink` asks this before reinstalling a
141
- * checkout, so a copy pruned on purpose does not trigger a reinstall on every
142
- * postinstall. `pkg` is the checkout's `package.json`: only what would be a
143
- * candidate in THAT checkout counts. With `checkout`, a copy the prune would
144
- * keep for a stub `@types/` package there (`staleTypes`) is not provided: its
145
- * absence is a dependency gone missing, and the reinstall puts it back.
146
- */
147
- export declare function isProvidedByApp(dep: string, range: string | undefined, entries: Record<string, ManifestEntry>, candidates: Candidates, deps: Pick<Deps, 'appRoot'>, pkg?: any, checkout?: {
148
- dir: string;
149
- }): boolean;
150
- /**
151
- * Does the package at `dir` carry its own type declarations? `types` /
152
- * `typings`, `typesVersions`, a `types` condition anywhere in `exports`, or an
153
- * `index.d.ts` next to its `package.json` -- where TypeScript looks for them.
154
- */
155
- export declare function shipsOwnTypes(dir: string, pkg: any): boolean;
156
- /**
157
- * Every range that would load a copy at the top of one `node_modules`: the
158
- * requirements (`dependencies`, `peerDependencies`, `optionalDependencies`) of
159
- * every installed package under it, read ONCE per `node_modules`, then asked
160
- * per name. A package counts for `<nm>/<dep>` when nothing between it and
161
- * `nm` holds its own `dep` -- Node would load the top-level copy.
162
- *
163
- * Read from npm's hidden lockfile (`node_modules/.package-lock.json`, which
164
- * npm rewrites on every install in that tree) when there is one: measured
165
- * over 21 checkouts, parsing all of them took ~45 ms where walking the same
166
- * 16,800 package.json files took 0.8 s warm and 3.4 s cold. Without one (a
167
- * tree npm did not write) the tree is walked, once. Either way a requirer is
168
- * checked against the disk when asked about -- what an earlier prune removed
169
- * asks nothing, and a copy is shadowed only by a directory that exists.
170
- */
171
- export interface RequirementIndex {
172
- asks(dep: string): Ask[];
173
- }
174
- /** `react@18.3.1 (app 19.2.0), prism-react-renderer@2.4.1 (its react would change), … and 4 more` */
175
- export declare function summarizeKept(list: PruneDecision[]): string;
176
- /** The full reason a copy stays, for `--list`. */
177
- export declare function explainKept(k: PruneDecision): string;
178
- /** The package dir's `node_modules`, and the clone root's when the package is a monorepo subdir. */
179
- export declare function nodeModulesRoots(pkgDir: any, entry: any): string[];
180
- export declare function realOrSelf(p: string): string;
181
- export {};
182
- //# sourceMappingURL=prune.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../../src/localize/prune.ts"],"names":[],"mappings":"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"}